Several models from different labs plan in a blind proposal, debate and review loop. Your own keys.
Inferred from the transports this listing declares (stdio). A client not listed here hasn’t been ruled out — it just isn’t something Forge can confirm.
ANTHROPIC_API_KEYAPI keyoptionalYour own Anthropic API key. Needed only by chains that seat Anthropic models.
OPENAI_API_KEYAPI keyoptionalYour own OpenAI API key. Needed only by chains that seat OpenAI models.
GOOGLE_API_KEYAPI keyoptionalYour own Google (Gemini) API key. Needed only by chains that seat Google (Gemini) models.
MISTRAL_API_KEYAPI keyoptionalYour own Mistral API key. Needed only by chains that seat Mistral models.
DEEPSEEK_API_KEYAPI keyoptionalYour own DeepSeek API key. Needed only by chains that seat DeepSeek models.
GROQ_API_KEYAPI keyoptionalYour own Groq API key. Needed only by chains that seat Groq models.
TOGETHER_API_KEYAPI keyoptionalYour own Together API key. Needed only by chains that seat Together models.
COHERE_API_KEYAPI keyoptionalYour own Cohere API key. Needed only by chains that seat Cohere models.
OPENROUTER_API_KEYAPI keyoptionalYour own OpenRouter API key. Needed only by chains that seat OpenRouter models.
ZAI_API_KEYAPI keyoptionalYour own Z.ai API key. Needed only by chains that seat Z.ai models.
Declared by the author in the official MCP registry. Forge does not store, broker, or ever see these values — the config below is scaffolded with placeholders you fill in locally.
Verification confirms publisher identity (repo ownership), not code safety. The security scan covers known CVEs and suspicious install scripts.
Read out of the source npm actually ships, at scan time. The package was never executed. Tools registered dynamically at runtime, or hidden inside bundled or minified code, can be missed — so this is a floor on the tool surface, not a complete census of it.
my-first-chainA minimal real chain: one builder, one critic, one round.A minimal real chain: one builder, one critic, one round.
No input schema was published for this tool.
list_chainsChains available to run, with their description and worst-case price from a dry run.Chains available to run, with their description and worst-case price from a dry run.
No input schema was published for this tool.
dry_runPrice a chain without calling any model. chain is a chain name as list_chains shows it, never a path. json: true returns one JSON document instead of text: the floor and worst-case price, every row, and which seat lacks which API key.Price a chain without calling any model. chain is a chain name as list_chains shows it, never a path. json: true returns one JSON document instead of text: the floor and worst-case price, every row, and which seat lacks which API key.
No input schema was published for this tool.
start_runStart a harness run in the background. Returns the run id to poll with run_status, or started:false with the exit code and log tail if the run stopped at once. chain is a chain name as list_chains shows it (never a path). task, draft, context and from_run are paths inside your working directory (ta…Start a harness run in the background. Returns the run id to poll with run_status, or started:false with the exit code and log tail if the run stopped at once. chain is a chain name as list_chains shows it (never a path). task, draft, context and from_run are paths inside your working directory (ta…
No input schema was published for this tool.
external_promptWhen a run is paused at an external seat: the exact system and user prompt that stage needs answered. A run can wait on several stages at once (e.g. a panel of external critics): `waiting` lists them all; pass stage to get another one's prompt. Answer each with submit_stage; the run resumes once no…When a run is paused at an external seat: the exact system and user prompt that stage needs answered. A run can wait on several stages at once (e.g. a panel of external critics): `waiting` lists them all; pass stage to get another one's prompt. Answer each with submit_stage; the run resumes once no…
No input schema was published for this tool.
prepare_stage_promptFor a run paused at an external seat: write stage_prompt.md, a self-contained bundle a fresh subagent can act on with zero prior context, so a driving session can dispatch the stage instead of authoring it inline. Fork a subagent, give it only this file's path; take its returned deliverable back to…For a run paused at an external seat: write stage_prompt.md, a self-contained bundle a fresh subagent can act on with zero prior context, so a driving session can dispatch the stage instead of authoring it inline. Fork a subagent, give it only this file's path; take its returned deliverable back to…
No input schema was published for this tool.
submit_stageWrite the answer for an external stage into the run folder, then resume the run in the background. The stage must be one external_prompt lists under `waiting`; the run resumes once all of them are answered. claimed_by is optional (v3 §1): a self-declared peer-session name, recorded as this stage's…Write the answer for an external stage into the run folder, then resume the run in the background. The stage must be one external_prompt lists under `waiting`; the run resumes once all of them are answered. claimed_by is optional (v3 §1): a self-declared peer-session name, recorded as this stage's…
No input schema was published for this tool.
resume_runResume a paused run after its external stage was answered (submit_stage does this for you), or a run stopped by the spend cap (pass a higher max_usd). Completed stages replay from disk and cost nothing.Resume a paused run after its external stage was answered (submit_stage does this for you), or a run stopped by the spend cap (pass a higher max_usd). Completed stages replay from disk and cost nothing.
No input schema was published for this tool.
spend_reportWhat every run has cost across a window of days, not just one run. Derived from the run folders on disk - nothing is recorded anywhere else and nothing leaves this machine. Use this to answer "what have I spent today" before starting another run.What every run has cost across a window of days, not just one run. Derived from the run folders on disk - nothing is recorded anywhere else and nothing leaves this machine. Use this to answer "what have I spent today" before starting another run.
No input schema was published for this tool.
verdict_statsNo description publishedThis tool published no description. Forge does not invent one.
metrics_reportDESCRIPTIVE TELEMETRY ONLY, not an evaluation, benchmark or baseline: amendment rate, withdrawal rate, objection-follow-through rate, and tool-call usage, derived from existing run logs (report.json and HANDOFF.md) on disk across a window of days. This is the zero-cost substitute for a cut evaluati…DESCRIPTIVE TELEMETRY ONLY, not an evaluation, benchmark or baseline: amendment rate, withdrawal rate, objection-follow-through rate, and tool-call usage, derived from existing run logs (report.json and HANDOFF.md) on disk across a window of days. This is the zero-cost substitute for a cut evaluati…
No input schema was published for this tool.
list_runsRuns on disk, newest first, with state and cost.Runs on disk, newest first, with state and cost.
No input schema was published for this tool.
run_statusState of one run: stage reached, panel verdicts, scoreboard, files produced, cost. Pass brief=true for a short, regenerated-on-demand resume brief instead - what a returning session with fresh context needs to re-enter the run.State of one run: stage reached, panel verdicts, scoreboard, files produced, cost. Pass brief=true for a short, regenerated-on-demand resume brief instead - what a returning session with fresh context needs to re-enter the run.
No input schema was published for this tool.
read_run_fileRead a file from a run folder (deliverable.md, BOARD.md, HANDOFF.md, proposals.md, build.md, revise-1.md, panel-1-<lab>.md, run.log, report.json; report-partial.json for a run the spend cap stopped).Read a file from a run folder (deliverable.md, BOARD.md, HANDOFF.md, proposals.md, build.md, revise-1.md, panel-1-<lab>.md, run.log, report.json; report-partial.json for a run the spend cap stopped).
No input schema was published for this tool.
plan_outlineSection tree of a run's deliverable (or any markdown file) with word counts and the build-volume heuristic, plus the scope ledger if present.Section tree of a run's deliverable (or any markdown file) with word counts and the build-volume heuristic, plus the scope ledger if present.
No input schema was published for this tool.
write_taskprivilegedWrite or overwrite a task file under tasks/ (the request the harness plans against).Write or overwrite a task file under tasks/ (the request the harness plans against).
No input schema was published for this tool.
15 of 16 tools published a description.
Tool names and descriptions are written by the publisher and shown verbatim as inert text. They are the strings an MCP client passes to a model, so Forge scans them for prompt-injection patterns — any finding appears with the security scan above. “Privileged” is a keyword match on the tool name, not an audit of what the tool does: a benign-sounding name can still do anything.
Several models from different labs plan in a blind proposal, debate and review loop. Your own keys.
Linked names open Forge’s index of every entry observed exposing that tool. Browse all indexed tools.
The crawl stopped at the depth-4 limit. Anything below that level was never resolved.
The crawl stopped at the 60-package limit. The rest of the tree was never resolved.
36 more resolved packages are not drawn here (display cap: 24). Every dependency carrying an advisory is drawn regardless of the cap. Full inventory (CycloneDX SBOM)
53 declared dependencies never landed in the tree. They are missing from Forge's resolution, not from the package.
+41 more not listed. The counts by reason above cover all of them.
Not followed: peerDependencies. This tree covers runtime dependencies only, so anything those pull in was never resolved.