Skip to content

mcpdo: add --load (tool load/concurrency test) using the shared core engine #2744

Open

Description

@cliffhall

Follow-up to #2439 / #2743, which shipped --load in the one-shot CLI only. That issue was scoped CLI-first ("consider whether to add it to mcpdo later"), so this one is the "later".

What

Give mcpdo a load mode for one tool against a named connection, producing the same summary as mcp-inspector --cli ... --load: ok, toolErrors, errors, errorRate, throughput, latency min/mean/p50/p90/p99/max, and the top error messages.

Why it should be cheap

The engine is already shared. core/cli/handlers/load-test.ts exports runToolLoad(inspectorClient, args, options), resolveLoadOptions, and the flag parsers. It takes an InspectorClient and has no CLI-specific code. The mcpdo work is mostly:

  • add the flags (--load, --load-concurrency, --load-duration, --load-requests, --load-rate) to mcpdo's tools/call command, with the same rejection rules as the CLI (each --load-* requires --load; --load requires a tool call);
  • run the load inside the daemon, against the daemon's live connection, and return the LoadSummary to the short-lived mcpdo process, rather than driving many separate daemon round trips from the client;
  • document it in clients/mcpdo/README.md.

Open question

A long --load-duration holds one daemon request open for the whole run. Check whether the daemon's request/IPC timeouts allow that, and whether other commands on the same connection can still run while a load is in progress.

Priority score

Severity 2 (missing capability; the one-shot CLI works today) + urgency 3 (wanted this milestone) + 1 (milestoned) = 6 → Medium.

Activity

  1. added this to the v2.12.0 milestone on Oct 20, 2026
  2. modified the milestones: v2.12.0, v2.13.0 on Oct 20, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature requestv2Issues and PRs for v2

    Type

    No type

    Projects

    No projects

      Milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions