Ship with confidence
Probe your own server before you publish it as a connector. Fix thin descriptions, untyped arguments and missing safety hints while they are cheap.
MCP inspector · ready for MCP 2026-07-28
Paste a Streamable HTTP endpoint. Moonpeak detects the protocol era, lists every tool, resource and prompt, grades protocol and security, runs tools from a generated form and renders MCP App UIs. No install, no account.
Try
Server
–How it works
Moonpeak is a real MCP client. It speaks the protocol exactly like Claude or ChatGPT would, through a relay that lets your browser reach servers that do not send CORS headers.
Calls server/discover the 2026-07-28 way, with per-request _meta and Mcp-Method headers. Older servers fall back to the initialize handshake automatically.
Walks tools/list, resources/list and prompts/list across every page, then sends deliberately wrong requests to test version negotiation and header validation.
Up to 15 protocol checks and 9 security checks, each with its reason. A failure costs 20 points, a warning 6. See every rule.
Every tool gets a form generated from its input schema. Results are checked against the declared output schema; MCP App UIs render in a sandboxed host.
MCP Apps
When a tool links a ui:// resource, Moonpeak loads it into a sandboxed iframe and acts as the host. Every message between the app and the host goes through the same path a real client uses.
Apps built for the Apps SDK also get a window.openai shim with toolInput, toolOutput and callTool.
Security scan
Tool descriptions are instructions the model follows. Every probe reads them the way an attacker would write them, and grades the server separately from its protocol score.
Live server
Moonpeak runs its own MCP server with three read-only tools. token_lookup reads any ERC-20 on mainnet and returns an MCP App card. Add it as a custom connector in any MCP client. Setup guide.
/api/mcp
Use it in CI
/api/score runs the full probe from our servers and returns the report as JSON. Set a threshold and it answers 422 when the server falls below it, so curl --fail-with-body stops the pipeline on its own.
min and securityMin set the bar for each score.pin locks the tool fingerprint: any changed definition fails the build.Authorization header. It goes to that server only and the response is never cached./api/badge turns the same score into a README badge.
# Fails with HTTP 422 if either score drops below 85 curl -sS --fail-with-body \ "https://moonpeak.vercel.app/api/score?url=https%3A%2F%2Fmcp.example.com%2Fmcp&min=85&securityMin=85" # Fails if any tool definition changed since you pinned it curl -sS --fail-with-body \ "https://moonpeak.vercel.app/api/score?url=https%3A%2F%2Fmcp.example.com%2Fmcp&pin=755ffb801c321249"
name: MCP server check
on: [push, pull_request]
jobs:
moonpeak:
runs-on: ubuntu-latest
steps:
- name: Probe the deployed MCP server
run: |
curl -sS --fail-with-body \
-H "Authorization: Bearer ${{ secrets.MCP_TOKEN }}" \
"https://moonpeak.vercel.app/api/score?url=https%3A%2F%2Fmcp.example.com%2Fmcp&min=85&securityMin=85" \
| jq '{era, score, securityScore, failures}'[](https://moonpeak.vercel.app/?url=https%3A%2F%2Fmcp.example.com%2Fmcp) [](https://moonpeak.vercel.app/?url=https%3A%2F%2Fmcp.example.com%2Fmcp)
Use cases
Probe your own server before you publish it as a connector. Fix thin descriptions, untyped arguments and missing safety hints while they are cheap.
See every tool a third-party server exposes, which ones say they are destructive, and what they return, before you hand it to your assistant.
Watch the exact input and result your UI receives, call tools from inside the app, and check that the resource resolves as HTML.
Every probe has a link. Send it to a teammate, paste the Markdown in an issue, or keep the JSON for your CI history.
Security
Probes go through /api/relay, a stateless function. It forwards one JSON-RPC message, returns the answer and forgets both.
Token
The community token behind the probe. The tool is free and works without it. Holding it gives no claim on revenue, treasury or profits.
Announced at launch
Posted only here and on our X account. Names are not unique on launchpads: trust the address, nothing else.
FAQ
Yes. Probing, running tools and previewing MCP Apps are free and need no account. The token is optional and unlocks nothing.
Any public server that speaks MCP over Streamable HTTP at an https:// URL, answering in JSON or Server-Sent Events. Servers on localhost or a private network cannot be reached; expose them through a public HTTPS tunnel first.
It needs authorization. If it accepts a static token, open Add a bearer token and paste it. Servers that require a full OAuth sign-in flow are not supported yet.
Most MCP servers do not send CORS headers, so a browser cannot call them directly. The relay makes the one request your browser cannot, and nothing more. What it refuses.
No. It is Moonpeak's own checklist, built from the MCP specification and from what makes a server pleasant to use in an assistant. Every rule is public on the scoring page.
Both eras. Moonpeak speaks MCP 2026-07-28 first (stateless, server/discover, per-request metadata) and falls back to the initialize handshake for 2025-11-25, 2025-06-18, 2025-03-26 and 2024-11-05, exactly as the specification describes. Legacy servers work, with a warning that a newer revision exists.
It reads every tool, argument, prompt and resource description for known attack patterns, and fingerprints tool definitions so changes show up. It cannot see what a server does at run time, so treat a clean scan as a good sign, not a guarantee.
Discovery only lists tools, resources and prompts. Nothing runs until you press Run on a tool yourself, so check its safety hints first.