Mem.ai MCP 服务器 - Cloudflare Worker
一个可投入生产的Cloudflare Worker,为AI助手提供智能访问能力 Mem.ai(注:这可能是某个特定公司或产品的名称,直接翻译为“记忆.ai”可能并不准确,具体含义需根据上下文或品牌背景来确定。)通过模型上下文协议(MCP)访问其知识管理平台。
  
✨ 特点/功能
- 🧠 代表“大脑”或“思考”的意思,可以翻译为“大脑”或“思维”。 智能记忆使用Mem的AI智能组织功能保存和处理内容
- 📝(一个待办事项或笔记的符号,可理解为“待办事项”或“笔记”) 笔记管理创建、读取和删除结构化Markdown笔记
- 📁 文件夹 集合将笔记整理成可搜索的集合
- 🔒(锁形符号,常用于表示安全、保密或锁定状态) OAuth 保护GitHub OAuth 认证(可选)
- ⚡(闪电符号,常用于表示速度、能量或惊喜等) 边缘部署通过Cloudflare的全球网络实现低延迟访问
- 免费 免费版在Cloudflare的慷慨免费套餐上运行
- 🎯(目标、瞄准) 6个MCP工具完成Mem.ai API的全面覆盖
📋 前提条件
- Cloudflare账户 (免费套餐可用!)
- Mem.ai 账户 以及API密钥
- Wrangler CLI(Wrangler 命令行界面) 已安装
- Node.js 18+ 和 npm
🚀 快速入门
安装
# Clone the repository
git clone https://github.com/BurtTheCoder/mcp-mem.ai-cfw.git
cd mcp-mem.ai-cfw
# Install dependencies
npm install
# Run automated setup
./setup.sh安装脚本将:
- 创建KV命名空间(用于OAuth模式)
- 生成
wrangler.toml配置 - 配置密钥(API密钥)
- (如已选择)引导您完成OAuth设置
部署模式
选项1:OAuth保护(推荐用于生产环境)
使用GitHub OAuth认证实现安全访问。
# During setup, choose option 1
./setup.sh
# Deploy to Cloudflare
npm run deployOAuth设置要求:
- 在 https://github.com/settings/developers 创建一个 GitHub OAuth 应用
- 将回调URL设置为:
https://mem-mcp-server..workers.dev/github/callback - 在设置过程中配置客户端ID和密钥
选项2:简单模式(开发)
无需OAuth - 直接使用API密钥进行身份验证。
# During setup, choose option 2
./setup.sh
# Deploy to Cloudflare
npm run deploy本地开发
# Start local development server
npm run dev
# Access at http://localhost:8787🛠️ 可用的MCP工具
1. mem_it - 智能内容处理
使用AI驱动的组织功能,保存并自动处理任何内容类型。
参数:
input(必填):要保存的内容(文本、HTML、Markdown)instructions(可选):处理说明context(可选):附加上下文timestamp(可选):ISO 8601 时间戳
示例:
{
"input": "Meeting notes: Discussed Q1 roadmap...",
"instructions": "Extract action items",
"context": "Product Planning"
}2. create_note - 创建结构化票据
创建一个格式化为Markdown且结构清晰的笔记。
参数:
content(必填):Markdown 内容collection_ids(可选):集合的 UUIDcollection_titles(可选):收藏集标题
3. read_note - 按ID读取笔记
检索完整的笔记内容和元数据。
参数:
note_id(必需):笔记的 UUID
4. delete_note - 删除笔记
永久删除一条笔记。
参数:
note_id(必填):笔记的UUID
5. create_collection - 创建集合
创建一个收藏夹来整理相关笔记。
参数:
title(必填):收藏集标题description(可选):Markdown 描述
6. delete_collection - 删除集合
删除一个集合(笔记保留,只是取消关联)。
参数:
collection_id(必需):集合的UUID
⚙️ 配置
环境变量(密钥)
设置路径 wrangler secret put:
# Required
wrangler secret put MEM_API_KEY
# Optional (for OAuth mode)
wrangler secret put GITHUB_CLIENT_ID
wrangler secret put GITHUB_CLIENT_SECRET\wrangler.toml\ 翻译为中文是:“Wrangler 配置文件(TOML 格式)”
由……生成 setup.sh手动配置:
name = "mem-mcp-server"
main = "src/github-oauth-index.ts" # or src/simple-index.ts
compatibility_date = "2024-09-23"
compatibility_flags = ["nodejs_compat"]
[[durable_objects.bindings]]
name = "MCP_AGENT"
class_name = "MemMCPAgent"
[[migrations]]
tag = "v1"
new_sqlite_classes = ["MemMCPAgent"]
# For OAuth mode only:
[[kv_namespaces]]
binding = "OAUTH_KV"
id = "your_kv_namespace_id"
preview_id = "your_preview_kv_id"🏗️ 建筑学
src/
├── types.ts # TypeScript interfaces & Zod schemas
├── mem-client.ts # Mem.ai API client
├── mcp-agent.ts # Durable Object with 6 MCP tools
├── github-oauth-index.ts # OAuth-protected worker
└── simple-index.ts # Simple worker (no OAuth)关键组件
1. 持久对象(Durable Object)mcp-agent.ts)
- 有状态的MCP服务器实例
- 处理所有6个Mem.ai工具
- 使用 SQLite 进行持久化存储
2. API 客户端(mem-client.ts)
- TypeScript封装的Mem.ai API
- 错误处理和验证
- 使用Zod模式实现类型安全
3. OAuth 处理器(github-oauth-index.ts)
- GitHub OAuth 流程
- 支持PKCE(Proof Key for Code Exchange,用于代码交换的证明密钥)
- 使用键值存储进行令牌管理
4. 简单处理器(simple-index.ts)
- 直接SSE终端点
- 无需认证开销
- 非常适合开发
📚 API 端点
OAuth 模式
| 终点 | 描述 |
|---|---|
/ | 服务器信息 |
/authorize | OAuth 授权 |
/token | 代币交换 |
/github/callback | OAuth 回调 |
/sse | SSE 端点(已认证) |
/.well-known/oauth-authorization-server | OAuth 发现 |
简单模式
| 终点 | 描述 |
|---|---|
/ | 服务器信息 |
/sse | SSE 端点(无认证) |
/health | 健康检查 |
🔧 Claude 桌面集成
OAuth 模式
添加到 claude_desktop_config.json:
{
"mcpServers": {
"mem": {
"url": "https://mem-mcp-server..workers.dev/sse"
}
}
}Claude 将自动处理 OAuth 流程。
简单模式
{
"mcpServers": {
"mem": {
"url": "https://mem-mcp-server..workers.dev/sse"
}
}
}💰 Cloudflare 免费套餐
这个工作程序在Cloudflare的免费套餐上运行得很顺畅:
- ✅ 每天100,000次请求
- ✅ 每个请求的CPU时间为10毫秒
- ✅ 无限耐用对象
- ✅ 1GB键值存储
非常适合个人使用和小团队使用!
🧪 测试
# Test locally
npm run dev
# Check health endpoint
curl http://localhost:8787/health
# Test root endpoint
curl http://localhost:8787/📊 监控
在Cloudflare仪表板中查看日志和分析数据:
# View live logs
wrangler tail
# Check deployment status
wrangler deployments list🐛 故障排除
“认证失败”
- 检查一下
MEM_API_KEY设置正确 - 请在 https://mem.ai 验证API密钥是否有效
“未找到持久化对象”
- 运行迁移:
wrangler migrations apply - 重新部署:
npm run deploy
OAuth回调失败
- 验证GitHub OAuth应用回调URL是否与您的工作节点URL匹配
- 检查
GITHUB_CLIENT_ID和GITHUB_CLIENT_SECRET已被设定
“KV 命名空间未找到”
- 跑
setup.sh再次重新创建命名空间 - 通过Cloudflare仪表板手动创建
🤝 贡献
欢迎贡献!请随时提交拉取请求。
- 为仓库创建分支
- 创建你的特性分支
- 提交您的更改
- 推送至分支
- 提交一个拉取请求
📄 许可证
这个项目采用MIT许可证授权——详见 许可证 详情请参阅文件。
🔗 链接
- Mem.ai(可译为“记忆人工智能”或根据具体语境调整为更贴切的表述,但直接音译加解释性翻译为“记忆AI”也是可行的) - 智能内存平台
- Mem.ai API 文档
- 模型上下文协议
- Cloudflare Workers(可译为“Cloudflare 工作人员”或根据上下文简化为“Cloudflare 功能”等,但通常直接保留原名以体现其作为服务名称的专有性)
- Python 版本 - FastMCP 的 Python 实现
💡 相关项目
- MCP-无限可能(或“MCP-无界限”) - 无限AI MCP服务器(本项目的模板)
- mcp-mem.ai 可以翻译为“内存映射多进程通信人工智能”(或根据具体上下文调整为更贴切的表述,如“多进程内存共享人工智能系统”等),但通常这类域名或技术术语的翻译可能不直接对应到中文的某个固定短语,而是根据其功能或用途来解释。在这里,“mcp”可能代表“Multiple Client Process”(多客户端进程)或类似含义,“mem.ai”则可能暗示与内存(mem)和人工智能(ai)相关的技术或应用。因此,一个较为通用的翻译可能是“多进程内存共享人工智能技术/系统”。具体翻译还需根据上下文和专业领域来确定 - Python FastMCP 版本
🙏 致谢
- 用……构建 Cloudflare Workers(云网劳工/云函数工作者,但通常直接译为“Cloudflare 工作人员”或保持原英文名以体现其技术特性)
- 基于OAuth的流程 “mcp-limitless” 可以翻译为“MCP(多路复用通信协议/某特定缩写,根据上下文确定)无限制”或“MCP无限可能”,具体翻译取决于“MCP”在上下文中的具体含义。如果“MCP”是一个特定领域或技术中的术语,应根据其实际含义进行翻译
- 由……提供动力/支持 Mem.ai(可译为“记忆人工智能”或根据具体语境简化为“记忆AI”)
______________________________________________________________________
使用Cloudflare Workers和TypeScript精心打造
