Security & Production2026-07-192 min read

MCP Server Production Deployment Checklist

A real pre-production checklist for MCP servers, covering the parts specific to MCP (tool-scoping, transport hardening, prompt injection surface) beyond generic infrastructure hygiene.

Deployment storiesProduction checklists

Most of an MCP server's production checklist is standard infrastructure hygiene — but a few items are specific to what makes MCP servers a distinct risk category from a typical REST API: the caller is an LLM interpreting untrusted input, not a human clicking through a UI.

Standard Infrastructure Hygiene

  • TLS 1.3 with valid, auto-renewing certificates on every transport endpoint
  • Structured log aggregation (not just stdout) so incidents are actually investigable after the fact
  • Monitoring and alerting on error rates, latency, and unusual call volume
  • Backup and disaster recovery for any persistent state the server owns
  • Hardened, non-default configuration — no example credentials, no debug endpoints left open

MCP-Specific Items Most Checklists Skip

  • Tool scoping reviewed, not just authentication. Confirm each tool's blast radius independently — a read-only tool and a payment-issuing tool shouldn't share the same authorization check just because both require "a valid token."
  • Untrusted content treated as untrusted. Any text a tool returns (a webpage, a file, a database row) can contain instructions an LLM might follow as if they came from the user. Don't assume tool output is inert data.
  • Confirmation gates on destructive actions. As covered across this site's payment-MCP guides (Zerodha, Zomato, Razorpay), anything that spends money, sends a message, or deletes data should have an explicit confirmation step in front of it in production, not just in the demo.
  • Rate limiting per-tool, not just per-connection. An LLM in an agentic loop can call a tool far more times per second than a human ever would — a single generous connection-level rate limit doesn't stop a runaway loop from hammering one specific expensive tool.
  • Transport matches the deployment context. stdio is fine for a locally-run, single-user server; anything reachable over a network needs the HTTP/SSE transport with real authentication, not stdio's implicit trust model.

Before You Flip the Switch

Run the server through the official MCP Inspector one more time in a production-like environment, not just locally — confirm the tool list, schemas, and error responses look the way they should against your actual deployed config, not just your dev machine's.

Join the Discussion

Discussion (0)

Y

No comments yet. Be the first to share your thoughts!