Apache AGE MCP
MCP server for Apache AGE graph databases on PostgreSQL. **21 MCP tools** — the most comprehensive Apache AGE MCP server (graph CRUD, Cypher queries, batch transactions, semantic search, Graph RAG, vis.js visualization, export/import) - **F#/.NET** — the only non-Python Apache AGE MCP server, installs as a single dotnet tool - **Production-grade** — BenchmarkDotNet-verified performance (cached queries in 62 ns, Cypher in 1 ms) - **Open source** — MIT license, published on [NuGet](https://www.nuget.org/packages/AgeMcp) - **Documentation** — full docs site at neftedollar.com/age-mcp
age-mcp
MCP server for Apache AGE graph databases. Lets AI assistants (Claude, ChatGPT, Copilot, etc.) query and mutate graph data via the Model Context Protocol.
Built with F# on .NET 10 -- 1,300 lines, 21 tools, zero Python dependencies.
Quick Start
# 1. Start the database
docker compose up -d
# 2. Install the tool
dotnet tool install --global AgeMcp
# 3. Run
AGE_CONNECTION_STRING="Host=localhost;Port=5435;Database=agemcp;Username=agemcp;Password=agemcp" age-mcp
Claude Desktop / Claude Code
{
"mcpServers": {
"age-mcp": {
"type": "stdio",
"command": "age-mcp",
"env": {
"AGE_CONNECTION_STRING": "Host=localhost;Port=5435;Database=agemcp;Username=agemcp;Password=agemcp",
"TENANT_ID": "default"
}
}
}
}
Tools (21)
Graph Management
| Tool | Description |
|---|---|
get_or_create_graph | Get or create a graph by name |
list_graphs | List all graphs (tenant-scoped) |
drop_graphs | Drop one or more graphs |
Vertices & Edges
| Tool | Description |
|---|---|
upsert_vertex | Insert or update a vertex (merge on ident) |
upsert_edge | Insert or update a directed edge |
upsert_graph | Batch upsert vertices + edges (transactional) |
drop_vertex | Remove a vertex and all its edges |
drop_edge | Remove an edge by ident |
Query
| Tool | Description |
|---|---|
cypher_query | Execute a read Cypher query |
cypher_write | Execute a write Cypher query, returns affected count |
search_vertices | Search by label and/or property |
search_edges | Search edges by label |
get_neighbors | N-hop traversal (1-5 hops, directional) |
get_schema | All node labels and counts |
Export / Import
| Tool | Description |
|---|---|
export_graph | Export graph as JSON |
import_graph | Import from JSON (creates graph if needed) |
Visualization & Search
| Tool | Description |
|---|---|
generate_visualization | Interactive vis.js HTML graph |
semantic_search | Vector similarity search (pgvector) |
graph_context | Graph RAG: semantic seeds + N-hop expansion |
OpenBrain Bridge
| Tool | Description |
|---|---|
sync_to_openbrain | Export vertices as OpenBrain memories |
import_from_openbrain | Build graph from OpenBrain memories |
Configuration
| Variable | Required | Default | Description |
|---|---|---|---|
AGE_CONNECTION_STRING | yes | localhost test DB | Npgsql connection string |
TENANT_ID | no | default | Tenant prefix for graph names |
EMBEDDING_API_URL | no | -- | OpenAI-compatible embedding API |
EMBEDDING_API_KEY | no | -- | API key for embeddings |
EMBEDDING_MODEL | no | text-embedding-3-small | Embedding model name |
EMBEDDING_DIMENSIONS | no | 384 | Vector dimensions |
Docker
The included Docker setup runs PostgreSQL 17 + Apache AGE 1.6.0 + pgvector:
docker compose up -d
Versions and credentials are configurable via .env (see .env.example):
PG_MAJOR=17 AGE_VERSION=1.6.0 DB_PORT=5435 docker compose up -d
Data Compatibility
Designed as a drop-in replacement for agemcp (Python). Same tenant prefix (t_{TENANT_ID}__), same vertex ident property, same edge start_ident/end_ident properties. Existing data works without migration.
Performance
BenchmarkDotNet on Apple M1 Pro, .NET 10.0.5:
| Operation | Latency | Allocated |
|---|---|---|
| list_graphs | 62 ns | 216 B |
| get_schema | 117 ns | 344 B |
| cypher_query (1 vertex) | 1.0 ms | 58 KB |
| search_vertices | 1.0 ms | 36 KB |
| get_neighbors (depth=1) | 92 ms | 233 KB |
| export_graph (40 entities) | 71 ms | 472 KB |
Building from Source
git clone https://github.com/Neftedollar/age-mcp.git
cd age-mcp
dotnet build
# Run directly
dotnet run
# Or install as tool
dotnet pack -c Release
dotnet tool install --global AgeMcp
Dependencies (FsMcp.Core, FsMcp.Server, Fyper) are restored from NuGet automatically.
License
MIT
Verwandte Server
Tableau MCP Server
Connects Claude Desktop to Tableau Server, enabling natural language interactions with your Tableau data and administrative capabilities.
GreptimeDB
Provides AI assistants with a secure and structured way to explore and analyze data in GreptimeDB.
GrantAi
Deterministic O(1) memory for AI agents — local-first, MCP-native, with multi-agent speaker attribution and millisecond recall.
Node MSSQL
A server for interacting with Microsoft SQL Server databases using the node-mssql library.
CData Reckon Accounts Hosted
A read-only MCP server by CData that enables LLMs to query live data from Reckon Accounts Hosted. Requires a separate CData JDBC Driver.
DANDI Query
Perform complex queries on the DANDI Archive, a platform for neurophysiology data.
pg-aiguide
Postgres skills and documentation to help AI coding tools generate better PostgreSQL code.
Google Directory by CData
A read-only MCP server for querying live Google Directory data using the CData JDBC Driver.
KnowledgeGraph MCP Server
Enables persistent knowledge storage for Claude using a knowledge graph with multiple database backends like PostgreSQL and SQLite.
Memento MCP
A scalable knowledge graph memory system for LLMs with semantic retrieval and temporal awareness, using Neo4j as a backend.