graph-rag
MCP server from ferparra/graph-rag-mcp-server
claude mcp add --transport stdio ferparra-graph-rag-mcp-server uvx --python 3.13 --from . graph-rag-mcp-stdio \ --env GEMINI_API_KEY="your_api_key_here" \ --env OBSIDIAN_RAG_VAULTS="/path/to/your/vault"
How to use
This MCP server provides a local-first Graph-RAG system that indexes your Obsidian vault using a unified ChromaDB store with metadata-based graph relationships. It enables RAG-powered Q&A, graph navigation, and PARA taxonomy enrichment, leveraging Gemini 2.5 Flash for intelligent insights. Tools exposed by the server include search_notes for vector search across notes, answer_question for multi-hop Q&A with citations, graph_neighbors and get_subgraph for exploring relationships, and note operations like create_note, read_note, and update_note_properties. You can also navigate backlinks, filter notes by tags, and manage vault indexing and PARA enrichment from a local setup. To use Claude Desktop (stdio) or HTTP clients like Cursor and Raycast, configure the MCP client to connect to the appropriate endpoint (stdio or HTTP) and provide your GEMINI_API_KEY and vault paths in environment configuration. After setup, you can index your vault, reindex the ChromaDB store, and perform real-time watching to keep the graph up to date.
How to install
Prerequisites:
- Python or uv (as described in the project) and the uv-based installer
- Access to Gemini API (GEMINI_API_KEY) and your Obsidian vault
Step-by-step:
- Install uv (if not installed):
curl -LsSf https://astral.sh/uv/install.sh | sh # macOS/Linux
- Install and index the MCP server (as described in the project):
uv sync
- Configure environment and vault paths:
# Copy example env and edit
cp configs/.env.example .env
- Index your vault to create the unified ChromaDB store:
uv run scripts/reindex.py all
- Run the MCP server in your desired mode (stdio for Claude Desktop, HTTP for Cursor/Raycast):
# Claude Desktop (stdio mode)
uvx --python 3.13 --from . graph-rag-mcp-stdio
# Cursor/Raycast (HTTP mode)
uv run graph-rag-mcp-http
- If needed, start the real-time watcher and PARA enrichment tools:
uv run scripts/reindex_watch.py start
uv run scripts/enrich_para_taxonomy.py enrich-all --apply
Additional notes
Tips:
- Ensure GEMINI_API_KEY is set in your environment for Gemini 2.5 Flash integration.
- Set OBSIDIAN_RAG_VAULTS to the path(s) of your Obsidian vaults you want indexed.
- The MCP supports multiple clients; use stdio for Claude Desktop and HTTP for Cursor/Raycast. You can adjust the port with graph-rag-mcp-http --port <port>.
- Regularly run reindexing to keep the ChromaDB store in sync with vault changes; enable the file watcher for real-time indexing.
- PARA taxonomy enrichment uses DSPy; configure batch sizes and limit parameters to balance performance with vault size.
- If you encounter environment-variable or path issues, verify that the working directory (cwd) points to your graph-rag-mcp-server and that the vault paths exist and are accessible.
Related MCP Servers
mcp-vegalite
MCP server from isaacwasserman/mcp-vegalite-server
github-chat
A Model Context Protocol (MCP) for analyzing and querying GitHub repositories using the GitHub Chat API.
nautex
MCP server for guiding Coding Agents via end-to-end requirements to implementation plan pipeline
pagerduty
PagerDuty's official local MCP (Model Context Protocol) server which provides tools to interact with your PagerDuty account directly from your MCP-enabled client.
futu-stock
mcp server for futuniuniu stock
mcp -boilerplate
Boilerplate using one of the 'better' ways to build MCP Servers. Written using FastMCP