GraphRAG MCP Server
@rileylemm
This is a MCP server I built to interact with my hybrid graph rag db.
概要
What is GraphRAG MCP Server?
A Model Context Protocol (MCP) server that queries a hybrid graph and vector database system combining Neo4j (graph database) and Qdrant (vector database). Built for developers integrating large language models with powerful semantic and graph-based document retrieval.
How to use GraphRAG MCP Server?
Clone the repository, install dependencies with uv install, configure Neo4j and Qdrant connection details in a .env file, then run uv run main.py. For MCP client integration, add the server to your mcp.json configuration file (e.g., for Claude Desktop or Cursor) pointing to the run_server.sh script.
Key features of GraphRAG MCP Server
- Semantic search through document embeddings
- Graph-based context expansion following relationships
- Hybrid search combining vector similarity with graph links
- MCP tools and resources for LLM integration
- Full documentation of Neo4j schema and Qdrant collection info
Use cases of GraphRAG MCP Server
- Enabling LLMs to perform semantic document retrieval
- Expanding context using graph relationships for richer answers
- Hybrid search that balances vector similarity with structured graph queries
- Integrating Neo4j‑ and Qdrant‑backed knowledge into Claude Desktop or Cursor
FAQ from GraphRAG MCP Server
What are the runtime requirements?
Python 3.12+, plus a running Neo4j instance on localhost:7687 and a running Qdrant instance on localhost:6333 (default ports). Documents must be already indexed in both databases.
How do I install the server?
Clone the repository, run uv install to install dependencies, set database credentials in .env, then start with uv run main.py. A run_server.sh script is provided for MCP client registration.
Why am I getting empty results?
Ensure your document collection is properly indexed in both Neo4j and Qdrant. Verify database connectivity and that the QDRANT_COLLECTION name in .env matches your indexed collection.
How do I configure authentication for Neo4j and Qdrant?
Set NEO4J_USER, NEO4J_PASSWORD, and optionally NEO4J_URI (default bolt://localhost:7687) in .env. Qdrant authentication is not explicitly covered; the default configuration assumes no auth.
What transports and authentication does the server use?
The server uses the MCP protocol over HTTP/WebSocket (native). Neo4j communicates via Bolt protocol, Qdrant via HTTP. Credentials for Neo4j are read from environment variables. No MCP‑level auth is described.