preset-io/testmcpy Eval Runner

Run LLM-driven evals against an MCP server with testmcpy: CI gate with exit codes, JUnit output, job-summary report, and optional sticky PR comment.

View on GitHub

Trust Signals

Scorecard Score
not yet scored
Maintenance Recency
Activelast commit Jul 8, 2026
License
Apache 2.0

Pinned Snippet

workflow.ymlSHA-pinned
uses: preset-io/testmcpy@15c4405735789a66bf2b4afb7605546f50abec4c # v0.11.0

tags can be moved; commit SHAs can't. why a SHA?

namedescriptionrequireddefault
test_pathPath to test files or directoryyestests/
modelLLM model to useno""
providerLLM providerno""
mcp_urlMCP service URLno""
profileMCP profile IDno""
pass_thresholdMinimum pass rate to succeed (0-100)no80
gate_configPath to a .testmcpy-gate.yaml (overrides pass_threshold)no""
report_formatReport format: md, html, jsonnomd
junitEmit junit.xml ("true"/"false")notrue
pr_commentPost/update a sticky PR comment with the report ("true"/"false")nofalse
github_tokenToken used for the PR commentno${{ github.token }}
versiontestmcpy version to install (PyPI version), e.g. 0.8.0no""
extra_argsExtra arguments appended to testmcpy runno""
anthropic_api_keyAnthropic API keyno""
openai_api_keyOpenAI API keyno""
mcp_api_tokenMCP JWT API tokenno""
mcp_api_secretMCP JWT API secretno""
mcp_api_urlMCP JWT auth URLno""
namedescription
pass_rateOverall pass rate percentage
total_testsTotal number of tests run
passedNumber of tests passed
failedNumber of tests failed
gate_passedWhether the run passed the gate ("true"/"false")
report_pathPath to generated report
results_pathPath to results JSON