Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
作者提供的说明(英文原文)
Drive your ProductBrain product plan (goals, needs, bets, jobs) from any MCP client.
这三项永远不会合并成一个分数:意见、测量和人气是不同的东西。
我们还没有为它写通俗的介绍。下面是我们从注册中心读取到的事实。
选择你使用的 AI 应用,然后复制设置。
PRODUCTBRAIN_API_KEY, PRODUCTBRAIN_PROJECT_ID, PRODUCTBRAIN_API_URL标为机密的值是你账户的钥匙。千万不要分享给别人,也不要粘贴到聊天里。
你需要
你用的是哪个应用?
在上方选择你的应用。我们会记住它,下次按钮会显示“安装到 …”。
打开 Claude Desktop → Settings → Developer → Edit Config,把下面的内容粘贴到 claude_desktop_config.json
{
"mcpServers": {
"productbrain": {
"command": "npx",
"args": [
"-y",
"@productbrain-com/mcp"
],
"env": {
"PRODUCTBRAIN_API_KEY": "your-value",
"PRODUCTBRAIN_PROJECT_ID": "your-value",
"PRODUCTBRAIN_API_URL": "your-value"
}
}
}
}在终端中运行这条命令
claude mcp add productbrain --env PRODUCTBRAIN_API_KEY=your-value --env PRODUCTBRAIN_PROJECT_ID=your-value --env PRODUCTBRAIN_API_URL=your-value -- npx -y @productbrain-com/mcp运行前请先填写空着的值。
粘贴到项目中的 .cursor/mcp.json,或 ~/.cursor/mcp.json
{
"mcpServers": {
"productbrain": {
"command": "npx",
"args": [
"-y",
"@productbrain-com/mcp"
],
"env": {
"PRODUCTBRAIN_API_KEY": "your-value",
"PRODUCTBRAIN_PROJECT_ID": "your-value",
"PRODUCTBRAIN_API_URL": "your-value"
}
}
}
}浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。
粘贴到项目中的 .vscode/mcp.json
{
"servers": {
"productbrain": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@productbrain-com/mcp"
],
"env": {
"PRODUCTBRAIN_API_KEY": "your-value",
"PRODUCTBRAIN_PROJECT_ID": "your-value",
"PRODUCTBRAIN_API_URL": "your-value"
}
}
}
}浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。
这个服务器在你的电脑上运行,而 ChatGPT 只能连接互联网上的服务器。请选择其他应用。
你的选择通过 Cookie 保存在这台设备上,无需账户。
PRODUCTBRAIN_PROJECT_ID envPRODUCTBRAIN_API_URL env这些设置是根据作者在注册中心的条目生成的。如果 README 的写法不同,请以 README 为准。
它在你的电脑上运行;安装后,工具列表会显示在你的 AI 应用中。
我们检查的是任何人都能看到的信息;我们没有阅读代码。不适用的检查项不计入总数。 · 检查于 2026年11月7日
注册名称已通过 GitHub 账户 moxzas 验证,该账户拥有此仓库
我们还没有从 GitHub 读取这个仓库
我们还没有从 GitHub 读取这个仓库
它在你的电脑上运行,没有互联网端点
在你的电脑上运行,改用本地设置
它在你的电脑上运行;我们只能读取互联网端点的工具列表
与注册中心里这个分类中所有活跃的服务器比较。只有当发布者拥有该仓库时,星标数才计入。
它在 1 项适用的基础检查中通过了 1 项。我们没有阅读代码。在添加密钥或令牌之前,请先看看这个服务器要求哪些权限,并使用只具备所需权限的密钥。
你需要填写:PRODUCTBRAIN_API_KEY
它在你的电脑上运行。你的 AI 应用会在需要时启动它,数据不会经过作者的服务器(除非它自己调用在线服务)。
GitHub 仓库最后更新于–,最新版本(0.1.0)于30天前进入注册中心。
支持 MCP 的应用,例如 Claude Desktop、Claude Code、Cursor 和 VS Code。你的电脑上还需要有 Node.js。
同一分类中有:Spec Driven Development, Remote Desktop Commander, NexusWindows
同一分类中其他作者的服务器,按星标数排序。
如何看卡片:★ GitHub 星标i三大支柱:评价 · 检查 · 使用情况i更新 = 最新版本发布到注册中心的时间i
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
Windows computer use in the background: desktop apps driven without your mouse or keyboard.
按原文从作者的仓库复制。PopNx MCP 没有审查或背书其内容。HTML、图片和脚本已被移除。链接会离开本站。
Drive your ProductBrain plan from an MCP client — Claude Desktop, Cursor, Claude Code — with tools for search, read, mutate, the methodology workflow, and the live view.
This server is a thin transport over ProductBrain's versioned v1 REST API. Each tool is one call to an existing /api/v1 endpoint. The REST contract stays canonical:
_meta coaching the API returns, so your agent self-corrects.// Claude Desktop — claude_desktop_config.json
{ "mcpServers": { "productbrain": { "command": "npx", "args": ["-y", "@productbrain-com/mcp"], "env": { "PRODUCTBRAIN_API_KEY": "pb_your_key", "PRODUCTBRAIN_PROJECT_ID": "your-project-id" } } } }
# Claude Code
claude mcp add productbrain \ -e PRODUCTBRAIN_API_KEY=pb_your_key \ -e PRODUCTBRAIN_PROJECT_ID=your-project-id \ -- npx -y @productbrain-com/mcp
Cursor and other clients: add an mcpServers entry with the same command/args/env.
| Var | Required | Default |
|---|---|---|
PRODUCTBRAIN_API_KEY | yes | — (your pb_ key from the app's API Key modal) |
PRODUCTBRAIN_PROJECT_ID | no | — (tools also accept a projectId argument) |
PRODUCTBRAIN_API_URL | no | https://productbrain.com/api/v1 |
Every agent-facing /api/v1 endpoint has a tool. One tool, one endpoint, same _meta coaching passed back verbatim.
The plan
| Tool | Maps to | Use |
|---|---|---|
search | GET /search | Semantic search — use first for any lookup |
list_nodes | GET /nodes | Bulk read, optional type/iteration filter |
get_tree | GET /tree | A node in context (ancestors/siblings/children/subtree) |
mutate | POST /mutate | Create/update/delete nodes + phases; pass idempotencyKey to make retries safe |
list_iterations | GET /iterations | Phases; current:true for the active one |
run_workflow | POST /workflow | Story-Mapping methodology (add / task-curate / phase-assign) |
export_okf | GET /export-okf | The plan as a portable OKF file bundle |
get_changelog | GET /changelog | Plan history: every add/update/delete/restore, attributed to the app or a named agent |
The view
| Tool | Maps to | Use |
|---|---|---|
set_view / read_view | POST /view-command, GET /view-state | Drive / read the live canvas |
Projects
| Tool | Maps to | Use |
|---|---|---|
list_projects | GET /projects | Projects you own or are a member of; includeArchived for the rest |
create_project | POST /mutate {addProject} | Bootstrap a brain — seeds the system "Later" phase. Pass an explicit id: addProject runs before mutate reads Idempotency-Key, so it is not retry-safe |
rename_project | POST /mutate {renameProject} | Change the display name; the id is immutable |
archive_project | PATCH /projects | Hide/unhide without deleting (reversible) |
Webhooks
| Tool | Maps to | Use |
|---|---|---|
list_webhooks | GET /webhooks | Registered hooks with lastStatus — spot a failing receiver |
create_webhook | POST /webhooks | Register; returns the signing secret once |
update_webhook | PATCH /webhooks | Change url/events in place, or rotateSecret:true. Prefer over delete+recreate |
delete_webhook | DELETE /webhooks | Remove a registration |
Share links
| Tool | Maps to | Use |
|---|---|---|
create_share_link | POST /share | Mint a public read-only link; expiresInDays for a TTL |
list_share_links | GET /share | Audit every token minted, with an active flag |
revoke_share_link | DELETE /share | Kill a leaked or stale link |
Members and budget
| Tool | Maps to | Use |
|---|---|---|
list_members | GET /members | Humans and agent seats on a project |
add_agent_seat | POST /members | Mint an agent seat; the pb_ key is returned once (Team tier) |
invite_contributor | POST /members | Passwordless guest invite, scoped to the projects you name (Team tier) |
revoke_member | DELETE /members | Remove a seat; an agent's key dies with its last membership |
tier_status | GET /tier-status | Your tier, API access, credit balance and limits — check before a large run |
submit_feedback | POST /feedback | Tell the PB team what to improve: feature requests, friction, bugs, notes |
Full API reference: https://productbrain.com/docs/llm-guide.md.
@productbrain-com/mcp. Every release is published from the repository's tag of the same version.io.github.moxzas/productbrain (server.json in this repo is the registry manifest).User-Agent: productbrain-mcp/ so you can tell MCP traffic from raw REST calls in your own logs.Two headless scripts in the repository (src/spike-proof.ts, src/parity-proof.ts; not shipped in the npm package), both run against a real deployment. Use a throwaway project on your own account:
PRODUCTBRAIN_API_KEY=pb_your_key \
PRODUCTBRAIN_PROJECT_ID=your-sandbox-project \ npm run spike # transport + auth + one read + one write
PRODUCTBRAIN_API_KEY=pb_your_key \ npm run parity # every non-plan tool once, on a throwaway project
parity creates its own throwaway project and cleans up after itself (archiving it at the end — there is no project-delete endpoint).
The Team-tier tools (add_agent_seat, invite_contributor) return 403 team_tier_required on a Builder key, and that counts as a pass — with one caveat worth knowing. It proves the shim reached the right route and passed the error and its _meta tip straight through; it does not validate the request body, because the tier gate runs before the body is read. Run parity with a Team-tier key to check those two properly.