Consolidating, Controlling, and Optimizing MCP Tool Access on Kubernetes

Every team that gives an agent a tool stands up another server, and every client has to be told about all of them. None of those servers knows who is calling, and the whole tool catalog goes to the model on every turn.

Put one controlled endpoint in front of every MCP server and REST API your agents call: tools scoped to the caller, identity that survives the hop to the backend, and a measured reduction in what each agent carries in context.

MCP Consolidation & Control Dashboard

Common Challenges

The server nobody can remove

Retiring an MCP server means finding every client configured against it first. Those configurations are spread across teams, repositories and CI, and nobody is confident the list is complete.

Context bloat, paid on every turn

The tool catalog goes to the model on every request. An agent entitled to four tools out of twenty still carries all twenty definitions, every turn, for the life of the conversation.

The unattributable tool call

MCP servers record connections, not people. When a tool call is questioned later there is no per-request account of who made it or what they were entitled to.

MCP Call Tracing and Attribution

What you build
Solution Architecture — Consolidating, Controlling, and Optimizing MCP Tool Access on Kubernetes

  • One endpoint, every client.
    MCP servers are added and removed behind the gateway. Clients are configured  once, with one address, and never again.
  • REST APIs served as tools.
    Point the gateway at an OpenAPI document and its operations become MCP tools.  The gateway is the server, so there is nothing for your team to write or run.
  • Tools scoped to the caller.
    Verified identity from the identity provider you already run, and tool-level  authorization keyed to group claims. A tool a caller cannot see cannot be  called, and cannot pack the context window.
  • Identity that survives the hop.
    The gateway exchanges the caller's token for one addressed to the specific  backend, so the downstream service receives a token naming the user and valid  nowhere else.
  • Both specifications, one policy.
    Session-based and stateless MCP servers behind the same endpoint, with version  translation handled by the gateway, so a mixed fleet is not a second policy set.

What you can answer afterwards

  • Which callers can reach which tools, and who decided?
  • Who called that tool, and were they entitled to?
  • What does the tool catalog cost each agent, per turn?
  • Can we add a server without touching a single client?
  • Can our existing clients keep working while we migrate to the new specification?

Common questions

Q. How do I stop every agent from seeing every MCP tool?

Put the servers behind a gateway and apply tool-level authorization there. The gateway verifies the caller's token and filters the tool list against a claim, usually group membership, so each caller is offered only what they are entitled to. A tool a caller cannot see also cannot be called by name.

Q. How do I reduce the context my agents spend on tool definitions?

Scope the catalog before you compress it. Tool definitions are sent to the model on every request, so the largest reduction comes from each caller being offered only the tools they are entitled to. In the validated deployment this took one caller from twenty tools to four, from 2,200 tokens to 308. Progressive disclosure and code mode help further above roughly five and fifteen authorized tools respectively.

Q. How do I expose a REST API to agents without writing an MCP server?

Give the gateway the API's OpenAPI document. Each operation is served as an MCP tool, so agents reach the API through the same endpoint as everything else and there is no wrapper service to deploy, secure or version.

Q. Can I run session-based and stateless MCP servers at the same time?

Yes. Both sit behind one endpoint under one authorization policy, and the gateway translates between specification versions so existing clients keep working while you migrate. Note that a federated endpoint negotiates the version every target can serve, so a modern-only endpoint alongside it is the pattern for a mixed fleet.

Q. What identity does an MCP server receive when the call comes through a gateway?

Whatever you configure it to receive. Forwarding the caller's own token couples the backend to your identity provider; using a service account loses the user entirely. Token exchange gives you a third option: the gateway issues a token that names the caller, is addressed to that backend alone, and cannot be replayed anywhere else.

Solution Resources

Solution Overview

Download

Deployment Guide

Download