agentic_huge_data_base / wiki
页面 Graphiti · 8 MCP 服务端与外部接口·DeepWiki 中文全文译文

8 · MCP 服务端与外部接口(MCP Server and External Interfaces)

时序知识图谱与动态事实记忆 · 聚焦本章的模块关系、源码依据与实现要点。

项目Graphiti 章节8 状态全文译文 模块系统架构、安装与启动、接口与服务契约、界面与交互
源码线索
  • mcp_server/.env.example
  • mcp_server/README.md
  • mcp_server/pyproject.toml
  • mcp_server/uv.lock
  • server/pyproject.toml
  • server/uv.lock
模块标签
  • 系统架构
  • 安装与启动
  • 接口与服务契约
  • 界面与交互
  • 配置治理

章节正文

MCP 服务端与外部接口

MCP 服务器与外部接口

相关源文件

本章引用的主要源码文件:

  • mcp_server/.env.example
  • mcp_server/README.md
  • mcp_server/pyproject.toml
  • mcp_server/uv.lock
  • server/pyproject.toml
  • server/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 类和驱动程序管理数据的区域)连接起来。

系统组件映射
Graphiti · 系统组件映射 · 图 1
Graphiti · 系统组件映射 · 图 1

MCP 服务器架构

此图展示了 MCP 服务器如何将 AI 客户端与 Graphiti 的核心功能连接起来。服务器同时处理 HTTP 和 stdio 两种传输方式,将请求路由到相应的工具处理器。mcp-server 包依赖于 graphiti-core mcp_server/pyproject.toml:10-10 来执行图操作。

来源: mcp_server/README.md:14-29mcp_server/README.md:103-173mcp_server/pyproject.toml:1-14

传输机制

MCP 服务器支持两种用于客户端通信的传输协议:

HTTP 传输(默认)

HTTP 传输是默认模式,提供了与 Cursor 等支持 MCP 的客户端的广泛兼容性。

  • 基础 URLhttp://localhost:8000/mcp/
  • 配置:在 config.yaml 中设置 server.transport: "http"

来源: mcp_server/README.md:106-108mcp_server/README.md:27-27

stdio 传输

stdio 传输使用标准输入/输出,是 Claude Desktop 等客户端所必需的。这适用于客户端将服务器作为子进程启动的本地集成场景。

来源: mcp_server/README.md:44-54mcp_server/README.md:164-164

配置系统

MCP 服务器使用分层配置系统:config.yaml 文件、环境变量或命令行参数。

配置优先级
层级来源描述
1config.yaml服务器、大语言模型(LLM)和数据库的默认设置。
2.env 文件运行时凭据和 API 密钥。
3命令行参数针对特定会话的覆盖设置。

来源: mcp_server/README.md:102-103mcp_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-32mcp_server/README.md:28-28

REST 服务 API

除了 MCP 服务器之外,仓库中还包含一个基于 FastAPI 的 REST 服务,位于 server/ 目录下。该服务为 Graphiti 操作实现了一个高级 API。

REST 接口组件映射
Graphiti · REST 接口组件映射 · 图 2
Graphiti · REST 接口组件映射 · 图 2

REST 服务架构

REST 服务使用 FastAPI server/pyproject.toml:11-11uvicorn server/pyproject.toml:14-14 来处理请求。它利用 pydantic-settings server/pyproject.toml:13-13 进行配置管理,并使用 graphiti-core server/pyproject.toml:12-12 处理底层的图逻辑。

来源: server/pyproject.toml:1-16server/README.md:1-8

部署选项

Graphiti 通过 Docker Compose 支持多种部署场景:

  1. FalkorDB 组合(默认):在单个容器中同时启动 FalkorDB 和 MCP 服务器。推荐用于快速启动。 mcp_server/README.md:62-68
  2. Neo4j 分离:使用 docker-compose-neo4j.yml 在专用容器中运行 Neo4j。推荐用于生产环境。 mcp_server/README.md:70-73
  3. 独立运行:使用 uv 直接运行 MCP 服务器,连接外部数据库实例。 mcp_server/README.md:83-99

有关详细的设置说明,请参见 Docker 与容器部署

来源: mcp_server/README.md:62-99mcp_server/README.md:113-157

子页面