Agent Tools Need Authorization, Not Just Descriptions

Agent Tools Need Authorization, Not Just Descriptions

Agent Tools Need Authorization, Not Just Descriptions

MCP tools and A2A Agent Cards make agent capabilities easier to discover. That is good. It also creates a trap.

A tool description can say “read-only.” An agent card can advertise a skill. A prompt can tell the model to be careful. None of those things decide whether this caller, in this tenant, with this token, should be allowed to perform this action right now.

That decision belongs in a server-side authority plane.

Agent Setup treats MCP and A2A discovery as an authority-design problem, not a naming problem. If an agent can discover tools or delegate to another agent, the production question is: what enforces the boundary after discovery succeeds?

The short answer

Use descriptions and Agent Cards for discovery. Use server-side authorization for permission.

A production authority plane should inventory every MCP tool and A2A skill, then bind each capability to:

Without that layer, the system is relying on convention. With it, tool discovery can expand without silently expanding authority.

If you are still choosing which tools to enable first, start with the AI agent tool rollout order. This post covers the next question: once a tool is visible, what makes it safe to call?

MCP tool metadata is not the permission boundary

The Model Context Protocol tools spec says tools are model-controlled: the model can discover and invoke them automatically based on context.1 That is the whole point of the protocol. It is also why metadata cannot be your only control.

The MCP tools spec is direct about trust:

“clients MUST consider tool annotations to be untrusted unless they come from trusted servers.”

— Model Context Protocol, Tools specification1

That quote is about annotations, but the lesson is broader. Tool names, descriptions, schemas, annotations, and return values help the client and model understand what exists. They do not prove that a caller is authorized.

For HTTP-based MCP servers, the authorization spec frames the protected MCP server as an OAuth resource server when authorization is supported.2 That means a production review should ask concrete questions:

MCP’s security guidance calls token passthrough an anti-pattern because it blurs accountability and can turn the MCP server into a confused deputy.3 OWASP’s MCP Security Cheat Sheet points to the same operating shape: least privilege, server isolation, human-in-the-loop controls for sensitive actions, input/output validation, transport security, and logging/auditing.4 In practice, that means the inbound token should authorize the client or user to call the MCP server. Any downstream SaaS, database, or cloud API token should be a separate credential acquired and scoped by the server-side implementation.

A2A Agent Cards advertise capabilities; they do not grant them

A2A has the same pattern at the agent-to-agent layer.

An Agent Card tells clients how to discover and interact with a remote agent. A2A’s discovery docs describe cards as including identity, service endpoint, capabilities, authentication requirements, and skills.5 That is useful discovery metadata. It is not permission.

A secure A2A deployment should review each advertised skill like this:

A2A’s enterprise guidance puts authentication at the HTTP layer and authorization in the server implementation. It calls for granular control, skill-based authorization, data and action-level checks, least privilege, tracing, logging, and auditing.6

That distinction matters. An Agent Card can say “invoice reconciliation.” The authority plane decides whether this client can reconcile invoices for this account, whether it can only read mismatches, whether it can create adjustments, and whether a human must approve the final action.

Sensitive cards also need their own boundary. A2A discovery guidance recommends authenticated extended cards, endpoint access controls, and selective disclosure for cards that expose sensitive URLs or skills.5 If the card itself leaks too much, authorization is already starting late.

Build a capability inventory before adding more tools

A practical authority plane starts as an inventory.

For every MCP tool or A2A skill, record:

This is the artifact Agent Setup wants to see in a review. Not “the model knows to only use safe tools,” but “this tool call fails closed when the token is missing, wrong-audience, wrong-scope, expired, copied from another session, or used against the wrong tenant.”

Pair that with the broader AI agent security checklist and channel access policy so the capability boundary matches who can reach the agent in the first place.

Approvals must bind to the exact action

Human approval is part of the authority plane, but only if it is precise.

A weak approval says, “Allow the agent to continue?” A useful approval says, “Allow agent X to call tool Y against resource Z with these normalized parameters before this expiry time?”

The daily research behind this post found the same pattern across AI-agent and transaction-authorization guidance: high-impact approvals need exact-action previews, approver identity, expiration, replay protection, and execution-side validation. The executor should check the approval record immediately before action, not trust the agent’s next message.

Use approval gates for actions like:

For the highest-risk actions, add step-up authentication. Approval is not a vibe; it is a scoped, one-time authorization artifact.

Delegation needs scoped child authority

Multi-agent systems make this harder because the first agent may not be the one that performs the final action.

OpenAI’s Agents SDK represents handoffs as tools, and the handoff mechanism can carry custom inputs and filters.7 Its tracing docs describe traces and spans that can include LLM generations, tool calls, handoffs, guardrails, and custom events.8 Those features are useful, but they are not a substitute for authority design.

A multi-agent workflow needs a delegation graph:

OWASP’s AI Agent Security guidance calls for least-privilege tools, explicit authorization for sensitive operations, trust boundaries between agents, and monitoring of decisions and tool calls.9 The practical version is simple: do not let a supervisor agent pass broad credentials to every subagent just because delegation is convenient.

Every child task should receive the minimum authority it needs, for the shortest useful time, with traceable output and a clear return condition.

Negative tests are the proof

The authority plane is only real if denied paths fail.

Before widening access, run tests like these:

These tests are more useful than a long policy document. They prove the implementation is enforcing the boundary where the action actually happens.

What teams should build first

Start with a small set of capabilities and make the boundary boring.

For a first MCP or A2A rollout, Agent Setup recommends this order:

  1. Inventory visible tools, skills, cards, servers, agents, and endpoints.
  2. Classify each capability as read-only, internal write, external send, credential, financial, admin, or destructive.
  3. Map each capability to identity, scopes, tenant/resource rules, approvals, and audit fields.
  4. Remove tools or skills that do not have an owner or a testable policy.
  5. Require scoped short-lived credentials where possible.
  6. Add exact-action approval for high-impact calls.
  7. Add rate, spend, retry, and delegation caps.
  8. Run denied-path tests before adding more callers.
  9. Review traces and logs for secrets before retaining them.
  10. Revisit the matrix whenever tools, prompts, models, cards, scopes, or connected accounts change.

If your deployment also stores long-term context, align this with your AI agent memory policy. If you are still at the first install stage, use the private AI agent setup guide before exposing more channels or tools.

The takeaway

MCP and A2A make agent ecosystems more composable. They also make permission mistakes easier to hide behind friendly descriptions.

The safe pattern is not “write a better prompt.” It is: advertise capabilities clearly, authorize them server-side, scope credentials narrowly, require exact approval for high-impact actions, cap delegation, and log enough evidence to reconstruct both allowed and denied paths.

Agent tools need authorization, not just descriptions. Agent Setup can help teams design that authority plane before the agent can reach more tools, more data, and more people.

Sources

Footnotes

  1. Model Context Protocol, “Tools,” specification version 2025-11-25. https://modelcontextprotocol.io/specification/latest/server/tools 2

  2. Model Context Protocol, “Authorization,” specification version 2025-11-25. https://modelcontextprotocol.io/specification/latest/basic/authorization

  3. Model Context Protocol, “Security Best Practices.” https://modelcontextprotocol.io/docs/tutorials/security/security_best_practices

  4. OWASP Cheat Sheet Series, “MCP Security Cheat Sheet.” https://cheatsheetseries.owasp.org/cheatsheets/MCP_Security_Cheat_Sheet.html

  5. A2A Protocol, “Agent Discovery.” https://a2a-protocol.org/latest/topics/agent-discovery/ 2

  6. A2A Protocol, “Enterprise Features.” https://a2a-protocol.org/latest/topics/enterprise-ready/

  7. OpenAI Agents SDK, “Handoffs.” https://openai.github.io/openai-agents-python/handoffs/

  8. OpenAI Agents SDK, “Tracing.” https://openai.github.io/openai-agents-python/tracing/

  9. OWASP Cheat Sheet Series, “AI Agent Security Cheat Sheet.” https://cheatsheetseries.owasp.org/cheatsheets/AI_Agent_Security_Cheat_Sheet.html