Apache AGE MCP
We need to translate the given text from English to Brazilian Portuguese. The text describes an MCP server for Apache AGE graph databases. We must preserve product names, protocol names, URLs, numbers, technical terms. Do not add any extra commentary, labels, or formatting. The target language is Português (BR). The name "Apache AGE MCP" is in the source but we are told not to include the name unless it appears in the source text. The source text starts with "MCP server for Apache AGE graph databases on PostgreSQL." So the name "Apache AGE" appears there. We should translate the rest but keep "Apache AGE" and "MCP" as is. Also keep "PostgreSQL", "Cypher", "Graph RAG", "vis.js", "F#/.NET", "dotnet", "BenchmarkDotNet", "NuGet", "MIT", "neftedollar.com/age-mcp". Numbers: 21, 62 ns, 1 ms. Also keep "CRUD", "Cypher queries", "batch
Documentação
age-mcp
Servidor MCP para bancos de dados de grafos Apache AGE. Permite que assistentes de IA (Claude, ChatGPT, Copilot, etc.) consultem e modifiquem dados de grafos via o Model Context Protocol.
Construído com F# no .NET 10 — 1.300 linhas, 21 ferramentas, zero dependências Python.
Início Rápido
# 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"
}
}
}
}
Ferramentas (21)
Gerenciamento de Grafos
| Ferramenta | Descrição |
|---|---|
get_or_create_graph | Obtém ou cria um grafo por nome |
list_graphs | Lista todos os grafos (escopo por tenant) |
drop_graphs | Remove um ou mais grafos |
Vértices e Arestas
| Ferramenta | Descrição |
|---|---|
upsert_vertex | Insere ou atualiza um vértice (merge por ident) |
upsert_edge | Insere ou atualiza uma aresta direcionada |
upsert_graph | Upsert em lote de vértices + arestas (transacional) |
drop_vertex | Remove um vértice e todas as suas arestas |
drop_edge | Remove uma aresta por ident |
Consulta
| Ferramenta | Descrição |
|---|---|
cypher_query | Executa uma consulta Cypher de leitura |
cypher_write | Executa uma consulta Cypher de escrita, retorna contagem afetada |
search_vertices | Busca por label e/ou propriedade |
search_edges | Busca arestas por label |
get_neighbors | Travessia de N saltos (1-5 saltos, direcional) |
get_schema | Todos os labels de nós e contagens |
Exportar / Importar
| Ferramenta | Descrição |
|---|---|
export_graph | Exporta grafo como JSON |
import_graph | Importa de JSON (cria grafo se necessário) |
Visualização e Busca
| Ferramenta | Descrição |
|---|---|
generate_visualization | Grafo HTML interativo com vis.js |
semantic_search | Busca por similaridade vetorial (pgvector) |
graph_context | Graph RAG: sementes semânticas + expansão de N saltos |
Ponte OpenBrain
| Ferramenta | Descrição |
|---|---|
sync_to_openbrain | Exporta vértices como memórias OpenBrain |
import_from_openbrain | Constrói grafo a partir de memórias OpenBrain |
Configuração
| Variável | Obrigatória | Padrão | Descrição |
|---|---|---|---|
AGE_CONNECTION_STRING | sim | banco de teste local | String de conexão Npgsql |
TENANT_ID | não | default | Prefixo de tenant para nomes de grafos |
EMBEDDING_API_URL | não | -- | API de embeddings compatível com OpenAI |
EMBEDDING_API_KEY | não | -- | Chave de API para embeddings |
EMBEDDING_MODEL | não | text-embedding-3-small | Nome do modelo de embeddings |
EMBEDDING_DIMENSIONS | não | 384 | Dimensões do vetor |
Docker
A configuração Docker incluída executa PostgreSQL 17 + Apache AGE 1.6.0 + pgvector:
docker compose up -d
Versões e credenciais são configuráveis via .env (veja .env.example):
PG_MAJOR=17 AGE_VERSION=1.6.0 DB_PORT=5435 docker compose up -d
Compatibilidade de Dados
Projetado como substituto direto do agemcp (Python). Mesmo prefixo de tenant (t_{TENANT_ID}__), mesma propriedade ident de vértice, mesmas propriedades start_ident/end_ident de aresta. Dados existentes funcionam sem migração.
Desempenho
BenchmarkDotNet no Apple M1 Pro, .NET 10.0.5:
| Operação | Latência | Memória Alocada |
|---|---|---|
| list_graphs | 62 ns | 216 B |
| get_schema | 117 ns | 344 B |
| cypher_query (1 vértice) | 1,0 ms | 58 KB |
| search_vertices | 1,0 ms | 36 KB |
| get_neighbors (profundidade=1) | 92 ms | 233 KB |
| export_graph (40 entidades) | 71 ms | 472 KB |
Compilando a partir do Código-Fonte
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
Dependências (FsMcp.Core, FsMcp.Server, Fyper) são restauradas automaticamente do NuGet.
Licença
MIT