一款生产就绪的模型上下文协议(MCP)服务器,提供AI助手智能访问Mem.ai的知识管理平台。
git clone https://github.com/yourusername/mcp-mem.ai.git
cd mcp-mem.ai
pip install -e .
cp .env.example .env
# 编辑.env文件并添加你的MEM_API_KEY
fastmcp run src/mcp_mem/server.py
在你的Claude Desktop配置(claude_desktop_config.json)中添加:
{
"mcpServers": {
"mem": {
"command": "python",
"args": ["-m", "mcp_mem.server"],
"env": {
"MEM_API_KEY": "your_api_key_here"
}
}
}
}
from mcp_mem import mcp
# 运行服务器
mcp.run()
mem_it - 智能内容处理保存并自动处理任何类型的内容,利用AI驱动的组织。
参数:
input(必需):要保存的内容(文本、HTML、Markdown等)instructions(可选):处理指令context(可选):额外的组织上下文timestamp(可选):ISO 8601时间戳示例:
mem_it(
input="刚刚与产品团队关于Q1路线图进行了很好的会议……",
instructions="提取关键行动项和决策",
context="产品规划"
)
create_note - 创建结构化笔记创建Markdown格式的笔记,并对内容和组织有明确的控制。
参数:
content(必需):Markdown格式的内容collection_ids(可选):集合UUID列表collection_titles(可选):集合标题列表示例:
create_note(
content="""# 团队站会 - 2024年1月15日
## 已完成
- 功能X已发布到生产环境
- 修复了问题#123的bug
## 正在进行
- 正在开发功能Y
- 对PR#456进行代码审查
## 阻碍
- 等待API访问权限
""",
collection_titles=["团队会议", "工程"]
)
read_note - 读取笔记通过ID检索笔记的全部内容和元数据。
参数:
note_id(必需):笔记的UUID示例:
read_note("01961d40-7a67-7049-a8a6-d5638cbaaeb9")
delete_note - 删除笔记永久删除笔记。
参数:
note_id(必需):笔记的UUID示例:
delete_note("01961d40-7a67-7049-a8a6-d5638cbaaeb9")
create_collection - 创建集合创建一个新的集合来组织相关的笔记。
参数:
title(必需):集合标题description(可选):Markdown格式的描述示例:
create_collection(
title="阿波罗项目",
description="""# 阿波罗项目
所有关于阿波罗项目的笔记,包括:
- 会议笔记
- 技术规范
- 客户反馈
"""
)
delete_collection - 删除集合删除集合(笔记仍然存在,只是不再关联)。
参数:
collection_id(必需):集合的UUID示例:
delete_collection("5e29c8a2-c73b-476b-9311-e2579712d4b1")
配置是通过环境变量完成的。复制.env.example到.env并自定义:
# 必需:你的Mem.ai API密钥
MEM_API_KEY=your_api_key_here
# 可选:自定义API端点(默认:https://api.mem.ai/v2)
MEM_API_BASE_URL=https://api.mem.ai/v2
# 可选:请求超时时间(秒,默认:30)
MEM_REQUEST_TIMEOUT=30
# 可选:启用调试日志(默认:false)
MEM_DEBUG=false
src/mcp_mem/
├── __init__.py # 包初始化
├── models.py # Pydantic数据模型
├── client.py # Mem.ai API客户端
└── server.py # MCP服务器实现
models.py:用于请求/响应验证的Pydantic模型client.py:Mem.ai API的异步HTTP客户端封装server.py:带有工具实现的FastMCP服务器运行测试套件:
# 安装开发依赖项
pip install -e ".[dev]"
# 运行所有测试
pytest
# 带覆盖率运行
pytest --cov=mcp_mem --cov-report=html
# 运行特定测试文件
pytest tests/test_client.py
服务器提供清晰且可操作的错误消息:
MemAuthenticationError:无效或缺少API密钥MemNotFoundError:资源(笔记/集合)未找到MemValidationError:无效的请求参数MemAPIError:通用API错误所有错误都被记录并返回给AI助手,附带有用的上下文信息。
查看examples/目录以获取完整的使用示例:
basic_usage.py:每个工具的基本示例advanced_usage.py:复杂的流程和模式欢迎贡献!请随意提交Pull Request。
git checkout -b feature/amazing-feature)git commit -m '添加惊人的功能')git push origin feature/amazing-feature)本项目采用MIT许可证 - 查看LICENSE文件了解详情。
MemAuthenticationError: MEM_API_KEY环境变量或api_key参数是必需的
解决方案:在.env文件或环境中设置你的MEM_API_KEY。
httpx.ReadTimeout: 超时
解决方案:增加.env文件中的MEM_REQUEST_TIMEOUT。
MemValidationError: 无效的UUID格式
解决方案:确保笔记/集合ID是来自Mem.ai的有效UUID。