使用说明
黑曜石任务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 /projects
Claude桌面配置:
{
"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许可证