知识图谱服务器

Graphiti MCP Server是一个用于构建和查询时间感知知识图谱的框架,专为动态环境中的AI代理设计,支持增量数据更新、高效检索和精确历史查询。

  • by chen9z
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 chen9z/graphiti_mcp_server

使用说明

Graphiti MCP服务器

Graphiti是一个用于构建和查询时间感知知识图的框架,专为AI代理量身定制 在动态环境中运行。与传统的检索增强生成(RAG)方法不同,Graphiti 持续地将用户交互、结构化和非结构化企业数据以及外部信息集成到 连贯、可查询的图。该框架支持增量数据更新、高效检索和精确的历史记录 无需完全重新计算图的查询,使其适用于开发交互式、上下文感知的人工智能 应用。

这是Graphiti的实验性模型上下文协议(MCP)服务器实现。MCP服务器公开 Graphiti通过MCP协议实现的关键功能,允许AI助手与Graphiti的知识进行交互 图形功能。

特性

Graphiti MCP服务器公开了Graphiti的以下关键高级功能:

  • 事件管理:添加、检索和删除剧集(文本、消息或JSON数据)
  • 实体管理:搜索和管理知识图中的实体节点和关系
  • 搜索功能:使用语义和混合搜索搜索事实(边)和节点摘要
  • 组管理:使用group_id过滤组织和管理相关数据组
  • 图形维护:清除图形并重建索引

Claude Desktop、Cursor和其他客户端的快速入门

  1. 克隆Graphiti GitHub仓库
git clone https://github.com/getzep/graphiti.git

或

gh repo clone getzep/graphiti

记下此目录的完整路径。

cd graphiti && pwd
  1. 安装 Graphiti先决条件.

  2. 配置Claude、Cursor或其他MCP客户端以使用 带a的图形 stdio 运输。请参阅客户文档,了解在哪里可以找到他们的MCP配置文件。

安装

先决条件

  1. 请确保您已安装Python 3.10或更高版本。
  2. 正在运行的Neo4j数据库(需要5.26或更高版本)
  3. 用于LLM操作的OpenAI API密钥

设置

  1. 克隆存储库并导航到mcp_server目录
  2. 使用 uv 创建虚拟环境并安装依赖项:
# 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

配置

服务器使用以下环境变量:

  • NEO4J_URI:Neo4j数据库的URI(默认值: bolt://localhost:7687)
  • NEO4J_USER:Neo4j用户名(默认值: neo4j)
  • NEO4J_PASSWORD:Neo4j密码(默认值: demodemo)
  • OPENAI_API_KEY:OpenAI API密钥(LLM操作所需)
  • OPENAI_BASE_URL:OpenAI API的可选基本URL
  • MODEL_NAME:用于LLM操作的OpenAI模型名称。
  • SMALL_MODEL_NAME:用于较小LLM操作的OpenAI模型名称。
  • LLM_TEMPERATURE:LLM响应的温度(0.0-2.0)。
  • AZURE_OPENAI_ENDPOINT:可选的Azure OpenAI端点URL
  • AZURE_OPENAI_DEPLOYMENT_NAME:可选的Azure OpenAI部署名称
  • AZURE_OPENAI_API_VERSION:可选Azure OpenAI API版本
  • AZURE_OPENAI_EMBEDDING_DEPLOYMENT_NAME:可选的Azure OpenAI嵌入部署名称
  • AZURE_OPENAI_EMBEDDING_API_VERSION:可选Azure OpenAI API版本
  • AZURE_OPENAI_USE_MANAGED_IDENTITY:可选使用Azure托管身份进行身份验证

您可以在 .env 项目目录中的文件。

运行服务器

直接使用以下命令运行Graphiti MCP服务器 uv:

uv run graphiti_mcp_server.py

有选项:

uv run graphiti_mcp_server.py --model gpt-4.1-mini --transport sse

可用参数:

  • --model:覆盖 MODEL_NAME 环境变量。
  • --small-model:覆盖 SMALL_MODEL_NAME 环境变量。
  • --temperature:覆盖 LLM_TEMPERATURE 环境变量。
  • --transport:选择传输方式(sse或stdio,默认:sse)
  • --group-id:为图形设置命名空间(可选)。如果未提供,则默认为“默认”。
  • --destroy-graph:如果设置,则在启动时销毁所有Graphiti图形。
  • --use-custom-entities:使用预定义的entity_TYPES启用实体提取

Docker部署

Graphiti MCP服务器可以使用Docker进行部署。Dockerfile使用 uv 对于包管理,确保 一致的依赖安装。

环境配置

在运行Docker Compose安装程序之前,您需要配置环境变量。您有两个选择:

  1. 使用.env文件 (推荐):

    • 复制提供的 .env.example 创建文件 .env 文件:
      cp .env.example .env
      
    • 编辑 .env 文件来设置您的OpenAI API密钥和其他配置选项:
      # 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
      
    • Docker Compose安装程序配置为使用此文件(如果存在)(可选)
  2. 直接使用环境变量:

    • 您还可以在运行Docker Compose命令时设置环境变量:
      OPENAI_API_KEY=your_key MODEL_NAME=gpt-4.1-mini docker compose up
      

Neo4j配置

Docker Compose设置包括一个Neo4j容器,其默认配置如下:

  • 用户名: neo4j
  • 密码: demodemo
  • URI: bolt://neo4j:7687 (来自Docker网络)
  • 针对开发用途优化的内存设置

使用Docker Compose运行

使用Docker Compose启动服务:

docker compose up

或者,如果您使用的是较旧版本的Docker Compose:

docker-compose up

这将启动Neo4j数据库和Graphiti MCP服务器。Docker设置:

  • 用途 uv 用于包管理和运行服务器
  • 从安装依赖项 pyproject.toml 文件
  • 使用环境变量连接到Neo4j容器
  • 暴露端口8000上的服务器,用于基于HTTP的SSE传输
  • 在启动MCP服务器之前,包括对Neo4j的健康检查,以确保其完全正常运行

与MCP客户端集成

配置

要将Graphiti MCP服务器与MCP兼容客户端一起使用,请将其配置为连接到服务器:

[!重要] 你需要Python包管理器, uv 安装。请参阅 uv 安装说明.

确保已将完整路径设置为 uv 二进制文件和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"
      }
    }
  }
}

对于SSE传输(基于HTTP),您可以使用以下配置:

{
  "mcpServers": {
    "graphiti-memory": {
      "transport": "sse",
      "url": "http://localhost:8000/sse"
    }
  }
}

可用工具

Graphiti MCP服务器公开了以下工具:

  • add_episode:在知识图中添加一集(支持文本、JSON和消息格式)
  • search_nodes:在知识图中搜索相关节点摘要
  • search_facts:在知识图中搜索相关事实(实体之间的边)
  • delete_entity_edge:从知识图中删除实体边
  • delete_episode:从知识图中删除一集
  • get_entity_edge:通过UUID获取实体边
  • get_episodes:获取特定组的最新剧集
  • clear_graph:清除知识图中的所有数据并重建索引
  • get_status:获取Graphiti MCP服务器和Neo4j连接的状态

使用JSON数据

Graphiti MCP服务器可以通过 add_episode 工具与 source="json".这个 允许您从结构化数据中自动提取实体和关系:


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"
)

与Cursor IDE集成

要将Graphiti MCP服务器与Cursor IDE集成,请执行以下步骤:

  1. 使用SSE传输运行Graphiti MCP服务器:
python graphiti_mcp_server.py --transport sse --use-custom-entities --group-id <your_group_id>

提示:指定 group_id 到名称空间图数据。如果不指定 group_id,服务器将使用“默认”作为group_id。

或

docker compose up
  1. 配置Cursor以连接到Graphiti MCP服务器。
{
  "mcpServers": {
    "graphiti-memory": {
      "url": "http://localhost:8000/sse"
    }
  }
}
  1. 将Graphici规则添加到Cursor的用户规则中。看 cursor_rules.md 了解详情。

  2. 在Cursor中启动代理会话。

该集成使Cursor中的AI助手能够通过Graphiti的知识图来维护持久内存 能力。

与Claude Desktop(Docker MCP服务器)集成

Graphiti MCP服务器容器使用SSE MCP传输。Claude Desktop本身不支持SSE,因此您需要使用类似的网关 mcp-remote.

  1. 使用SSE传输运行Graphiti MCP服务器:

    docker compose up
    
  2. (可选)安装 mcp-remote 全球范围内: 如果你喜欢 mcp-remote 全局安装,或者如果您遇到以下问题 npx 获取包后,您可以全局安装它。否则, npx (在下一步中使用)将为您处理。

    npm install -g mcp-remote
    
  3. 配置Claude桌面: 打开Claude Desktop配置文件(通常 claude_desktop_config.json)并添加或修改 mcpServers 章节如下:

    {
      "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
          ]
        }
      }
    }
    

    如果你已经有了 mcpServers 条目,添加 graphiti-memory (或您选择的名称)作为其中的新密钥。

  4. 重新启动克劳德桌面 以使更改生效。

需求

  • Python 3.10或更高版本
  • Neo4j数据库(需要5.26或更高版本)
  • OpenAI API密钥(用于LLM操作和嵌入)
  • MCP兼容客户端

许可证

此项目的许可证与父Graphiti项目相同。