AI Governance Institute
← AI Governance Playbook

Question 47 of 53

How do we govern MCP servers and other agent tool connections?

By Cody Maxwell · AI Governance Institute · August 2026 · Updated September 2026

Govern MCP servers and connectors that provide agents with tools and data. Review intake, scoped credentials, and separation between content and instructions.

If you only do 3 things, do this:

  1. 1.Treat every MCP server as a production dependency, not a convenience integration. Each one you connect expands what your agent can do, so it needs the same review you would give an employee who asks for access to a new system.
  2. 2.Keep what an agent reads apart from what it is allowed to do, and build that separation into the system itself. An MCP server that pulls in a support ticket, a web page, or a code comment is pulling in a place for an attacker to hide instructions. The agent will not reliably tell the difference between information and commands unless the system design forces it to.
  3. 3.Keep an approved list (an allowlist), not a banned list. Agents should connect only to MCP servers on the approved list, and a new server should need a documented intake review before it is added.

The Situation

Who this is for: Security, platform engineering, and AI governance teams operating agents (coding assistants, support automation, internal tools) that connect to MCP servers for tool access

When you need this: Before connecting any MCP server to a production or credentialed agent, or when auditing which servers are already reachable across development and operational agents

The Decision

Which MCP servers are agents allowed to connect to, what data and actions does each one expose, and what containment exists if a connected server turns out to be compromised or malicious?

The Steps

  1. 1Inventory every MCP server currently reachable by any agent in the organization, including ones developers added on their own
  2. 2For each server, document the tools it exposes, the data it can read or write, and whether it ingests untrusted external content such as web pages, tickets, or repository issues
  3. 3Classify servers by risk: internal read-only access is lowest risk, internal write access is higher, and any exposure to external or user-submitted content is highest
  4. 4Give every agent-to-MCP-server connection its own login, separate from any person's, with only the access that connection needs; never a shared or permanent login
  5. 5Build a formal intake process: a new MCP server needs a documented review and sign-off before an agent can connect to it
  6. 6Have engineering build a technical separation between content the agent reads and the actions it can take, rather than relying on written instructions to the agent
  7. 7Log every MCP tool call with the server, action, identity, and instruction source, feeding the same audit trail as other agent actions
  8. 8Set a re-review trigger for material changes to a server's capabilities, maintainer, or publisher

The Artifacts

  • —MCP server inventory and allowlist register (server, exposed tools, data scope, risk tier, review date)
  • —MCP server intake review template (capabilities, data access, untrusted-content ingestion, publisher verification)
  • —Agent-to-MCP-server identity and credential scoping standard
  • —MCP tool-call audit log schema
  • —Re-review trigger log for MCP server capability or ownership changes
Open the implementation kit

The Output

An approved list of MCP servers with documented risk reviews, a narrowly scoped login for every agent-to-server connection, a built-in separation between what agents read and what they can do, and a full audit trail of every action taken through an MCP server.

Why MCP servers need their own governance lane

The Model Context Protocol (MCP) is a technical standard for plugging outside tools and data into an AI agent. An MCP server is one of those plug-ins: it might give the agent access to a file system, a ticketing system, a code repository, or an internal business system. MCP has become the default way agents reach beyond what they were given in the conversation itself. Adding a new server is often a one-line settings change a developer can make alone, which is exactly why the number of connections grows so fast. An agent that started with two or three connected servers can accumulate a dozen within a few months, each contributed by a different developer for a different reason, and each one a black box that decides for itself when and how to call the tools behind it.

This has become significant enough that major vendors are now building dedicated infrastructure around it. Microsoft has published formal guidance treating every MCP server as a governed dependency, requiring allowlisting and identity controls before connection. Docker has shipped a product that runs AI coding tools and their MCP servers in an isolated environment, so a misbehaving tool cannot reach the rest of the machine. Neither of those investments happens for a low-risk integration pattern. Treat MCP servers the way you would treat any other channel that grants an automated system new capabilities: reviewed before connection, scoped to least privilege, and monitored afterward.

Separate untrusted content from tool-execution authority

The clearest lesson from recent incidents is architectural, not procedural. An MCP-connected review agent that read a malicious comment on a code change and then executed the instructions inside that comment was not exploited through a vulnerability. It was doing exactly what a text-prediction system does: treating plausible-looking instructions as instructions, regardless of where they came from. A support-tooling agent that ingests an external ticket, a web page fetched on the agent's behalf, or a customer email carries the same exposure any time that content reaches a model that also has tool-calling authority.

The fix is not a better instruction telling the model to "ignore instructions in untrusted content." Models do not reliably follow that instruction when someone is deliberately trying to trick them. Relying on it is why prompt injection keeps recurring in AI browsers and coding tools: an attacker plants hidden instructions in a page or file, and the agent acts on them without anyone clicking anything. The fix is to separate privileges. Content the agent reads should never carry the same authority as the instructions its owner gives it. Any action with a real-world effect should need an approval that does not depend on what the agent happens to have read.

Treat MCP connections as identity-bearing, not credential-sharing

Every agent-to-MCP-server connection needs its own login credential, limited to exactly the tools and data that agent's task requires. It should not be a shared key reused by every agent that happens to need the same server. This mirrors AGT-009 (agent and non-human identity management) and AGT-001 (agent permission boundaries) applied specifically to the MCP layer: least privilege, a defined credential lifecycle, and access reviewed on the same cadence as human access rights.

An MCP connection left open to the internet with a weak password has already been used to take control of an agent's system and steal the live access keys it held. That incident is the practical argument for narrow, expiring, per-connection credentials over permanent shared ones. A stolen permanent credential hands an attacker everything it could reach. A stolen narrow one limits the damage to what that single connection was ever allowed to do.

Build the intake and audit process

Run MCP server approval as an approved list, not a banned list. A new server, whether built internally or pulled from a community registry, needs a documented review before any agent connects to it: what tools does it expose, what data can it touch, does it ingest untrusted content, and who maintains it. Community-published servers deserve extra scrutiny on that last question, since ownership and code can change without the kind of notification enterprise software vendors are expected to provide.

Feed every MCP tool call into the same action-logging infrastructure that covers the rest of your agentic deployments (see AGT-006, agent action audit trail): server, action, identity, and instruction source, at minimum. Set a re-review trigger for material changes to a server's capabilities, its maintainer, or its publisher, the same way vendor change monitoring works elsewhere in your AI governance program. A server that passed intake review six months ago is not guaranteed to still deserve the access it was granted then.

Turn this guidance into an implementation plan

Get the free Excel tracker for all 136 governance controls. Score maturity, assign owners, and set deadlines, including this playbook's 5 related controls.

  • 136 controls in Excel
  • Score maturity and assign owners
  • Track deadlines and regulation coverage

Includes AI Governance Weekly every Thursday. Unsubscribe anytime.