mix noizu.mcp.eval (Noizu MCP v0.1.6)

Copy Markdown View Source

Run the description-tuning eval harness (spec §4) against a Noizu.MCP.Server.

For every selected (tool, eval, verbosity permutation), the tool's wire schema is rendered through the §0/§2/§3 resolution pipeline for that context, the eval prompt is run against a target via a Noizu.MCP.Eval.Runner, and each rubric criterion is graded via a Noizu.MCP.Eval.Judge. A JSON report is written to --output (or stdout).

# eval every tool with @eval specs, at the server default verbosity
mix noizu.mcp.eval --server MyApp.MCP

# one tool, across every verbosity level, gated for CI
mix noizu.mcp.eval --server MyApp.MCP --tool search --verbosity all --gate

# tailor the render context to a weak runner/model, write a report file
mix noizu.mcp.eval --server MyApp.MCP --runner codex --model 5.4 \
  --output eval.json

Options

  • --server MODULE (required) — the server module to eval
  • --tool NAME — restrict to one tool by wire name
  • --verbosity N | all — a level 0..9, or all to permute over 0..9 (default: the server/global default level)

  • --runner R — a render-context runner (e.g. codex) applied to every permutation
  • --model M — a render-context model (e.g. 5.4) applied to every permutation
  • --output PATH — write the JSON report to PATH (default: stdout)
  • --gate — exit non-zero if any criterion fails (for CI regression gating)

The runner/judge adapters are selected via the :noizu_mcp :eval_runner / :eval_judge application env; both default to the deterministic no-LLM stubs (Noizu.MCP.Eval.Runner.Stub / Noizu.MCP.Eval.Judge.Stub). Real LLM adapters are app-layer follow-ups.

Summary

Functions

parse_args!(argv)

@spec parse_args!([String.t()]) :: keyword()

Parse CLI args into Noizu.MCP.Eval.Harness.run/1 options.

Resolves and validates --server into a loaded server module and normalizes --verbosity, --runner, and --model. Raises Mix.Error on bad input.