forgeplan serve
Start the Forgeplan MCP (Model Context Protocol) server on stdio. This is
the primary integration point for AI agents - Claude Code, Cursor, Windsurf,
and other MCP clients launch forgeplan serve as a subprocess and talk to it
over JSON-RPC on stdin/stdout.
forgeplan serveOptions
Section titled “Options” -h, --help Print help -V, --version Print versionWhat it exposes
Section titled “What it exposes”73 MCP tools mapped onto the core Forgeplan operations:
- Artifact lifecycle -
new,validate,review,activate,supersede,deprecate,stale,renew,reopen - Query + discovery -
list,get,search,blocked,order,tree,discover,blindspots,gaps - Scoring + reasoning -
score,fgr,reason,route,estimate - Evidence + links -
link,unlink,new_evidence - Tags -
tag,untag - Health + observability -
health,status,coverage,drift - FPF knowledge base -
fpf_search,fpf_section,fpf_check - Memory -
remember,recall,promote
Forgeplan is MCP-first: the CLI is a convenience wrapper, and the full power of the tool is designed to be driven by AI agents through this server.
Transport
Section titled “Transport”- stdio only - no HTTP, no sockets, no network exposure. The MCP client owns the process and communicates over pipes.
- One workspace per server - the server runs in the current working
directory and operates on
./.forgeplan/. Launch it from the project root. - Stateless - no long-lived state between requests beyond what’s in LanceDB and markdown.
Examples
Section titled “Examples”Example 1: Claude Code client config
Section titled “Example 1: Claude Code client config”See “Typical usage” below.
Example 2: Manual smoke test
Section titled “Example 2: Manual smoke test”See “Manual usage (debugging)” below.
Typical usage (automatic)
Section titled “Typical usage (automatic)”You usually don’t run serve manually. MCP clients launch it as a child
process via their config file. For Claude Code, add to ~/.claude/mcp.json:
{ "mcpServers": { "forgeplan": { "command": "forgeplan", "args": ["serve"], "cwd": "/path/to/your/project" } }}Cursor (~/.cursor/mcp.json) and Windsurf use the same schema. Restart the
client; Forgeplan tools (mcp__forgeplan__*) become available to the agent.
Manual usage (debugging)
Section titled “Manual usage (debugging)”Run serve directly only when you need to:
- Debug a new MCP tool - wire it up by hand, pipe JSON-RPC requests in, inspect the response.
- Validate protocol compliance - run against
mcp-inspectoror similar. - Smoke-test after a release - make sure the binary starts and lists its tool schema.
# Manual smoke testcd /path/to/projectforgeplan serve# (server waits on stdin for JSON-RPC messages)# Ctrl-C to exitFor interactive exploration the mcp-inspector tool is much more productive
than hand-writing JSON-RPC.
Troubleshooting
Section titled “Troubleshooting”- “No workspace found” - the server was launched in a directory without
.forgeplan/. Setcwdin your MCP client config to the project root. - Tools missing in client - restart the MCP client after editing its
config; most clients only read
mcp.jsonat startup. - LLM features fail - LLM-backed tools (
reason,route) need a provider configured in.forgeplan/config.yaml. See the LLM guide. - Semantic tools no-op -
embedfeature flag must be compiled in for semantic search; otherwise those tools fall back to keyword search.
See also
Section titled “See also”- CLI overview
- MCP tools reference - full list of exposed tools
forgeplan health- verify workspace before servingforgeplan reindex- rebuild index if tools return stale data