关于 TriliumNext Notes' MCP Server
TriliumNext Notes' MCP Server 是面向 TriliumNext Notes 的 MCP 服务,通过 ETAPI 让 MCP 客户端搜索、读取、创建和修改笔记及属性。项目目前为原型,主要面向开发者使用,文档中建议使用前备份笔记。
主要功能
- 01搜索笔记与按标题解析笔记 ID
- 02读取笔记内容并支持正则提取
- 03创建、更新、移动和删除笔记
- 04读取与管理笔记属性(labels 和 relations)
- 05通过 PERMISSIONS 控制读写权限
适用场景
- 01让 AI 助手查找近期编辑过的笔记
- 02向工作日志追加当天内容
- 03批量整理笔记属性或子笔记结构
MCP 相关
该项目是 MCP 服务,向 MCP 客户端暴露搜索、笔记读写和属性管理等工具。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
TriliumNext Notes 的 MCP 服务
⚠️ 免责声明:这是为 https://github.com/TriliumNext/Notes/issues/705 制作的原型。仅建议开发者使用。使用此工具前,请备份你的 Trilium 笔记。 ⚠️
用于 TriliumNext Notes 的模型上下文协议服务。此服务提供工具,让你通过 MCP 与自己的 Trilium Notes 实例交互。你可以将此 MCP 与 triliumnext-skills 搭配使用。
此外,如果你希望同时将 Trilium 实例备份到多个云存储服务提供商,例如 cloudflare R2、AWS S3 和 google drive,请访问: https://github.com/tan-yong-sheng/trilium-backup
可供推荐的替代方案:
快速开始
请先设置环境变量:
TRILIUM_API_URL(默认值:http://localhost:8080/etapi)TRILIUM_API_TOKEN(必需,可在 Trilium Notes 设置中获取)PERMISSIONS(可选,默认值为 'READ;WRITE'。READ 授予对search_notes、get_note、resolve_note_id和read_attributes的访问权限;WRITE 授予对create_note、update_note、delete_note和manage_attributes的访问权限)VERBOSE(可选,默认值为 'false';若设为 true,则会输出详细的调试日志)
安装
以下是此 MCP 在不同 MCP 客户端(例如 Claude Desktop、Claude Code、Cursor、Cline 等)中的安装指南。
Claude Desktop
添加到 Claude Desktop 配置中:
{
"mcpServers": {
"triliumnext-mcp": {
"command": "npx",
"args": ["triliumnext-mcp"],
"env": {
"TRILIUM_API_URL": "http://localhost:8080/etapi",
"TRILIUM_API_TOKEN": "<YOUR_TRILIUM_API_TOKEN>",
"PERMISSIONS": "READ;WRITE"
}
}
}
}
Claude Code
claude mcp add triliumnext-mcp \
-e TRILIUM_API_URL=http://localhost:8080/etapi \
-e TRILIUM_API_TOKEN=<YOUR_TRILIUM_API_TOKEN> \
-e PERMISSIONS='READ;WRITE' \
-- npx triliumnext-mcp
注意:按如下方式更新 ~\.claude\settings.json,将 MCP 启动超时时间延长至 1 分钟,并将 MCP 工具执行超时时间延长至约 5 分钟:
{
"env": {
"MCP_TIMEOUT": "60000",
"MCP_TOOL_TIMEOUT": "300000"
}
}
Cursor
前往:Settings -> Cursor Settings -> MCP -> Add new global MCP server
建议将以下配置粘贴到 Cursor 的 ~/.cursor/mcp.json 文件中。你也可以在项目文件夹中创建 .cursor/mcp.json,将其安装到特定项目中。详情请参阅 Cursor MCP 文档。
{
"mcpServers": {
"triliumnext-mcp": {
"command": "npx",
"args": ["triliumnext-mcp"],
"env": {
"TRILIUM_API_URL": "http://localhost:8080/etapi",
"TRILIUM_API_TOKEN": "<YOUR_TRILIUM_API_TOKEN>",
"PERMISSIONS": "READ;WRITE"
}
}
}
}
Cline
Cline 使用 JSON 配置文件管理 MCP 服务。若要集成提供的 MCP 服务配置:
- 打开 Cline,点击顶部导航栏中的 MCP Servers 图标。
- 选择 Installed 选项卡,然后点击 Advanced MCP Settings。
- 在 cline_mcp_settings.json 文件中添加以下配置:
(i) 使用 Google AI Studio Provider
{
"mcpServers": {
"timeout": 300,
"type": "stdio",
"triliumnext-mcp": {
"command": "npx",
"args": ["triliumnext-mcp"],
"env": {
"TRILIUM_API_URL": "http://localhost:8080/etapi",
"TRILIUM_API_TOKEN": "<YOUR_TRILIUM_API_TOKEN>",
"PERMISSIONS": "READ;WRITE"
}
}
}
}
其他 MCP 客户端
此服务使用 stdio 传输,并遵循标准 MCP 协议。运行以下命令即可将其集成到任何兼容 MCP 的客户端:
npx triliumnext-mcp
使用 Docker 运行 MCP(测试版)
使用 GitHub Container Registry 中的预构建映像
拉取并运行最新映像:
docker pull ghcr.io/tan-yong-sheng/triliumnext-mcp:latest
然后,将以下配置用于你的 MCP: (注意:请记得在此处修改 TRILIUM_API_URL 和 TRILIUM_API_TOKEN)
{
"mcpServers": {
"triliumnext-mcp-docker": {
"type": "stdio",
"command": "docker",
"args": [
"run",
"--rm",
"-i",
"-e",
"TRILIUM_API_URL",
"-e",
"TRILIUM_API_TOKEN",
"-e",
"PERMISSIONS",
"-e",
"VERBOSE",
"ghcr.io/tan-yong-sheng/triliumnext-mcp:latest"
],
"env": {
"TRILIUM_API_URL": "https://trilium:8080/etapi",
"TRILIUM_API_TOKEN": "<YOUR_TRILIUM_API_TOKEN>",
"PERMISSIONS": "READ;WRITE",
"VERBOSE": "false"
}
}
}
}
可用工具
此服务提供以下笔记管理工具:
搜索与发现工具
search_notes- 支持全面筛选的统一搜索,包括关键词搜索、日期范围、字段专属搜索、属性搜索、笔记属性、基于模板的搜索、笔记类型筛选、MIME 类型筛选和层级导航。resolve_note_id- 根据笔记标题查找笔记 ID。这是获取笔记 ID 并将其用于其他工具的必备工具。list_children_notes- 使用确定性搜索查询列出父笔记的直接子笔记。返回按创建日期和标题排序的子笔记摘要。
笔记管理工具
get_note- 按 ID 检索笔记及其内容。也可配合正则表达式,从内容中提取特定模式。create_note- 创建新笔记。支持 10 种笔记类型,并可在同一步骤中创建属性(标签和关系)。update_note- 更新笔记的标题或内容。需要指定mode('overwrite'或'append')来设置更新类型,并提供expectedHash以防止冲突。move_note- 将笔记移动到新的父文件夹。仅当笔记有多个父分支时才使用branchId。patch_note- 使用基于模式的补丁(css、xpath、line、fragment、literal、regex)进行批量定点编辑,并进行原子验证。字面文本补丁可使用occurrence和可选的context来定位重复文本。delete_note- 永久删除笔记(⚠️ 无法撤销)。
属性管理工具
read_attributes- 读取指定笔记的所有属性(标签和关系)。manage_attributes- 创建、更新或删除笔记上的属性。支持批量创建。
📖 详细用法:请参阅笔记管理指南,了解版本控制策略和最佳实践。
示例查询
搜索与发现
- “查找我从 2024 年初至今最近创建的 10 条关于 ‘n8n’ 的笔记”
- “显示我在过去 7 天内编辑过的笔记”
- “列出 ‘n8n Template’ 文件夹下的所有笔记,包括子文件夹”
- “列出此文件夹的直接子笔记”
内容管理
- “将今天的更新添加到我的工作日志”(使用
update_note和mode: 'append') - “将此草稿替换为最终版本”(使用
update_note和mode: 'overwrite') - “在我的日记文件夹中创建一条名为 ‘Weekly Review’ 的新笔记”
📖 更多示例:请参阅用户查询示例,了解全面的使用场景。
文档
- Docker 部署指南 - 使用 Docker 运行的完整指南
- 笔记管理指南 - 通过版本控制安全地编辑内容
- 笔记补丁指南 - 对笔记进行批量定点编辑
- 移动笔记指南 - 在不同父级之间移动笔记
- 列出子笔记指南 - 列出直接子笔记
- 用户查询示例 - 自然语言查询示例
- 搜索查询示例 - 高级搜索语法和筛选条件
开发
如果你想为服务做出贡献或对其进行修改:
# Clone the repository
git clone https://github.com/tan-yong-sheng/triliumnext-mcp.git
# Install dependencies
npm install
# Build the server
npm run build
# For development with auto-rebuild
npm run watch
贡献
欢迎贡献!如果你想改进服务,请先熟悉官方的 Trilium Search DSL 文档以及我们的内部搜索查询示例,了解搜索查询的构造方式。
欢迎提交问题或拉取请求。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。