Graphiti Cloud通过Cloudflare Workers
](https://github.com/adam-paterson/cloudflare-grafitti-mcp-server/actions/workflows/ci.yml) 

Cloudflare容器工作器,作为Graphiti MCP(模型上下文协议)服务器的代理,通过Neo4j支持的知识图提供对AI代理内存功能的可扩展、无服务器访问。
概述
Graphiti Cloud通过利用Cloudflare的新容器服务来托管和代理对Graphiti MCP服务器的请求,弥合了AI应用程序和持久内存之间的差距。这使得AI代理能够使用强大的知识图后端在交互中维护上下文和内存。
特性
- 无服务器架构:基于Cloudflare Workers构建,支持容器
- AI内存服务:通过知识图为AI代理提供持久内存
- Neo4j集成:用于复杂关系存储的强大图形数据库
- 自动缩放:最多5个具有智能睡眠管理的容器实例
- 全球边缘网络:部署在Cloudflare的全球基础设施中
- 安全:敏感凭据的基于环境的配置
建筑
---
config:
theme: neutral
look: handDrawn
layout: dagre
---
flowchart TB
subgraph subGraph0["MCP-Enabled Clients"]
Cursor["Cursor IDE"]
Claude["Claude Desktop"]
MCPClient["Other MCP Clients"]
end
subgraph subGraph1["Cloudflare Edge"]
Worker["Graphiti Cloud Worker"]
Container["Graphiti MCP Container"]
CF["Cloudflare Infrastructure"]
end
subgraph subGraph2["External Services"]
Neo4j[("Neo4j Knowledge Graph")]
OpenAI["OpenAI API"]
end
Cursor --> Worker
Claude --> Worker
MCPClient --> Worker
Worker --> Container
Container --> Neo4j & OpenAI
Worker -.-> CF
Container -.-> CF
Cursor:::Aqua
Cursor:::Ash
Claude:::Pine
Claude:::Peach
Claude:::Ash
MCPClient:::Rose
MCPClient:::Ash
Worker:::Sky
Container:::Sky
CF:::Peach
Neo4j:::Sky
OpenAI:::Aqua
classDef Pine stroke-width:1px, stroke-dasharray:none, stroke:#254336, fill:#27654A, color:#FFFFFF
classDef Ash stroke-width:1px, stroke-dasharray:none, stroke:#999999, fill:#EEEEEE, color:#000000
classDef Rose stroke-width:1px, stroke-dasharray:none, stroke:#FF5978, fill:#FFDFE5, color:#8E2236
classDef Peach stroke-width:1px, stroke-dasharray:none, stroke:#FBB35A, fill:#FFEFDB, color:#8F632D
classDef Sky stroke-width:1px, stroke-dasharray:none, stroke:#374D7C, fill:#E2EBFF, color:#374D7C
classDef Aqua stroke-width:1px, stroke-dasharray:none, stroke:#46EDC8, fill:#DEFFF8, color:#378E7A快速开始
先决条件
- (v18或更高版本)
- 包管理器
- 牧马人CLI
- Neo4j数据库实例
- OpenAI API密钥
Neo4j设置
您需要一个Neo4j数据库来存储知识图。以下是您的选择:
- Neo4j AuraDB(推荐) -完全托管的云服务
- 注册地址: Neo4j AuraDB - 创建一个免费实例(最多20万个节点和40万个关系) - 获取您的连接URI、用户名和密码
- 自托管Neo4j
- 下载Neo4j社区版 - 跟随 安装指南
- Neo4j桌面
- 下载Neo4j桌面版 - 创建本地数据库以供开发
了解更多关于Neo4j的信息:Neo4j是一个将数据存储为节点和关系的图形数据库,非常适合知识图。看看 Neo4j图形数据库概念 导游。
安装
- 克隆存储库:
git clone https://github.com/adam-paterson/graphiti-cloud.git
cd graphiti-cloud- 安装依赖项:
pnpm install- 为了发展:在中配置环境变量
.dev.vars:
NEO4J_URI=neo4j://your-neo4j-instance:7687
NEO4J_USER=your-username
NEO4J_PASSWORD=your-password
OPENAI_API_KEY=your-openai-api-key
BEARER_TOKEN=your-secure-bearer-token- 用于生产:向Cloudflare Worker添加机密:
# Add each secret using wrangler
wrangler secret put NEO4J_URI
wrangler secret put NEO4J_USER
wrangler secret put NEO4J_PASSWORD
wrangler secret put OPENAI_API_KEY
wrangler secret put BEARER_TOKEN了解更多:参见 Cloudflare员工机密文档 有关管理机密的详细说明。
发展
启动开发服务器:
pnpm dev工人将在 http://localhost:8787
使用MCP检查器进行调试
为了调试MCP协议通信,您可以使用官方的MCP检查器:
# Install the MCP Inspector globally
npm install -g @modelcontextprotocol/inspector
# Start the inspector pointing to your local worker
mcp-inspector http://localhost:8787这将打开一个web界面,您可以在其中:
- 发送MCP协议请求
- 查看请求/响应有效载荷
- 调试客户端和Graphiti MCP服务器之间的通信
了解更多:查看 MCP检查员文件 用于高级调试技术。
部署
部署到Cloudflare:
wrangler deploy配置
容器设置
这 GraphitiMCPContainer 类使用以下配置扩展Cloudflare的容器:
- 默认端口: 8000
- 睡眠超时:1小时不活动
- 互联网接入:为外部API调用启用
- 最大实例数:5个集装箱
- 图像:
knowledge-graph-mcp:0.4.0
环境变量
| 变量 | 描述 | 必填 | 示例 |
|---|---|---|---|
NEO4J_URI | Neo4j数据库连接字符串 | neo4j://localhost:7687 或 neo4j+s://xxx.databases.neo4j.io | |
NEO4J_USER | Neo4j用户名 | neo4j | |
NEO4J_PASSWORD | Neo4j密码 | your-secure-password | |
OPENAI_API_KEY | 人工智能功能的OpenAI API密钥 | sk-... | |
BEARER_TOKEN | 用于身份验证的承载令牌 | your-secure-bearer-token |
用法
基本代理请求
所有请求都被代理到Graphiti MCP容器:
// Example client request
const response = await fetch('https://your-worker.your-subdomain.workers.dev/', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify({
// MCP protocol request
})
})与AI应用程序集成
Graphiti Cloud旨在与支持MCP协议的AI应用程序配合使用:
import { MCPClient } from '@modelcontextprotocol/client'
const client = new MCPClient({
serverUrl: 'https://your-worker.your-subdomain.workers.dev/'
})
// Use the client to interact with the knowledge graph
await client.addMemory({
content: 'User prefers dark mode',
context: 'user-preferences'
})发展
项目结构
graphiti-cloud/
├── src/
│ └── index.ts # Main worker and container logic
├── test/
│ ├── index.spec.ts # Test specifications
│ └── env.d.ts # Environment type definitions
├── wrangler.jsonc # Cloudflare Worker configuration
├── package.json # Project dependencies
└── README.md # This file脚本
pnpm dev-启动开发服务器pnpm lint-运行ESLintpnpm types-生成牧马人类型
测试
目前,Cloudflare的测试套件并不完全支持容器。建议使用部署的worker进行集成测试。
贡献
- 分叉存储库
- 创建要素分支:
git checkout -b feature/amazing-feature - 提交您的更改:
git commit -m 'Add amazing feature' - 推到分支:
git push origin feature/amazing-feature - 打开拉取请求
相关项目
- 图形 -知识图谱的底层MCP服务器
- 模型上下文协议 -协议规范
- Cloudflare容器 -Cloudflare的容器服务
- Neo4j -为知识存储提供动力的图形数据库
许可证
支持
- 电子邮件:\[hello@adampaterson.co.uk\]
- 问题:
- 讨论:
______________________________________________________________________
Built with using Cloudflare Workers and the power of knowledge graphs
