DevTask Mcp
The DevTask MCP server provides a comprehensive set of tools to manage development tasks, enabling agents to create, list, retrieve, update, and identify tasks ready for execution.
List tasks (
list_dev_tasks): Browse and filter tasks by status (待评估,待排期,进行中,已搁置,已完成), priority (P0–P3), type (问题,功能需求,优化,技术债), agent-readiness flag, and soft-deletion status — with pagination support (up to 20 per page).Get a task by ObjectID (
get_dev_task): Fetch full details of a single task using its 24-hex ObjectId, including spec fields (acceptance_criteria,constraints,context_pointers), dependency info, and slug.Get a task by slug (
get_dev_task_by_slug): Fetch a single task using its human-readable slug (e.g.task-42) — the preferred way to reference tasks in conversation and UI.Create a task (
create_dev_task): Create a new task with fields like title, type, priority, scope, description, due date, acceptance criteria, constraints, context pointers, agent-claimable flag (for_agent), and dependency list (blocked_by). New tasks start at status待评估.Update a task (
update_dev_task): Partially update any field of an existing task (by ObjectId or slug), including status transitions, priority changes, dependency rewrites, and toggling agent-claimable status.Get frontier tasks (
get_frontier_tasks): Retrieve the next tasks ready for agent execution — tasks that are agent-claimable (for_agent=true), in backlog (待排期), and have no unfinished blockers — ordered by sort priority. Used when an agent is asked to "do the next task".
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@DevTask Mcpinvestigate the need for a search feature and create a task"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
DevTaskMcp
Agent 原生的 dev 任务看板 — 把需求调研成规格清晰的任务,端到端执行并验证验收条件。基于 Pocock 的 frontier 模式,含 spec/slug/dependency 字段和 scope 分类。
技能列表
技能 | 用途 | 触发 |
| 初始化项目:检查环境、写 CLAUDE.md 引导、可选落库 | 首次引入 devtask / "初始化 devtask" / "setup devtask" |
| 需求 → 落库任务,全规模路由:单点修复 / 批量分类 / Keep-Kill-Pivot / spec+subtasks | 用户说"我想做个…" / "加个功能" / "修个 bug" / "plan this out" |
| 端到端执行任务,自检验收条件,verify 通过后标记完成 | 用户说"做 task-N" / "执行任务" / "work on the next task" |
| 验收条件 + 四视角清理审查 + 正确性审查,能修就修 | 用户说"review task-N" / "verify task-N" / "验收 task-N" |
Related MCP server: roadmap-skill
安装
Claude Code Plugin(推荐)
单 plugin 包含 MCP server + 3 个技能,一次安装即可:
# 添加市场
claude plugins marketplace add KanoCifer/DevTaskMcp
# 安装插件
claude plugins install devtask@devtask安装后 3 个技能均自动可用。MCP server 走 .mcp.json 定义的远程 URL —— 部署后把 .mcp.json 里的域名和 token 换成真实值,本地即通过远程实例提供服务。
或在 Claude 对话框中交互完成:
/plugin marketplace add KanoCifer/DevTaskMcp
/plugin install devtask@devtask本地开发加载:
claude --plugin-dir /path/to/DevTaskMcp默认通过 uv run 启动 server,自动解析依赖。如果机器上没有 uv,参考下方「无 uv」章节。
手动安装(不用 plugin)
把技能目录链接到 Claude Code 的技能路径,并手动配置 MCP server:
# 1. 配置 MCP server(添加到 ~/.claude.json 或项目 .mcp.json,指向已部署的远程实例)
# "type": "http",
# "url": "https://你的域名/mcp/",
# "headers": { "Authorization": "Bearer 你的MCP_AUTH_TOKEN" }
# 2. 链接技能目录
# 作为 user-level 技能(全局可用)
ln -s /path/to/DevTaskMcp/skills/devtask-setup ~/.claude/skills/devtask-setup
ln -s /path/to/DevTaskMcp/skills/devtask ~/.claude/skills/devtask
ln -s /path/to/DevTaskMcp/skills/devtask-doit ~/.claude/skills/devtask-doit
ln -s /path/to/DevTaskMcp/skills/devtask-review ~/.claude/skills/devtask-review
# 或作为 project-level 技能(放在项目 .claude/skills/ 下)
mkdir -p .claude/skills
ln -s /path/to/DevTaskMcp/skills/devtask-setup .claude/skills/devtask-setup
ln -s /path/to/DevTaskMcp/skills/devtask .claude/skills/devtask
ln -s /path/to/DevTaskMcp/skills/devtask-doit .claude/skills/devtask-doit
ln -s /path/to/DevTaskMcp/skills/devtask-review .claude/skills/devtask-review注意:手动安装时技能不带有 devtask: 命名空间前缀。
无 uv
如果机器上没有 uv,两种方式准备 Python 环境:
方式 A — 初始化脚本(推荐):
scripts/setup.sh # 创建 .venv 并安装依赖
# 或指定解释器:
PYTHON=python3.11 scripts/setup.sh方式 B — 手动 pip install:
python3 -m venv .venv
.venv/bin/pip install -e .然后在 .mcp.json 中指向远程实例(同「手动安装」第 1 步的 URL 配置)。
远程部署(streamable-http)
devtask_mcp.server 以 streamable-http transport 运行:一个长驻进程服务所有调用方,供外部 agent(Claude Code remote、Cursor 等)通过 URL 调用。
1. 构建并启动(本机验证)
cp .env.example .env # 填 DEVTASK_API_KEY、MCP_AUTH_TOKEN
docker compose up --buildcompose 只把端口绑到 127.0.0.1:8003 —— 服务不直接暴露公网。
2. 反向代理 + TLS(Nginx/Caddy 等,自行部署)
把 127.0.0.1:8003 转发到 https://你的域名/mcp/(streamable-http 的标准端点路径是 /mcp/)。请求头必须原样透传,尤其是 Authorization 和 streamable-http 需要的 Mcp-Session-Id。
3. 客户端连接
{
"mcpServers": {
"devtask": {
"type": "http",
"url": "https://你的域名/mcp/",
"headers": { "Authorization": "Bearer 你的MCP_AUTH_TOKEN" }
}
}
}
MCP_AUTH_TOKEN留空时服务不启用应用层鉴权 —— 生产务必设置,并在反代层额外加 IP 白名单/限流。
配置
cp .env.example .env
# 填写 DEVTASK_API_KEY(必填)和 DEVTASK_API_BASE(可选)DEVTASK_API_KEY 是 kanocifer-chat API 的 Bearer 为空时 server 启动会报错。
远程部署时还需配置:
MCP_AUTH_TOKEN— 外部 MCP 客户端调用时携带的 Bearer token。留空则关闭应用层鉴权(仅本地/内网)。MCP_HOST/MCP_PORT— HTTP 监听地址与端口,默认0.0.0.0:8003。
使用
技能以 plugin 名命名空间:
/devtask:devtask-setup # 初始化:检查环境 + 写 CLAUDE.md 引导
/devtask:devtask # 需求 → 落库任务(自动按规模路由)
/devtask:devtask-doit # 领取 frontier 最前排任务执行
/devtask:devtask-doit task-42 # 执行指定 slug 的任务
/devtask:devtask-review task-42 # 验收条件 + 四视角代码审查工作流程
/devtask:devtask-setup ← 首次:初始化 + 写引导
│
▼
需求描述
│
▼
/devtask:devtask
│ 按规模路由:单点修复 / 批量分类 / spec+subtasks → 创建任务
▼
/devtask:devtask-doit [task-N]
│ 端到端执行 → 自检验收条件 → /devtask:devtask-review
▼
/devtask:devtask-review [task-N]
│ 验收条件 + 四视角清理审查 + 正确性审查
▼
标记已完成任务模型(v3 — Task Document)
v3 把所有长文本统一到一个 Task Document。detail 是唯一长文本字段,
正文必须使用固定章节:Goal / Plan / Acceptance Criteria / Constraints /
Context Pointers(外加 Decisions / Out of Scope)。其它结构化字段保持不变。
MCP 工具
工具 | 用途 |
| 内联参数创建任务,长文放 |
| 修改状态字段 + 可选 detail 正文; |
|
|
| 永远返回 summary 记录 |
视图
view | 返回内容 |
| 结构化字段,不包含 detail |
| 原始任务对象(含完整 detail) |
默认 view=summary,防止 agent 误把长文拉进上下文。
字段表
字段 | 必填 | 含义 | 形式 |
| 自动 |
| — |
| 是 | 一行摘要,动词开头 | plain |
| 是 |
| — |
| 是 |
| — |
| 是 |
| — |
| 否 |
| — |
| 否 | 子任务归属的 spec slug | — |
| 否 | ISO-8601 截止日期 | — |
| 否 | 同层前置依赖 | — |
| 是 | Agent 可认领标志 | — |
| 否 | Task Document 渲染后的 Markdown | Markdown |
枚举值使用 Go 后端期望的中文字面量——不要使用英文键。详细 Task Document
规范见 docs/task-document-v1.md。
目录结构
DevTaskMcp/
├── .claude-plugin/
│ ├── plugin.json # Plugin 清单(元数据 + MCP server 引用)
│ └── marketplace.json # 市场发布配置(3 个技能)
├── .mcp.json # MCP server 定义(plugin 自动加载)
├── skills/
│ ├── devtask-setup/SKILL.md # 初始化:检查环境 + 写 CLAUDE.md 引导
│ ├── devtask/references/grill.md # frontier 访谈协议(渐进披露)
│ ├── devtask/SKILL.md # 需求 → 落库任务(全规模路由)
│ ├── devtask-doit/SKILL.md # 端到端执行 + verify 门控
│ └── devtask-review/SKILL.md # 验收条件 + 四视角清理审查 + 正确性审查
├── src/devtask_mcp/ # MCP server Python 包
│ ├── __init__.py
│ ├── client.py # HTTP client,信封剥离
│ ├── models.py # Pydantic 模型 + 中文枚举
│ └── server.py # FastMCP,6 个工具注册(已 slug 化)
├── Dockerfile # 容器镜像(uv slim + 锁文件)
├── docker-compose.yml # 单服务编排,端口回环绑定 8003
├── pyproject.toml
├── CLAUDE.md
└── README.md架构备注
边界剥离信封: Go 后端用
{code, message, data}包裹响应;client._unwrap在边界剥离,MCP 工具不会浪费 token 在包装字段上。错误原样传播: 非 2xx 或
code != 0抛出DevTaskAPIError,错误信息原样呈现给 agent。per_page上限 20,无论调用方传入多大值。HTTP 超时: 15.0 秒。
单例长连接 client 在模块级别——streamable-http 下单个长驻进程服务所有调用方,client 无会话状态,共享安全。
Slug 是规范的人类 ID——在所有 UI、对话和 MCP 工具引用中使用
task-N。后端已全面 slug 化,不再接受 ObjectID 输入。kind/parent_slug语义分离:parent_slug承载子→父的结构归属(devtask_list_children走此索引),blocked_by只承载同层前置依赖(执行顺序)。
License
Available Tools
6 toolscreate_dev_taskA
Create a new dev-task. New tasks start at status '待评估'.
返回体里包含 slug (如 "task-1"),后续对话 / 看板 UI / MCP tool 引用 该任务时直接用 slug,比 ObjectID 可读得多。
Args: title: Task title (required). task_type: One of '问题', '功能需求', '优化', '技术债'. priority: One of 'P0 紧急', 'P1 高', 'P2 中', 'P3 低'. scope: Task scope in "<层>-<技术>" format (required). Examples: '前端-React', '后端-Go', 'AI-LangChain', 'Docs-用户手册', '通用'. Free-form string — not a closed enum. description: Short description (optional). detail: Long-form detail (optional). due_date: ISO-8601 datetime string, e.g. '2026-09-01T00:00:00'. Pass whatever your JSON client gives; the backend parses RFC-3339. acceptance_criteria: Conditions that must be met for this task to be considered done. Agent uses these as a self-check before resolve. constraints: Hard boundaries — files not to touch, tech stack requirements, etc. Agent treats these as non-negotiable. context_pointers: Paths to relevant code / docs / ADRs, e.g. 'internal/auth/, docs/adr/0003'. Saves agent a file-discovery pass. for_agent: When True, mark this task as ready for agent execution. Default False (human task). blocked_by: List of task IDs that must be done before this one. Pass [] when no dependencies.
| Name | Required | Description | Default |
|---|---|---|---|
| scope | Yes | ||
| title | Yes | ||
| detail | No | ||
| due_date | No | ||
| priority | Yes | ||
| for_agent | No | ||
| task_type | Yes | ||
| blocked_by | No | ||
| constraints | No | ||
| description | No | ||
| context_pointers | No | ||
| acceptance_criteria | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Although no annotations are provided, the description discloses the initial status and the return of a 'slug' for referencing. It explains the semantics of each parameter, but lacks information on auth requirements or side effects beyond creation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with a clear summary first, then parameter details. It is slightly verbose but each section adds value, and the bullet-point format aids readability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the high parameter count (12) and no output schema provided, the description covers most aspects well, including return value (slug) and parameter semantics. It could mention the full response structure, but it is largely sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description bears the full burden. It provides detailed explanations, format examples (e.g., 'scope: <layer>-<tech>', 'due_date: ISO-8601'), and special guidance for fields like 'acceptance_criteria', 'constraints', and 'context_pointers', significantly aiding correct usage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Create' and the resource 'dev-task', and specifies that new tasks start at status '待评估'. This distinguishes it from sibling tools like update_dev_task or get_dev_task.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use or when-not-to-use guidance is provided. While the purpose is clear, there is no mention of alternatives or context that would help an agent decide between this and sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_dev_taskA
Fetch a single dev-task by its ObjectID.
The response includes spec fields (acceptance_criteria, constraints, context_pointers), dependency info (for_agent, blocked_by), and slug. Read them before starting work. context_pointers short-circuits file discovery by telling you exactly which paths are relevant. Use the slug for all human-facing references (e.g. "work on task-42").
Args: task_id: The task's ObjectId hex string (24 hex chars). Use get_dev_task_by_slug if you have a slug like "task-42".
| Name | Required | Description | Default |
|---|---|---|---|
| task_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Describes response contents (spec fields, dependency info, slug) and explains context_pointers short-circuits file discovery. No contradictions with annotations (none provided).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Well-structured: main action, response details, parameter info. No fluff. Front-loaded with essential purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Output schema exists, so return description not needed. Covers purpose, parameter format, usage guidance, and response contents. Fully sufficient for a fetch-by-ID tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, but description explains task_id as 'ObjectId hex string (24 hex chars)' and directs to alternative tool for slugs, adding meaning beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Explicitly states 'Fetch a single dev-task by its ObjectID.' Distinct from sibling 'get_dev_task_by_slug' which uses slug.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Directly tells when to use this tool (when you have ObjectID) and when to use alternative (slug). Provides usage advice: read spec fields, use context_pointers.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_dev_task_by_slugA
Fetch a single dev-task by its slug (task-1, task-2...).
Slug 是任务的人类可读短标识,比 ObjectID 更适合口头引用、看板 UI 和 MCP 对话。其余字段同 get_dev_task。
Args: slug: The task slug, e.g. "task-42".
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of behavioral disclosure. It mentions the result is the same as 'get_dev_task', implying it is a read operation, but does not explicitly confirm read-only nature or disclose any side effects, rate limits, or error conditions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and front-loaded with the primary function. It uses efficient language, though the bilingual mix (English and Chinese) may slightly reduce clarity for some users.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple tool (1 required parameter) and presence of an output schema, the description covers purpose, parameter usage, and relationship to sibling 'get_dev_task'. It lacks explicit error handling or edge-case documentation, but is overall sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0% description coverage, but the description adds meaning by providing an example format ('task-42') and context explaining that slug is a human-readable short identifier. This compensates for the lack of schema description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Fetch a single dev-task by its slug', using a specific verb and resource. It distinguishes from sibling 'get_dev_task' by specifying the use of slug instead of ID, and explains the slug's advantage over ObjectID.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains that slug is a human-readable short identifier better for oral references, kanban UI, and MCP conversations, guiding when to use this tool over alternatives. However, it does not explicitly state when not to use it or provide alternative tools by name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_frontier_tasksA
Return tasks the agent can claim next — Pocock's frontier.
Frontier = tasks that are:
marked for_agent=true
in status '待排期' (backlog)
have no unfinished blockers (blocked_by is empty)
not soft-deleted
Ordered by sort_order ASC, then created_at DESC. Use this as your first call when the user says "do the next task" — it tells you exactly what's ready to be worked.
Args: limit: Max tasks to return (default 10).
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the burden. It explains the frontier conditions, ordering (sort_order ASC, then created_at DESC), and that tasks are not soft-deleted. It stops short of mentioning auth or rate limits, but for a read tool this is adequate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, front-loaded with the main purpose, and every sentence adds value. It uses bullet points for clarity and ends with an Args line. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (filtered list with four conditions) and the existence of an output schema, the description covers all essential aspects: what it does, when to use, criteria, ordering, and parameter. The agent can fully understand how to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The only parameter, 'limit', is described as 'Max tasks to return (default 10).' The schema provides type and default, but the description adds context on its purpose. Schema coverage is 0% because no inline schema, but the description compensates.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns tasks the agent can claim next, specifically the 'frontier', and defines the four criteria that constitute the frontier. It distinguishes from sibling tools by focusing on ready-to-work tasks.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says 'Use this as your first call when the user says "do the next task"', providing clear guidance on when to use. It does not mention when not to use, but the positive instruction is strong.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_dev_tasksA
List dev-tasks from your kanocifer-chat board.
Args: status: Filter by lifecycle status. One of: '待评估', '待排期', '进行中', '已搁置', '已完成'. priority: Filter by urgency. One of: 'P0 紧急', 'P1 高', 'P2 中', 'P3 低'. task_type: Filter by kind. One of: '问题', '功能需求', '优化', '技术债'. for_agent: When True, return only tasks ready for agent execution. When False, return only tasks for human. None = no filter. include_deleted: When True, soft-deleted tasks are also returned. page: Page number (1-based). per_page: Items per page, capped at 20.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| status | No | ||
| per_page | No | ||
| priority | No | ||
| for_agent | No | ||
| task_type | No | ||
| include_deleted | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses filter parameters, pagination (page, per_page with a cap of 20), and flags for agent and deleted tasks. While it doesn't mention sorting or result structure, the output schema exists to cover return values. Overall, the description provides reasonable behavioral insight.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the purpose statement and then lists each parameter with explanations. It is somewhat lengthy but contains no redundant information. The structure is clear and easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of 7 parameters and the presence of an output schema, the description covers all parameter semantics thoroughly. It does not mention expected response format or ordering, but the output schema likely provides that. The description is sufficient for an agent to invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description adds essential meaning beyond the schema. It explicitly lists all enum values for status, priority, and task_type, explains the boolean filters for_agent and include_deleted, and clarifies pagination constraints. This adds significant value for correct invocation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('List dev-tasks') and the resource ('your kanocifer-chat board'). It is distinct from sibling tools like create, get, update, etc., providing a specific verb+resource combination.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not explicitly state when to use this tool versus alternatives like get_dev_task or get_frontier_tasks. However, the name 'list' implies retrieval of multiple items, and the detailed filters suggest it's for filtered aggregation. No exclusion or alternative guidance is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_dev_taskA
Partially update a dev-task. Omitted fields are left unchanged.
Args: task_id: The task's ObjectId hex string or slug (task-N). title: New title (optional). description: New description (optional). detail: New detail (optional). task_type: One of '问题', '功能需求', '优化', '技术债'. priority: One of 'P0 紧急', 'P1 高', 'P2 中', 'P3 低'. scope: Free-form "<层>-<技术>" string (see create_dev_task docs). status: One of '待评估', '待排期', '进行中', '已搁置', '已完成'. sort_order: Integer sort key (optional). due_date: ISO-8601 datetime string. acceptance_criteria: Conditions for considering this task done. constraints: Hard boundaries (files / tech stack / etc). context_pointers: Paths to relevant code / docs / ADRs. for_agent: Toggle agent-claimable flag. blocked_by: Replace the dependency list entirely. Pass [] to clear.
| Name | Required | Description | Default |
|---|---|---|---|
| scope | No | ||
| title | No | ||
| detail | No | ||
| status | No | ||
| task_id | Yes | ||
| due_date | No | ||
| priority | No | ||
| for_agent | No | ||
| task_type | No | ||
| blocked_by | No | ||
| sort_order | No | ||
| constraints | No | ||
| description | No | ||
| context_pointers | No | ||
| acceptance_criteria | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description discloses the partial update behavior. It explicitly notes for blocked_by that the list is replaced entirely and can be cleared with []. No mention of authorization or side effects, but for a straightforward update, this is sufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is organized as a docstring with an Args list, front-loading the core behavior. It is somewhat lengthy due to the number of parameters, but each line is necessary given the schema lacks descriptions. It could be slightly more concise but remains clear.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 15 parameters and a required one, the description covers all parameters with enough detail. There is an output schema, so return values don't need explanation. No explicit error handling or prerequisites, but it's adequate for a partial update tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description fully compensates by listing each parameter with meaningful descriptions, including enum values for task_type, priority, and status. It provides additional details like 'slug (task-N)' for task_id and 'replace the dependency list entirely' for blocked_by.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Partially update a dev-task' with a specific verb and resource. It distinguishes from sibling tools like create_dev_task, get_dev_task, and list_dev_tasks, as update is the only mutation tool for existing tasks.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains that omitted fields are left unchanged, implying a PATCH-like usage. It doesn't explicitly state when to use this tool versus alternatives, but the context of siblings makes it clear. The list of parameters indicates that only task_id is required, guiding the agent on minimal input.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
6 tool updates
v0.1.0- First observed
create_dev_task - First observed
get_dev_task - First observed
get_dev_task_by_slug - First observed
get_frontier_tasks - First observed
list_dev_tasks - First observed
update_dev_task
TDQS
All six tools have clearly distinct purposes: create, get by ObjectID, get by slug, get frontier tasks, list with filters, and update. No functional overlap.
All tool names follow a consistent verb_noun snake_case pattern (e.g., create_dev_task, get_dev_task_by_slug, list_dev_tasks), making it easy to predict behavior.
Six tools strike a good balance, covering core CRUD plus a specialized frontier query without being too many or too few for a task management MCP server.
The tools cover creation, reading (multiple variants), listing, and updating. The only notable gap is the absence of a dedicated delete tool, though soft-delete is supported via list filtering.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
- tasklixOAuthdev.tasklix
The shared task board your autonomous agent fleet can read and write.
Task management for teams building with AI agents. Agents claim tasks and report progress.
Task & board management for AI agents + humans. Kanban, comments, digests via MCP.
AI-native task management: list, create, update and archive tasks with rich context for AI agents
1
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables AI agents to manage projects, epics, and tasks with atomic locking, real-time dashboard, and multi-agent coordination.MIT
- AlicenseBqualityDmaintenanceEnables AI agents and humans to collaboratively plan and manage tasks with a shared kanban and dependency graph, all stored locally.312677MIT
- AlicenseBqualityBmaintenanceEnables AI agents to manage kanban boards with tasks, including creating boards, items, moving between columns, and searching.81MIT
- AlicenseNot gradedqualityBmaintenanceEnables AI agents to manage Kanban tasks, boards, teams, and checklists via natural language, with full CRUD operations and live updates.163MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/KanoCifer/DevTaskMcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server