Files
linear-coding-agent/generations/library_rag/examples/test_mcp_quick.py
David Blanc Brioir d2f7165120 Add Library RAG project and cleanup root directory
- Add complete Library RAG application (Flask + MCP server)
  - PDF processing pipeline with OCR and LLM extraction
  - Weaviate vector database integration (BGE-M3 embeddings)
  - Flask web interface with search and document management
  - MCP server for Claude Desktop integration
  - Comprehensive test suite (134 tests)

- Clean up root directory
  - Remove obsolete documentation files
  - Remove backup and temporary files
  - Update autonomous agent configuration

- Update prompts
  - Enhance initializer bis prompt with better instructions

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-30 11:57:12 +01:00

63 lines
2.1 KiB
Python

import asyncio
import sys
from pathlib import Path
sys.path.insert(0, str(Path(__file__).parent))
from mcp_client_reference import MCPClient
async def main():
client = MCPClient(server_path=str(Path(__file__).parent.parent / "mcp_server.py"), env={})
await client.start()
try:
print("=" * 70)
print("MCP CLIENT - FUNCTIONAL TESTS")
print("=" * 70)
# Test 1: Search chunks
print("\n[TEST 1] Search chunks (semantic search)")
result = await client.call_tool("search_chunks", {
"query": "nominalism realism debate",
"limit": 2
})
print(f"Results: {result['total_count']}")
for i, chunk in enumerate(result['results'], 1):
print(f" [{i}] {chunk['work_author']} - Similarity: {chunk['similarity']:.3f}")
print(f" {chunk['text'][:80]}...")
print("[OK]")
# Test 2: List documents
print("\n[TEST 2] List documents")
result = await client.call_tool("list_documents", {"limit": 5})
print(f"Total: {result['total_count']} documents")
for doc in result['documents'][:3]:
print(f" - {doc['source_id']} ({doc['work_author']}): {doc['chunks_count']} chunks")
print("[OK]")
# Test 3: Filter by author
print("\n[TEST 3] Filter by author")
result = await client.call_tool("filter_by_author", {
"author": "Charles Sanders Peirce"
})
print(f"Author: {result['author']}")
print(f"Works: {result['total_works']}")
print(f"Documents: {result['total_documents']}")
if 'total_chunks' in result:
print(f"Chunks: {result['total_chunks']}")
print("[OK]")
print("\n" + "=" * 70)
print("ALL TESTS PASSED - MCP CLIENT IS WORKING!")
print("=" * 70)
print("\nNote: author_filter and work_filter parameters are not supported")
print(" due to Weaviate v4 limitation. See examples/KNOWN_ISSUES.md")
finally:
await client.stop()
asyncio.run(main())