graph-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| NEO4J_URI | No | Bolt endpoint. | bolt://127.0.0.1:7687 |
| NEO4J_USER | No | Neo4j username. | neo4j |
| NEO4J_DATABASE | No | Neo4j database name. | neo4j |
| NEO4J_PASSWORD | Yes | Neo4j password. | |
| GRAPH_MCP_KB_ROOT | Yes | Corpus root. Must exist. Falls back to KNOWLEDGE_MCP_ROOT, then ~/Knowledge. | |
| GRAPH_MCP_EMBED_DIM | No | Embedding dimension. Must match the model and the vector index. | 4096 |
| GRAPH_MCP_LLM_MODEL | No | Model name for Stage 3 extraction. | qwen3.5-122b-a10b |
| GRAPH_MCP_CHUNK_WORDS | No | Target words per chunk. | 350 |
| GRAPH_MCP_EMBED_BATCH | No | Texts per embedding request. | 16 |
| GRAPH_MCP_EMBED_MODEL | No | Embedding model name. | text-embedding-qwen3-embedding-8b |
| GRAPH_MCP_LLM_API_KEY | No | API key for the LLM endpoint. | lm-studio |
| GRAPH_MCP_LLM_BASE_URL | No | Base URL for the LLM used in Stage 3 extraction. | http://127.0.0.1:1234/v1 |
| GRAPH_MCP_CHUNK_OVERLAP | No | Word overlap between chunks. | 60 |
| GRAPH_MCP_EMBED_BASE_URL | No | LM Studio OpenAI-compatible embeddings endpoint. | http://127.0.0.1:1234/v1 |
| GRAPH_MCP_SEMANTIC_TOOLS | No | Set to '1' to register the Stage 4 tools (find_related_entities, shortest_path, recent_related_changes). | |
| GRAPH_MCP_ENTITY_MERGE_THRESHOLD | No | Cosine similarity above which two entities merge. | 0.92 |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| semantic_searchA | Find passages in the knowledge base by meaning rather than keywords. Use when the question is conceptual or the user's wording is unlikely to match the note's wording verbatim — "how do I handle X", "what did I decide about Y". For exact strings, literal identifiers, or filenames, prefer knowledge-mcp's search_knowledge instead. Returns the best-matching chunks with their document path, section breadcrumb, and similarity score. Read the full note via knowledge-mcp's read_knowledge using the returned path. |
| documents_by_tagA | List documents carrying a frontmatter tag, e.g. "hermes" or "homelab". Use for tag-based navigation — "what notes are tagged X". Call list_tags first if unsure which tags exist. Returns paths; read content via knowledge-mcp's read_knowledge. |
| list_tagsA | List every tag in the corpus with how many documents use it. Use to discover the corpus's own vocabulary before calling documents_by_tag. |
| entities_in_documentA | Show what a specific note is about: its tags, its wikilinks in and out, and (once the semantic pass has run) the entities it mentions. Use when you already know which note you care about and want its
neighbourhood — "what does this note connect to". |
| similar_documentsA | Find notes covering similar ground to a given note, by embedding similarity rather than by explicit links. Use to surface related material the wikilinks miss — near-duplicates, or an older note on the same topic. Complements entities_in_document, which only sees links you wrote by hand. |
| graph_overviewA | Report what the graph currently contains — node and edge counts per type. Use to check which extraction stages have run before trusting a query that depends on them. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 6 tools
Each tool addresses a distinct concern: semantic search, tag listing, tag-based document retrieval, per-document entity/neighborhood details, document similarity, and overall graph statistics. There is no meaningful overlap; even semantic_search and similar_documents differ by input type (query text vs. document path).
Names are readable and follow snake_case, but they mix verb-led patterns (list_tags) with noun-phrase patterns (documents_by_tag, entities_in_document, similar_documents, graph_overview, semantic_search). This is a mild inconsistency rather than chaos, since each name is still descriptive.
Six tools form a focused, well-scoped set for a knowledge-graph exploration server. The count is neither sparse nor bloated, and each tool earns its place by addressing a distinct query pattern.
The server covers the full range of graph navigation queries: search by meaning, browse by tags, inspect a document's neighborhood, find similar documents, and get a structural overview. Gaps like reading raw content or exact-string search are explicitly delegated to the complementary knowledge-mcp server, so no dead ends remain within this server's intended domain.