In-depth architectural comparison of the Forge and When MCP servers. Compare execution transports, security boundaries, tool capabilities, quality scores, and ready-to-paste client installation snippets for Claude, Cursor, Windsurf, and VS Code.
At a Glance & Executive Verdict
Forge
Command Line · Local stdio
Quality: 61/100 (Good) | Auth: No auth required
When
Command Line · Local stdio
Quality: 56/100 (Good) | Auth: No auth required
Verdict Summary: Choose Forge if you need specialized Command Line tools running via a local process. Choose When if your workspace requires Command Line integration with local subprocess execution. Both servers can be configured concurrently in your client's mcpServers manifest.
Which MCP Server Should You Choose?
Choose Forge when:
You need dedicated capabilities in the Command Line domain.
You prefer local stdio subprocess transport architecture.
Your security boundary fits: No auth required (Free / Open Source).
You need dedicated capabilities in the Command Line domain.
You prefer local stdio subprocess transport architecture.
Your security boundary fits: No auth required (Free / Open Source).
Primary tools included: Single MCP server exposing eight endpoints for six tools, Auto-detect stack and regenerate context files, Port conflict scanning.
Terminal MCP server for AI coding agents with persistent PTY sessions, ring-buffer incremental reads, headless xterm screen capture, multi-agent orchestration, and a real-time web dashboard.
Developer toolkit: auto-detect stack for AI context files, catch port conflicts, validate .env schemas, spot docs drift, audit dependency licenses, and time coding tasks — 7 MCP tools, one install.
Category & Scope
Tools & Capabilities Breakdown
Forge Tools (25)
create_terminal
Spawn a new PTY terminal session. Returns session ID for subsequent operations.
revive_terminal
Recreate a previously exited terminal session with the same command, working directory, name, tags, and dimensions. The old session is removed and a fresh one is spawned.
create_from_template
Create a terminal session from a pre-configured template (e.g., shell, next-dev, vite-dev, npm-test).
list_templates
List all available session templates.
spawn_claude
Spawn a Claude Code agent in a new terminal session. IMPORTANT: cwd must be set explicitly — there is no session inheritance. By default runs in interactive mode — the session stays alive and accepts follow-up messages via the dashboard. Use oneShot: true for autonomous --print mode. Use worktree + branch to run in an isolated git worktree.
Ready-to-Paste Client Configurations
Paste either (or both) of these JSON server blocks into your client config file (e.g. claude_desktop_config.json or ~/.cursor/mcp.json).
Forge is categorized under Command Line and uses a local stdio subprocess. In contrast, When belongs to Command Line using local stdio subprocess. Select Forge when you need capabilities focused on command line and When when you require tools for command line.
Spawn a Codex agent in a new terminal session. By default runs in interactive mode — the session stays alive and accepts follow-up messages via the dashboard. Use oneShot: true for autonomous `codex exec` mode (requires prompt).
spawn_gemini
Spawn a Gemini CLI agent in a new terminal session. By default runs in interactive mode — the session stays alive and accepts follow-up messages via the dashboard. Use oneShot: true for headless mode (requires prompt).
write_terminal
Send input to a terminal session. Appends newline by default. Use submit=true for Claude Code sessions (sends Escape+Enter to exit multi-line mode and submit).
read_terminal
Read NEW output from a terminal since last read (incremental). Token-efficient — only returns what changed.
read_screen
Read the current terminal viewport as rendered text (no ANSI codes). Shows what a human would see on screen.
grep_terminal
Search terminal output buffer with a regex pattern. Returns matching lines with optional context.
wait_for
Wait for a regex pattern to appear in terminal output, OR wait for the process to exit. Checks existing buffer/status first, then watches live. Use waitForExit: true for commands that terminate (builds, tests, installs).
+13 more tools listed on main page
When Tools (6)
Single MCP server exposing eight endpoints for six tools