Checklist · Updated July 2026 · 8 min read

The MCP server conformance checklist

Ten checks, ordered by how badly getting them wrong hurts. The first five decide whether clients can use your server at all; the rest decide whether agents actually pick it and keep working.

1. Serve over HTTPS

Most MCP clients refuse plaintext remote endpoints. Non-negotiable for anything beyond localhost.

2. Return a valid JSON-RPC initialize result

A POSTed initialize must return a JSON-RPC 2.0 result (as JSON or an SSE data: event). This is the single gate every client passes through — test it first.

3. Negotiate a protocolVersion

Echo a supported protocolVersion in the initialize result. Missing it makes clients and registries unsure how to talk to you.

4. Provide serverInfo (name + version)

Set serverInfo.name and serverInfo.version. Directories, dashboards and clients identify your server by these; without them you're anonymous.

5. Declare capabilities

Declare the capabilities you support (tools, resources, prompts). Clients gate calls on this — undeclared capabilities may never be probed.

6. Describe every tool clearly

Agents choose tools by description. State what each tool does, when to use it, and what it returns. This is the #1 real-world gap — see why your tools aren't being called.

7. Give every tool a valid inputSchema

Typed JSON Schema with per-field descriptions and required fields, so the model can construct valid calls.

8. Keep handshake latency low

Agents chain many calls; every slow hop compounds. Serve from an edge runtime and minimize cold starts. Under ~800ms is healthy.

9. Set a deliberate auth posture

Public read-only server: no auth is fine. Anything that mutates state or reaches private data: require an Authorization header (OAuth or bearer). Decide on purpose — don't leave a stateful server open by accident.

10. Monitor for drift and downtime

Servers regress silently. Watch uptime, latency and tool-schema drift so you're alerted before agents drop you — see the monitoring guide.

Score your server against all 10

MCP Pulse checks every item with a real handshake — free, 10 seconds.

Scan my server →