DEVONthink MCP服务器
此MCP服务器通过模型上下文协议(MCP)提供对DEVONthink功能的访问。它允许在macOS上的DEVONthink Pro中列出、搜索、创建、修改和管理记录和数据库。此外,它还包括基于导出的书目数据解析DEVONthink附件的书目元数据的工具。
特性
- 将一套全面的DEVONthink操作作为MCP工具公开
- 按各种属性列出、搜索和查找记录
- 创建、删除、移动和重命名记录和组
- 检索和修改记录内容、属性和标记
- 从多种格式的URL创建记录
- 列出打开的数据库和组内容
- 通过书目导出解析DEVONthink附件的书目元数据
- 直接从引用关键字或附件元数据中查找DEVONthink记录
- 所有工具都是类型安全的,并使用Zod模式进行验证
工具
核心工具
is_running
- 检查DEVONthink当前是否正在运行 - 无需输入 - 退货: { "success": true | false }
create_record
- 创建具有指定属性的新记录(笔记、书签、组) - 输入:记录类型、名称、父组和可选元数据
delete_record
- 按ID、名称或路径删除记录 - 输入:记录标识符
move_record
- 在组之间移动记录 - 输入:记录ID和目标组
get_record_properties
- 检索记录的详细元数据和属性 - 输入:记录标识符
search
- 使用各种比较选项执行基于文本的搜索 - 输入:查询字符串和搜索选项
lookup_record
- 按文件名、路径、URL、标签、注释或内容哈希查找记录(仅精确匹配) - 输入:查找类型和值
create_from_url
- 从多种格式的web URL创建记录 - 输入:URL和格式选项
get_open_databases
- 列出当前打开的所有数据库 - 无需输入
list_group_content
- 列出特定组的内容 - 输入:组标识符
get_record_content
- 检索特定记录的内容 - 输入:记录标识符
rename_record
- 重命名特定记录 - 输入:记录ID和新名称
add_tags
- 为特定记录添加标签 - 输入:记录ID和标签
remove_tags
- 从特定记录中删除标记 - 输入:记录ID和标签
classify
- 使用DEVONthink的AI获取记录的分类建议 - 输入:记录UUID、可选数据库名称、比较类型和标签选项 - 返回:带有分数的分类建议(组或标签)数组
compare
- 比较记录以查找相似之处(混合方法) - 输入:主记录UUID、可选的第二记录UUID、数据库名称和比较类型 - 返回:相似记录(单模式)或详细比较分析(双记录模式)
get_bib_metadata
- 解析DEVONthink记录或Finder路径的参考书目元数据 - 输入:查找路径、记录UUID、DEVONthinkID+数据库或DEVONthink位置路径(可选 bibliographyJsonPath / bibliographyBibPath 覆盖导出位置) - 返回:具有顶级的匹配书目项 citationKey, bibliographyId、附件列表和LLM提示的简短摘要字符串
get_records_by_citation_key
- 将引用关键字解析为其附件元数据和匹配的DEVONthink记录 - 输入: citationKey 以及JSON/BibTeX导出路径的可选覆盖 - 返回:书目元数据(JSON或BibTeX)加上Finder路径与附件条目匹配的任何DEVONthink记录
示例:搜索工具
{
"query": "project plan",
"comparison": "contains",
"database": "Inbox"
}退货:
{
"results": [
{ "id": "123", "name": "Project Plan", "path": "/Inbox/Project Plan.md" }
]
}安装
克劳德代码
claude mcp add --scope user devonthink --env BIBLIOGRAPHY_JSON=/path/to/bibliography.json -- npx -y github:TomBener/devonthink-mcp这 --scope user flag为您的用户帐户安装MCP服务器(在所有项目中都可用)。您还可以使用 --scope local 仅适用于当前工作区。
法典
codex mcp add devonthink --env BIBLIOGRAPHY_JSON=/path/to/bibliography.json -- npx -y github:TomBener/devonthink-mcp配置
克劳德桌面
添加到您的Claude Desktop配置(~/Library/Application Support/Claude/claude_desktop_config.json):
{
"mcpServers": {
"devonthink": {
"command": "npx",
"args": ["-y", "github:TomBener/devonthink-mcp"],
"env": {
"BIBLIOGRAPHY_JSON": "/path/to/bibliography.json"
// "BIBLIOGRAPHY_BIB": "/path/to/bibliography.bib"
}
}
}
}VS Code
添加到您的VS代码MCP设置(~/Library/Application Support/Code/User/mcp.json):
{
"servers": {
"devonthink": {
"command": "npx",
"args": ["-y", "github:TomBener/devonthink-mcp"],
"env": {
"BIBLIOGRAPHY_JSON": "/path/to/bibliography.json"
// "BIBLIOGRAPHY_BIB": "/path/to/bibliography.bib"
}
}
}
}实现细节
- 使用JXA(JavaScript for Automation)通过AppleScript API控制DEVONthink
- 所有工具输入都使用Zod模式进行验证,以确保安全性和清晰度
- 返回所有工具输出的结构化JSON
- 对所有操作实施稳健的错误处理
- 包括使用Vitest的全面测试
看 CLAUDE.md 获取完整的文档、工具开发指南和API参考资料。
参考文献元数据查找
存储在DEVONthink中的书目附件可以与导出的书目元数据相匹配。MCP服务器检查JSON和BibTeX导出,当两者都存在时,它更喜欢JSON。
- 将您的参考书目库(或子集)导出到
.json或.bib在Zotero。
- 在启动服务器之前,通过环境变量将服务器指向导出(使用Claude的MCP配置或shell):
export BIBLIOGRAPHY_JSON="/path/to/bibliography.json"
export BIBLIOGRAPHY_BIB="/path/to/bibliography.bib"- 只提供一个文件是可以的——服务器会检测您是否提供了 .json 或 .bib 路径并自动使用它。 - 如果没有配置元数据文件,该工具将返回一个信息错误,以便您更正设置。
- 打电话给
get_bib_metadata该工具具有Finder路径或任何支持的DEVONthink标识符。该工具返回匹配的参考书目条目(包括引用关键字、字段和匹配的属性),并公开citationKey/bibliographyId在顶层,并简要介绍metadataSummaryLLM提示的字符串。如果找不到匹配项,响应将列出已检查的文件。
调用示例:
{
"uuid": "7F8C5A5B-1234-5678-ABCD-9876543210EF"
}