mi_note_mcp
mi_note_mcp 是一个基于 Model Context Protocol (MCP) 的小米云笔记服务器实现,可让支持 MCP 的助手(如 Claude、ChatGPT 桌面端等)直接读取、搜索、创建和管理你的云端笔记。项目在本地对接口结果做缓存,并提供 Markdown/XML 互转能力,让大语言模型能够无缝处理笔记内容。
功能特性
读取、搜索与缓存:支持列出、搜索、查看笔记详情并自动维护本地缓存,减轻重复网络请求。
完整的笔记编辑链路:提供创建、更新、删除、移动笔记等常见操作,并自动同步资源状态。
文件夹管理:支持列出、创建、重命名、删除文件夹及按文件夹查看笔记。
富文本转换:在 Markdown 与小米笔记内部 XML 之间相互转换,保留任务列表、图片、粗体等格式。
图片上传:可将本地图片上传至小米云端并返回
minote://image/{fileId}形式的可复用链接。MCP 资源暴露:暴露笔记、文件夹相关资源 URI,方便上下文补全与导航。
环境要求
Bun ≥ 1.1(开发测试使用 1.2.23)
一个可以访问 https://i.mi.com/note 的小米账号
Node.js TypeScript 生态(仅在开发/类型检查时需要)
快速开始
1. 安装依赖
2. 配置凭据
服务启动前需要准备配置文件,默认路径为 ~/.mi-note-mcp.json,也可以通过环境变量 MI_NOTE_MCP_CONFIG 指定其他位置。
配置示例:
获取方式建议在浏览器登录 小米云笔记 后,通过开发者工具复制请求头中的 Cookie 字段(如 serviceToken、userId、passToken 等),并保证这些字段长期有效。syncInterval 以毫秒为单位,用于控制后台增量同步频率。
3. 启动 MCP 服务器
启动成功后,终端会输出 mi-note-mcp server started。随后即可在支持 MCP 的客户端中把 mi_note_mcp 注册为本地服务,按客户端指引填写命令与工作目录。
MCP 工具与资源
工具(Tools)
工具 ID | 功能说明 | 关键参数 |
| 列出缓存中的全部笔记 | 无 |
| 按 ID 获取笔记 Markdown 内容 |
|
| 创建新笔记并返回资源链接 |
、
、
|
| 更新笔记内容与元数据 |
、
、
、
|
| 删除或永久删除笔记 |
、
|
| 将笔记移动到指定文件夹 |
、
|
| 关键词搜索标题与摘要 |
、
|
| 上传图片并返回
|
、
|
| 列出全部文件夹 | 无 |
| 创建文件夹 |
、
|
| 重命名文件夹 |
、
|
| 删除或永久删除文件夹 |
、
|
资源(Resources)
资源 URI | 内容 | 说明 |
| 所有笔记的概览列表 | 支持资源列表变更通知 |
| 指定笔记的 Markdown 内容 | 自动缓存并保持最新 |
| 文件夹概览 | 列表随同步自动刷新 |
| 指定文件夹下的笔记列表 | 结合
可快速浏览整理 |
缓存与同步机制
首次启动会通过
/note/full/page获取全量数据并缓存到内存。之后按照
syncInterval(默认 30 秒)调用增量同步接口更新笔记与文件夹状态。工具在执行写操作后会主动刷新缓存并触发资源更新,保证 MCP 客户端侧 UI 与上下文立即感知变化。
可以通过
NotesCache的refresh()方法在代码中强制刷新(大部分工具已自动调用)。
开发与测试
类型检查(推荐在提交前运行):
bun run tsc --noEmit --skipLibCheck单元测试:
bun test
开发时建议遵循仓库内现有的代码风格与目录结构,必要时参考 tests/ 下用例了解关键模块行为。
常见问题
提示配置文件不存在:确认
~/.mi-note-mcp.json是否创建成功,或设置正确的MI_NOTE_MCP_CONFIG。返回 401/403:通常是
serviceToken、userId等 cookie 过期,重新从网页端复制并更新配置后重试。图片上传失败:检查文件是否存在、MIME 类型是否正确,或网络是否可访问
i.mi.com。
如需扩展额外工具或资源,请优先复用现有客户端与缓存逻辑,遵守项目的 KISS/YAGNI 原则。
This server cannot be installed