Command Palette

Search for a command to run...

UnylyUnyly
Весь каталог

Yinxiang

БесплатноНе проверен

非官方印象笔记MCP服务器,支持笔记本、原生超级笔记、原始ENML和资源附件操作。

GitHubEmbed

Описание

非官方印象笔记MCP服务器,支持笔记本、原生超级笔记、原始ENML和资源附件操作。

README

非官方印象笔记(Yinxiang / Evernote China)MCP Server。通过 stdio 暴露笔记本、原生超级笔记、原始 ENML 和资源附件相关操作。

本项目不是印象笔记或 Evernote 官方项目,也不代表官方背书。

安装

npx -y @yanghechuan/yinxiang-mcp

建议锁定版本:

npx -y @yanghechuan/[email protected]

认证

当前版本使用 Direct Token 认证,暂未实现 OAuth。

需要配置两个环境变量:

  • YINXIANG_DEV_TOKEN:在 https://dev.yinxiang.com 申请的 Developer Token
  • YINXIANG_NOTESTORE_URL:NoteStore URL,例如 https://app.yinxiang.com/shard/sXX/notestore

MCP 配置

{
  "mcpServers": {
    "yinxiang": {
      "command": "npx",
      "args": ["-y", "@yanghechuan/[email protected]"],
      "env": {
        "YINXIANG_DEV_TOKEN": "<your-token>",
        "YINXIANG_NOTESTORE_URL": "https://app.yinxiang.com/shard/sXX/notestore"
      }
    }
  }
}

工具列表

笔记本与笔记本组

  • list-notebooks:列出笔记本,包含 guidstack、默认笔记本标记和更新元数据。
  • get-notebook:按 guid 读取单个笔记本元数据。
  • create-notebook:创建笔记本,可选加入笔记本组。
  • update-notebook:重命名笔记本或更新所属笔记本组,需要 confirm=true
  • delete-notebook:删除笔记本,需要 confirm=trueconfirmGuid === guid;非空笔记本还需要 force=true
  • list-stacks:从笔记本的 stack 字段反推笔记本组列表。
  • create-stack:通过把一个已有笔记本放入 stack 来创建笔记本组,需要 confirm=true
  • rename-stack:批量更新组内笔记本的 stack 字段来重命名笔记本组,需要 confirm=true
  • delete-stack:清空组内笔记本的 stack 字段来删除笔记本组,不删除笔记本,需要 confirm=true
  • move-notebook-to-stack:将单个笔记本移入指定笔记本组,需要 confirm=true
  • remove-notebook-from-stack:将单个笔记本移出当前笔记本组,需要 confirm=true

笔记

  • find-notes:按 Evernote 搜索语法和/或笔记本 GUID 搜索笔记元数据。
  • get-note-raw:读取原始 ENML、笔记本 GUID、标签和属性,不经过 Markdown 转换。
  • create-super-note:使用原生块模型创建印象笔记超级笔记。
  • update-super-note:使用原生块模型覆盖笔记正文,需要 confirm=true
  • append-super-note-blocks:保留已有 ENML,在末尾追加原生块,需要 confirm=true
  • replace-super-note-block:按 blockId 替换一个原生块,需要 confirm=true
  • delete-super-note-block:按 blockId 删除一个原生块,需要 confirm=true
  • replace-note-enml:用完整 ENML 或 en-note 内部 body 直接覆盖正文,需要 confirm=true
  • clone-note:原样克隆 ENML 正文和笔记元数据,不经过 Markdown 转换。
  • attach-file:将本地文件追加为 Evernote Resource,并在正文追加匹配的 <en-media>,需要 confirm=true
  • export-note-resource:按 resourceGuid 或 MD5 hash 导出单个资源。
  • delete-note-resource:按 resourceGuid 或 MD5 hash 删除单个资源和匹配的 <en-media>,需要 confirm=true
  • move-note:移动笔记到另一个笔记本,不修改标题和正文,需要 confirm=true
  • clear-note-content:清空笔记正文,保留标题和所在笔记本,需要 confirm=true
  • delete-note:将笔记移入废纸篓,需要 confirm=true
  • expunge-note:永久删除笔记,需要 confirm=trueconfirmGuid === guid

原生块模型

create-super-noteupdate-super-noteappend-super-note-blocks 接收 blocks 数组。字符串会被当作普通段落;对象示例:

[
  {
    "type": "heading",
    "level": 2,
    "id": "stable-block-id",
    "runs": [
      { "text": "蓝色加粗标题", "bold": true, "color": "#1677ff" }
    ]
  },
  {
    "type": "paragraph",
    "runs": [
      { "text": "普通文字 " },
      { "text": "红色加粗", "bold": true, "color": "#d4380d" },
      { "text": " 大号文字", "fontSize": 22 },
      { "text": " 链接", "href": "https://example.com?a=1&b=2" }
    ]
  },
  {
    "type": "todo",
    "checked": false,
    "runs": [{ "text": "待办事项" }]
  },
  {
    "type": "table",
    "id": "table-1",
    "header": true,
    "rows": [
      [{ "text": "名称" }, { "text": "状态" }],
      [{ "text": "任务 A" }, { "text": "完成", "color": "#52c41a" }]
    ]
  }
]

支持的块类型:headingparagraphblockquotecodedividertodobulleted_listnumbered_listtable

支持的文字样式:bolditalicunderlinestrikecodecolorbackgroundColorfontSizehref

颜色必须使用 #RRGGBBfontSize 必须是 8 到 72 的整数。正文默认字号为 16px。标题默认使用客户端标题层级,只有显式传入 fontSize 时才覆盖标题内部文字。

表格块必须提供稳定 id,便于后续用 replace-super-note-blockdelete-super-note-block 编辑/删除整张表。

文件资源

attach-file 会读取本地文件、计算 MD5、创建 Evernote Resource,并在正文中追加匹配的 <en-media>。MIME 会根据扩展名自动推断,也可以显式传入。

{
  "guid": "note-guid",
  "filePath": "/tmp/demo.png",
  "fileName": "demo.png",
  "confirm": true
}

资源可以通过 resourceGuid 或 MD5 hash 导出和删除。

本地开发

npm install
cp .env.example .env
npm test
npm run verify
npm start

npm run verify 是只读验证:它会通过列出笔记本来验证 token 和 NoteStore URL 是否可用。

发布

npm test
npm pack --dry-run
npm publish --access public

发布前必须确认 npm tarball 中不包含 .env、真实 token、日志或私人笔记内容。

限制

  • 使用 [email protected],底层是较旧的 EDAM API。
  • Evernote/印象笔记的笔记本组不是独立实体,本项目通过笔记本的 stack 字段实现组管理。
  • 原生超级笔记工具不经过 Markdown 中转,适合保留加粗、颜色、链接、待办、表格等富文本样式。
  • Markdown 兼容函数仍保留在内部,但不作为 MCP 工具暴露,避免误用导致富文本样式丢失。
  • 资源工具支持本地图片、音频和通用附件,可按单资源导出和删除。
  • 可折叠标题依赖印象笔记超级笔记的 other-props.blockIdyinxiang.superNoteyinxiang.noteLayout 标记;旧客户端可能只显示普通标题样式。

安全

不要提交真实 Developer Token、绑定私人账号的 NoteStore URL、请求日志或导出的笔记内容。更多说明见 SECURITY.md

开源协议

本项目使用 MIT License。完整协议内容见 LICENSE

from github.com/ArchChuan/yinxiang-mcp

Установка Yinxiang

У этого сервера нет опубликованного пакета — он собирается из исходников. Открой репозиторий и следуй инструкции в README.

▸ github.com/ArchChuan/yinxiang-mcp

FAQ

Yinxiang MCP бесплатный?

Да, Yinxiang MCP бесплатный — установка в пару кликов через Unyly без оплаты.

Нужен ли API-ключ для Yinxiang?

Нет, Yinxiang работает без API-ключей и переменных окружения.

Yinxiang — hosted или self-hosted?

Self-hosted: сервер запускается локально на твоей машине командой из раздела установки.

Как установить Yinxiang в Claude Desktop, Claude Code или Cursor?

Открой Yinxiang на unyly.org, выбери вкладку своего клиента (Claude Desktop, Claude Code, Cursor) и нажми Install — конфиг сгенерируется автоматически, без правки JSON.

Похожие MCP

Compare Yinxiang with

Не уверен что выбрать?

Найди свой стек за 60 секунд

Автор?

Embed-бейдж для README

Похожее

Все в категории development