Graphiti MCP Server
Um framework para construir e consultar grafos de conhecimento com noção temporal para agentes de IA.
Documentação
Graphiti MCP Server
Graphiti é um framework para construir e consultar grafos de conhecimento com consciência temporal, especificamente adaptado para agentes de IA que operam em ambientes dinâmicos. Diferentemente dos métodos tradicionais de geração aumentada por recuperação (RAG), o Graphiti integra continuamente interações de usuários, dados empresariais estruturados e não estruturados e informações externas em um grafo coerente e consultável. O framework suporta atualizações incrementais de dados, recuperação eficiente e consultas históricas precisas sem exigir recomputação completa do grafo, tornando-o adequado para o desenvolvimento de aplicações de IA interativas e sensíveis ao contexto.
Esta é uma implementação experimental de servidor Model Context Protocol (MCP) para o Graphiti. O servidor MCP expõe as principais funcionalidades do Graphiti por meio do protocolo MCP, permitindo que assistentes de IA interajam com os recursos de grafo de conhecimento do Graphiti.
Recursos
O servidor MCP do Graphiti expõe as seguintes funções principais de alto nível do Graphiti:
- Gerenciamento de Episódios: Adicionar, recuperar e excluir episódios (texto, mensagens ou dados JSON)
- Gerenciamento de Entidades: Pesquisar e gerenciar nós de entidades e relacionamentos no grafo de conhecimento
- Recursos de Busca: Buscar fatos (arestas) e resumos de nós usando busca semântica e híbrida
- Gerenciamento de Grupos: Organizar e gerenciar grupos de dados relacionados com filtragem por group_id
- Manutenção do Grafo: Limpar o grafo e reconstruir índices
Início Rápido para Claude Desktop, Cursor e outros clientes
- Clone o repositório do Graphiti no GitHub
git clone https://github.com/getzep/graphiti.git
ou
gh repo clone getzep/graphiti
Anote o caminho completo para este diretório.
cd graphiti && pwd
-
Instale os pré-requisitos do Graphiti.
-
Configure o Claude, o Cursor ou outro cliente MCP para usar Graphiti com transporte
stdio. Consulte a documentação do cliente para saber onde encontrar os arquivos de configuração MCP.
Instalação
Pré-requisitos
- Certifique-se de ter o Python 3.10 ou superior instalado.
- Um banco de dados Neo4j em execução (versão 5.26 ou posterior é necessária)
- Chave de API da OpenAI para operações de LLM
Configuração
- Clone o repositório e navegue até o diretório mcp_server
- Use o
uvpara criar um ambiente virtual e instalar as dependências:
# Install uv if you don't have it already
curl -LsSf https://astral.sh/uv/install.sh | sh
# Create a virtual environment and install dependencies in one step
uv sync
Configuração
O servidor usa as seguintes variáveis de ambiente:
NEO4J_URI: URI do banco de dados Neo4j (padrão:bolt://localhost:7687)NEO4J_USER: nome de usuário do Neo4j (padrão:neo4j)NEO4J_PASSWORD: senha do Neo4j (padrão:demodemo)OPENAI_API_KEY: chave de API da OpenAI (necessária para operações de LLM)OPENAI_BASE_URL: URL base opcional para a API da OpenAIMODEL_NAME: nome do modelo OpenAI a ser usado para operações de LLM.SMALL_MODEL_NAME: nome do modelo OpenAI a ser usado para operações de LLM menores.LLM_TEMPERATURE: temperatura para respostas de LLM (0.0-2.0).AZURE_OPENAI_ENDPOINT: URL de endpoint opcional do Azure OpenAIAZURE_OPENAI_DEPLOYMENT_NAME: nome de implantação opcional do Azure OpenAIAZURE_OPENAI_API_VERSION: versão opcional da API do Azure OpenAIAZURE_OPENAI_EMBEDDING_DEPLOYMENT_NAME: nome de implantação opcional de embeddings do Azure OpenAIAZURE_OPENAI_EMBEDDING_API_VERSION: versão opcional da API do Azure OpenAIAZURE_OPENAI_USE_MANAGED_IDENTITY: uso opcional de Identidades Gerenciadas do Azure para autenticação
Você pode definir essas variáveis em um arquivo .env no diretório do projeto.
Executando o Servidor
Para executar o servidor MCP do Graphiti diretamente usando uv:
uv run graphiti_mcp_server.py
Com opções:
uv run graphiti_mcp_server.py --model gpt-4.1-mini --transport sse
Argumentos disponíveis:
--model: substitui a variável de ambienteMODEL_NAME.--small-model: substitui a variável de ambienteSMALL_MODEL_NAME.--temperature: substitui a variável de ambienteLLM_TEMPERATURE.--transport: escolha o método de transporte (sse ou stdio, padrão: sse)--group-id: define um namespace para o grafo (opcional). Se não for fornecido, o padrão é "default".--destroy-graph: se definido, destrói todos os grafos do Graphiti na inicialização.--use-custom-entities: ativa a extração de entidades usando os ENTITY_TYPES predefinidos
Implantação com Docker
O servidor MCP do Graphiti pode ser implantado usando Docker. O Dockerfile usa uv para gerenciamento de pacotes, garantindo instalação consistente de dependências.
Configuração de Ambiente
Antes de executar a configuração do Docker Compose, você precisa configurar as variáveis de ambiente. Você tem duas opções:
-
Usando um arquivo .env (recomendado):
- Copie o arquivo
.env.examplefornecido para criar um arquivo.env:cp .env.example .env - Edite o arquivo
.envpara definir sua chave de API da OpenAI e outras opções de configuração:# Required for LLM operations OPENAI_API_KEY=your_openai_api_key_here MODEL_NAME=gpt-4.1-mini # Optional: OPENAI_BASE_URL only needed for non-standard OpenAI endpoints # OPENAI_BASE_URL=https://api.openai.com/v1 - A configuração do Docker Compose está configurada para usar este arquivo se ele existir (é opcional)
- Copie o arquivo
-
Usando variáveis de ambiente diretamente:
- Você também pode definir as variáveis de ambiente ao executar o comando do Docker Compose:
OPENAI_API_KEY=your_key MODEL_NAME=gpt-4.1-mini docker compose up
- Você também pode definir as variáveis de ambiente ao executar o comando do Docker Compose:
Configuração do Neo4j
A configuração do Docker Compose inclui um contêiner Neo4j com a seguinte configuração padrão:
- Nome de usuário:
neo4j - Senha:
demodemo - URI:
bolt://neo4j:7687(de dentro da rede Docker) - Configurações de memória otimizadas para uso em desenvolvimento
Executando com Docker Compose
Inicie os serviços usando o Docker Compose:
docker compose up
Ou, se você estiver usando uma versão mais antiga do Docker Compose:
docker-compose up
Isso iniciará tanto o banco de dados Neo4j quanto o servidor MCP do Graphiti. A configuração do Docker:
- Usa
uvpara gerenciamento de pacotes e execução do servidor - Instala dependências do arquivo
pyproject.toml - Conecta-se ao contêiner Neo4j usando as variáveis de ambiente
- Expõe o servidor na porta 8000 para transporte SSE baseado em HTTP
- Inclui um healthcheck para o Neo4j para garantir que ele esteja totalmente operacional antes de iniciar o servidor MCP
Integração com Clientes MCP
Configuração
Para usar o servidor MCP do Graphiti com um cliente compatível com MCP, configure-o para conectar-se ao servidor:
[!IMPORTANT] Você precisará do gerenciador de pacotes Python,
uv, instalado. Consulte as instruções de instalação douv.Certifique-se de definir o caminho completo para o binário
uve sua pasta de projeto do Graphiti.
{
"mcpServers": {
"graphiti-memory": {
"transport": "stdio",
"command": "/Users/<user>/.local/bin/uv",
"args": [
"run",
"--isolated",
"--directory",
"/Users/<user>>/dev/zep/graphiti/mcp_server",
"--project",
".",
"graphiti_mcp_server.py",
"--transport",
"stdio"
],
"env": {
"NEO4J_URI": "bolt://localhost:7687",
"NEO4J_USER": "neo4j",
"NEO4J_PASSWORD": "password",
"OPENAI_API_KEY": "sk-XXXXXXXX",
"MODEL_NAME": "gpt-4.1-mini"
}
}
}
}
Para transporte SSE (baseado em HTTP), você pode usar esta configuração:
{
"mcpServers": {
"graphiti-memory": {
"transport": "sse",
"url": "http://localhost:8000/sse"
}
}
}
Ferramentas Disponíveis
O servidor MCP do Graphiti expõe as seguintes ferramentas:
add_episode: adiciona um episódio ao grafo de conhecimento (suporta formatos de texto, JSON e mensagem)search_nodes: busca no grafo de conhecimento resumos de nós relevantessearch_facts: busca no grafo de conhecimento fatos relevantes (arestas entre entidades)delete_entity_edge: exclui uma aresta de entidade do grafo de conhecimentodelete_episode: exclui um episódio do grafo de conhecimentoget_entity_edge: obtém uma aresta de entidade pelo seu UUIDget_episodes: obtém os episódios mais recentes de um grupo específicoclear_graph: limpa todos os dados do grafo de conhecimento e reconstrói índicesget_status: obtém o status do servidor MCP do Graphiti e da conexão com o Neo4j
Trabalhando com Dados JSON
O servidor MCP do Graphiti pode processar dados JSON estruturados por meio da ferramenta add_episode com source="json". Isso permite extrair automaticamente entidades e relacionamentos de dados estruturados:
add_episode(
name="Customer Profile",
episode_body="{\"company\": {\"name\": \"Acme Technologies\"}, \"products\": [{\"id\": \"P001\", \"name\": \"CloudSync\"}, {\"id\": \"P002\", \"name\": \"DataMiner\"}]}",
source="json",
source_description="CRM data"
)
Integração com o Cursor IDE
Para integrar o Graphiti MCP Server com o Cursor IDE, siga estas etapas:
- Execute o servidor MCP do Graphiti usando o transporte SSE:
python graphiti_mcp_server.py --transport sse --use-custom-entities --group-id <your_group_id>
Dica: especifique um group_id para definir o namespace dos dados do grafo. Se você não especificar um group_id, o servidor usará "default" como group_id.
ou
docker compose up
- Configure o Cursor para conectar-se ao servidor MCP do Graphiti.
{
"mcpServers": {
"graphiti-memory": {
"url": "http://localhost:8000/sse"
}
}
}
-
Adicione as regras do Graphiti às Regras do Usuário do Cursor. Consulte cursor_rules.md para obter detalhes.
-
Inicie uma sessão de agente no Cursor.
A integração permite que assistentes de IA no Cursor mantenham memória persistente por meio dos recursos de grafo de conhecimento do Graphiti.
Integração com Claude Desktop (Docker MCP Server)
O contêiner do Graphiti MCP Server usa o transporte SSE MCP. O Claude Desktop não suporta SSE nativamente, então você precisará usar um gateway como o mcp-remote.
-
Execute o servidor MCP do Graphiti usando transporte SSE:
docker compose up -
(Opcional) Instale o
mcp-remoteglobalmente: Se você preferir ter omcp-remoteinstalado globalmente, ou se encontrar problemas com onpxao buscar o pacote, você pode instalá-lo globalmente. Caso contrário, onpx(usado na próxima etapa) cuidará disso para você.npm install -g mcp-remote -
Configure o Claude Desktop: Abra seu arquivo de configuração do Claude Desktop (geralmente
claude_desktop_config.json) e adicione ou modifique a seçãomcpServersda seguinte forma:{ "mcpServers": { "graphiti-memory": { // You can choose a different name if you prefer "command": "npx", // Or the full path to mcp-remote if npx is not in your PATH "args": [ "mcp-remote", "http://localhost:8000/sse" // Ensure this matches your Graphiti server's SSE endpoint ] } } }Se você já tiver uma entrada
mcpServers, adicionegraphiti-memory(ou o nome de sua escolha) como uma nova chave dentro dela. -
Reinicie o Claude Desktop para que as alterações tenham efeito.
Requisitos
- Python 3.10 ou superior
- Banco de dados Neo4j (versão 5.26 ou posterior é necessária)
- Chave de API da OpenAI (para operações de LLM e embeddings)
- Cliente compatível com MCP
Licença
Este projeto é licenciado sob a mesma licença do projeto Graphiti original.