Agentic AI MCP Server Governance: Vet the Server, Not the Call

Agentic AI MCP server governance explained in a newspaper-style header graphic on vetting the server rather than the tool call, with three Thinkers360 Certified Expert badges, by Dr. Harish Kotadia, Ph.D.

What is agentic AI MCP server governance?

Agentic AI MCP server governance is the set of controls that decides which MCP servers an agent may connect to, who decides that, and what a user can change. It works at the server level, not the tool-call level. So the question moves from “was this call safe?” to “was this server ever allowed in?”

You cannot vet every tool call. You can vet every server.

New here? I publish one agentic AI governance post every weekday. Subscribe to the blog and it lands in your inbox the moment it goes live.

Why can I not vet every tool call?

Because there are too many, and the dangerous part is not in the call. An agent on a busy day makes hundreds of tool calls. Nobody reads them all. And the risk often sits in the tool description, which the agent reads before any call happens.

Anthropic’s own MCP docs say the same thing in one line. “Verify you trust each server before connecting it.” That is a server decision, made once, before any call. So agentic AI MCP server governance starts before the first call.

Stop trying to police calls, police the door.

How does Claude Code control which servers load?

With an allowlist, a denylist and a managed file. Anthropic’s managed MCP page sets out the range, from “no restrictions” to “disable MCP.” By default, it says, “anyone running Claude Code can connect any MCP server they choose.” That default is the problem I am governing.

Three settings fix it.

  • allowedMcpServers lists what may load, by URL or by launch command.
  • deniedMcpServers blocks what may not, and “nothing overrides a denylist match.” then,
  • allowManagedMcpServersOnly locks the allowlist so a developer cannot widen it in their own settings.

The strongest form is a managed-mcp.json file at a system path. When it exists, users “can’t add, modify, or use any other MCP servers.” The claude mcp add command fails with a policy error. That is exclusive control, deployed by MDM, and it is what I use for anything that touches a decision.

What is the trap in the allowlist?

Matching by name. A server name is a label the developer types, so anyone can call a server github. The docs are blunt about it: a name entry “is not a security control.” To enforce which servers run, I match on the URL or the exact command.

There is a second trap, too. Without the lock setting, allowlists “from every settings scope merge,” including a user’s own file. So a developer can add a server to their personal allowlist and it loads. The allowlist looks strict and is advisory. An allowlist a developer can extend is a suggestion.

Credentials are the third. Because the managed file is readable by any user on the machine, I never put keys in it. Each user signs in with OAuth, and the server sees them, not a shared secret.

What do I vet before a server goes on the list?

Four things, in this order.

  • Who publishes it, and whether that publisher signs releases.
  • What the tool descriptions say, read as text, because that text goes straight into the model’s context.
  • What scopes it asks for, pinned with oauth.scopes to the subset the security team approved.
  • And where it sends data, checked against my egress allowlist.

In my work in regulated loan origination, the list is short. Fewer than ten servers, every one with a named owner. A server nobody owns comes off the list.


More on Agentic AI Enforcement Controls



What do I lock first?

The denylist, then the lock. Most teams start with an allowlist and spend a month arguing over what goes on it. I start by blocking what I already know is wrong and turning on allowManagedMcpServersOnly. That takes an afternoon. Then the allowlist grows one reviewed server at a time.

I also tell people what changed. The docs warn that a blocked server “silently disappears” from the list, with no signal that policy is the reason. So a developer sees a tool vanish and files a bug. Instead, I send the blocked list with the rollout. Boring, but it saves a week of tickets.

And I log which servers get used. With OpenTelemetry export on, Claude Code records server and tool names per call. So the allowlist is not a guess. It is a list I can compare to real traffic every month.

Where does this sit in the six layers?

In the enforcement layer of my six-layer architecture, beside managed settings and the egress allowlist. MCP servers themselves are a capability. But the control over which ones load is enforcement, because it holds whether or not the agent agrees.

It also earns a team room on my five-stage roadmap. A team with a locked server list can give agents more autonomy, because a list the agent cannot edit bounds its reach. Agentic AI MCP server governance is the fence that makes that trade safe.

So here is my test: can a developer on your team add an MCP server without asking anyone?

What is the bottom line?

Governance asks who decided this server was safe. Architecture answers with a locked list, matched on URL, that only the admin can change. Instructions in, results out was IT; intent in, outcomes out is agentic AI. But an outcome reached through a server nobody vetted is not an outcome. It is luck.

Agentic AI MCP server governance is cheap to set up and dull to run. So set it up before the first server, not after the first incident. I cover the wider control set in Intent In, Outcomes Out and in Earned Autonomy.

Book covers of Intent In, Outcomes Out and Earned Autonomy by Dr. Harish Kotadia, Ph.D., two field guides to agentic AI architecture and governance.
My books go deeper on both: Intent In, Outcomes Out (mybook.to/AgenticAI) and Earned Autonomy (mybook.to/Autonomy).

How many MCP servers can your agents reach today, and who signed off on each one?

Go deeper

© Dr. Harish Kotadia, Ph.D., All Rights Reserved, 2026

Dr. Harish Kotadia, Ph.D., is an Enterprise AI Architect with 20+ years of IT consulting experience serving Fortune 100 clients, specializing in agentic AI systems built on Anthropic Claude, AWS Bedrock, and Google Vertex AI.

Disclaimer: This blog post is based on publicly available academic publications, vendor documentation, open standards, and news items from reputed media sources linked above. This post is intended for educational purposes, to help the enterprise agentic AI community build a shared vocabulary from public, authoritative sources.

Views and opinions expressed here are my own and do not represent those of any employer or client, past or present. The analysis presented is my independent interpretation of the published sources linked above and does not constitute legal, financial, or consulting advice of any kind.

 


Discover more from Agentic AI Governance | Dr. Harish Kotadia, Ph.D.

Subscribe to get the latest posts sent to your email.

Discover more from Agentic AI Governance | Dr. Harish Kotadia, Ph.D.

Subscribe now to keep reading and get access to the full archive.

Continue reading

Discover more from Agentic AI Governance | Dr. Harish Kotadia, Ph.D.

Subscribe now to keep reading and get access to the full archive.

Continue reading