MCP Security API
Scan a Model Context Protocol server, a tools.json manifest, or a published npm / PyPI package over a single HTTPS request — and get back an auditable A–F Trust Score with every finding and its evidence as JSON. Completely free — grab a key and start scanning in seconds.
The API runs the same deterministic engine as the open-source MCP Trust Checker CLI: no LLM in the loop, no telemetry, and the same input always produces the same score. Use it to gate CI, power a marketplace listing, or check a server before you connect it to your data.
The API is completely free
Access is free — there is nothing to buy and no card to add. Calls are authenticated with an API key, and you get one instantly: fill in the short form and your key works right away. No waiting for approval.
- No cost
- No credit card
- Commercial use allowed
- Instant — no waiting
Quick start
Every call carries your API key. Get one free with the button above — it works immediately.
curl https://mcptrustchecker.com/api/v1/scan/npm/@modelcontextprotocol/server-filesystem \\
-H 'Authorization: Bearer YOUR_API_KEY'Or scan a manifest you already have:
curl -X POST https://mcptrustchecker.com/api/v1/scan/manifest \
-H 'Content-Type: application/json' \
--data-binary @tools.jsonEndpoints
Base URL https://mcptrustchecker.com/api/v1. Every response is application/json.
Scans a JSON body: a tools.json manifest, a raw tools/list result, or an MCP client config. Fully offline — nothing is fetched. Best for private or self-hosted servers.
| Field | Type | Notes |
|---|---|---|
| body | JSON object | Required. Max 256 KB. Arrays and scalars are rejected. |
curl -X POST https://mcptrustchecker.com/api/v1/scan/manifest \
-H 'Content-Type: application/json' \
-d '{"tools":[{"name":"read_file","description":"Read a file from disk."}]}'Fetches the published npm artifact, verifies it against the registry-declared hash, and analyses the exact source you would install — in memory, without installing or executing anything. Scoped names and pinned versions are supported.
| Path | Examples |
|---|---|
| {package} | left-pad · @upstash/context7-mcp · [email protected] |
curl https://mcptrustchecker.com/api/v1/scan/npm/@upstash/context7-mcpThe same deep scan for PyPI: resolves the sdist (or wheel), verifies its SHA-256, and reads the shipped Python source.
curl https://mcptrustchecker.com/api/v1/scan/pypi/mcp-server-fetchReturns a shields.io endpoint payload, so a live Trust Score badge can sit in any README.
Liveness, engine version and current scanner load. Not rate limited.
The response
Every scan returns the same shape. Three independent axes answer three different questions.
{
"tool": { "name": "mcptrustchecker", "version": "1.2.0", "methodologyVersion": "mcptrustchecker-1.0" },
"target": { "id": "@upstash/context7-mcp", "source": { "kind": "package" } },
"grade": "A",
"score": { "score": 98, "grade": "A", "vector": [ … ], "categorySubtotals": { … } },
"capability": { "level": "minimal", "tags": [], "reasons": [] },
"coverage": { "level": "source", "caveats": [ "No tools were enumerated…" ] },
"findings": [
{
"ruleId": "MTC-INJ-SEQ-1",
"title": "Forced-sequencing directive (line jumping)",
"severity": "medium",
"confidence": "strong",
"evidence": "You MUST call this",
"location": { "kind": "tool", "name": "resolve-library-id", "field": "description" }
}
],
"toxicFlows": [ … ],
"surfaceDigest": "d69f22401eb3…"
}Every point of the score is reconstructable. score.vector itemises each penalty — rule, severity, confidence multiplier and diminishing factor — so you can verify the grade rather than trust it.
Pricing, rate limits & fair use
The API is free and keys are issued instantly. A key exists so abuse can be stopped without punishing everyone else — not to upsell you.
| Control | Value |
|---|---|
| Price | Free — all endpoints, including commercial use |
| API key | Required — get one free, issued instantly |
| Rate limit | 60 requests/min per key |
| Request body | 256 KB maximum |
| Package scan cache | 15 minutes (repeat scans served instantly) |
| Timeout | 45s package scan · 10s manifest scan |
Exceeding the rate limit returns 429 with a Retry-After header. When the scanner is saturated you may get 503 — retry shortly.
Not exposed by design. The hosted API will not spawn a process and will not connect to a caller-supplied URL — remote-code-execution and SSRF vectors respectively. To scan a live or private endpoint, run the open-source CLI locally: it does everything the API does, plus live stdio/HTTP scanning and OAuth sign-in, entirely on your machine.
Errors
| Status | Meaning |
|---|---|
| 400 | Invalid input — malformed JSON, or not a valid registry package name. |
| 404 | Unknown endpoint. |
| 413 | Body larger than 256 KB. |
| 429 | Rate limited. See Retry-After. |
| 503 | Scanner saturated — retry shortly. |
| 504 | Scan exceeded its time budget. |
{ "error": { "status": 400, "message": "package must be a registry package name, not a URL" } }Prefer to run it yourself?
The scanner is MIT-licensed and runs fully offline. Everything the API does — and more — works locally.
npx mcptrustchecker # scan every MCP server you already have installed
npx mcptrustchecker scan ./tools.json # a manifest, offline
npx mcptrustchecker scan <package> --online # read the real published source
npx mcptrustchecker scan ./tools.json --sarif # SARIF for GitHub code scanningFrequently asked questions
Is there an API to check if an MCP server is safe?
Yes. The MCP Trust Checker API scans a Model Context Protocol server, a tools.json manifest, or an npm/PyPI package and returns an auditable A–F Trust Score as JSON, including every finding with its evidence. It is free to use; a free API key is issued on request.
How do I scan an MCP server with an API request?
POST your tools.json manifest to /api/v1/scan/manifest, or GET /api/v1/scan/npm/{package} to scan a published npm package. Both return the full JSON scan report with a Trust Score, Capability level and Coverage.
Is the MCP security API free?
Yes — the API is completely free. There is no cost and no credit card, including for commercial use. Access is authenticated with an API key, which is issued instantly from the API page: fill in a short form and it works right away. The key exists so abuse can be stopped without rate-limiting everyone else, not to charge you.
Does the MCP security API require an API key?
Yes. Requests are authenticated with a free API key. Get one from the API page — provide an email and a short description of your use case — and it works immediately, no approval wait. Send the key as "Authorization: Bearer
What does the MCP Trust Score measure?
The Trust Score is a 0–100 number with an A–F grade derived from a deterministic penalty vector over threat findings: prompt injection, tool poisoning, hidden Unicode payloads, cross-tool toxic flows, supply-chain risk and rug-pull drift. It is reported separately from Capability, which measures blast radius rather than malice.
Can the API scan a private or self-hosted MCP server?
The hosted API does not connect to caller-supplied URLs. To scan a private or self-hosted server, POST its tools.json manifest to the manifest endpoint, or run the open-source CLI locally with npx mcptrustchecker — the CLI runs fully offline on your own machine.