`graph_context` is the tool that justifies putting a graph behind an assistant at all: vector search finds the entry points, and the N-hop expansion brings back what they connect to, which plain similarity search cannot do. Everything upserts by ident, so re-running an ingest updates rather than duplicates.
An MCP server for Apache AGE graph databases, written in F# on .NET 10. It lets an assistant read and write graph data, run Cypher directly, and — with an embedding endpoint configured — search by meaning and expand from the results.
- Graph management — `get_or_create_graph`, `list_graphs`, `drop_graphs`
- Vertices and edges — `upsert_vertex` and `upsert_edge` merge on ident rather than overwriting, `upsert_graph` batches both transactionally, `drop_vertex` removes a vertex and its edges, `drop_edge` removes one by ident
- Query — `cypher_query` for reads, `cypher_write` for writes returning an affected count, `search_vertices`, `search_edges`, `get_neighbors` for 1–5 hop directional traversal, `get_schema` for labels and counts
- Export and import — `export_graph` to JSON, `import_graph` back, creating the graph if needed
- Visualization and search — `generate_visualization` renders an interactive vis.js graph, `semantic_search` does vector similarity over pgvector, `graph_context` combines semantic seeds with N-hop expansion for Graph RAG
- OpenBrain bridge — `sync_to_openbrain`, `import_from_openbrain`
Install with `dotnet tool install --global AgeMcp` and run `age-mcp` over stdio. `AGE_CONNECTION_STRING` is required — an Npgsql connection string pointing at PostgreSQL with Apache AGE. `TENANT_ID` defaults to `default` and prefixes every graph name as `t_{TENANT_ID}__{graph_name}`, which is how multi-tenancy works. `semantic_search` and `graph_context` additionally need `EMBEDDING_API_URL` pointing at an OpenAI-compatible embedding endpoint, with `EMBEDDING_MODEL` defaulting to `text-embedding-3-small` and `EMBEDDING_DIMENSIONS` to 384 — the dimensions must match the model's output. A Docker setup running PostgreSQL 17 with Apache AGE 1.6.0 and pgvector is included.
One command plus a key — dotnet tool install --global AgeMcp, then supply credentials
