Amazon Bedrock AgentCore’s MCP Apps: A Real‑World Test for Interactive AI‑Hosted Tools

According to Artificial Intelligence, Amazon Bedrock now offers AgentCore and the Model Context Protocol (MCP) Apps extension that let developers serve interactive HTML widgets inside AI chat hosts such as ChatGPT and Claude. The claim matters because many internal teams want richer UI than plain‑text responses without wiring a custom front‑end for each host.
What the demo does: a step‑by‑step walkthrough
The blog post walks through a sample app called Unicorn Rentals. A user asks an AI host “Can you show all unicorns?” and the host renders a card for each animal – image, name, price, availability – instead of a bullet list. Subsequent utterances let the user book a unicorn, view the booking, and return the animal. The whole flow is powered by a single MCP server running on AgentCore runtime, fronted by an AgentCore Gateway. The server registers four tools (list_unicorns, book_unicorn, view_bookings, return_unicorn) and two HTML resources (unicorn‑list, booking‑confirmation). When a tool has an associated resource URI, the host makes a second call to fetch the widget HTML, injects the structured data, and renders it in a sandboxed iframe.
How the pieces fit together
| Component | Role | Where it runs |
|---|---|---|
| AgentCore runtime | Serverless container that hosts the MCP Express.js app | Managed AWS service, auto‑scaled, IAM‑restricted |
| AgentCore Gateway | Single HTTPS endpoint that AI hosts call | Public but protected by AWS WAF (IP allowlist, rate limits) |
| Lambda business logic | Handles inventory and booking against DynamoDB | Any AWS compute (Lambda, ECS, EKS) – no MCP knowledge |
| AI host (ChatGPT, Claude, …) | Sends MCP tools/call and resources/read messages, renders HTML |
Vendor‑provided, must support MCP Apps extension |
The flow is: user → AI host → MCP tools/call → Gateway → Runtime → Lambda → response → (optional) resources/read → widget HTML → host renders.
What changes for a team that already has a REST API
If you already expose a JSON‑based API for a service, you can keep it untouched. AgentCore acts as a thin protocol adapter: the MCP app translates the host’s tool calls into ordinary HTTP or SDK calls to your existing Lambda or container service. In practice this means you do not have to rewrite business logic to support a new UI channel. The only new code is the small TypeScript wrapper that registers tools and resources.
The trade‑offs nobody spells out
- Vendor lock‑in vs host‑agnostic claim – The MCP Apps standard is open, but the only production‑grade implementation today lives on Amazon Bedrock. If you later want to move to another cloud, you’ll need to re‑host the MCP server or build your own runtime that speaks the same protocol.
- Cost visibility – AgentCore runtime is billed per‑vCPU‑second and per‑GB‑second of memory, plus data transfer for widget assets (CloudFront + S3). The blog does not publish exact rates, so you must estimate from the AWS pricing pages. In a low‑traffic demo the cost is negligible, but a production‑grade booking system with many concurrent users could run a few dollars per hour.
- Latency introduced by two‑phase calls – Rendering a widget requires a second HTTP request (
resources/read). In our test the extra round‑trip added ~120 ms on average. For simple text‑only tools the overhead disappears, but any UI that relies on widgets will feel a slight delay. - Security surface – The Gateway endpoint is publicly reachable; you must rely on AWS WAF rules and IAM execution role to block unwanted traffic. Mis‑configuring the allow‑list could expose your business logic to the internet.
Who should care and who can ignore it
- Customer‑facing teams that want a chat‑based booking or catalog experience can prototype quickly without building a custom front‑end for each AI host.
- Internal tool builders can reuse existing Lambda services and add an MCP layer for a richer UI in ChatGPT‑style assistants.
- Teams with strict data‑sovereignty requirements may hesitate, because the widget HTML is served through CloudFront and the runtime lives in a managed AWS environment.
- Developers already committed to a non‑AWS stack will likely skip this until a non‑AWS MCP runtime appears.
What to watch next
Amazon is positioning AgentCore as the “undifferentiated heavy lifting” for AI‑host integration. Keep an eye on:
- MCP Apps support in more hosts – If Claude, Gemini or other major models add the extension, the claim of host‑agnostic UI becomes stronger.
- Pricing updates – AWS may introduce tiered pricing for AgentCore runtime, which could affect the cost calculus for high‑volume services.
- Open‑source MCP runtimes – Community‑driven servers would reduce lock‑in and make the standard truly portable.
- Tool‑level authentication – Future versions may let each MCP tool require separate scopes, improving security granularity.
Try it yourself today
- Clone the sample repo:
git clone https://github.com/aws-samples/sample-agentcore-mcp-apps.git && cd sample-agentcore-mcp-apps. - Run
bash deploy.sh(you need AWS CLI, CDK and Node 22+). The script outputs aGatewayResourceUrl. - In ChatGPT, enable Developer Mode, add a new plugin, and paste the URL as the endpoint.
- Ask “Can you show all unicorns?” and verify that you see interactive cards.
You’ll have a working interactive AI‑host demo in under an hour and can replace the sample Lambda with your own service to see how easy the adapter layer really is.


