Repository navigation
Releases: mcp-box/mcpscore-action
Releases · mcp-box/mcpscore-action
Release list
v1.3.0
Changed
- A partial audit now fails
min-score, as it fails the CLI's
--fail-under. Without a working credential an auth-gated server is audited
only on its auth, TLS and transport surface, and that score used to pass the
gate. The job now fails with a message naming the partial audit and how to
pass a credential. A workflow that relied on a green partial run needs a
credential, or nomin-score.min-readinessis unchanged.
Added
- Show failure messages and repair hints in report summaries, with literal text
rendering and explicit informative/counted readiness labels. Old reports remain supported.
v1.2.0
Added
sarif-pathinput: the failed rules as SARIF 2.1.0 for GitHub code
scanning. Set it to a file and add agithub/codeql-action/upload-sarif
step, and every failed rule becomes an alert in the repository's Security
tab, keyed on the rule and the target so a re-run updates it in place. The
file is written before any gate runs, so a failing build still carries its
findings. Needs mcpscore 1.14.0 or later (the default, latest, qualifies);
an olderversionfails the job with a message naming the requirement.
The README has the workflow.
v1.1.1
Fixed
- The comment token no longer reaches the audited server. The audit
subprocess inherited the step environment, including thegithub-token
input, so a local target (server code from the pull request under review)
could read a write-capable token. The action now strips its own token from
the environment it launches mcpscore with. Secrets you export yourself,
such asMCPSCORE_TOKEN, are still passed through on purpose. - The readiness line in the comment no longer claims readiness is never
part of the main score. Since mcpscore 1.1.0 a server on the modern
lifecycle has its readiness points counted in the score, and the report
says so (readiness.counted_in_main). The comment and job summary now
read "counted in the main score" or "informative, not counted in the main
score" accordingly.
Changed
- The audit runs with
PYTHONFAULTHANDLER=1, so a native crash in the CLI
prints a traceback in the job log instead of a bare exit code.
v1.1.0
Added
- Picks up a
mcpscore.tomlfrom the checkout. Rules turned off or
re-ranked in the repository's configuration (or[tool.mcpscore]in
pyproject.toml) shape the score the action gates on, and the PR comment
names the file, what it changed, and the rules that tripped a configured
[gate]. Needs mcpscore 1.12.0 or newer; older engines behave as before. - A release script and a publish workflow.
make releaseruns the
preflight (main, clean, in sync, changelog section, tag free, CI green)
and creates the GitHub Release; thePublishworkflow then moves the
floating major tag to it in CI, where the move is auditable. Previously
the major tag was moved by hand. make allmirrors CI (ruff, pyright, pytest, zizmor), like the other
mcpscore repositories.
Changed
- A CLI gate exit now publishes the report before failing the job.
mcpscore exits 3 for--fail-underand a configured[gate]and 4 for a
--smokefailure, after writing its JSON report. The action used to treat
any non-zero exit as "could not audit" and skip the report, outputs, job
summary, and comment; it now publishes them and then fails the job with
the named reason.
v1.0.1 - Runtime refresh
Bumps the embedded astral-sh/setup-uv from 8.2.0 to 10.0.1 (transient manifest-timeout resilience, current uv checksums) and refreshes the version-input example. The audited mcpscore engine is unaffected: the action always runs the latest engine unless you pin the version input.
v1.0.0 - Audit MCP servers in CI
First release of the mcpscore GitHub Action — Lighthouse for MCP in your CI.
Audit an MCP server on every pull request, fail the build when quality drops below a threshold you set, and get the report as a PR comment.
- uses: mcp-box/mcpscore-action@v1
with:
target: https://your-server.example/mcp
min-score: 80What it does
- Score gate — fail the job when the main score falls below min-score (a percentage).
- Readiness gate — optionally require readiness for the upcoming MCP 2026-07-28 spec via min-readiness (reported separately, never mixed into the main score).
- PR comment — posts one report comment and updates it in place on re-runs: score, a pass/fail breakdown by severity, spec version and era, and every failed check by rule_id.
- Job summary + outputs — the same report in the run summary, the raw JSON on disk, and every number exposed as a step output (score, percentage, era, readiness-*, ...).
- Deterministic — no API keys, no LLM calls; the same server state always produces the same result, in seconds.
Works against remote servers (Streamable HTTP / SSE) and local .py / .js servers.
Links:
- Documentation: https://docs.mcpscore.dev/github-action
- Scoring methodology: https://docs.mcpscore.dev/methodology
- mcpscore CLI: https://github.com/mcp-box/mcpscore
Full changelog: https://github.com/mcp-box/mcpscore-action/commits/v1.0.0