Skip to main content

mcpx-eval

A framework for evaluating open-ended tool use across various large language models.

mcpx-eval can be used to compare the output of different LLMs with the same prompt for a given task using mcp.run tools. This means we're not only interested in the quality of the output, but also curious about the helpfulness of various models when presented with real world tools.

Test configs

The tests/ directory contains pre-defined evals

Installation

uv tool install mcpx-eval

Or from git:

uv tool install git+https://github.com/dylibso/mcpx-eval

Or using uvx without installation:

uvx mcpx-eval

mcp.run Setup

You will need to get an mcp.run session ID by running:

npx --yes -p @dylibso/mcpx gen-session --write

This will generate a new session and write the session ID to a configuration file that can be used by mcpx-eval.

If you need to store the session ID in an environment variable you can run gen-session without the --write flag:

npx --yes -p @dylibso/mcpx gen-session

which should output something like:

Login successful!
Session: kabA7w6qH58H7kKOQ5su4v3bX_CeFn4k.Y4l/s/9dQwkjv9r8t/xZFjsn2fkLzf+tkve89P1vKhQ

Then set the MCP_RUN_SESSION_ID environment variable:

$ export MCP_RUN_SESSION_ID=kabA7w6qH58H7kKOQ5su4v3bX_CeFn4k.Y4l/s/9dQwkjv9r8t/xZFjsn2fkLzf+tkve89P1vKhQ

Usage

Run an eval comparing all mcp.task runs for my-task:

mcpx-eval test --task my-task --task-run all

Only evaluate the latest task run:

mcpx-eval test --task my-task --task-run latest

Or trigger a new task run:

mcpx-eval test --task my-task --task-run new

Run an mcp.run task locally with a different set of models:

mcpx-eval test --model .. --model .. --task my-task --iter 10

Generate an HTML scoreboard for all evals:

mcpx-eval gen --html results.html --show

Test file

A test file is a TOML file containing the following fields:

  • name - name of the test
  • task - optional, the name of the mcp.run task to use
  • task-run - optional, one of latest, new, all or the name/index of the task run to analyze
  • prompt - prompt to test, this is passed to the LLM under test, this can be left blank if task is set
  • check - prompt for the judge, this is used to determine the quality of the test output
  • expected-tools - list of tool names that might be used
  • ignored-tools - optional, list of tools to ignore, they will not be available to the LLM
  • import - optional, includes fields from another test TOML file
  • vars - optional, a dict of variables that will be used to format the prompt

Metadata

Release files for mcpx-eval 0.4.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for mcpx-eval 0.4.3
File Size Uploaded Provenance Actions
mcpx_eval-0.4.3.tar.gz 26.4 kB Without provenance Details for mcpx_eval-0.4.3.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for mcpx-eval 0.4.3
File Interpreter ABI Platform Actions
mcpx_eval-0.4.3-py3-none-any.whl Python 3 none any Details for mcpx_eval-0.4.3-py3-none-any.whl

Total release size: 56.6 kB

Release files / mcpx_eval-0.4.3.tar.gz

Download URL mcpx_eval-0.4.3.tar.gz
Size 26.4 kB
Tags Source
SHA-256 checksum
How to use checksums
b8673844c48c4ca49247759c308ebb98cd4a745501b5c3582552c7e7723eb929
BLAKE2b-256 checksum
How to use checksums
a3c535ae23bf361a332f992e7958710bb472af019581923ff93946c0ed8439c9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.7.6

Release files / mcpx_eval-0.4.3-py3-none-any.whl

Download URL mcpx_eval-0.4.3-py3-none-any.whl
Size 30.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
4cb3f610d52a21fa92d1e97873a985bf9e6e00b803b934d1cf066ca18a61f39a
BLAKE2b-256 checksum
How to use checksums
814ae6c1970599414adf2de401710ab91fa2e58c4e56b316cb3bbafda95d1385
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.7.6

Security for mcpx-eval 0.4.3

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page