项目简介

memo 是一个带有 Markdown 支持、标签、附件、以及基于 Charm KV 的后端存储的本地笔记工具。同时实现了一个 MCP 服务器端,提供以下能力给 AI 客户端:读取与管理资源、执行工具(如创建/查询笔记、管理标签、导出等)、以及渲染/使用提示模板来引导大模型进行笔记相关工作。

主要功能点

  • MCP 核心能力
    • 资源(Resources):通过 memo://note/{id} 形式提供笔记内容的可读访问
    • 工具(Tools):提供一组可由 AI 客户端调用的操作接口,例如
      • add_note、list_notes、get_note、update_note、delete_note
      • search_notes、add_tag、remove_tag、add_attachment、list_attachments、get_attachment、export_note 等
    • 提示(Prompts):内置多种场景化的提示模板(如创建会议记录、每日日记、总结笔记、组织笔记、项目笔记等)
  • 数据存储与一致性
    • 使用 Charm KV 作为后端存储,笔记、附件、标签等以 Key-Value 形式持久化
    • 提供对笔记、附件的增删改查,支持前缀查询、可扩展的筛选条件
  • MCP 通信
    • 通过 MCP 提供的 JSON-RPC 风格接口,与 AI 客户端进行请求/响应
    • 当前实现通过标准输入输出(stdio)传输来进行通信
  • 服务器与客户端解耦
    • 服务端接口暴露给 AI 客户端,客户端只需按照 MCP 规范发送请求即可

安装与运行步骤

  • 构建与安装
    • 使用项目的构建方式:在项目根目录执行 make build,或者运行 go build ./cmd/memo 直接编译 memo 可执行文件
  • 运行 MCP 服务器
    • 运行 memo mcp 启动 MCP 服务器,服务器将通过标准输入输出与外部 AI 客户端进行 JSON-RPC 通信
  • 配置与对接(MCP 客户端需要的最小信息)
    • MCP 客户端需要一个启动配置来连接服务器(示例配置,客户端不需要你提供代码,仅用于理解连接参数)
    • server name: memo
    • command: memo
    • args: ["mcp"]
    • 说明:该配置指明了启动 memo 的哪一个子命令来启动 MCP 服务器,以及客户端如何通过系统管道将请求发送给服务器(实际对接以具体 MCP 客户端实现为准)

服务器配置(JSON 格式示例,便于 MCP 客户端理解)

{ "server_name": "memo", "command": "memo", "args": ["mcp"], "description": "Memo 的 MCP 服务器,提供资源、工具与提示模板的 JSON-RPC 服务", "transport": "stdio", "notes": "启动后通过标准输入输出进行 JSON-RPC 请求和响应" } 注释说明:以上字段用于帮助 MCP 客户端了解如何启动和连接服务器,不需要客户端本身实现复杂逻辑,客户端仅需读取此配置并按照 memo mcp 规则启动即可。

基本使用方法

  • 启动后,AI 客户端通过 JSON-RPC 发送请求,例如调用某个工具、获取笔记、或读取资源等
  • 客户端可以使用内置的工具集合来完成常见笔记管理任务,如创建笔记、查询笔记、导出笔记等
  • 内置 Prompts 提供面向 AI 的高层指令模板,便于快速引导笔记相关工作
  • 资源系统提供可读的笔记内容访问入口,AI 客户端可按需读取笔记内容

期望的成果与适用场景

  • 场景化的 AI 助手对话:通过 MCP 服务器提供的工具与资源快速访问与管理笔记
  • 便捷的笔记上下文管理:以统一的接口读取和更新笔记、标签、附件等元信息
  • 兼容性与扩展性良好:Prompts、Tools、Resources 可扩展以适配更多笔记工作流

信息

分类

AI与计算