The check inventory
scout runs 81 checks across 9 phases .
80 of those are fixed, and 1 is a family whose id is built at run time —
one check per value the run encounters, marked * below.
This file is generated from the source: every check is created through
(*Session).check(id, title), and this table is those call sites. CI fails
when it drifts, so the figure scout publishes is the figure it implements.
A check may be reached from more than one branch — a handshake can fail in
several ways and report the same id. The count is of distinct ids, because
that is what a reader sees in a report.
net — 6 checks
Check
What it looks for
net.dns
Hostname resolves
net.scheme
Endpoint uses HTTPS
net.tcp
TCP connection
net.tls
TLS handshake and certificate
net.tls.cert
Certificate validity window
net.tls.version
TLS version is 1.2 or newer
discovery — 14 checks
Check
What it looks for
discovery.as
Authorization server metadata (RFC 8414 / OIDC)
discovery.as.grants
Grant types advertised
discovery.as.https
Authorization server uses HTTPS
discovery.as.pkce
PKCE S256 advertised
discovery.assemble
Assemble discovery
discovery.challenge
WWW-Authenticate challenge
discovery.challenge.scope
Challenge advertises required scope
discovery.creds_unused
Credentials supplied to an open server
discovery.first_contact
Unauthenticated first contact
discovery.override
Discovery bypassed by --token-url
discovery.override.build
Override endpoints
discovery.prm
Protected resource metadata
discovery.prm.resource
PRM resource matches endpoint
discovery.registration
Client registration path
auth — 8 checks
Check
What it looks for
auth.mode
Credentials
auth.registration
Client identity
auth.rejects_garbage
Server rejects an invalid token
auth.source.*
(title computed at run time) — one per value encountered
auth.token
Token acquisition
auth.token.expiry
Token lifetime
auth.token.scope
Granted scope covers requested scope
auth.token.type
Token type
handshake — 8 checks
Check
What it looks for
handshake.capabilities
Capabilities advertised
handshake.initialize
initialize succeeds
handshake.instructions
Server instructions
handshake.protocol_era
Protocol generation
handshake.protocol_version
Negotiated protocol version
handshake.server_info
Server identifies itself
handshake.session
Mcp-Session-Id issued
handshake.stateless
Stateless session setup
protocol — 11 checks
Check
What it looks for
protocol.accept_header
Request without Accept header
protocol.bogus_session
Unknown session id is rejected
protocol.get_stream
GET on the MCP endpoint
protocol.id_echo
Response id matches request id
protocol.invalid_params
tools/call without a name is rejected
protocol.malformed_json
Malformed JSON is rejected
protocol.ping
(title computed at run time)
protocol.routing_headers
Mirrored routing headers are validated
protocol.unknown_method
Unknown method returns -32601
protocol.unknown_tool
Unknown tool is reported
protocol.version_header
Bad MCP-Protocol-Version is rejected
catalog — 19 checks
Check
What it looks for
catalog.empty
Server exposes something
catalog.names.confusable
Names use a single script
catalog.prompts.descriptions
Prompts and arguments are described
catalog.prompts.list
prompts/list
catalog.resources.list
resources/list
catalog.resources.mime
Resources declare mimeType
catalog.resources.templates
resources/templates/list
catalog.resources.uris
Resource URIs are absolute
catalog.text.comments
Catalog text carries no hidden comments
catalog.text.hidden
Catalog text has nothing hidden in it
catalog.text.instructions
Catalog text describes rather than instructs
catalog.text.secret_paths
Catalog text names no credential locations
catalog.tools.annotations
Tools declare behaviour annotations
catalog.tools.descriptions
Every tool has a useful description
catalog.tools.input_schema
inputSchema is a JSON Schema object
catalog.tools.list
tools/list
catalog.tools.output_schema
Tools declare outputSchema
catalog.tools.title
Tools have a human title
catalog.tools.unique
Tool names are unique
execution — 6 checks
Check
What it looks for
execution.content
Results validate against outputSchema
execution.policy
Safety policy
execution.prompts
Prompt rendering
execution.resources
Resource reads
execution.tools
Tool invocations
execution.validation
Tools reject missing required arguments
Check
What it looks for
performance.concurrency
(title computed at run time)
performance.ping
(title computed at run time)
performance.rate_limit
Server rate-limits an unthrottled burst
performance.throttle
Burst was throttled
performance.tools
Tool latency profile
performance.warmup
Cold vs warm call
resilience — 3 checks
Check
What it looks for
resilience.session_reinit
Client recovers from a lost session
resilience.stateless
Requests do not depend on the connection
resilience.token_refresh
Token source can renew