mcpField
M
Mcp Server

Mcp Server

本地服务
github.com/inkdropapp生产力562 天前更新

关于 Mcp Server

Inkdrop MCP Server 将 Inkdrop Local HTTP Server API 提供给 MCP 客户端,适合需要通过工具管理笔记、笔记本、标签和附件的工作流。它涵盖内容检索与编辑,也支持关键词筛选和笔记间反向链接查询。

主要功能

  1. 01读取、搜索与筛选笔记
  2. 02创建和更新笔记
  3. 03查询笔记反向链接
  4. 04管理笔记本与标签
  5. 05创建和读取图片附件

适用场景

  1. 01按关键词查找笔记
  2. 02编辑笔记或调整其状态
  3. 03整理笔记本与标签
  4. 04将图片附件加入笔记

MCP 相关

该 MCP 服务通过 Inkdrop Local HTTP Server API 暴露笔记、笔记本、标签及附件的读取和管理工具。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"inkdropapp": {
"command": "npx",
"args": [
"-y",
"@inkdropapp/mcp-server"
],
"env": {
"INKDROP_LOCAL_SERVER_URL": "<INKDROP_LOCAL_SERVER_URL>",
"INKDROP_LOCAL_USERNAME": "<INKDROP_LOCAL_USERNAME>",
"INKDROP_LOCAL_PASSWORD": "<INKDROP_LOCAL_PASSWORD>"
}
}
}
}
启动命令npx -y @inkdropapp/mcp-server
需要配置的环境变量
INKDROP_LOCAL_SERVER_URL
INKDROP_LOCAL_USERNAME
INKDROP_LOCAL_PASSWORD密钥

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npm@inkdropapp/mcp-server

工具

13

收录的工具列表 · 更新于 3 周前

参数类型必填说明
noteIdstring是要检索的笔记 ID。可在笔记文档的 `_id` 中找到。始终以 `note:` 开头。
includeTemplateboolean否为 true 且笔记具有 `sourceTemplateId` 时,也会获取该模板并将其正文(填写说明和示例)作为额外文本块嵌入,这样一次调用即可获取笔记及其模板。

详细介绍

Inkdrop MCP 服务

一个用于 Inkdrop 本地 HTTP 服务 API 的 Model Context Protocol 服务。

安装

请阅读此处的文档。

组件

工具
  1. read-note:根据 ID 从数据库中获取笔记的完整内容。
    • 必填输入:
      • noteId:要获取的笔记 ID。可在笔记文档中找到,字段为 _id。始终以 note: 开头。
    • 可选输入:
      • includeTemplate:当值为 true 且笔记具有 sourceTemplateId 时,同时获取该模板,并将其正文(填写说明和示例)作为额外文本块嵌入。默认值:false。
    • 注意:如果笔记是根据模板创建的,响应会包含指向其源模板的资源链接,模板正文中包含填写说明和示例。
  2. read-backlinks:获取笔记的反向链接,即链接到该笔记的笔记。
    • 必填输入:
      • noteId:要查找反向链接的笔记 ID。始终以 note: 开头。
    • 注意:每个结果都会作为资源链接(inkdrop://note/<id>)返回,指向引用该笔记的笔记。反向链接通过在所有笔记正文中搜索该笔记的链接 URI 查找。
  3. search-notes:列出包含指定关键词的所有笔记。
    • 必填输入:
      • keyword:要搜索的关键词。
    • 注意:结果包含截断后的笔记正文(200 个字符)。使用 read-note 获取完整内容。
    • 支持高级搜索限定符,例如 book:、tag:、status:、title: 等。
  4. list-notes:根据指定条件列出所有笔记。
    • 必填输入:
      • bookId:笔记本 ID。始终以 'book:' 开头。
    • 可选输入:
      • tagIds:用于筛选的标签 ID 数组。每个 ID 都以 'tag:' 开头。
      • keyword:用于筛选笔记的关键词。
      • sort:排序字段(updatedAt、createdAt 或 title)。默认值:updatedAt。
      • descending:反转输出顺序。默认值:true。
    • 注意:结果包含截断后的笔记正文(200 个字符)。使用 read-note 获取完整内容。
  5. list-templates:列出笔记模板,包括你的自定义模板,以及 Inkdrop 随附的官方模板。
    • 可选输入:
      • keyword:通过模糊匹配模板标题来筛选模板。
    • 注意:结果包含截断后的模板正文(200 个字符)。使用 read-note 获取完整内容。
  6. create-note:在数据库中创建新笔记。
    • 必填输入:
      • bookId:笔记本 ID。必须以 'book:' 开头,或为 'trash' 或 'template'。指定 'template' 可创建自定义笔记模板。
      • title:笔记标题。
      • body:笔记的 Markdown 内容。
    • 可选输入:
      • status:笔记状态(none、active、onHold、completed、dropped)。
      • tags:要分配给笔记的标签 ID 数组。每个 ID 都必须以 'tag:' 开头。
  7. update-note:更新数据库中的现有笔记。仅更新你提供的字段;未提供的字段保持不变。
    • 必填输入:
      • _id:笔记 ID。必须以 'note:' 开头。
      • _rev:修订 ID(CouchDB MVCC-token)。
    • 可选输入:
      • bookId:笔记本 ID。必须以 'book:' 开头,或为 'trash' 或 'template'。
      • title:笔记标题。
      • body:笔记的 Markdown 内容。
      • status:笔记状态(none、active、onHold、completed、dropped)。
      • tags:要分配给笔记的标签 ID 数组。每个 ID 都必须以 'tag:' 开头。
  8. patch-note:通过执行精确的字符串替换来更新现有笔记正文。对于大型笔记的小幅编辑,此方法比 update-note 更高效,因为它可以节省 token。你必须先使用 read-note 读取笔记,以获取当前正文。
    • 必填输入:
      • _id:笔记 ID。必须以 'note:' 开头。
      • _rev:修订 ID(CouchDB MVCC-token)。
      • old_string:要在笔记正文中查找的精确文本。必须恰好匹配一次。请提供足够的上下文,确保匹配唯一。
      • new_string:用于替换 old_string 的文本。使用空字符串可删除匹配文本。
  9. list-notebooks:获取所有笔记本的列表。
  10. read-book:根据 ID 获取单个笔记本。
    • 必填输入:
      • bookId:笔记本 ID。必须以 'book:' 开头。
  11. create-book:在数据库中创建新笔记本。
    • 必填输入:
      • name:笔记本名称。
    • 可选输入:
      • parentBookId:父笔记本的 ID。必须以 'book:' 开头。省略此项可在根级别创建笔记本。
  12. update-book:更新数据库中的现有笔记本。仅更新你提供的字段;未提供的字段保持不变,因此无需先读取笔记本。
    • 必填输入:
      • _id:笔记本 ID。必须以 'book:' 开头。
    • 可选输入:
      • _rev:修订 ID(CouchDB MVCC-token)。仅在需要乐观并发保护时使用——传入此值可确保发生并发编辑冲突时更新失败。
      • name:笔记本名称。
      • parentBookId:父笔记本的 ID。传入 null 可将笔记本移至根级别。
  13. list-tags:获取所有标签的列表。
  14. read-tag:根据 ID 获取单个标签。
    • 必填输入:
      • tagId:标签 ID。必须以 'tag:' 开头。
  15. create-tag:在数据库中创建新标签。
    • 必填输入:
      • name:标签名称。
    • 可选输入:
      • color:标签颜色类型(default、red、orange、yellow、olive、green、teal、blue、violet、purple、pink、brown、grey、black)。默认值:default。
  16. update-tag:更新数据库中的现有标签。仅更新你提供的字段;未提供的字段保持不变,因此无需先读取标签。
    • 必填输入:
      • _id:标签 ID。必须以 'tag:' 开头。
    • 可选输入:
      • _rev:修订 ID(CouchDB MVCC-token)。仅在需要乐观并发保护时使用——传入此值可确保发生并发编辑冲突时更新失败。
      • name:标签名称。
      • color:标签颜色类型。省略此项可保留标签当前颜色。
  17. create-file:使用本地图片文件或 Base64 图片数据在数据库中创建新的附件文件。返回用于在笔记正文中嵌入该附件的 Markdown。
    • 必填输入:以下选项必须且只能提供一个
      • filePath:要附加的本地图片文件的绝对路径。优先使用此项——这样图片字节不会进入对话。
      • data:Base64 编码的图片数据,不带 data: URI 前缀。
    • 可选输入:
      • name:文件名。默认为 filePath 的文件名;如果提供 data,则默认为 image.<ext>。
      • contentType:MIME 类型(image/png、image/jpeg、image/jpg、image/svg+xml、image/gif、image/heic、image/heif)。省略时会根据 filePath 扩展名推断;使用 data 时必须提供。
      • publicIn:包含该附件的笔记 ID 数组。每个 ID 都必须以 'note:' 开头。
    • 注意:附件大小上限为 10MB。
  18. read-file:根据 ID 获取附件文件。返回文件元数据;如果文件是 PNG、JPEG 或 GIF,还会返回图片本身。
    • 必填输入:
      • fileId:附件 ID。必须以 'file:' 开头。
    • 可选输入:
      • outputPath:用于写入附件的绝对路径。提供此项后,文件会保存到该路径,且其字节不会以内联形式返回。获取 SVG、HEIC 和 HEIF 附件时必须提供此项,因为这些格式无法以内联形式显示。
      • includeImage:是否在元数据旁返回图片。默认值:true。对于较大的附件,设为 false 可只获取元数据。

调试

由于 MCP 服务通过 stdio 运行,调试可能颇具挑战。为了获得最佳调试体验,我们强烈建议使用 MCP Inspector。

你可以通过 npm 使用此命令启动 MCP Inspector:

npx @modelcontextprotocol/inspector "./dist/index.js"

请确保已正确配置环境变量。

启动后,Inspector 会显示一个 URL,你可以在浏览器中访问该 URL 开始调试。

你也可以使用此命令查看服务日志:

tail -n 20 -f ~/Library/Logs/Claude/mcp-server-inkdrop.log

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。