This proposal describes a controlled pilot for centralized Model Context Protocol (MCP) access at ASU, aligned with the enterprise MCP strategy's phased roadmap. The pilot deploys a managed MCP gateway on AWS, authenticated via Cloudflare Access, serving ~100 developers with two MCP servers (AWS Documentation and GitHub) and group-based per-tool access control. It validates the centralized hosting model the strategy recommends before broader enterprise adoption.
MCP is an open protocol that connects AI applications to enterprise tools, data sources, and workflows through structured interfaces. Rather than giving AI models direct, unmanaged access to enterprise systems, MCP creates a controlled integration layer with defined capabilities and boundaries.
The enterprise MCP strategy identifies two deployment models:
- Local user-managed — fast experimentation, but creates configuration drift, inconsistent updates, limited governance visibility, and complex support
- Centrally hosted enterprise — standardized authentication, logging, deployment, and containerized services with control, observability, and security alignment
The strategy recommends using local environments to learn, but transitioning enterprise adoption toward centralized governance. This pilot is the first step in that transition.
Approximately 100 developers currently configure MCP servers individually. Each developer manages their own server connections, credentials, and tool configurations. This produces:
- Duplicated effort — every developer repeats the same setup for common servers like AWS Documentation and GitHub
- Configuration drift — no consistency in which servers are available, how they're configured, or what versions are running
- Secret sprawl — API keys and tokens stored in individual developer environments with no centralized rotation or revocation
- No access control — no visibility into which developers access which tools, and no ability to enforce per-tool permissions based on role or team
A centralized MCP gateway that provides a single endpoint for all developers, replacing individual server configurations with a managed, authenticated, and access-controlled service.
The gateway uses three layers:
- Authentication — Cloudflare Access acts as an OIDC identity provider, authenticating developers via the corporate IdP with PKCE-based OAuth. Developers authenticate once per session through their AI tool's built-in OAuth flow.
- Authorization — A Lambda-based interceptor extracts group claims from the Cloudflare-issued JWT and enforces per-tool RBAC. Permissions are determined entirely by corporate IdP group membership — adding or removing MCP access means adding or removing someone from an IdP group.
- MCP servers — The gateway routes requests to registered MCP server targets. The pilot includes two: AWS Documentation (containerized and hosted on AWS) and GitHub (vendor-hosted remote endpoint).
As a pilot, this validates:
- The centralized gateway pattern works for real developer workflows
- Cloudflare Access OIDC integrates cleanly with AWS-managed MCP infrastructure
- Group-based RBAC provides sufficient access control granularity
- The operational model (deployment, monitoring, onboarding) is sustainable at scale
In scope:
- Amazon Bedrock AgentCore Gateway with CUSTOM_JWT authentication
- Cloudflare Access SaaS OIDC application backed by corporate IdP
- AWS Documentation MCP server (containerized stdio-to-HTTP adapter on AgentCore Runtime)
- GitHub remote MCP server (vendor-hosted at api.githubcopilot.com)
- Lambda-based RBAC interceptor with three roles (default, developers, admin)
- Developer onboarding documentation and standardized client configurations
- Observability via Datadog dashboards and CloudWatch alarms
- OpenTofu IaC with existing CI/CD pipeline
Out of scope:
- Write operations or action-based MCP capabilities (read-only pilot)
- Additional MCP servers beyond AWS Documentation and GitHub
- Changes to the corporate IdP or Cloudflare Access tenant configuration beyond the SaaS application
- Cost optimization or FinOps integration (Phase 3 per enterprise strategy)
graph LR
subgraph Developers
D1[Kiro / AI Tool]
D2[Kiro / AI Tool]
end
subgraph Cloudflare
CF[Cloudflare Access<br/>OIDC IdP<br/>SaaS App]
IDP[Corporate IdP]
end
subgraph AWS
GW[AgentCore Gateway<br/>CUSTOM_JWT auth<br/>Cloudflare OIDC]
INT[Interceptor Lambda<br/>RBAC enforcement]
subgraph Targets
RT[AgentCore Runtime<br/>AWS Docs MCP<br/>containerized stdio]
GH[GitHub Remote MCP<br/>api.githubcopilot.com]
end
end
D1 & D2 -->|OAuth/PKCE| CF
CF -->|Authenticate| IDP
D1 & D2 -->|JWT Bearer| GW
GW -->|Intercept| INT
GW --> RT
GW --> GH
| Component | Technology | Purpose |
|---|---|---|
| Identity provider | Cloudflare Access (SaaS OIDC) | Authenticates developers via corporate IdP, issues JWTs with group claims |
| Gateway | Amazon Bedrock AgentCore Gateway | Managed MCP gateway, validates JWTs, routes to targets |
| Interceptor | AWS Lambda (Python 3.12) | Extracts group claims, enforces per-tool RBAC |
| AWS Documentation MCP | AgentCore Runtime (containerized) | Searches and retrieves AWS documentation |
| GitHub MCP | Vendor-hosted remote URL | Repository, issue, and PR operations via GitHub's MCP endpoint |
| Role | IdP Group | Allowed Tools |
|---|---|---|
| default | (no group match) | AWS Documentation only |
| developers | mcp-developers | AWS Documentation + GitHub |
| admin | mcp-admin | All tools |
The implementation is structured as seven sequential tasks, each producing a GitHub PR for review before merging.
| Task | Description | Dependencies |
|---|---|---|
| 1 | Cloudflare Access SaaS OIDC application | None |
| 2 | AgentCore Gateway with Cloudflare JWT auth | Task 1 |
| 3 | AWS Documentation MCP server (containerized) | Task 2 |
| 4 | GitHub remote MCP server target | Task 2 |
| 5 | RBAC interceptor Lambda | Tasks 2, 3, 4 |
| 6 | Developer onboarding documentation | Tasks 1–5 |
| 7 | Observability (Datadog dashboards, CloudWatch alarms) | Task 2 |
All infrastructure is defined in OpenTofu and deployed through the existing Jenkins CI/CD pipeline (sandbox on all branches, production on default branch only). Secrets are managed through the existing Vault → Secrets Manager pipeline.
Per-developer GitHub OAuth passthrough — It is unclear whether AgentCore Gateway supports forwarding per-user OAuth tokens to remote MCP targets. If not, the fallback is per-developer GitHub PATs stored in Secrets Manager, keyed by developer identity. This will be validated during Task 4 implementation.
Cloudflare Access OIDC group claims — The group claim format and availability in Cloudflare-issued JWTs depends on corporate IdP configuration. If group claims are not present or are formatted differently than expected, the IdP team will need to expose group membership in the OIDC token. This should be confirmed before Task 5 (RBAC interceptor) begins.
Stdio-to-HTTP containerization — The AWS Documentation MCP server is a stdio-based tool that must be wrapped in an HTTP transport adapter for gateway hosting. This adapter layer adds a failure point and ongoing maintenance burden. If AgentCore Runtime provides native stdio support, the adapter can be eliminated.
RBAC granularity — The interceptor pattern provides tool-level access control (e.g., "can use GitHub tools") but not resource-level filtering (e.g., "can only access repos in org X"). For the pilot's read-oriented scope this is acceptable, but write-capable MCP servers in future phases will require finer-grained authorization.
The pilot succeeds if:
- Developers can connect to the gateway from Kiro (and other MCP clients) using a single
mcp.jsonconfiguration with no local server setup - Authentication via Cloudflare Access completes without manual token management
- RBAC correctly restricts tool access based on IdP group membership
- AWS Documentation search/read and GitHub repository/issue/PR operations work through the gateway
- Observability dashboards show per-tool and per-team usage metrics
- A new developer can onboard to the gateway in under 5 minutes using the provided documentation
The pilot is ready to scale when these criteria are met and no blocking issues remain in the risk areas above.
This pilot maps directly to the enterprise MCP strategy's recommendations:
| Strategy Principle | Pilot Implementation |
|---|---|
| Begin with controlled pilot focused on low-risk, high-value scenarios | Read-only access to AWS Documentation and GitHub for ~100 developers |
| Define initial catalog of approved MCP server patterns | Two server patterns: containerized stdio (AWS Docs) and remote URL (GitHub) |
| Engage Cybersecurity, Identity, and Enterprise Technology early | Cloudflare Access OIDC integration requires IdP team coordination; RBAC design reviewed with security |
| Transition enterprise adoption toward centralized governance | Gateway provides single endpoint with authentication, authorization, and observability from day one |
| Establish lifecycle management for MCP services | OpenTofu IaC, CI/CD pipeline, and observability provide the operational foundation for managing MCP server lifecycle |
The pilot validates the centralized hosting model at a controlled scale. Subsequent phases can expand the MCP server catalog, add write capabilities with additional governance controls, and integrate FinOps — following the strategy's phased roadmap from controlled pilot through documentation and automation expansion to full governance integration.