ProtocolGovGuardFinGuardExplorerPlaygroundAdoptCloudTrustDocsRequest Pilot
Blog · MCP · April 2026

MCP authorization best practices in 2026

The Model Context Protocol authorization spec is excellent at deciding which tools an agent can reach. It is silent on whether the specific invocation about to execute was approved by a human. For tools that touch money, infrastructure, or user data, that gap matters.

The two questions every MCP server has to answer

When an agent invokes a tool on your MCP server, the server has to answer:

  1. Is this client allowed to call this tool at all? — answered by MCP authorization (OAuth 2.1 + scopes).
  2. Was this specific invocation, with these specific arguments, approved by a named human? — answered (or not) by whatever you wire on top.

For most tools — read-only data lookups, search, summarization — the answer to (1) is sufficient. The cost of a bad invocation is small. For a meaningful subset — payments, infrastructure changes, data exports, account modifications, anything irreversible — you need (2).

Tier your tools by blast radius

Before you write authorization code, classify every tool. A simple three-tier model goes a long way:

The mistake is treating every tool as Tier 0. The other mistake is treating every tool as Tier 2 — that's how you make agent integrations unusable.

Anatomy of a Tier 2 invocation

A Tier 2 tool needs to refuse to execute unless three things hold:

With EMILIA Protocol the wrap is short: import the SDK, declare the tool as gated, and the SDK enforces all three checks before your handler runs. A failed check returns a structured error that the client surfaces as a request for human signoff.

What good looks like in 2026

What to avoid

Try the integration

The EP MCP server is open source (Apache 2.0) and ships with 34 reference tools. The SDK pattern wraps any other MCP tool you operate.

AI agent integrationCompare MCP auth alone
MCP Authorization Best Practices in 2026