AWS team details a serverless MCP server that gives AI agents data lake access on ECS Fargate
An Amazon team published a how-to on AWS's blog for a serverless MCP server on ECS Fargate. It gives AI agents one gateway to a data lake, and a new dataset needs only a JSON metadata file.
If your agents each carry their own SQL and access logic, this shows a pattern that moves it into one shared server. It also shows how to onboard datasets through config instead of code.

What happened
AWS published a technical how-to on 6 November 2026 on its Machine Learning Blog. In the company's own post, a team that supports Amazon's North America Sort Center (NASC) network describes a serverless Model Context Protocol (MCP) server. It runs on Amazon ECS with AWS Fargate.
The server sits between AI agents and an enterprise data lake. The team built it so planning teams could ask questions of operational data in plain language, without every agent carrying its own integration code.
The post includes Figure 1, an architecture diagram of the request flow. In short: a user query comes from a client app such as web chat, Slack, an IDE plugin or an external agent. It passes Route 53 and a load balancer with HTTPS and AWS WAF, and Cognito authenticates it. The client layer on Fargate keeps session state in DynamoDB and forwards the request to the MCP server layer, also on Fargate. There, a Bedrock-powered agent calls FastMCP tools that reach Athena, Redshift and Bedrock Knowledge Bases. Lambda handles ingestion into S3 and the knowledge bases.
Key details
- Problem: Agents were wired straight to databases and APIs. Each had its own SQL generation, schema knowledge and access control. Onboarding one table was typically a multi-day effort, the authors say.
- Design goals: configuration-driven data access, agent-agnostic tools, permissions enforced at the MCP server, and elastic infrastructure.
- Four layers: client, MCP server, tools, and knowledge-base refresh. Each scales and deploys independently.
- Stack: the tools are built with FastMCP, a Python framework. Amazon Bedrock powers the agent.
- Statelessness: Fargate tasks keep no state, so they can be replaced or scaled without data loss.
- Safety: Bedrock Guardrails applies to every model interaction. The Athena query tools accept only SELECT queries and reject writes.
- Latency: the authors say that in their testing, scoping queries to relevant tables keeps end-to-end latency at 15–20 seconds.
- Onboarding: a new dataset needs a JSON metadata file, which the server picks up on the next pipeline sync.
| Tool | Backend | Purpose |
|---|---|---|
| SQL query tools | Amazon Athena, Amazon Redshift | Run SQL against configured datasets |
| Document and metadata search | Bedrock Knowledge Bases | Semantic search over docs, table metadata and wikis |
| Policy search | Bedrock Knowledge Bases | Search operational policies and procedures |
Try it
The post uses a context mapping file to limit each query to relevant tables. Adding a business domain means adding an entry:
{
"package_data": {
"description": "Package tracking and delivery information",
"tables": ["analytics_db.regional_order_summary", "operations_gold.load_summary"],
"sources": {"wiki": [], "quip": []}
},
"labor_planning": {
"description": "Workforce management and capacity planning",
"tables": ["workforce.capacity_details"],
"sources": {"wiki": [], "quip": []}
}
}
Why it matters
The post is a vendor's own account of an internal system, not an independent test. Still, it shows one way to centralise access control and schema knowledge for several agents. External MCP-compatible clients, such as Amazon Q Developer or IDE extensions, can discover and call the same tools through the /mcp endpoint, according to the authors.
Read the full AWS post to see Figure 1 and the metadata file format.
FAQ
What does the MCP server do in this design? It acts as a shared gateway between AI agents and the data lake. It handles tool discovery, query execution and permission checks in one place.
How do you add a new dataset? You write a JSON metadata file for the table, plus an optional context mapping entry. The server finds it on the next pipeline sync, with no new tool code.
Can agents write to the data lake through it? Not through the Athena query tools. They allow only SELECT queries and reject write operations before they reach the data lake.
Checked claims
| Claim | Status | Evidence |
|---|---|---|
| A new dataset needs only a JSON metadata file, which the server picks up on the next pipeline sync. | confirmed | Exposing a new dataset requires only a JSON metadata file that the server discovers automatically on the next pipeline sync. |
| Before the shared server, onboarding a single table was typically a multi-day effort. | confirmed | Onboarding a new dataset required custom tool code, query validation, and redeployment, typically a multi-day effort per table. |
| The authors say scoping queries to relevant tables keeps end-to-end latency at 15–20 seconds in their testing. | confirmed | In our testing, this scoping keeps end-to-end interaction latency in the 15–20 second range. |
| Fargate tasks are stateless, with conversation state kept in DynamoDB. | confirmed | Fargate tasks are stateless with conversation state persisted in DynamoDB, so tasks can be replaced or scaled without data loss. |
| The Athena query tools allow only SELECT queries and reject writes. | confirmed | The Athena query tools enforce SELECT -only queries, rejecting write operations at the tool level before they reach the data lake. |
Question for readersHow do you handle access control and schema knowledge today when several agents query the same data?
Discussion · 0
No comments yet. Start the discussion.
Sign in to join the discussion.