黑曜石任务MCP服务器
](https://badge.fury.io/js/%40jfim%2Fobsidian-tasks-mcp)
用于从markdown文件中提取和查询黑曜石任务的模型上下文协议(MCP)服务器。旨在通过MCP协议与Claude合作,实现人工智能辅助任务管理。
特性
- 使用与黑曜石任务插件兼容的格式从黑曜岩标记文件中提取任务
- 确定已完成和待完成的任务
- 访问任务元数据,包括:
- 状态(完成/未完成) - 截止日期 - 计划日期 - 开始日期 - 创建日期 - 标签 - 优先级 - 重复规则
工具
此MCP服务器提供以下工具:
list_all_任务
从目录中的markdown文件中提取所有任务,递归扫描子文件夹。
输入参数:
path(string,可选):扫描markdown文件的目录。如果未指定,则默认为第一个允许的目录。
退货: 任务对象的JSON数组,每个对象包含:
{
"id": "string", // Unique identifier (filepath:linenumber)
"description": "string", // Full text description of the task
"status": "complete" | "incomplete", // Task completion status
"filePath": "string", // Path to the file containing the task
"lineNumber": "number", // Line number in the file
"tags": ["string"], // Array of tags found in the task
"dueDate": "string", // Optional - YYYY-MM-DD format
"scheduledDate": "string", // Optional - YYYY-MM-DD format
"startDate": "string", // Optional - YYYY-MM-DD format
"createdDate": "string", // Optional - YYYY-MM-DD format
"priority": "string", // Optional - "high", "medium", or "low"
"recurrence": "string" // Optional - recurrence rule
}查询任务
根据黑曜石任务查询语法搜索任务。应用多个筛选器来查找匹配的任务。
输入参数:
path(string,可选):扫描markdown文件的目录。如果未指定,则默认为第一个允许的目录。query(string,必填):使用黑曜石任务查询语法的查询字符串。每条线都被视为一个过滤器。
退货: 与查询匹配的任务对象的JSON数组,其结构与 list_all_tasks.
支持的查询语法:
- 状态筛选器:
- done -显示已完成的任务 - not done -显示未完成的任务
- 日期筛选器(到期):
- 语义说明: due today 完全匹配(只有今天到期的任务)。使用范围运算符包含较早/较晚的日期。 - due today -今天到期的任务 - due before today -今天之前到期的任务(不包括) - due after today -今天之后到期的任务(不包括) - due on or before today -今天或更早(含)到期的任务 - due on or after today -今天或以后(含)到期的任务 - due on YYYY-MM-DD 或 due YYYY-MM-DD -在特定日期到期的任务 - due before YYYY-MM-DD -日期前到期的任务(不包括) - due after YYYY-MM-DD -日期后到期的任务(不包括) - due on or before YYYY-MM-DD -在某个日期(包括首尾两天)之前到期的任务 - due on or after YYYY-MM-DD -日期(含)当天/之后到期的任务 - no due date -没有截止日期的任务 - has due date -有截止日期的任务
- 开始日期筛选器:
- 语义说明: starts today 完全匹配(仅今天开始的任务)。使用范围运算符包含较早/较晚的日期。 - starts today -今天开始的任务 - starts on YYYY-MM-DD 或 starts YYYY-MM-DD -从特定日期开始 - starts before YYYY-MM-DD -日期之前开始(不包括) - starts after YYYY-MM-DD -日期后开始(不包括) - starts on or before YYYY-MM-DD -开始日期/之前(含) - starts on or after YYYY-MM-DD -开始日期(含) - no start date -没有开始日期的任务 - has start date -有开始日期的任务
- 标签过滤器:
- no tags -没有标签的任务 - has tags -至少有一个标签的任务 - tag includes #tag -带有包含“tag”标签的任务 - tag does not include #tag -没有包含“tag”的标签的任务
- 路径筛选器:
- path includes string -路径包含“string”的文件中的任务 - path does not include string -路径不包含“string”的文件中的任务
- 描述过滤器:
- description includes string -描述包含“字符串”的任务 - description does not include string -描述不包含“字符串”的任务
- 优先级筛选器:
- priority is highest -具有最高优先级的任务 - priority is high -具有高优先级的任务 - priority is medium -中等优先级的任务 - priority is low -低优先级任务 - priority is lowest -优先级最低的任务 - priority is none -没有优先级的任务
示例查询:
not done
due before 2025-05-01
tag include #work这将返回所有在2025年5月1日之前到期的、带有#work标签的未完成任务。
包含OR示例(单行):
due on or before today OR starts on or before today用法
安装
来自npm(推荐):
# Install globally
npm install -g @jfim/obsidian-tasks-mcp
# Or use directly with npx without installing
npx @jfim/obsidian-tasks-mcp /path/to/obsidian/vault来源:
git clone https://github.com/jfim/obsidian-tasks-mcp.git
cd obsidian-tasks-mcp
npm install
npm run build运行服务器
使用npm包(推荐):
# If installed globally
obsidian-tasks-mcp /path/to/obsidian/vault
# Or with npx (no installation required)
npx @jfim/obsidian-tasks-mcp /path/to/obsidian/vault来源:
node dist/index.js /path/to/obsidian/vault测试
要运行测试套件,请执行以下操作:
npm test看 测试.md 有关测试套件的详细信息。
与克劳德一起使用
将此配置添加到支持MCP的Claude客户端:
{
"mcpServers": {
"obsidian-tasks": {
"command": "npx",
"args": [
"@jfim/obsidian-tasks-mcp",
"/path/to/obsidian/vault"
]
}
}
}如果从源代码安装:
{
"mcpServers": {
"obsidian-tasks": {
"command": "node",
"args": [
"/path/to/obsidian-tasks-mcp/dist/src/index.js",
"/path/to/obsidian/vault"
]
}
}
}码头工人
构建Docker镜像:
docker build -t @jfim/obsidian-tasks-mcp .使用Docker运行:
docker run -i --rm --mount type=bind,src=/path/to/obsidian/vault,dst=/projects/vault @jfim/obsidian-tasks-mcp /projectsClaude桌面配置:
{
"mcpServers": {
"obsidian-tasks": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"--mount", "type=bind,src=/path/to/obsidian/vault,dst=/projects/vault",
"@jfim/obsidian-tasks-mcp",
"/projects"
]
}
}
}任务格式
服务器同时支持这两种功能 黑名单任务表情符号格式 和 数据视图格式 用于任务元数据。
- 任务语法:
- [ ] Task description - 已完成任务:
- [x] Task description - 到期日:
- 🗓️ YYYY-MM-DD - 📅 YYYY-MM-DD
- 计划日期:
⏳ YYYY-MM-DD - 开始日期:
🛫 YYYY-MM-DD - 创建日期:
➕ YYYY-MM-DD - 优先:
⏫(高),🔼(中等),🔽(低) - 复发:
🔁 every day/week/month/etc. - 标签:
#tag1 #tag2
示例任务: - [ ] Complete project report 🗓️ 2025-05-01 ⏳ 2025-04-25 #work #report ⏫
许可证
MIT许可证
