内容
# 已执行 MCP
**一个MCP服务器,帮助AI代理计划和跟踪软件项目,就像一个有纪律的团队一样 — 它是使用它所提供的 methodology 构建的。**
已执行 MCP 公开 [已执行开发](docs/DESIGN_SKETCH.md) — 一种轻量级、以意图为驱动的 methodology — 适用于任何具有MCP能力的代理(Claude Desktop,Cursor等)。它是一个无状态的 **顾问 + 验证器**:它不持有任何项目数据,也不触及任何文件或git。代理执行所有I/O操作;服务器提供判断 — 验证此工件,是否需要进行站会,当前阶段的流程是什么,此决定是否应记录在日志中。
> **差异化因素:** 此仓库的 [`work/`](work/) 文件夹 — 目标简介、意图文档、决策日志和周期站会 — 是在该工具实现的 methodology 下生成的。它是过程的证明,而不是样本。
---
## 功能
连接代理按需获取:
- **引导启动** (`kickoff` 提示 + `kickoff_questions` / `kickoff_plan` 工具) — 一个分支的问答环节,为新项目或现有代码库的规划结构提供支持。对于现有代码,代理会检查代码库,服务器会预填充答案,以便人类确认,而不是从头开始编写。
- **严格的工件验证** (`validate_artifact`) — 提交目标简介 / 意图文档 / 会议日志 / 站会,返回 `{ valid, missing, warnings }`。
- **阶段流程** (`next_procedure`) — 有序步骤、需要阅读的内容以及代理在循环中所处位置的升级点。
- **机械规则检查** (`standup_due`, `evaluate_gate`, `decision_log_guidance`) — 单人实践者经常忽略的仪式,作为对提供事实的无状态判断。
methodology 的指南、模板和约定作为只读 **资源** (`conducted://guide/*`, `conducted://template/*`, `conducted://conventions`) 提供,以便代理可以学习规则。
---
## 为什么这样构建(模型C)
服务器 **无法** 强制执行 — 代理始终具有直接的文件访问权限。因此,服务器不是充当门卫,而是充当顾问:纯函数返回判断和流程,无副作用,无需托管,无数据和无身份验证即可访问数据。这样,它是可移植的,易于测试,并且可以本地或远程运行,成本较低。相关推理在 [`docs/DESIGN_SKETCH.md`](docs/DESIGN_SKETCH.md) 中有详细说明,相关的权衡决策在 [`DECISIONS.md`](DECISIONS.md) 中有详细说明。
---
## 快速开始
在npm上发布为 **[`conducted-mcp`](https://www.npmjs.com/package/conducted-mcp)** — 通过 `npx` 运行,无需安装。
将服务器添加到您的MCP客户端。 **Claude Desktop** (`claude_desktop_config.json`) 或 **Cursor** (`.cursor/mcp.json`):
```json
{
"mcpServers": {
"conducted": {
"command": "npx",
"args": ["-y", "conducted-mcp"]
}
}
}
```
然后让您的代理执行“为该项目运行 Conducted 启动”,或直接调用任何工具。
### 或连接到托管的端点(无需安装)
一个无状态的 **Streamable HTTP** 端点在Cloudflare Workers上实时运行 — 通过URL连接,无需安装:
```json
{
"mcpServers": {
"conducted": {
"url": "https://conducted-mcp.jonathanmostov.workers.dev/mcp"
}
}
}
```
> 由于服务器是无状态的并且不持有任何数据(模型C),因此该端点可以安全地在未经身份验证的情况下运行,由速率限制保护。
---
## 演示
参见 **[`docs/DEMO.md`](docs/DEMO.md)** 以获取 `kickoff` 流程的真实记录 — 前门提示、分支访谈和阶段流程 — 直接从运行的服务器中捕获。 <!-- 客户端屏幕录制将在这里添加 -->
---
## 开发
```bash
npm install
npm run build # 打包methodology文本,然后使用严格的tsc
npm test # vitest
npm run lint # eslint + prettier
npm start # 运行stdio服务器
```
服务器是TypeScript,基于官方 [`@modelcontextprotocol/sdk`](https://github.com/modelcontextprotocol),使用ESM和严格模式。有关布局和约定的详细信息,请参见 [`CONTRIBUTING.md`](CONTRIBUTING.md)。
---
## Methodology 在仓库中
- [`work/goal-briefs/`](work/goal-briefs/) — 推动此构建的目标简介
- [`work/intent-docs/`](work/intent-docs/) — 每个票据的会话合同
- [`work/standups/`](work/standups/) — 周期门站会
- [`work/decision-log.md`](work/decision-log.md) — 决策的追加记录
- [`AGENT_CONVENTIONS.md`](AGENT_CONVENTIONS.md) — 每个会话的运行方式,模型和工具无关
---
## 许可证
[MIT](LICENSE) © 2026 Jonathan Mostov