---
title: "Aurora MySQL MCP: review, setup & limitations · Undominated.ai"
canonical: https://undominated.ai/mcp-servers/awslabs-mysql/
description: "AWS Labs MCP server that turns natural language into SQL for Aurora MySQL on the same host as the client, with a keyword guard the README says is not a security boundary."
---

# Aurora MySQL MCP: review, setup & limitations · Undominated.ai

> AWS Labs MCP server that turns natural language into SQL for Aurora MySQL on the same host as the client, with a keyword guard the README says is not a security boundary.

[← Explore all mcp servers](/mcp-servers/)

DATABASE DEVELOPMENT / AWS Labs

# Aurora MySQL MCP

AWS Labs MCP server that turns natural language into SQL for Aurora MySQL on the same host as the client, with a keyword guard the README says is not a security boundary.

 [See setup guidance ↓](#setup)[Original source ↗](https://github.com/awslabs/mcp/tree/8840003820a78dd018561d55c7ab12fcdd708464/src/mysql-mcp-server)

SOURCE REVIEW

 Reviewed 2026-10-14
 Evidence 2 linked sources
 Publisher AWS Labs
 Licence [Apache-2.0 ↗](https://github.com/awslabs/mcp/blob/8840003820a78dd018561d55c7ab12fcdd708464/src/mysql-mcp-server/LICENSE)
 Revision 8840003820a7
 [Read what was—and wasn’t—checked ↓](#review)

“Runs MySQL queries locally and, without --allow_write_query, rejects mutating keywords in the SQL text while telling operators to rely on the database role.”

 [AWS Labs · upstream description ↗](https://github.com/awslabs/mcp/blob/8840003820a78dd018561d55c7ab12fcdd708464/src/mysql-mcp-server/README.md) Our analysis follows below.

01 / THE REASONING

## Why this made the selection.

 - The catalogue has no Aurora MySQL MCP server.
- The README states the read-only mode's limit in a way a catalogue can repeat without calling it a guarantee.

### A good fit for

 - Querying an Aurora MySQL database from a local MCP client
- Reviewing the README's read-only warning before enabling writes

### Weigh up before choosing

 - This review did not execute it.
- This review did not start the server or send SQL.
- The documented example config includes --allow_write_query, so copying it enables writes.
- The only standalone shell line is a custom CA-bundle example, so install.command is null.

02 / THE REVIEW RECORD

## What we actually inspected.

Source review has boundaries. A clear record is more useful than a “safe” badge.

### Material inspected

 - src/mysql-mcp-server/README.md
- src/mysql-mcp-server/LICENSE

### Our findings

 - The server is local-only and converts questions into MySQL SQL for Aurora MySQL.
- The security section says read-only mode is a best-effort SQL-text safeguard, not a security boundary, and names mutating keywords it tries to reject.
- The sample MCP config includes --allow_write_query, and the README says to remove that flag to disable writes. The directory LICENSE is Apache-2.0.

### Not established by this review

 - The server was not started.
- No SQL was sent.
- The keyword guard was not tested against obfuscated statements.

The review applies to the material and revision named here. A newer upstream release can change its behavior.

03 / PUT IT TO WORK

## Connect a server deliberately.

[Upstream setup instructions ↗](https://github.com/awslabs/mcp/blob/8840003820a78dd018561d55c7ab12fcdd708464/src/mysql-mcp-server/README.md)
 - Install uv and Python 3.10 and configure a client command of uvx awslabs.mysql-mcp-server@latest.
- Remove --allow_write_query from the example if writes should stay off.
- uvx awslabs.mysql-mcp-server@latest --ca_bundle /path/to/custom.pem is a CA override example, not recorded as the install command.

### Before you start

 - Python 3.10 and uv
- AWS credentials and an Aurora MySQL endpoint
- A MySQL user limited to the statements the workload needs

### Compatibility

Amazon Q Developer CLI · Windows MCP clients using stdio

### Implementation

python

### Transports

stdio

### Local SQL, writes only with a flag

 - Generate and execute MySQL SQL
- Reject mutating keywords only when --allow_write_query is absent
- Use the database role as the boundary the README describes

### Cost model

Apache-2.0; AWS and MySQL credentials stay on the client host

04 / FOLLOW THE EVIDENCE

## The source trail.

Our notes are separate from the original resource. Check upstream before adopting a new version.

 - [MySQL MCP README ↗](https://github.com/awslabs/mcp/blob/8840003820a78dd018561d55c7ab12fcdd708464/src/mysql-mcp-server/README.md) Checked 2026-10-14 https://github.com/awslabs/mcp/blob/8840003820a78dd018561d55c7ab12fcdd708464/src/mysql-mcp-server/README.md Supports: security model and example flag
- [Directory LICENSE ↗](https://github.com/awslabs/mcp/blob/8840003820a78dd018561d55c7ab12fcdd708464/src/mysql-mcp-server/LICENSE) Checked 2026-10-14 https://github.com/awslabs/mcp/blob/8840003820a78dd018561d55c7ab12fcdd708464/src/mysql-mcp-server/LICENSE Supports: Apache-2.0 Version 2.0 header

KEEP COMPARING

## Other approaches to consider.

Related by category or shared topics. These are alternatives to inspect, not a measured quality order.

 [### Aurora DSQL MCP ↗ AWS Labs MCP server that turns questions into Postgres-compatible SQL for Aurora DSQL, read-only unless --allow-writes is passed, and only on the same host as the client.](/mcp-servers/awslabs-aurora-dsql/)[### AWS Labs Postgres MCP ↗ Pins the AWS Labs Postgres server whose read-only guard parses SQL with pglast and still tells operators to use a least-privilege role.](/mcp-servers/awslabs-postgres/)[### AWS Labs SQL Server MCP ↗ Pins the AWS Labs SQL Server server, whose default mode blocks mutating keywords and still says that filter is not the security boundary.](/mcp-servers/awslabs-mssql/)

 [AI Tools ↗](/tools/)[Skills ↗](/skills/)[Agents ↗](/agents/)[MCP Servers ↗](/mcp-servers/)[Workflows ↗](/workflows/)

## Continue your investigation

 - [Inspect resource evidence](/tools/)
- [Choose a host](/agents/)
- [Inspect reusable workflows](/skills/)
- [Use Undominated data](/api/)
