Mi Note MCP Server

Mi Note MCP Server

Enables interaction with Xiaomi Cloud Notes through MCP, allowing AI assistants to read, search, create, manage notes and folders with automatic Markdown/XML conversion and image upload support.

Category
访问服务器

README

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. 安装依赖

bun install

2. 配置凭据

服务启动前需要准备配置文件,默认路径为 ~/.mi-note-mcp.json,也可以通过环境变量 MI_NOTE_MCP_CONFIG 指定其他位置。

配置示例:

{
  "serviceToken": "YOUR_SERVICE_TOKEN",
  "userId": "YOUR_USER_ID",
  "passToken": "可选,增强登录稳定性",
  "slh": "可选",
  "ph": "可选",
  "deviceId": "可选,用于与网页保持一致",
  "cUserId": "可选",
  "uLocale": "zh_CN",
  "syncInterval": 30000,
  "baseUrl": "https://i.mi.com"
}

获取方式建议在浏览器登录 小米云笔记 后,通过开发者工具复制请求头中的 Cookie 字段(如 serviceTokenuserIdpassToken 等),并保证这些字段长期有效。syncInterval 以毫秒为单位,用于控制后台增量同步频率。

3. 启动 MCP 服务器

bun run index.ts

启动成功后,终端会输出 mi-note-mcp server started。随后即可在支持 MCP 的客户端中把 mi_note_mcp 注册为本地服务,按客户端指引填写命令与工作目录。

MCP 工具与资源

工具(Tools)

工具 ID 功能说明 关键参数
list_notes 列出缓存中的全部笔记
get_note 按 ID 获取笔记 Markdown 内容 id
create_note 创建新笔记并返回资源链接 contenttitle?folderId?
update_note 更新笔记内容与元数据 idcontenttitle?folderId?
delete_note 删除或永久删除笔记 idpurge?
move_note 将笔记移动到指定文件夹 noteIdfolderId
search_notes 关键词搜索标题与摘要 keywordlimit?
upload_image 上传图片并返回 minote://image/{fileId} pathmimeType?
list_folders 列出全部文件夹
create_folder 创建文件夹 subjectparentId?
update_folder 重命名文件夹 idsubject
delete_folder 删除或永久删除文件夹 idpurge?

资源(Resources)

资源 URI 内容 说明
minote://notes 所有笔记的概览列表 支持资源列表变更通知
minote://notes/{id} 指定笔记的 Markdown 内容 自动缓存并保持最新
minote://folders 文件夹概览 列表随同步自动刷新
minote://folders/{id}/notes 指定文件夹下的笔记列表 结合 move_note 可快速浏览整理

缓存与同步机制

  • 首次启动会通过 /note/full/page 获取全量数据并缓存到内存。
  • 之后按照 syncInterval(默认 30 秒)调用增量同步接口更新笔记与文件夹状态。
  • 工具在执行写操作后会主动刷新缓存并触发资源更新,保证 MCP 客户端侧 UI 与上下文立即感知变化。
  • 可以通过 NotesCacherefresh() 方法在代码中强制刷新(大部分工具已自动调用)。

开发与测试

  • 类型检查(推荐在提交前运行):

    bun run tsc --noEmit --skipLibCheck
    
  • 单元测试:

    bun test
    

开发时建议遵循仓库内现有的代码风格与目录结构,必要时参考 tests/ 下用例了解关键模块行为。

常见问题

  • 提示配置文件不存在:确认 ~/.mi-note-mcp.json 是否创建成功,或设置正确的 MI_NOTE_MCP_CONFIG
  • 返回 401/403:通常是 serviceTokenuserId 等 cookie 过期,重新从网页端复制并更新配置后重试。
  • 图片上传失败:检查文件是否存在、MIME 类型是否正确,或网络是否可访问 i.mi.com

如需扩展额外工具或资源,请优先复用现有客户端与缓存逻辑,遵守项目的 KISS/YAGNI 原则。

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选