Whisper · Docs
Solutions

MCP server trust

Before your agent hands tool-calling access to an MCP server it found in a registry or a README, it has no cheap way to ask "is this host known, and does it carry a bad reputation?"

The Model Context Protocol standardised how a client and a server talk. It left trust as someone else's problem. A server's tools/list name and description are self-asserted, and the fact that a host is reachable over TLS says nothing about who runs it or what the wider internet already knows about it.

Whisper closes the first, cheapest gap with a keyless verify endpoint. Give it a server host and it returns two independent, observe-only signals folded into one trust verdict, with no account and no key:

curl -s 'https://whisper.online/mcp/assess?server=api.example.com' | jq

This is the keyless verify tier. It complements, and is byte-consistent with, the keyed govern tier (allowlists and policy enforcement for your own agents, unlocked with your Whisper API key on the control plane). Together they are the two-tier surface every Whisper integration follows: real value with no key, full control behind one.

Two signals, folded honestly

The verdict rests on two axes a keyless caller can legitimately obtain for one host, and nothing it cannot:

Verdict Meaning
trusted Active MCP-registry publisher, no adverse graph band
neutral Registry-known publisher, but the graph could not be consulted (no reputation claim)
unverified Not registry-listed and no adverse band. Unverified is not an accusation of malice
suspicious MEDIUM graph band. Inspect before connecting
critical CRITICAL/HIGH band, or a withdrawn registry publisher. Treat with caution before connecting

Live, keyless

A host the graph flags as critical (here, a domain long documented in threat intelligence):

// curl -s 'https://whisper.online/mcp/assess?server=coinhive.com'
{
  "object": "mcp_assessment",
  "server": "coinhive.com",
  "port": 443,
  "verdict": "critical",
  "verdict_detail": "the host carries a CRITICAL Whisper graph reputation band; treat with caution before connecting",
  "band": "CRITICAL",
  "band_available": true,
  "registry_status": "UNKNOWN",
  "registry_listed": false,
  "score": 70,
  "tier": "connection",
  "feeds": [
    { "source": "whisper-graph-reputation", "available": true, "band": "CRITICAL" },
    { "source": "official-mcp-registry", "available": false, "status": "UNKNOWN" }
  ],
  "limits": [
    "band is a Whisper graph reputation signal, not proof of malice",
    "registry status recognises servers listed in the official MCP registry, not arbitrary MCP servers behind opaque TLS",
    "connection-tier only: host, reputation band and registry status, never the MCP tool, method or arguments",
    "an unrecognised (UNKNOWN-registry) server is unverified, not malicious"
  ],
  "note": "keyless verify tier: supply your Whisper API key to govern MCP allowlists and enforce policy for your own agents"
}

A host with a middling band reads suspicious, and a host nobody has any signal on reads unverified, which is a fact, not an accusation:

# curl -s '.../mcp/assess?server=paypa1.com'    -> band MEDIUM, verdict "suspicious", score 45
# curl -s '.../mcp/assess?server=<unseen-host>'  -> band UNKNOWN, verdict "unverified", score 10

The honesty boundary is in the answer

Every response carries its own limits, and it degrades rather than guesses:

Postel, at the door

Liberal in what it accepts: ?server= on GET, a JSON {"server":"..."} or a form field on POST, a host with or without a scheme, port, path, or trailing dot. Conservative in what it emits: one typed, predictable JSON shape every time, a clean status on every error, and the limits of the answer stated in the body rather than hidden.

From verify to govern

Verifying a host is the keyless half. With your Whisper API key, the control plane governs your own agents' MCP posture: which servers they may reach, the policy the resolver enforces, and the per-agent activity you can read back. The keyless verdict a caller reads here is folded from the same signals as the keyed posture, so what an auditor checks from outside and what you enforce from inside stay consistent.


Next: MCP server the keyless whisper_verify tools any client can call · Compliance evidence the same keyless-verify posture as an audit grid · Transparency log the ledger the reputation and verify surfaces share · Integrations the two-tier design every surface follows.