Graphiti MCP Server
Un marco para construir y consultar grafos de conocimiento con conciencia temporal para agentes de IA.
Documentación
Servidor MCP de Graphiti
Graphiti es un framework para construir y consultar grafos de conocimiento con conciencia temporal, específicamente diseñado para agentes de IA que operan en entornos dinámicos. A diferencia de los métodos tradicionales de generación aumentada por recuperación (RAG), Graphiti integra continuamente interacciones de usuarios, datos empresariales estructurados y no estructurados, e información externa en un grafo coherente y consultable. El framework soporta actualizaciones incrementales de datos, recuperación eficiente y consultas históricas precisas sin requerir recomputación completa del grafo, lo que lo hace adecuado para desarrollar aplicaciones de IA interactivas y conscientes del contexto.
Esta es una implementación experimental de servidor de Protocolo de Contexto de Modelo (MCP) para Graphiti. El servidor MCP expone la funcionalidad clave de Graphiti a través del protocolo MCP, permitiendo que los asistentes de IA interactúen con las capacidades del grafo de conocimiento de Graphiti.
Características
El servidor MCP de Graphiti expone las siguientes funciones clave de alto nivel de Graphiti:
- Gestión de Episodios: Agregar, recuperar y eliminar episodios (texto, mensajes o datos JSON)
- Gestión de Entidades: Buscar y gestionar nodos de entidades y relaciones en el grafo de conocimiento
- Capacidades de Búsqueda: Buscar hechos (aristas) y resúmenes de nodos usando búsqueda semántica e híbrida
- Gestión de Grupos: Organizar y gestionar grupos de datos relacionados con filtrado por group_id
- Mantenimiento del Grafo: Limpiar el grafo y reconstruir índices
Inicio Rápido para Claude Desktop, Cursor y otros clientes
- Clona el repositorio de GitHub de Graphiti
git clone https://github.com/getzep/graphiti.git
o
gh repo clone getzep/graphiti
Nota la ruta completa a este directorio.
cd graphiti && pwd
-
Instala los prerrequisitos de Graphiti.
-
Configura Claude, Cursor u otro cliente MCP para usar Graphiti con transporte
stdio. Consulta la documentación del cliente sobre dónde encontrar sus archivos de configuración MCP.
Instalación
Prerrequisitos
- Asegúrate de tener Python 3.10 o superior instalado.
- Una base de datos Neo4j en ejecución (se requiere versión 5.26 o posterior)
- Clave API de OpenAI para operaciones de LLM
Configuración
- Clona el repositorio y navega al directorio mcp_server
- Usa
uvpara crear un entorno virtual e instalar dependencias:
# 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
Configuración
El servidor utiliza las siguientes variables de entorno:
NEO4J_URI: URI para la base de datos Neo4j (predeterminado:bolt://localhost:7687)NEO4J_USER: Nombre de usuario de Neo4j (predeterminado:neo4j)NEO4J_PASSWORD: Contraseña de Neo4j (predeterminado:demodemo)OPENAI_API_KEY: Clave API de OpenAI (requerida para operaciones de LLM)OPENAI_BASE_URL: URL base opcional para la API de OpenAIMODEL_NAME: Nombre del modelo de OpenAI a usar para operaciones de LLM.SMALL_MODEL_NAME: Nombre del modelo de OpenAI a usar para operaciones de LLM más pequeñas.LLM_TEMPERATURE: Temperatura para respuestas de LLM (0.0-2.0).AZURE_OPENAI_ENDPOINT: URL de endpoint opcional de Azure OpenAIAZURE_OPENAI_DEPLOYMENT_NAME: Nombre de implementación opcional de Azure OpenAIAZURE_OPENAI_API_VERSION: Versión de API opcional de Azure OpenAIAZURE_OPENAI_EMBEDDING_DEPLOYMENT_NAME: Nombre de implementación de embeddings opcional de Azure OpenAIAZURE_OPENAI_EMBEDDING_API_VERSION: Versión de API opcional de Azure OpenAIAZURE_OPENAI_USE_MANAGED_IDENTITY: Uso opcional de Identidades Gestionadas de Azure para autenticación
Puedes establecer estas variables en un archivo .env en el directorio del proyecto.
Ejecutando el Servidor
Para ejecutar el servidor MCP de Graphiti directamente usando uv:
uv run graphiti_mcp_server.py
Con opciones:
uv run graphiti_mcp_server.py --model gpt-4.1-mini --transport sse
Argumentos disponibles:
--model: Anula la variable de entornoMODEL_NAME.--small-model: Anula la variable de entornoSMALL_MODEL_NAME.--temperature: Anula la variable de entornoLLM_TEMPERATURE.--transport: Elige el método de transporte (sse o stdio, predeterminado: sse)--group-id: Establece un espacio de nombres para el grafo (opcional). Si no se proporciona, el valor predeterminado es "default".--destroy-graph: Si se establece, destruye todos los grafos de Graphiti al inicio.--use-custom-entities: Habilita la extracción de entidades usando los ENTITY_TYPES predefinidos
Implementación con Docker
El servidor MCP de Graphiti se puede implementar usando Docker. El Dockerfile usa uv para la gestión de paquetes, asegurando una instalación consistente de dependencias.
Configuración de Entorno
Antes de ejecutar la configuración de Docker Compose, necesitas configurar las variables de entorno. Tienes dos opciones:
-
Usando un archivo .env (recomendado):
- Copia el archivo
.env.exampleproporcionado para crear un archivo.env:cp .env.example .env - Edita el archivo
.envpara establecer tu clave API de OpenAI y otras opciones de configuración:# 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 - La configuración de Docker Compose está configurada para usar este archivo si existe (es opcional)
- Copia el archivo
-
Usando variables de entorno directamente:
- También puedes establecer las variables de entorno al ejecutar el comando de Docker Compose:
OPENAI_API_KEY=your_key MODEL_NAME=gpt-4.1-mini docker compose up
- También puedes establecer las variables de entorno al ejecutar el comando de Docker Compose:
Configuración de Neo4j
La configuración de Docker Compose incluye un contenedor de Neo4j con la siguiente configuración predeterminada:
- Nombre de usuario:
neo4j - Contraseña:
demodemo - URI:
bolt://neo4j:7687(desde dentro de la red de Docker) - Configuración de memoria optimizada para uso en desarrollo
Ejecutando con Docker Compose
Inicia los servicios usando Docker Compose:
docker compose up
O si estás usando una versión anterior de Docker Compose:
docker-compose up
Esto iniciará tanto la base de datos Neo4j como el servidor MCP de Graphiti. La configuración de Docker:
- Usa
uvpara la gestión de paquetes y la ejecución del servidor - Instala dependencias desde el archivo
pyproject.toml - Se conecta al contenedor de Neo4j usando las variables de entorno
- Expone el servidor en el puerto 8000 para transporte SSE basado en HTTP
- Incluye un healthcheck para Neo4j para asegurar que esté completamente operativo antes de iniciar el servidor MCP
Integración con Clientes MCP
Configuración
Para usar el servidor MCP de Graphiti con un cliente compatible con MCP, configúralo para conectarse al servidor:
[!IMPORTANTE] Necesitarás el gestor de paquetes de Python,
uvinstalado. Consulta las instrucciones de instalación deuv.Asegúrate de establecer la ruta completa al binario de
uvy a tu carpeta del proyecto de 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 (basado en HTTP), puedes usar esta configuración:
{
"mcpServers": {
"graphiti-memory": {
"transport": "sse",
"url": "http://localhost:8000/sse"
}
}
}
Herramientas Disponibles
El servidor MCP de Graphiti expone las siguientes herramientas:
add_episode: Agregar un episodio al grafo de conocimiento (soporta formatos de texto, JSON y mensajes)search_nodes: Buscar en el grafo de conocimiento resúmenes de nodos relevantessearch_facts: Buscar en el grafo de conocimiento hechos relevantes (aristas entre entidades)delete_entity_edge: Eliminar una arista de entidad del grafo de conocimientodelete_episode: Eliminar un episodio del grafo de conocimientoget_entity_edge: Obtener una arista de entidad por su UUIDget_episodes: Obtener los episodios más recientes para un grupo específicoclear_graph: Limpiar todos los datos del grafo de conocimiento y reconstruir índicesget_status: Obtener el estado del servidor MCP de Graphiti y la conexión a Neo4j
Trabajando con Datos JSON
El servidor MCP de Graphiti puede procesar datos JSON estructurados a través de la herramienta add_episode con source="json". Esto permite extraer automáticamente entidades y relaciones de datos estructurados:
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"
)
Integración con el IDE Cursor
Para integrar el Servidor MCP de Graphiti con el IDE Cursor, sigue estos pasos:
- Ejecuta el servidor MCP de Graphiti usando el transporte SSE:
python graphiti_mcp_server.py --transport sse --use-custom-entities --group-id <your_group_id>
Sugerencia: especifica un group_id para asignar un espacio de nombres a los datos del grafo. Si no especificas un group_id, el servidor usará "default" como group_id.
o
docker compose up
- Configura Cursor para conectarse al servidor MCP de Graphiti.
{
"mcpServers": {
"graphiti-memory": {
"url": "http://localhost:8000/sse"
}
}
}
-
Agrega las reglas de Graphiti a las Reglas de Usuario de Cursor. Consulta cursor_rules.md para más detalles.
-
Inicia una sesión de agente en Cursor.
La integración permite que los asistentes de IA en Cursor mantengan memoria persistente a través de las capacidades del grafo de conocimiento de Graphiti.
Integración con Claude Desktop (Servidor MCP Docker)
El contenedor del Servidor MCP de Graphiti usa el transporte MCP SSE. Claude Desktop no soporta SSE de forma nativa, por lo que necesitarás usar una puerta de enlace como mcp-remote.
-
Ejecuta el servidor MCP de Graphiti usando transporte SSE:
docker compose up -
(Opcional) Instala
mcp-remoteglobalmente: Si prefieres tenermcp-remoteinstalado globalmente, o si encuentras problemas connpxal obtener el paquete, puedes instalarlo globalmente. De lo contrario,npx(usado en el siguiente paso) lo manejará por ti.npm install -g mcp-remote -
Configura Claude Desktop: Abre tu archivo de configuración de Claude Desktop (generalmente
claude_desktop_config.json) y agrega o modifica la secciónmcpServersde la siguiente manera:{ "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 ] } } }Si ya tienes una entrada
mcpServers, agregagraphiti-memory(o el nombre que elijas) como una nueva clave dentro de ella. -
Reinicia Claude Desktop para que los cambios surtan efecto.
Requisitos
- Python 3.10 o superior
- Base de datos Neo4j (se requiere versión 5.26 o posterior)
- Clave API de OpenAI (para operaciones de LLM y embeddings)
- Cliente compatible con MCP
Licencia
Este proyecto está licenciado bajo la misma licencia que el proyecto padre de Graphiti.