An agent that can read logs is useful. An agent that can deploy a new image, change an environment variable, or roll back a production service has become part of the control plane. Treating both as merely “MCP tools” hides the difference that matters: one can explain an incident; the other can create one.
That is why the most useful part of Red Hat’s January 2026 MCP vision is not the protocol itself. It is the lifecycle: experiment in a Playground, publish an approved asset to a catalog, and deploy it under governance. For a self-hosted PaaS, that sequence gives deploy-capable tools a route to production without making a broadly scoped agent token the default credential.
Here is the core design in one sentence: a tool is tested in isolation, registered as a versioned and reviewed catalog asset, then invoked only through a policy gateway that evaluates the agent, tool, environment, request, and approval at call time. The MCP server is still important, but the durable security boundary sits in front of it.
Start with the blast radius, not the tool list
The same tools/list response can contain harmless queries and production-changing actions. A catalog that labels everything “developer productivity” has already lost the information a policy engine needs. Classify tools by the irreversible effect they can produce, then attach a gate that matches it.
| Tool class | Representative call | If the call is wrong | Minimum production gate |
|---|---|---|---|
| Read-only | logs.search, service.status | Data exposure or misleading diagnosis | Per-agent identity, tenant scope, audit event |
| Preview write | deploy.preview | Wasted build capacity or accidental test data | Repository and PR binding, quota, short-lived credential |
| Staging change | deploy.release to staging | Broken pre-production environment | Approved catalog version, policy allowlist, rollout record |
| Production canary | deploy.release with trafficPercent: 5 | Customer impact in one environment | Exact change-plan approval, environment scope, rate limit, automatic stop condition |
| Production rollback | deploy.rollback | Restores a vulnerable or incompatible version | Incident role or approval, target/version validation, immutable audit trail |
This is deliberately not a “human approves every command” model. A proven read-only query should not need the same ceremony as a production canary. But production is also not a place for an agent to turn a vague instruction—“ship the fix”—into an unconstrained API call. The policy must see the target environment, application, image or commit, rollout parameters, and actor before the deploy API sees anything.
The lifecycle: Playground, catalog, then a gated production call
Red Hat describes testing an MCP server in a Playground, publishing it to a catalog, and deploying it with confidence. That is a sound backbone, provided “confidence” is replaced with artifacts a platform can inspect. The following matrix is a practical implementation for a deploy tool such as deploy.release.
| Stage | What must exist | What is denied by default | Promotion trigger |
|---|---|---|---|
| Playground | Isolated target, fixture repo, test identity, JSON schema and expected-result fixtures | Real tenants, real production credentials, wildcard network access | Schema and behavioral tests pass; owner records intended use |
| Catalog review | Tool name, owner, source revision/hash, input/output schemas, requested scopes, risk class, runbook | Unowned tools, unversioned URLs, opaque schemas, broad scopes | Reviewer approves a specific version and allowed environments |
| Staging | Gateway policy, audience-bound token, application/environment allowlist, quotas, audit sink | Direct backend access and credentials supplied by the agent | Canary plan is rendered and, where required, approved |
| Production | Same catalog version plus change-plan ID, approval or incident authority, rollout stop conditions | Calls that differ from the approved target, version, or parameters | Event is recorded; drift and failures feed the next review |
The core rule is easy to miss: promotion is not permanent. A change to the tool description, parameter schema, implementation hash, requested permission, backend host, or allowed environment invalidates approval. That protects against both an honest evolution of a tool and a “rug pull,” where a server changes behavior after an earlier review. A catalog entry should therefore resolve to an immutable version; a mutable latest alias can be convenient in a Playground but should never be a production authorization target.
Consider a worked request. An agent wants to release web@sha256:7d… to payments-api in production at five percent traffic. In the Playground, the platform runs the tool against a disposable app and verifies that undeclared fields are rejected and that a failed readiness check stops the rollout. The catalog entry then records the repository, image-digest-only input, the exact schema, a production-canary risk class, the owning team, and the policy reference.
At runtime, the gateway accepts the agent’s identity but refuses the tool call unless payments-api, production, the image digest, and trafficPercent: 5 match an approved change plan. It creates a narrow downstream credential that can perform this one rollout, not a tenant-wide admin token. If the agent later asks for 100 percent traffic, the request is new policy input—not an implementation detail hidden behind an already-approved tool name.
The catalog decides what exists; the gateway decides what runs
The Red Hat and Azure approaches are complementary, not competing product checklists. Red Hat’s catalog pattern makes approved tools discoverable and reviewable. Azure API Management illustrates the other half: an API gateway can centralize authentication, authorization, rate limits, IP restrictions, and telemetry for MCP traffic. For a self-hosted platform, those become two separate jobs:
- Catalog: Is
deploy.releasefrom this owner, version, and source revision an approved tool? What is its risk class? Which scopes and environments may it request? - Gateway: May this agent invoke this catalog version against this tenant and environment, with these arguments, now? Is an approval required and still valid? Is the caller within its rate and concurrency budget?
Keeping the two jobs distinct avoids two failure modes. A catalog alone becomes an attractive directory of powerful tools with no runtime enforcement. A gateway alone can authenticate a request but has no trustworthy record of which tool definitions the organization actually reviewed.
The request path should look like this:
- The MCP client discovers a catalog-approved endpoint and requests a short-lived token for that exact resource.
- The gateway validates issuer, audience, expiry, tenant, agent identity, and tool/environment scopes. MCP’s authorization specification requires clients to identify the intended resource and servers to validate that a presented token was issued for them.
- The gateway validates the JSON request against the reviewed schema, evaluates policy and approval state, and writes an immutable decision event.
- Only then does it call the deployment backend with a service credential limited to the chosen tenant, app, environment, and action.
- The backend returns an operation ID; the gateway links rollout events and final outcome to the original decision.
This is more than token hygiene. A leaked long-lived token asks every downstream service to reconstruct the caller’s intent. An audience-bound token with a short time-to-live reduces where it can be replayed, while the gateway turns intent into an explicit, inspectable authorization decision.
Treat tool metadata as executable supply-chain input
MCP adds a particular wrinkle: tool names, descriptions, schemas, and results enter an agent’s context. OWASP calls out tool poisoning, tool shadowing, and servers that change definitions after approval. A deploy platform should treat metadata with the care it applies to a container image manifest, not as prose copied into a directory.
Before adding a tool to the production catalog, require a reviewer to answer these questions:
- Is there a named human or team owner and a source repository at an immutable revision?
- Does the schema reject undeclared parameters and constrain identifiers such as environment, application, image digest, and traffic percentage?
- Does the description state an operational effect plainly, without instructions that attempt to steer the agent outside the tool’s purpose?
- Are requested permissions the minimum for the documented action? A canary deploy tool should not also list secrets or enumerate every tenant.
- Have behavior fixtures covered failed health checks, invalid environment choices, duplicate requests, timeout/retry behavior, and an attempted scope escape?
- Does a schema, permission, backend, source-hash, or description change create a new review version rather than silently mutating the approved entry?
Tool names deserve namespace discipline too. A public deploy tool should not be able to shadow the approved platform.deploy.release tool through an ambiguous client display. Require stable identifiers, show the publisher and version to reviewers, and emit an alert when an agent is presented a same-named tool from an unapproved origin.
Make the gate observable—and practice failure
Governance that cannot explain a denied or executed deploy will eventually be bypassed during an incident. Each decision event needs enough context to reconstruct who requested what and why without logging secrets or full sensitive payloads. A useful record contains the request ID, timestamp, agent and human principal, tenant/app/environment, catalog tool ID and version/hash, policy version, request fingerprint, approval/change-plan ID, decision, reason, downstream operation ID, and outcome.
Monitor the control plane as a product. A small initial scorecard can track:
- catalog tools without a current owner, immutable version, or test evidence;
- denied production calls by reason, especially scope and schema failures;
- approvals that were reused, expired, or invalidated by a tool change;
- deploy calls per agent, per tenant, and per hour against expected budgets;
- time from a tool revocation to the last accepted call; and
- rollout failures correlated with a tool or policy version.
Then rehearse the bad day. Revoke a catalog version, ensure new calls fail at the gateway, expire issued tokens, and verify that an in-flight rollout follows its documented stop or recovery behavior. Run the exercise for a compromised tool description as well as a compromised credential. The former is important because an agent can be manipulated before it makes a syntactically valid request.
This maps naturally to NIST’s AI Risk Management Framework: governance defines owners and approval rules; mapping identifies the deploy action and its blast radius; measurement checks the controls and their outcomes; management revokes, remediates, and improves. It is a useful operating loop, not a certification substitute.
A 30-day starting point for a self-hosted PaaS
The first month does not require a grand “agent platform.” It requires choosing a boundary and refusing to let agents cross it without evidence.
Week 1: Inventory deploy-capable tools and backends. Classify each by blast radius, disable direct production credentials for agent hosts, and choose one staging-only tool for the Playground.
Week 2: Define a catalog manifest with owner, version/hash, schema, scope, risk class, test evidence, and runbook. Add fixture tests and make changes to those fields invalidate approval.
Week 3: Put a policy gateway in front of the deploy API. Validate identity, token audience, schema, tenant/app/environment scopes, and rate limits. Issue short-lived, action-specific downstream credentials rather than forwarding an agent token.
Week 4: Add a production-canary path with an exact-plan approval, decision events, alerts, and a revocation drill. Expand only after the staging path produces useful audit and failure data.
For an open-source PaaS such as Bex.co, the architectural lesson is straightforward: a machine-readable deploy surface is valuable to agents only if its authority can be narrowed, observed, and revoked. The right first-class feature is not merely “an MCP server.” It is a reviewable tool catalog plus a runtime authorization and audit boundary that makes an agent’s production action legible before it becomes irreversible.



