MCP 服务端与外部接口
MCP 服务器与外部接口
相关源文件
本章引用的主要源码文件:
mcp_server/.env.examplemcp_server/README.mdmcp_server/pyproject.tomlmcp_server/uv.lockserver/pyproject.tomlserver/uv.lock
目的与范围
本文档说明了外部系统如何通过模型上下文协议(MCP)服务器及其他外部接口与 Graphiti 进行交互。MCP 服务器为 AI 助手和 IDE 集成提供了标准化接口,使其能够利用 Graphiti 的时序知识图谱能力。
关于 Graphiti 核心客户端 API 及直接 Python 集成的信息,请参见 Graphiti 核心客户端。关于 REST API 服务的详细信息,请参见 REST 服务 API。
来源: mcp_server/README.md:1-14
模型上下文协议(MCP)概述
模型上下文协议是一种将上下文数据源暴露给 AI 助手的标准。Graphiti 的 MCP 服务器实现了该协议,使 AI 代理能够:
- 通过图存储维护跨会话的持久记忆。
- 从用户交互中提取实体和关系。
- 使用语义搜索和混合搜索查询知识。
- 管理具有时间感知能力的事件数据。
MCP 服务器充当 AI 客户端(Cursor、Claude Desktop、VS Code)与 Graphiti 核心框架之间的桥梁,将图操作以标准化的 MCP 工具形式暴露出来。
来源: mcp_server/README.md:1-28
MCP 服务器架构
MCP 服务器架构将"自然语言空间"(AI 代理运行的环境)与"代码实体空间"(Graphiti 类和驱动程序管理数据的区域)连接起来。
系统组件映射
MCP 服务器架构
此图展示了 MCP 服务器如何将 AI 客户端与 Graphiti 的核心功能连接起来。服务器同时处理 HTTP 和 stdio 两种传输方式,将请求路由到相应的工具处理器。mcp-server 包依赖于 graphiti-core mcp_server/pyproject.toml:10-10 来执行图操作。
来源: mcp_server/README.md:14-29、mcp_server/README.md:103-173、mcp_server/pyproject.toml:1-14
传输机制
MCP 服务器支持两种用于客户端通信的传输协议:
HTTP 传输(默认)
HTTP 传输是默认模式,提供了与 Cursor 等支持 MCP 的客户端的广泛兼容性。
- 基础 URL:
http://localhost:8000/mcp/ - 配置:在
config.yaml中设置server.transport: "http"。
来源: mcp_server/README.md:106-108、mcp_server/README.md:27-27
stdio 传输
stdio 传输使用标准输入/输出,是 Claude Desktop 等客户端所必需的。这适用于客户端将服务器作为子进程启动的本地集成场景。
来源: mcp_server/README.md:44-54、mcp_server/README.md:164-164
配置系统
MCP 服务器使用分层配置系统:config.yaml 文件、环境变量或命令行参数。
配置优先级
| 层级 | 来源 | 描述 |
|---|---|---|
| 1 | config.yaml | 服务器、大语言模型(LLM)和数据库的默认设置。 |
| 2 | .env 文件 | 运行时凭据和 API 密钥。 |
| 3 | 命令行参数 | 针对特定会话的覆盖设置。 |
来源: mcp_server/README.md:102-103、mcp_server/.env.example:1-50
并发控制
.env 文件中的 SEMAPHORE_LIMIT 变量控制可同时处理的事件数量 mcp_server/.env.example:32-32。这对于管理大语言模型(LLM)提供商的速率限制至关重要,尤其是对于 OpenAI Tier 1 或 Anthropic 默认限制等较低层级的提供商 mcp_server/.env.example:20-31。
来源: mcp_server/.env.example:20-32、mcp_server/README.md:28-28
REST 服务 API
除了 MCP 服务器之外,仓库中还包含一个基于 FastAPI 的 REST 服务,位于 server/ 目录下。该服务为 Graphiti 操作实现了一个高级 API。
REST 接口组件映射
REST 服务架构
REST 服务使用 FastAPI server/pyproject.toml:11-11 和 uvicorn server/pyproject.toml:14-14 来处理请求。它利用 pydantic-settings server/pyproject.toml:13-13 进行配置管理,并使用 graphiti-core server/pyproject.toml:12-12 处理底层的图逻辑。
来源: server/pyproject.toml:1-16、server/README.md:1-8
部署选项
Graphiti 通过 Docker Compose 支持多种部署场景:
- FalkorDB 组合(默认):在单个容器中同时启动 FalkorDB 和 MCP 服务器。推荐用于快速启动。
mcp_server/README.md:62-68 - Neo4j 分离:使用
docker-compose-neo4j.yml在专用容器中运行 Neo4j。推荐用于生产环境。mcp_server/README.md:70-73 - 独立运行:使用
uv直接运行 MCP 服务器,连接外部数据库实例。mcp_server/README.md:83-99
有关详细的设置说明,请参见 Docker 与容器部署。
来源: mcp_server/README.md:62-99、mcp_server/README.md:113-157
子页面
- 面向 AI 代理的 MCP 服务器 — 关于工具 API、顺序处理队列和 IDE 集成的详细信息。
- Docker 与容器部署 — 深入介绍 Compose 文件和多容器编排。
- REST 服务 API — FastAPI 路由器、Pydantic 数据传输对象和
ZepGraphiti扩展的文档。