01Provenance and scope
Record the canonical repository or operator, release/version, transport, server card, expected tools and the environments in which the server is allowed to run. Do not treat a package name, marketplace badge or tool description as proof of identity.
02Identity and authorization
Use a distinct service identity per environment, narrow permissions at action time, short-lived credentials where practical and an explicit revocation test. A prompt, server card or payment receipt is not identity authentication.
03Tool contracts and effects
Read typed inputs and outputs, reject unknown or oversized values, label read versus write behavior, make irreversible effects explicit and require preview or independent approval for high-impact actions. Check idempotency before allowing retries.
04Context and memory boundaries
Keep retrieved content, tool output and user instructions distinguishable. Record provenance for durable writes, prevent untrusted text from silently becoming policy, and review whether an MCP response can influence future authority.
05Egress and secrets
Allowlist destinations and methods, enforce timeouts and payload limits, redact credentials from prompts and logs, and make uploads, webhooks and third-party calls visible. A server that can reach the internet can often reach more than its tool list suggests.
06Failure and recovery
Observe caller, tool, target, result and side effect with a correlation ID. Define fail-closed behavior for timeouts and malformed responses, then prove that an operator can pause the server, revoke identity and recover without duplicating an irreversible action.