Skip to main content
Glama

@outputty/tasks-mcp

一个本地 MCP 服务器,将 outputty 的任务追踪器暴露为类型化工具。依赖图存放在你仓库中的已提交缓存里;每个任务都双向同步到一个 GitHub Issue,并同步到 GitHub Projects 看板。编码代理调用 add_task / list_ready / schedule,而不是通过命令行调用 CLI。

  • 缓存拥有依赖图。 依赖关系无法存在于 GitHub Issue 中,因此权威任务图是一个已提交的文件(.claude/tasks.cache.yaml)。它随仓库一起分发,并在全新克隆后依然存在。

  • 后端是同步目标。 GitHub Issues 承载面向人类的记录(标题、开启/关闭、正文镜像);GitHub Projects 提供看板视图。读取来自缓存,因此永远不会等待 GitHub。

  • 你现有的凭据。 GITHUB_TOKEN,或 gh auth login 已存储的任何内容。无需重新登录。

要求

需求

用途

bun ≥ 1.1

运行服务器(bunx,无需构建步骤)

带有 origin 远程仓库的 GitHub 仓库

服务器每次调用时从中读取 owner/repo

已登录 gh,或已设置 GITHUB_TOKEN

Octokit 使用这些进行认证(REST + GraphQL)

Related MCP server: mcp-server-tasktracker

安装

无需克隆。将服务器添加到项目的 .mcp.json 中,Claude Code 会按需使用 bunx 启动它:

{
  "mcpServers": {
    "tasks": { "command": "bunx", "args": ["-y", "@outputty/tasks-mcp"] }
  }
}

这会运行 stdio 传输。对于长期运行的共享实例,请改为运行 HTTP 服务器:

bunx -y @outputty/tasks-mcp --http        # http://localhost:3917/mcp  (health: /health)
{
  "mcpServers": {
    "tasks": { "type": "http", "url": "http://localhost:3917/mcp" }
  }
}

工具的作用

每个工具都接受 project —— 它操作的仓库的绝对路径 —— 因为服务器没有自己的工作目录。对尚未见过的仓库的首次写入会自动配置 outputty 标签,并在启用时自动配置 Projects 看板。

// add_task — a typed call, so a multi-line brief needs no shell quoting
{
  "project": "/abs/path/to/repo",
  "id": "api",
  "title": "Build the API",
  "deps": ["schema"],
  "scope": ["src/api"],
  "tier": 2,
  "qa": "inline",
  "brief": "turn the contract into a failing test,\nthen the laziest diff",
}

这会将任务记录到已提交缓存中,打开一个标签为 outputty:id:api 的 GitHub issue,并将卡片添加到看板。

// list_ready — the graph engine over the cache
{ "project": "/abs/path/to/repo" }
// -> { "ids": ["schema"], "tasks": [ { "id": "schema", "status": "open", "tier": 3, "qa": "subagent" } ] }

schema 已就绪,而 api 尚未就绪,因为 api 等待 schema。关闭 schemaclose_task)后,api 在下一次调用时就会就绪 —— 读取是缓存本地的,没有 GitHub 索引延迟。

工具

作用

写入

list_ready

开启、已确定、所有依赖已完成

list_planning

草稿中或被构建退回(重新规划)

schedule

将整个计划按依赖层级排列;遇到循环时报错

get_task

单个任务的完整记录

add_task

创建任务(缓存 + issue + 看板)

amend_task

扩大开启任务的范围,或设置其简介

close_task

标记完成(关闭 issue,移动卡片)

sync

将 issue 状态拉取到缓存;将依赖图重新推送到目标

工作原理

   MCP tools    ── stdio (bunx, for Claude Code)  ·  http (hono, standalone)
        │  each call carries { project, branch? }
        ▼
   CACHE  .claude/tasks.cache.yaml   ── the authoritative task model + DEPENDENCY GRAPH (committed)
        │  the pure graph engine (ready / schedule / planning) runs over this
        ▼
   Sync targets (two-way, per representable field)
        ├── GitHub Issues (REST)      title · status(open/closed) · id(label) · body-mirror   [primary]
        └── GitHub Projects v2 (GraphQL)   each task-issue → a board card; status → a column   [best-effort]

权威分离。 缓存拥有依赖图 —— 其他任何东西都无法持有它。GitHub 拥有它能表示的字段:在 UI 中关闭的 issue 会在下一次 sync 时胜出。Issues 是主存储(写入必须落到那里);Projects 是尽力而为(看板小故障只是警告,绝不会丢失任务)。

任务 ↔ issue 映射:

任务字段

Issue 所在位置

id

标签 outputty:id:<id>(稳定键;即使标题被编辑也保持不变)

title / status

issue 标题 / 开启 ↔ 关闭

deps scope brief contract tier qa spec stage attempts

issue 正文中的隐藏 YAML 块(依赖项会镜像显示给读者)

人类在该块下方编写的文本会跨更新保留。

看板(GitHub Projects v2)

每个任务 issue 都会被添加到一个 Projects v2 看板,其 Status 列会跟踪任务(open → Tododone → Done)。默认情况下,服务器会查找或创建一个链接到该仓库的名为 Tasks 的看板;你可以通过 projectNumber 指向现有看板,或完全关闭它。

Projects v2 需要令牌的 project 范围,而 gh 默认不授予该范围 —— 使用 gh auth refresh -s project 添加一次。没有该范围时,看板同步会被跳过并发出警告,任务仍会作为 issue 落地(Projects 是尽力而为)。

# .claude/tasks-mcp.config.yaml   (all optional)
projects: true # set false to disable the board
projectNumber: 7 # target an existing board instead of find/create "Tasks"
board: Tasks # the title to find/create when projectNumber is absent

MCP 传输

仅包含工具的服务器不会发送服务器主动发起的消息。在 stdio 上,它是换行分隔的 JSON-RPC;在 HTTP 上,Streamable HTTP 传输会收敛为一个 JSON-RPC 消息进、一个 JSON 回复出 —— 没有 SSE 流,没有会话 ID。两者都处理 initializetools/listtools/call(以及 pinginitialized 通知)。这就是为什么整个服务器只是 hono + octokit

配置

变量

描述

默认值

必需

OUTPUTTY_MCP_PORT

HTTP 端口(--http 模式)

3917

GITHUB_TOKEN / GH_TOKEN

用于 Octokit 的 GitHub 令牌

回退到 gh auth token

OUTPUTTY_PROJECT_NUMBER

指向现有的 Projects 看板

查找/创建 "Tasks"

OUTPUTTY_PROJECTS

off 禁用看板同步

on

限制

  • Projects 同步目前是尽力而为且单向的。 在看板上移动的卡片尚未被读回缓存;issue 状态才是规范状态。看板到缓存的拉取是后续工作。

  • REST issues 端点已进入弃用倒计时(GitHub 将在 2028 年前停用当前版本)。Octokit 会打印一条通知;目前一切正常。

开发

bun test            # graph engine · GitHub Issues + Projects targets (mocked) · service · MCP protocol
bun run dev         # hot-reloading HTTP server

每个目标都针对内存中的假实现进行测试,因此测试套件不需要网络,也不需要凭据。

F
license - not found
-
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

View all related MCP servers

Related MCP Connectors

  • An MCP server that gives your AI access to the source code and docs of all public github repos

  • A MCP server built for developers enabling Git based project management with project and personal…

  • MCP server for generating rough-draft project plans from natural-language prompts.

View all MCP Connectors

Latest Blog Posts

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/outputty/tasks-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server