We put excellence, value and quality above all - and it shows




A Technology Partnership That Goes Beyond Code

“Arbisoft has been my most trusted technology partner for now over 15 years. Arbisoft has very unique methods of recruiting and training, and the results demonstrate that. They have great teams, great positive attitudes and great communication.”
MCP for Enterprise: Production-Hardened Model Context Protocol Integration Guide (2026)

A successful Model Context Protocol (MCP) connection proves that two components can exchange messages. It does not prove that the resulting execution path is safe, attributable, recoverable, or ready for enterprise use.
The current published MCP specification defines protocol behaviour, transports, capability negotiation, and an authorization framework. Your organisation still has to define risk tolerance, data boundaries, policy enforcement, evidence requirements, and failure recovery. That is the real work of production hardening, the core of enterprise MCP security.
The right goal is not “connect an MCP server.” It is built on a governed execution surface where every action has an identifiable principal, an explicit policy decision, a bounded blast radius, and a reconstructable outcome.
Set the production contract before choosing components
Before selecting SDKs, gateways, or server implementations, write a production contract. Keep it short, versioned, and jointly approved by platform engineering, identity engineering, and security architecture.
The contract should fix four things:
- Which MCP hosts, clients, servers, downstream systems, and trust zones are in scope
- Which actions are allowed in each zone
- Which evidence must exist before an action is permitted
- How each capability must fail, recover, and roll back
Protocol conformance and production readiness are separate gates. A server can implement JSON-RPC framing, negotiate capabilities correctly, and still fail enterprise review because it uses shared credentials, cannot prove who invoked a tool, or retries state-changing work unsafely.
Step 1: Map use cases, data classes, and trust boundaries
Start with the execution path, not the product diagram. For each use case, identify the human user, workload, agent, MCP host, MCP client, MCP server, exposed tool or resource, downstream system, and data store.
Annotate every hop with:
- The principal presented at that boundary
- The authentication mechanism
- The authorization decision point
- The tenant and environment
- The data classification
- The owner of the component
- The expected audit event
A useful test is to trace one capability from user intent to downstream effect. Ask who initiated it, which credential authorised it, which system executed it, and which trust zone the result crossed. A read-only MCP tool can still be high risk when it exposes regulated data across tenant or network boundaries.
The completed artifact is a trust-boundary diagram plus an entity inventory. Reviewers should actively search for any client-to-server or server-to-downstream route that bypasses the declared control point. An undocumented path is a release-blocking defect.
Step 2: Tier every tool and resource by blast radius
Classify capabilities by consequence, not by how simple the function looks. A practical scheme distinguishes read-only, state-changing, privileged, regulated, destructive, and externally visible operations.
Score each capability against four dimensions:
- Reversibility
- Data sensitivity
- Blast radius
- External visibility
A read-only lookup with narrow scope may need basic authorization, rate controls, and audit coverage. A destructive or regulated operation may require step-up authentication, human approval, dual control, stronger isolation, and a tested rollback path.
Compound tools should inherit their highest possible consequence. A tool that reads by default but can update records through one argument is state-changing for control purposes.
The release evidence is not the risk label itself. It is a negative test that attempts to exceed the assigned tier and proves the underlying target system was never reached.
This production-hardening work sits within a wider enterprise AI decision framework.
Define who is acting, for whom, and with what authority
Identity is the most consequential design decision in an enterprise MCP deployment. Authentication proves who a principal is. Authorization decides what that principal may do. Delegation transfers constrained authority between components. Auditability preserves the evidence.
Treat these as separate controls.
Step 3: Model user, workload, agent, and delegated identities
Every tool invocation needs an authoritative principal, whether it originates from a person or from enterprise AI agents acting on their behalf. The action may be performed:
- As the human user
- As a workload identity
- As an autonomous agent under its own authority
- As a workload acting with delegated user authority
Do not collapse these identities into a shared service account. You need to preserve both the executing workload and the authority under which it acted.
A strong enterprise pattern uses explicit token exchange rather than raw token forwarding. The MCP server receives an appropriately scoped token, then obtains a new downstream token that identifies the server and preserves the delegated subject. This reduces confused-deputy risk and prevents a token intended for one audience from being replayed against another.
An identity-to-capability matrix makes the model reviewable:
- Human user: Read and approved write capabilities, conditioned on SSO, tenant match, and an explicit policy allow. Evidence includes user, policy, target, and outcome.
- Workload identity: Narrow service actions, conditioned on a scoped credential and fixed audience. Evidence includes workload, server, target, and version.
- Autonomous agent: Pre-approved limited actions, conditioned on explicit policy and a bounded tool set. Evidence includes agent, owner, policy, and action.
- Delegated workload: User-authorised actions, conditioned on token exchange and reduced scope. Evidence includes both workload and delegated subject.
When delegation cannot be preserved to a downstream system, fail closed for higher-risk work. Silently falling back to broad service credentials destroys attribution and expands privilege.
The expected artifact is a signed identity flow that identifies issuance, validation, exchange, revocation, and audit points for every principal type.
Step 4: Connect enterprise SSO without confusing login with authorization
Single sign-on (SSO) establishes the user’s identity through an enterprise identity provider (IdP). It does not grant universal access to MCP tools.
MCP authorization uses OAuth-based mechanisms for remote servers, including protected-resource metadata discovery and audience binding through Resource Indicators. The enterprise design must still validate the issuer, audience, scope, tenant, token lifetime, and policy context on each invocation.
Use short-lived tokens, narrow scopes, and explicit audience validation. Require reauthentication or additional approval for sensitive actions. Never treat a general SSO token as a reusable downstream credential.
A decisive negative test is simple: authenticate successfully, then invoke a tool outside the granted scope. The request should be denied, the downstream system should show no corresponding action, and the audit trail should record the principal, denied capability, policy decision, and policy version.
Put MCP server architecture and policy behind an enterprise control plane
As the centrepiece of enterprise MCP architecture, a shared enterprise MCP gateway or control plane enables MCP server architecture at scale by centralising token validation, routing, tenant isolation, coarse-grained policy enforcement, rate controls, server discovery, and audit emission. It is an enterprise architecture pattern, not a protocol-defined requirement.
A compact reference flow looks like this: the user authenticates through the identity provider; the MCP host and client present an audience-bound token; the enterprise control plane validates identity and routing policy; the MCP server applies tool-specific authorization; a narrowly scoped workload credential reaches the target system; and correlated policy, execution, and outcome events enter the governed audit trail.
This control point should not become an unrestricted superuser. Downstream credentials should remain short-lived and scoped per call, with fine-grained authorization enforced again by the MCP server or target service.
Step 5: Choose a gateway topology that matches the trust model
A central gateway simplifies policy consistency and audit aggregation, but it can create a latency, availability, and ownership chokepoint. Regional gateways support residency and latency requirements, but policy replication becomes harder. Domain-specific gateways reduce blast radius and preserve team autonomy, but increase the risk of policy drift. Application-local enforcement points minimise central dependency, but scale poorly across the enterprise.
Choose the topology that matches trust zones, tenancy, regulatory boundaries, and operating ownership. Then test the topology, rather than merely documenting it.
Required evidence includes:
- No direct path bypasses the approved control point
- Failover preserves policy and audit behaviour
- Tenant isolation survives routing or regional failure
- Gateway compromise does not grant unrestricted downstream access
- Policy versions remain consistent across enforcement points
A network path trace and a forced-failover exercise are stronger evidence than an architecture diagram alone.
Step 6: Standardise Streamable HTTP sessions and failure behaviour
Streamable HTTP replaced the older HTTP plus Server-Sent Events approach with a single MCP endpoint that can support request-response and streaming behaviour. The current published specification uses negotiated protocol versions and supports session-oriented behaviour, while 2026 draft work proposes a more stateless protocol core.
That transition matters operationally. Anything that assumes sticky sessions, long-lived server state, or a specific session header needs explicit compatibility testing as part of MCP server deployment against the client, server, SDK, proxy, and load-balancer versions you deploy.
Define these behaviours before production traffic:
- Timeout and cancellation
- Reconnection
- Retry eligibility
- Duplicate suppression
- Partial completion
- Load-balancer draining
- Horizontal scaling
- Session loss
Never retry a state-changing tool automatically without idempotency or an equivalent duplicate-execution control.
For every write operation, decide whether a repeated request is safe, detectable, reversible, or prohibited. Test connection loss after the downstream action starts but before the client receives confirmation. That is where duplicate execution and ambiguous outcomes appear.
Step 7: Enforce least privilege on every capability invocation
Least privilege should apply simultaneously to the tool, resource, action, target, tenant, environment, data class, and time window.
Use role-based access control (RBAC) for coarse grouping and attribute-based access control (ABAC) for context such as tenant, data classification, risk tier, and environment. Pure RBAC often becomes too broad. Pure ABAC can become difficult to manage. The combined model is usually easier to review and test.
Deny by default. No request should reach downstream execution without an explicit allow decision. High-impact actions may also require step-up authentication, approval, dual control, or transaction-specific constraints.
Record both allow and deny decisions with the principal, capability, target, rule, and policy version. Then test denial end to end. An HTTP error alone is not enough. Confirm that the target system received no action.
Make every MCP action attributable, contained, and reviewable
A defensible control chain connects identity, authorization, execution, operational telemetry, audit evidence, and incident response. Each link must carry the same correlation identifier so reviewers can reconstruct the path from user intent to downstream effect.
Context assembly, retrieval quality, and memory operations affect what the model sees, but they are separate from MCP control enforcement. Likewise, technical evidence can support assurance work, but it does not create compliance by itself. That distinction belongs in an AI vendor security and compliance posture review.
Step 8: Emit an audit event that can reconstruct the action
A minimum viable audit event should record:
- Acting principal
- Delegated subject, when different
- Executing workload or agent
- MCP client and server identifiers
- Capability invoked
- Target resource or system
- Policy decision and policy version
- Timestamp
- Correlation identifier
- Negotiated protocol version
- Outcome and downstream transaction reference
Do not store raw access tokens, secrets, or sensitive tool arguments simply because they are available. Redact, tokenise, hash, or omit sensitive fields according to policy.
An audit event is not a debug log. It needs synchronised timestamps, governed retention, integrity controls, limited administrative access, and monitoring for alteration or loss. The practical acceptance test is incident reconstruction using only the governed audit store. Needing ad hoc application logs to fill gaps means the audit schema is incomplete.
Step 9: Separate audit evidence from operational telemetry
Application logs explain software behaviour. Metrics quantify health and performance. Distributed traces show request flow. Security alerts identify suspicious conditions. Audit events answer who performed which governed action under which policy.
OpenTelemetry (OTel) and W3C Trace Context can correlate an LLM request, MCP call, and downstream operation. They do not replace audit evidence because traces may be sampled, rotated, or retained for shorter periods.
Send high-value security signals to the security information and event management (SIEM) platform, including repeated policy denials, unusual capability use, credential misuse, cross-tenant attempts, and suspicious egress.
Test the evidence pipeline after any observability change. A new sampling policy, collector configuration, or retention rule can silently break incident reconstruction while dashboards still appear healthy.
Step 10: Isolate secrets, execution, egress, and sensitive data
Short-lived credentials should be issued for the specific downstream action, injected at runtime, and excluded from logs and model context. High-risk tools should execute in containers or sandboxes with restricted filesystem, process, and network access.
Enforce tenant, environment, and data boundaries structurally. Separate credentials and network routes are stronger than application checks alone. Restrict egress to approved destinations and monitor abnormal outbound volume.
A kill switch should disable a server, tool, credential, route, or tenant without waiting for an application release. Test it by simulating a compromised credential and proving it cannot reach systems, tenants, or data outside its declared scope.
Test failure behaviour before testing scale
A system that fails safely at moderate throughput is more valuable than one that scales while duplicating writes or bypassing policy.
MCP security risks and the attack vectors to test
MCP deployments face distinct threats. Prompt injection can redirect an agent, tool poisoning can manipulate tool selection, rug pulls can change an approved capability, and compromised dependencies or credentials can expose downstream systems.
Turn each risk into a Step 11 abuse test. Use hostile content, altered metadata, changed versions, tampered packages, replayed requests, and unauthorised egress attempts. Pass only when policy blocks execution, limits impact, and preserves complete audit evidence.
Step 11: Run conformance, abuse, and resilience tests
Run the official MCP conformance suite against the published protocol version you support, then add product-specific tests. Conformance verifies protocol behaviour. It does not verify your business rules, tenancy, downstream permissions, or recovery controls.
Use a compact test matrix:
- Conformance: Send an unsupported method or version. Require safe rejection and retain the version-pinned result.
- Authorization: Present an expired, wrong-audience, or cross-tenant token. Require denial before execution, confirmed in both policy and target logs.
- Abuse: Manipulate arguments or substitute a destination. Require bounded rejection, an alert, and no side effect.
- Resilience: Trigger timeout, reconnect, or duplicate delivery. Require a recoverable or explicitly ambiguous outcome with correlated evidence.
Add tests for slow dependencies, cancellation, partial completion, excessive invocation, and unavailable policy services. The unacceptable result is unsafe success.
Pin the test runner, SDK, protocol baseline, and deployed topology in the evidence package. Passing results from a different version combination are not current evidence.
Step 12: Release through canaries, kill switches, and tested rollback
Move changes through development, staging, and canary before broad production. Scope canaries by tenant allowlist, feature flag, traffic percentage, or capability tier, starting with lower-risk actions.
Rollback triggers should include more than uptime. Watch policy-denial anomalies, missing audit events, authentication failures, unusual egress, and business-side inconsistencies.
Exercise rollback and emergency disablement. A drill should disable a server, route, capability, or credential and verify that access is withdrawn within a defined time bound. After release, recheck identity, authorization, audit, and containment, even when the feature appears functional.
Operate MCP as a versioned enterprise platform
MCP integration becomes a platform capability when every production component has an owner, approved version, support path, and deprecation plan.
Model-provider routing, multi-LLM policy, and cost allocation are adjacent concerns. Keep them in a separate AI gateway strategy for multi-LLM enterprises rather than overloading the MCP control plane.
Step 13: Register owners, versions, dependencies, and operating limits
Maintain an enterprise registry for every MCP integration. Record:
- Accountable owner and escalation path
- Risk tier and data classification
- Tenant and environment scope
- Protocol, SDK, server, container, and policy versions
- Dependency inventory and software bill of materials
- Compatibility range and deprecation status
- Capacity limits and rate controls
- Service-level indicators and service-level objectives
- Recovery targets and rollback method
- Last review date and unresolved exceptions
Trigger re-review after ownership changes, risk-tier changes, material vulnerabilities, protocol migrations, SDK upgrades, gateway topology changes, or policy-engine changes.
An auditor or incident commander should be able to identify the current owner, approved state, deployed version, and risk tier without interviewing the engineering team.
Four shortcuts that still pass a demo but fail production review
- Direct client-to-server trust: It bypasses central policy, consistent audit, and emergency revocation. Trace the network path and block undeclared routes.
- Shared service credentials: They erase user and tenant attribution. Replace them with short-lived, principal-specific or delegated credentials.
- Debug logs as audit evidence: They are often mutable, incomplete, short-lived, and overly sensitive. Implement a governed audit-event schema.
- Uncontrolled updates: Unpinned SDK, server, or policy changes can alter behaviour without review. Pin versions and release through canaries.
These shortcuts survive demos because demos optimise for connectivity. Production review asks whether identity, policy, evidence, containment, and recovery still hold under misuse and failure.
The release gate: prove identity, containment, evidence, and recovery
Do not approve the deployment based on a successful tool call. Require artifacts and named owners.
The production-readiness gate should include:
- Architecture owner: Approved trust-boundary map and capability risk tiers
- Identity engineering: Identity-to-capability matrix, token flow, revocation test, and evidence that raw token passthrough is structurally prevented
- Security architecture: Policy model, deny-by-default test results, exception register, and approval controls for high-impact actions
- Security operations: Audit schema, correlation design, alert coverage, and a reconstructed incident using governed evidence
- Platform operations: Canary plan, kill-switch drill, rollback proof, version registry, and support ownership
Pass criteria should be measurable:
- Every invocation maps to both an executing workload and an authorising principal.
- No tested capability exceeds its assigned tier.
- Denied actions never reach the target system.
- A documented incident can be reconstructed from governed audit records.
- A server, route, tool, credential, or tenant can be disabled within the approved time bound.
- Material changes automatically trigger re-review.
A deployment fails the gate when these controls are missing, even if normal requests succeed.
For the broader buyer and governance context, return to the AI Engineering Partner Selection Guide. Use the security-assurance guidance above to evaluate evidence, not to claim automatic compliance.
A working MCP connection is an integration milestone. A production-hardened enterprise MCP integration is an identity, policy, evidence, containment, and recovery system that happens to use MCP.















