awslabs/mcp
Overview
This skill provides tools and patterns for building with Amazon Aurora DSQL. It helps manage schemas, run queries, and perform safe migrations while enforcing DSQL-specific constraints like async indexes and tenant isolation. Use it to develop scalable, distributed applications that require IAM-based authentication and MCP tool integration.
How this skill works
The skill exposes MCP tools to run readonly SELECT queries, execute transactional DDL/DML, and inspect table schemas. It enforces DSQL rules such as one-DDL-per-transaction, CREATE INDEX ASYNC, and batching updates under 3,000 rows. Reference documents (development guide, language patterns, examples, troubleshooting) should be consulted before schema changes or implementation.
When to use it
- Creating or evolving schemas for multi-tenant applications
- Performing safe, staged data migrations in Aurora DSQL
- Running ad-hoc read queries via MCP tools with tenant scoping
- Implementing application-layer referential integrity patterns
- Setting up or managing DSQL clusters and IAM-based connections
Best practices
- Always read the development guide before schema changes
- Execute each DDL in its own transact call; run async indexes separately
- Include and validate tenant_id in all queries and schema designs
- Batch updates under 3,000 rows and avoid ALTER TABLE with DEFAULTs
- Serialize arrays/JSON as TEXT and prefer connection pooling in prod
Example use cases
- Create a tenant-scoped table, add async indexes, and verify with get_schema
- Add a column safely: ALTER TABLE, batch UPDATE existing rows, then index
- Validate parent existence with readonly_query before inserting child rows
- List tables using readonly_query on information_schema and inspect schema
- Connect via psql with IAM token using provided cluster scripts for debugging
FAQ
No. Follow the one-DDL-per-transaction rule: execute each DDL in its own transact call.
How should I index tenant columns?
Create indexes using CREATE INDEX ASYNC in a separate transaction to avoid blocking operations.