PesterForge MCP

Tool reference.

PesterForge MCP has seven tools. Six wrap a PesterForge command you could run at a prompt yourself; get_version answers straight from the server. The table below covers what each one does and what it costs.

01 The seven tools
ToolWrapsFree or paidWhat it does
get_version(server)FreeReturns module, server, schema, and PowerShell version info.
profile_functionMeasure-FunctionTestabilityFreeInspects a function’s parameters, outputs, and error types, then reports how testable it is.
audit_coverageGet-PesterCoverageFreeScans a module or folder and reports which functions have tests and where the gaps are.
run_testsStart-TestRunFreeRuns a test suite with PesterForge’s recommended settings.
generate_testsNew-PesterTestsFree [NEEDS KEITH: confirm generate_tests licensing tier]Generates a ready-to-run Pester test file for a function or script.
create_test_fileNew-TestFilePaidCreates a starter test file in the right place with the right name.
scaffold_projectNew-TestProjectPaidCreates a standard test-project folder layout.

The two paid tools are the ones that write files to your disk. Everything else reports: run_tests executes your suite but leaves your files alone, and generate_tests returns the test content by default rather than writing it, so you (or your agent) decide where it lands. Prices are on the pricing page.

One more thing about generate_tests: its default mode is deterministic and makes no network calls, and a permanent test in the suite proves the no-network claim. AI enrichment is opt-in. [NEEDS KEITH: confirm generate_tests licensing tier. The shipping server config (PesterForge.MCP.config.json) marks it tier=free today, but the approved always-free token list (profile_function, audit_coverage, get_version, run_tests) does not include it, and the swarm brief flags that opt-in AI enrichment may carry different terms. Resolve before publish.]

02 One result shape

Every tool returns a structured result, and errors are structured too: {error, category, detail}. The category value comes from a fixed six-value vocabulary (cancelled, environment, execution, invalid-input, payment-required, timeout), and a test pins that vocabulary, so a new category can’t appear without a test failing. Your client code can branch on category without parsing message text.

03 Where next