返回市场
MCP-内存.ai

MCP-内存.ai

作者:BurtTheCoder2 星标更新:2025-10-02

项目介绍

MCP Server for Mem.ai

一款生产就绪的模型上下文协议(MCP)服务器,提供AI助手智能访问Mem.ai的知识管理平台。

Python 3.10+ License: MIT

✨ 特性

  • 🧠 智能记忆:保存并处理内容,利用Mem的AI驱动组织
  • 📝 笔记管理:创建、读取和删除结构化的Markdown笔记
  • 📁 集合:将笔记组织成可搜索的集合
  • 🔒 类型安全:完整的类型提示和Pydantic验证
  • 异步/等待:高效率的异步I/O
  • 🎯 简洁API:简单直观的接口供AI助手使用
  • 🛡️ 生产就绪:全面的错误处理和日志记录
  • 🧪 充分测试:完整的测试套件,使用pytest

📋 先决条件

🚀 快速开始

安装

  1. 克隆仓库:
git clone https://github.com/yourusername/mcp-mem.ai.git
cd mcp-mem.ai
  1. 安装依赖项:
pip install -e .
  1. 设置环境:
cp .env.example .env
# 编辑.env文件并添加你的MEM_API_KEY

运行服务器

本地开发

fastmcp run src/mcp_mem/server.py

使用Claude Desktop

在你的Claude Desktop配置(claude_desktop_config.json)中添加:

{
  "mcpServers": {
    "mem": {
      "command": "python",
      "args": ["-m", "mcp_mem.server"],
      "env": {
        "MEM_API_KEY": "your_api_key_here"
      }
    }
  }
}

使用其他MCP客户端

from mcp_mem import mcp

# 运行服务器
mcp.run()

🛠️ 可用工具

1. mem_it - 智能内容处理

保存并自动处理任何类型的内容,利用AI驱动的组织。

参数:

  • input(必需):要保存的内容(文本、HTML、Markdown等)
  • instructions(可选):处理指令
  • context(可选):额外的组织上下文
  • timestamp(可选):ISO 8601时间戳

示例:

mem_it(
    input="刚刚与产品团队关于Q1路线图进行了很好的会议……",
    instructions="提取关键行动项和决策",
    context="产品规划"
)

2. 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=["团队会议", "工程"]
)

3. read_note - 读取笔记

通过ID检索笔记的全部内容和元数据。

参数:

  • note_id(必需):笔记的UUID

示例:

read_note("01961d40-7a67-7049-a8a6-d5638cbaaeb9")

4. delete_note - 删除笔记

永久删除笔记。

参数:

  • note_id(必需):笔记的UUID

示例:

delete_note("01961d40-7a67-7049-a8a6-d5638cbaaeb9")

5. create_collection - 创建集合

创建一个新的集合来组织相关的笔记。

参数:

  • title(必需):集合标题
  • description(可选):Markdown格式的描述

示例:

create_collection(
    title="阿波罗项目",
    description="""# 阿波罗项目

    所有关于阿波罗项目的笔记,包括:
    - 会议笔记
    - 技术规范
    - 客户反馈
    """
)

6. 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。

  1. 分叉仓库
  2. 创建你的特性分支(git checkout -b feature/amazing-feature
  3. 提交更改(git commit -m '添加惊人的功能'
  4. 推送到分支(git push origin feature/amazing-feature
  5. 打开Pull Request

📄 许可证

本项目采用MIT许可证 - 查看LICENSE文件了解详情。

🔗 链接

💡 使用案例

  • 会议记录:自动处理和组织会议记录
  • 研究:保存并分类研究论文、文章和发现
  • 客户反馈:收集并组织客户对话
  • 知识库:构建可搜索的知识库
  • 个人记忆:跟踪想法、思考和学习

🐛 故障排除

认证错误

MemAuthenticationError: MEM_API_KEY环境变量或api_key参数是必需的

解决方案:在.env文件或环境中设置你的MEM_API_KEY

连接超时

httpx.ReadTimeout: 超时

解决方案:增加.env文件中的MEM_REQUEST_TIMEOUT

无效UUID

MemValidationError: 无效的UUID格式

解决方案:确保笔记/集合ID是来自Mem.ai的有效UUID。


使用❤️构建,基于FastMCPMem.ai