Skip to content

v0.2.0

Choose a tag to compare

@github-actions github-actions released this 24 Jun 20:06
· 6 commits to main since this release
f501277

Added

  • profile subcommand that measures the token economics of progressive tool discovery — the delta
    between the naive "load every manifest every turn" baseline and the orchestrator's actual
    progressive cost. Two modes: profile --config <path> (static: resting floor, naive baseline, and
    a best/worst envelope where worst is honestly higher than naive) and
    profile --trace <session.jsonl> --config <path> (replays a real session into the per-turn curve —
    active vs. naive, load events, never-loaded savings, and break-even, including the honest
    "overhead never repaid" case). --format json emits a snake_case superset for tooling, and
    --assert-favorable exits non-zero so CI can gate on the orchestrator staying favorable for a
    canonical session.
  • profile --host-config <path>: a read-only "try before you keep it" path. Points the profiler at
    an existing MCP host config (.mcp.json / .vscode/mcp.json / Cursor / Claude Desktop) instead of
    an orchestrator config — its stdio servers are imported in memory and measured, writing
    nothing
    (remote http/sse servers are listed and skipped). Run it as a one-shot with
    dotnet tool execute McpOrchestrator profile --host-config <path> (or dnx …) to see the savings
    with no global install and nothing to uninstall. The host-config parser is shared with init.
  • Optional session-trace side-channel: run with --trace-out <path> (or
    MCP_ORCHESTRATOR_TRACE_OUT) to append one JSONL line per discover/route interaction for later
    replay. Off by default; the server hot path is unaffected.
  • Local, deterministic token counting via Microsoft.ML.Tokenizers (cl100k_base, embedded vocab —
    offline and CI-friendly), behind an ITokenCounter seam so a live-usage backend can replace it.
    Every report discloses the tokenizer and a ±10% cross-model tolerance.
  • init subcommand that adopts an existing MCP host config in one step: mcp-orchestrator init <host-config> lifts every stdio server out of .mcp.json / .vscode/mcp.json (or any
    mcpServers / servers map — Cursor, Claude Desktop) into a generated orchestrator.config.json
    (one capability each, with a TODO summary placeholder and no instructions — the summary
    drives routing), backs up the host config, then rewrites it to launch only the orchestrator
    pointed at the new catalog via MCP_ORCHESTRATOR_CONFIG. Remote (http/sse) servers are left in
    place; the user only fills in the one-line summary per capability. --dry-run previews both
    files, --force overwrites an existing catalog, --command <path> targets the AOT binary, and
    --dev-feed <path> wires the orchestrator to run from a local folder feed (latest local build).
  • pack-local.ps1: packs the project as the pinned 9.9.9-dev version into nupkg/local-feed and
    evicts the cached copy, so a host launching the tool with dotnet tool execute McpOrchestrator --version 9.9.9-dev --source <feed> --yes always runs the latest local code.

Changed

  • instructions is now an optional (nullable) capability field, omitted from output and from
    list_capabilities when absent, rather than always emitted as an empty string.