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 testtask- optional, the name of the mcp.run task to usetask-run- optional, one oflatest,new,allor the name/index of the task run to analyzeprompt- prompt to test, this is passed to the LLM under test, this can be left blank iftaskis setcheck- prompt for the judge, this is used to determine the quality of the test outputexpected-tools- list of tool names that might be usedignored-tools- optional, list of tools to ignore, they will not be available to the LLMimport- optional, includes fields from another test TOML filevars- 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)
| 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)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| 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.