Proofhub
FreeNot checkedA zero-dependency MCP server for ProofHub that provides tools to manage tasks, projects, and comments, and includes BMAD sharding to turn tickets into self-cont
About
A zero-dependency MCP server for ProofHub that provides tools to manage tasks, projects, and comments, and includes BMAD sharding to turn tickets into self-contained stories.
README
ProofHub for Claude Code — a zero-dependency MCP server (and a CLI) over the ProofHub v3 API, with a BMAD ticket-to-story sharder. Bring your own key; nothing about your account ships in the package.
- MCP server (primary): 16 native tools to list / create / comment / complete tasks, advance tasks through board stages, and shard tickets into self-contained BMAD stories.
- Context: set a project + todolist once — skip the IDs for every subsequent call.
- CLI (bundled): the same operations from your terminal, CI, or cron.
- Slash commands (bundled):
/proofhub:setup(guided config + verify) and/proofhub:help(tools + context workflow).
Install as a Claude Code plugin
/plugin marketplace add yashmody/proofhub-mcp
/plugin install proofhub@proofhub-mcp
Then provide your key (bring-your-own-key). The fastest path is the guided command — run
/proofhub:setup and it will configure and verify for you. To do it by hand:
Recommended — .claude/settings.local.json (launch-independent). Add an env block to the
project's gitignored .claude/settings.local.json, then fully restart Claude Code:
{
"env": {
"PROOFHUB_ACCOUNT": "yourteam",
"PROOFHUB_API_KEY": "your-api-key"
}
}
⚠️ A shell
exportin~/.zshrcworks only when you launch Claude Code from a terminal. Started from the macOS Dock/Finder, Claude Code doesn't source your shell, so the.mcp.jsonplaceholder${PROOFHUB_API_KEY}resolves empty and ProofHub returns WRONG ACCESS TOKEN (code 1001). Thesettings.local.jsonenv block avoids that..claude/settings.jsonis committed — never put the key there.
Alternatives:
# Config file — any terminal, persists at ~/.config/proofhub/config.json (chmod 600)
proofhub login --account yourteam --key your-api-key
# Shell env — only if you always launch Claude Code from a terminal
export PROOFHUB_ACCOUNT="yourteam" PROOFHUB_API_KEY="your-api-key" && claude
Run /mcp to confirm the proofhub server is connected (or proofhub doctor from a terminal).
Tools then appear as mcp__proofhub__list_tasks, mcp__proofhub__create_task,
mcp__proofhub__shard_to_story, etc. Stuck? /proofhub:setup diagnoses and fixes it.
Context + stages
Set a current project and list once so you don't have to repeat IDs:
/proofhub use 9654620832
/proofhub use-list 271191425865
/proofhub status # confirm saved context
/proofhub add "QA smoke" # no IDs needed
/proofhub find "QA" # search across lists
/proofhub next 293931 # advance one stage automatically
/proofhub stage 293931 Review # move to a named stage
/proofhub move 293931 --to-list 99887766
Stages are discovered automatically by scanning tasks — no API endpoint lists them. The order defaults to stage-id ascending (best-effort board order). Override with:
/proofhub stages --set "Backlog,In Progress,Review,Done"
Or via the MCP tool: set_context with stageOrder: "Backlog,In Progress,Review,Done".
MCP tools (16)
| Tool | Does |
|---|---|
set_context |
save project / todolist / stageOrder as context |
get_context |
show current context |
list_projects |
list projects |
list_todolists |
list task lists (defaults to context) |
list_tasks |
list tasks in a todolist (defaults to context) |
get_task |
full JSON for one task (defaults to context) |
create_task |
create a task (defaults to context) |
comment |
comment on a task (defaults to context) |
complete |
mark a task complete (defaults to context) |
reopen |
reopen (un-complete) a task (defaults to context) |
find_task |
search tasks by title across all lists (defaults to context) |
list_stages |
discover board stages in id-ascending order (defaults to context) |
set_stage |
move task to a specific stage by name or id (defaults to context) |
next_stage |
advance task one stage forward automatically (defaults to context) |
move_task |
move task to another list / project (defaults to context) |
shard_to_story |
BMAD: shard a ticket into a self-contained story file |
All task-scoped tools accept project and todolist as optional overrides; they default to
saved context. required is [] on those tools.
Environment overrides
| Variable | Purpose |
|---|---|
PROOFHUB_ACCOUNT |
ProofHub subdomain or full hostname |
PROOFHUB_API_KEY |
API key |
PROOFHUB_PROJECT |
Override saved context project (highest priority) |
PROOFHUB_TODOLIST |
Override saved context todolist (highest priority) |
PROOFHUB_STATE_PATH |
Override context state file path (default ~/.config/proofhub/state.json) |
BMAD sharding
shard_to_story turns a ProofHub ticket into a story with Context / Acceptance
Criteria / Dev Notes / Tasks-Subtasks and a suggested owner role + model tier — BMAD's core
move of embedding full context so the dev agent isn't guessing. See templates/story.md.
CLI (bundled)
export PROOFHUB_ACCOUNT=... PROOFHUB_API_KEY=...
npx -p proofhub-mcp proofhub projects # or, installed: proofhub projects
proofhub use <projectId>
proofhub use-list <todolistId>
proofhub add "My task"
proofhub find "keyword"
proofhub next <ticket>
proofhub stage <ticket> "Review"
proofhub move <ticket> --to-list <id>
proofhub done <ticket>
proofhub comment <projectId> <todolistId> <ticket> --body "..."
Notes
- Auth header is
X-API-KEY(not Bearer); aUser-Agentis set automatically. The client throttles to ~25 req/10s and honoursRetry-After. - ProofHub returns some errors as HTTP 200 with a
{code,message}envelope — the client surfaces those as errors. Mutations resolve the internal task id from the ticket number automatically. - In-list stage changes use a plain
{ stage }PUT. A cross-list move usesmove_task: trueand must includeproject— ProofHub returns a{code:1301}"Invalid request" without it.
npm test # no-network self-test
MIT © Yash Mody
Install Proofhub in Claude Desktop, Claude Code & Cursor
unyly install proofhub-mcpInstalls into Claude Desktop, Claude Code, Cursor & VS Code — handles npx, uvx and build-from-source repos for you.
First time? Get the CLI: curl -fsSL https://unyly.org/install | sh
Or configure manually
Run in your terminal:
claude mcp add proofhub-mcp -- npx -y proofhub-mcpFAQ
Is Proofhub MCP free?
Yes, Proofhub MCP is free — one-click install via Unyly at no cost.
Does Proofhub need an API key?
No, Proofhub runs without API keys or environment variables.
Is Proofhub hosted or self-hosted?
A hosted option is available: Unyly runs the server in the cloud, no local setup required.
How do I install Proofhub in Claude Desktop, Claude Code or Cursor?
Open Proofhub on unyly.org, pick your client tab (Claude Desktop, Claude Code, Cursor) and press Install — the config is generated automatically, no JSON editing.
Related MCPs
GitHub
PRs, issues, code search, CI status
by GitHubFilesystem
Secure file operations with configurable access controls.
Memory
Knowledge graph-based persistent memory system.
Template MCP Server
A CLI tool to create a new Model Context Protocol server project with TypeScript support, dual transport options, and an extensible structure
by mcpdotdirectCompare Proofhub with
Not sure what to pick?
Find your stack in 60 seconds
Author?
Embed badge for your README
Browse similar
All development MCPs
