ToolPlan MCP
by aaditya0602
README.md
# ToolPlan MCP
Turn a raw project idea into a polished, cost-aware first prompt for any AI
coding agent.
## Why
Models pick tech stacks decently — but they:
1. **Under-recommend high-leverage open-source tools.** Niche skills, scrapers,
and community tools from GitHub/Reddit (Agent-Reach, caveman,
karpathy-guidelines, ...) save hours, and models rarely surface them
unprompted. Programmers who don't track this ecosystem lose that time.
2. **Never apply cost-saving techniques on their own.** Subagent delegation,
plan-first execution, task-by-task verification — models don't do these
unless told, and casual users don't know to ask. Result: millions of
wasted tokens.
3. **Do better with a structured first prompt.** A polished brief with stack,
constraints, and done-criteria makes a project far more one-shotable —
even on non-frontier models.
ToolPlan packages all three into one MCP tool call.
## How it works
```
your raw idea ──▶ plan_project(idea, grade) ──▶ enriched prompt
│
reads curated KB (kb/*.yaml):
stacks · tools · MCPs · skills · directives
each with why_models_miss_it + cost_profile
```
No live scraping at runtime — a weekly offline pipeline proposes KB updates
as human-reviewed diffs, so advice stays current without hype pollution.
## Quick start (Claude Code)
```sh
claude mcp add toolplan -- npx -y toolplan-mcp
```
Then either:
- **`/toolplan <your idea>`** — copy `commands/toolplan.md` (shipped in the
npm package) to `~/.claude/commands/` first. The agent calls the tool,
shows you the refined prompt verbatim, and waits for you to proceed, edit,
or regenerate — it never starts building on its own.
- **`/mcp__toolplan__plan`** — zero-install; Claude Code auto-exposes the
server's built-in `plan` prompt as a slash command.
- Or just ask in chat: *"Use plan_project with my idea: an app that tracks
freelance invoices, grade personal."*
Other hosts (Cursor, Codex CLI, any stdio MCP host): see
[docs/HOST_SETUP.md](docs/HOST_SETUP.md).
## Tool API
`plan_project(idea: string, grade: "industry" | "personal", tags?: string[])`
→ markdown enriched prompt: project brief, recommended stack, tools you'd
likely miss, execution directives, quality bar, sources.
## Knowledge base
One YAML file per entry under `kb/<category>/`. Format: [docs/KB_SCHEMA.md](docs/KB_SCHEMA.md).
Contributions welcome — PRs must pass the eval regression suite.
**Privacy note:** running the tool never phones home. The KB is read-only at
runtime and bundled with the package; nobody's usage updates it. Optional
`TOOLPLAN_LOG` writes usage lines to a *local* file you control.
### Improving the KB
Three ways, smallest first:
1. **Add one entry by hand.** Copy an existing YAML in `kb/<category>/`,
fill the fields honestly (especially `why_models_miss_it`), run
`npm test && npm run eval`, open a PR.
2. **Mine your own usage.** Set `TOOLPLAN_LOG=toolplan.jsonl` in the server
env, use the tool for a while, then `npm run log-to-case toolplan.jsonl`
— real ideas become eval-case skeletons; weak matches show you exactly
which keywords the KB is missing.
3. **Run the weekly refresh.** Point a Claude agent at
[pipeline/REFRESH.md](pipeline/REFRESH.md); it researches new tools and
writes proposals to `pipeline/proposals/<date>/` with evidence. You
review `PROPOSAL.md`, move accepted files into `kb/`, run
`npm test && npm run eval`, commit.
Staleness check anytime: `npm run stale`.
## Development
```sh
npm install
npm run build
npm test
npm run smoke # end-to-end stdio call against the built server
```
## Status
v1: web-application scope only. See [PLAN.md](PLAN.md) for roadmap
(eval harness, refresh pipeline, host adapters).
TDQS
B3.4/5.0
Scored across 1 tool
Disambiguation5/5
With only one tool, there is no possibility of confusion between tools.
Naming Consistency5/5
Single tool named with clear verb_noun pattern, consistent within the set.
Tool Count3/5
A single tool feels thin for a server that references a knowledge base, though it may be sufficient for a focused planning utility.
Completeness3/5
The tool covers the core planning action but lacks additional operations for managing or querying the underlying knowledge base.
Maintenance
ActivityStale
ResponsivenessNo issues