tianshu-mcp
天枢harness × AI-Agent 编排 MCP server:调度外部 Agent 干活,用运行时证据做客观验收,不通过自动返修闭环。
Install / Use
claude mcp add lanlan0811 -- npx -y github:lanlan0811/tianshu-mcpIf the server publishes to npm under a different name, use that package instead — check the repo README.
MCP Server
Model Context Protocol server
Quality Score
Category
Development & EngineeringSupported Platforms
Our assessment of tianshu-mcp
tianshu-mcp scores 81/100 on our quality scale, 3492nd of 4,573 Development & Engineering skills we index.
Its MCP Server is 34 KB long, well organised into 35 sections with 9 code examples: a thorough specification that gives an agent plenty to work with.
It has 10 GitHub stars, so there is little community track record yet; judge it on its content.
Maintenance, license and trust
- The repository was last updated today, so tianshu-mcp is actively maintained.
- It is released under the Apache-2.0 license, a permissive license that allows use, modification and commercial use with attribution.
- Its trust signals score 92/100, with 1 caution from licensing, adoption, age or documentation. These come from repository metadata, not a code audit — read the skill file before letting an agent act on it.
tianshu-mcp compared with similar skills
All 4 of these similar skills score higher than tianshu-mcp; compare them before choosing.
| Skill | Score | Stars | Updated | Format |
|---|---|---|---|---|
| tianshu-mcp (this skill)by lanlan0811 | 81 | 10 | today | MCP Server |
| Agent-Reachby Panniantong | 100 | 94.1k | today | CLAUDE.md |
| headroomby headroomlabs-ai | 100 | 74.7k | today | CLAUDE.md |
| CowAgentby zhayujie | 100 | 47.3k | today | CLAUDE.md |
| ai-job-searchby MadsLorentzen | 100 | 45.3k | today | CLAUDE.md |
Frequently asked questions
- How do I install tianshu-mcp?
- Run
claude mcp add lanlan0811 -- npx -y github:lanlan0811/tianshu-mcp. The install tabs above show the steps for each supported agent. - Which AI agents does tianshu-mcp work with?
- It is written for Claude Code, Claude Desktop and OpenAI Codex, as a MCP Server file. Other agents that read the same format can often use it too.
- Is tianshu-mcp safe to use?
- It is Apache-2.0-licensed and scores 92/100 on trust signals. Skills are instructions an agent will follow, so read the file before installing it and do not approve commands you do not understand.
- Is tianshu-mcp still maintained?
- The repository was last updated today, so tianshu-mcp is actively maintained.
Skill content
View source on GitHub<p align="center"> <img src="./assets/mcp-running.png" alt="天枢 harness 桌面端通过 tianshu-mcp 调用 ZCode 完成开发" width="100%"> <br> 天枢 harness 桌面端实况 —— <b>天枢</b>经 MCP 调用 <b>tianshu-mcp</b> 编排 <b>ZCode</b> 完成一次开发任务:左侧派发与跟踪任务,中间是 tianshu-mcp 的工具调用与事件流(<code>mcp__tianshu-mcp__query_task</code> 轮询运行中的任务),右侧 ZCode 正在执行实际开发 </p>
面向 AI-Agent 的编排层与客观验收仪
tianshu-mcp 是被 天枢(Tianshu) 当作标准 MCP server 接入的编排层。天枢是总指挥与用户交互面,本 server 承担三件事:调度(队列 / 并发闸 / 状态机 / 取消)、执行面(把任务书送达外部 AI-Agent)、客观验收仪(相对 git 基线做命令检查、代码分析与可选视觉比对)。
它要回答的核心问题是:Agent 说「做完了」,谁来证明真的做完了。 为此「完成」必须有运行时证据,验收不合格自动生成修复计划并返修,轮次耗尽则交由天枢裁决。
天枢 Tianshu(TUI × GUI) ← 总指挥 / 交互面 / 裁决
↓ MCP over stdio(stdout 仅承载 JSON-RPC)
tianshu-mcp ← 调度 · 执行面 · 验收仪
↓
Codex · TraeWork · ZCode · Kimi Code · Qoder CN · Open Design · MiniMax Code
↓(GUI 经 CDP 驱动桌面 UI;CLI 走子进程)
目标项目工作区 ← git 仓库 + 测试 + .tianshu-mcp/
- 8 个 MCP 工具(v0.9.0 起由 13 个按域合并)——
run_task / query_task / manage_task / verify_task / query_info / wait_task,外加视觉验收的prepare_visual_baseline / approve_visual_baseline。合并映射:cancel_task+continue_task+rework_task→manage_task;list_tasks+get_task_report+get_profiles→query_info;wait_any→wait_task(增强)。 - 异步契约,长任务不卡
tools/call——run_task秒回taskId,用wait_task阻塞等到停点(终态或needs_user)、或用query_task轮询;进度只落盘、不推送,调用方看到的始终是「最后一次落盘的事实」。 - 等待原语(issue #28;v0.9.0 合并) ——
wait_task(taskId)或wait_task(taskIds)一次调用即等到任务到达停点(终态或needs_user),专为回合驱动调用方设计:run_task后在本回合内直接等结果,无需自行轮询;纯只读、超时/中断对任务本体零影响。 - 客观验收,fail-closed —— 自动命令检查 + 程序化代码分析,全部相对动工前的 git 基线,绝不自动 commit / stash / 回滚;「测试退出码 0 但零用例」「git 项目零净变更」都判失败,杜绝假绿。
- 失败返修闭环 —— 自动返修(
autoFixRounds)+ 手动rework_task;失败原因被解析为可直接执行的动作随计划喂回 agent,轮次耗尽转needs_attention等天枢裁决。 - 六个 GUI 执行面(CDP) —— 各 agent 使用隔离的 CDP 流程驱动桌面 UI,并在关键节点上报细粒度事件,
query_task因此能区分「agent 正在干活」与「卡在弹窗等人工介入」。 - 可扩展 —— 新 agent = 一个 profile(数据)+(如需)一个 adapter 文件,零改编排核心。
[!NOTE] 本 server 是标准 MCP stdio server:stdout 只承载 MCP JSON-RPC 消息,所有级别诊断日志(DEBUG/INFO/WARN/ERROR)写入 stderr 并同源追加到
<数据目录>/logs/server.log。因此 stderr 里出现INFO/WARN不代表服务器出错。数据目录默认~/.tianshu-mcp,可用环境变量TIANSHU_MCP_HOME覆盖。
目录
为什么需要编排层与验收仪
问题:Agent 说「做完了」,谁来证明
把开发任务交给 AI-Agent 之后,真正的困难不在「它能不能干活」,而在怎么确认它真的干完了、干对了:
- 自述不可信 —— agent 的「已完成」是自然语言结论,不是证据。没有独立验收时,半成品与真交付长得一模一样。
- 环境是黑盒 —— 桌面 agent 的请求在传输层加密(如 TraeWork 的 TTNet 层 TDE),无法在客户端外构造,唯一可行路径是驱动 UI 取结果。
- 宿主工具面很窄 —— 天枢的 MCP 工具只回文本(
content[].text被拼成字符串、isError透传),且按次同步调用,长任务必须自己异步化,也不能依赖服务端推送。 - 失败后没人接手 —— 验收不通过时,如果没有人把「哪一行错了、该改什么」喂回去,agent 只会重复同一次错误。
本项目的形态不是自由设计的结果,而是这几条实测硬约束逼出来的:
| # | 实测约束 | 架构后果 |
|---|---|---|
| C1 | 天枢的 MCP 工具只回文本 | 所有结果统一为「人类可读文本 + ---tianshu-mcp-meta--- JSON 块」,便于宿主正则抽取 |
| C2 | 天枢按次同步调用 tools/call | 长任务异步化:run_task 秒回 taskId,用 query_task 轮询 |
| C3 | 桌面 agent 请求在传输层加密,无法在客户端外构造 | 只能 CDP 驱动桌面 UI,从 DOM 提取结果 |
| C4 | Codex 桌面端是 MSIX 商店包,无法直接 CreateProcess | 必须经 COM 激活并注入专属 --user-data-dir 才能开 CDP 端口 |
解法:把「谁来干活」与「怎么算干得好」拆开
- 调度层负责纪律 —— 每项目串行队列 + 全局并发闸(默认 2)、显式状态机、超时与取消语义。
- 执行面负责投递 —— 一份
AgentAdapter契约:GUI agent 走 CDP 驱动,CLI agent 走子进程;新增 agent 通常只是一个 profile。 - 验收仪负责证据 —— 相对动工前 git 基线做命令检查、代码分析、可选视觉比对,并以 fail-closed 拦住「假绿」;报告分人读
.md与机读.json。 - 返修闭环负责收敛 —— 失败轮次把原因解析成可执行动作喂回同一 agent,轮次耗尽转人工裁决。
两条边界是硬性的:agent 的「完成」不是验收结论(只有
verdict.passed才算);环境 / 认证类错误不进验收与返修(hardFailure直接终态失败,避免把基础设施问题当成代码问题烧掉返修轮次)。
核心特性
- 异步派单与等待 ——
run_task秒回taskId;wait_task阻塞等到任务到达停点(终态或needs_user),wait_any等一组任务的先到者;需要进度细节时用query_task看状态 / 进度 / 日志尾 / 最近细粒度事件(eventLimit,1..50,默认 10)。详见 等待原语。 - 客观验收引擎 —— 自动命令检查(typecheck/lint/test/build,缺则跳过 + 技术栈推导)+ 程序化代码分析(变更清单 / diffstat / TODO·debugger·密钥形态等可疑标记),全部相对 git 基线;命令默认有界并行(
verifyConcurrency,默认 2,范围 1–4,1即完全串行)。 - 三项 fail-closed 保护 —— 测试退出码为 0 但零用例判失败;git 项目默认要求相对基线产生变更(纯分析任务可在
.tianshu-mcp/acceptance.json设"requireChanges": false显式关闭);本轮被取消即passed=false。 - 验收配置三级继承(issue #20)——
<数据目录>/acceptance.default.json(全局兜底)→<项目>/.tianshu-mcp/acceptance.json(项目覆盖)→acceptanceOverride参数(任务级临时覆盖,不落盘)。用tianshu-mcp config acceptance <projectPath> [--task <id>]查看最终生效配置。详见 验收配置规范。 - 结构化修复指令(issue #19)—— 失败轮次把原因解析为可直接执行的动作(
文件:行 / 问题 / 做什么),随返修计划与返修消息一起喂给 agent;提取不到时显式回退到完整报告(不静默留空)。rework_task另可选repairHint。详见 结构化修复指令。 - dryRun 干跑模式(issue #21)——
run_task(dryRun=true)让 agent 只分析规划、输出将要修改的文件清单与方案、不动源码;验收只做静态分析(引用文件是否存在、拟改位置是否存在、明显逻辑冲突),跳过 typecheck/test/build;方案有问题 →needs_attention(人工裁决),不进入自动返修、不消耗验收轮次。详见 dryRun 干跑模式。 - 幂等重试(issue #15)——
run_task/verify_task接受可选idempotencyKey:同一 key 在 TTL(默认 24h)内重试不重复派单(恒返回原taskId)或不重跑验收;同键异参 fail-closed 报错。映射落盘于<数据目录>/idempotency.json,跨 server 重启仍生效。详见 v0.5.10 发布说明。 - 无项目派发(ZCode 专用,issue #12)——
run_task的projectPath可省略,任务在 ZCode 的default工作区运行,不登记 / 导入项目、不采集 Git 基线、不执行项目验收(结果以verificationNotApplicable: "no_project"结构化标注)。配套allowCreateProject: false可在目标目录未登记时于任何导入副作用之前停止派发。详见 ZCode CDP 适配器。 - 细粒度事件流(issue #18)—— 适配器在关键节点上报语义事件(
task_dispatched/confirmation_dialog_detected/awaiting_user_authorization/file_modification_started/rework_triggered),query_task经eventLimit回传最近 N 条。事件上报是可选能力:未实现的适配器行为不变。详见 事件流。 - 终态通知 webhook(issue #22)—— 可选
notifications.webhook(全局config.json):任务完成 / 失败 / 进入needs_attention时向指定 URL 异步 POST 一条 JSON(含taskId/event/status/ 时间戳 / 报告路径),可选 HMAC-SHA256 签名。默认关闭,发送失败只记日志、绝不影响状态机。详见 任务终态通知。 - 视觉验收(可选模块,v0.5.0 起) —— 页面截图对比、静态图片规格校验、基准两阶段批准与规则冻结;缺基准不得判通过,自动返修禁止调用批准入口。另有可选 AI 内容校验(v0.5.4,默认关闭):判定完全委托给你自备的本地命令,MCP 不读取 / 不存储 / 不转发任何密钥、不内置模型客户端,默认仅告警。详见 视觉验收。
- 技能自检安装(issue #16)—— 启动时把包内
skills/tianshu-mcp/幂等同步到~/.rivet/skills/tianshu-mcp/;仅在可证未被改动时自动升级,检出本地修改或来源不明一律保留 + 告警。详见 运行时契约。 - 独立交付面:日志台 GUI ——
mcp-gui/提供本地只读的桌面应用,把四类日志与任务产物统一到一个界面(Tauri 2.x + Vue 3,独立版本与 tag,不随 MCP 主包发布);详见 日志台 GUI。 - 不碰密钥 —— 各 agent 使用自己的登录态,本 server 不保存 / 转发任何 API key(详见 SECURITY.md)。
- 想理解内部结构 —— 见 ARCHITECTURE.md(分层模型、模块边界、状态机、验收流水线、扩展点与已知缺口)。
快速开始
前置条件
| 项 | 要求 |
|---|---|
| Node.js | ≥ 20(CI 覆盖 20 / 22 / 24) |
| 包管理器 | npm(仓库含 package-lock.json) |
| 操作系统 | Windows / macOS / Linux(CI 三平台矩阵验证) |
| Git | 可选;验收的基线分析在 git 仓库内更完整 |
数据目录默认 ~/.tianshu-mcp,可用环境变量 TIANSHU_MCP_HOME 覆盖;首次启动自动创建。
从源码构建
git clone https://github.com/lanlan0811/tianshu-mcp.git
cd tianshu-mcp
npm ci
npm run build # sync-version + tsc → dist/
npm test # 1383 passed / 12 skipped(1395 项,115 个测试文件)
安装 npm 包
npx -y tianshu-mcp # 免安装直接拉起
# 或
npm install -g tianshu-mcp
在天枢里添加(推荐)
天枢「设置 → MCP 服务器 → 添加」,按下面填写即可(传输方式选 stdio(本地进程)):
| 字段 | npm 分发(推荐) | 本地开发 |
|---|---|---|
| 服务器 ID | tianshu-mcp | tianshu-mcp |
| 传输方式 | stdio(本地进程) | stdio(本地进程) |
| 命令 | npx | node |
| 参数(空格分隔) | -y tianshu-mcp | <仓库绝对路径>/dist/index.js |
- 服务器 ID 即工具前缀:填
tianshu-mcp后工具名为mcp__tianshu-mcp__run_task等 8 个(v0.9.0 起)。- 参数按空格分隔填写,不要加引号;本地开发模式请把
<仓库绝对路径>换成真实绝对路径。- 界面未提供环境变量输入框;如需自定义数据目录,改用下面的
config.json方式设置TIANSHU_MCP_HOME。- 添加后连接成功即完成;新开会话即可看到 8 个工具(v0.9.0 起)。
或改 config.json(可配环境变量)
{
"mcp": {
"servers": {
"tianshu-mcp": {
"command": "node",
"args": ["<仓库绝对路径>/dist/index.js"],
"env": { "TIANSHU_MCP_HOME": "<仓库绝对路径>/.tianshu-mcp" }
}
}
}
}
新开会话后,工具面出现 mcp__tianshu-mcp__run_task 等 8 个工具(v0.9.0 起)。一次典型闭环:
run_task(projectPath=D:/xxx/my-app, task="…任务书…", agentId=codex,
model="GPT-5.6 Sol", reasoningLevel="高", autoVerify=true, autoFixRounds=5)
→ taskId → wait_task(taskId) 阻塞等到停点 → succeeded / failed / needs_attention → get_task_report 读报告
(回合驱动调用方:wait_task 一次调用即等到停点;超时返回后再次调用本工具继续等待,或用 query_task 看进度细节)
给天枢的提示语(推荐用法)
「在项目
D:\xxx用 codex 实现『任务』。先跑run_task(autoVerify:true, autoFixRounds:2),完成后用wait_task等到停点再看结果;若报告显示needs_attention,把get_task_report的失败项摘要作为feedback调rework_task再验一轮;全部通过后向我汇报changedFiles与diffstat。」
「
Truncated for display — read the full file on GitHub.
Related Skills
Agent-Reach
94.1kGive your AI agent eyes to see the entire internet. Read & search Twitter, Reddit, YouTube, GitHub, Bilibili, XiaoHongShu — one CLI, zero API fees.
headroom
74.7kCompress tool outputs, logs, files, and RAG chunks before they reach the LLM. 20% fewer tokens for coding agents, 60-95% fewer tokens for JSON, same answers. Library, proxy, MCP server.
CowAgent
47.3kOpen-source personal AI assistant & Agent Harness. Plans tasks, runs tools and skills, self-evolves with memory and knowledge. Multi-agent, multi-model, multi-channel. Lightweight, extensible, one-line install.
ai-job-search
45.3kThe job search that runs on your machine. AI job application framework built on Claude Code: evaluate postings, tailor CVs, write cover letters, prep interviews. Fork it and own it.
Languages
Trust signals
From repository metadata: license, adoption, age and documentation. Not a code audit — see the Safety scan above for what the skill file itself contains.
