Skip to main content
mcpscore --help prints the same flags, grouped the same way as the tables below.

What to audit

Give exactly one of these. Server stderr appears in the output prefixed with server stderr:, except when a .py target fails on a missing module: mcpscore then prints the command to run instead, and -v shows the stderr. The sessionless probes start the server again for their own requests; those extra processes stay silent.

Output

Rules and CI gates

Smoke checks

These flags call the server’s tools. See smoke mode.

Authentication

For URL targets. See authenticated servers. Only an Authorization credential marks the report authenticated: true. Other headers are sent and make no such claim.

Environment variables

Exit codes

Without a gate flag or a configured [gate], a completed audit exits 0 whatever the score. A failing gate names itself on the last line:
A 2 that says the URL was redirected means mcpscore follows a redirect only within the endpoint’s origin and with the request unchanged. Audit the URL the message names. Troubleshooting has the other causes.

Output streams

Human-readable output goes to stderr. With --json, stdout carries the report and nothing else.

SARIF for GitHub code scanning

--sarif writes the failed rules in SARIF 2.1.0, the format GitHub’s Security tab reads. Upload the file and each failed rule becomes a code scanning alert. The upload workflow is in the GitHub Action guide.
A SARIF file is read by everyone who can see the repository’s alerts. Keep credentials in --token, --header, or --env NAME, never in a URL path or a program name.

What’s next

Stability contract

Which flags, fields, and exit codes stay stable across releases

Troubleshooting

Exit codes, connection failures, and partial audits