mwaa-mcp-server
MCP server for Amazon MWAA that enables managing Airflow environments, DAGs, runs, task instances, and configurations through natural language, using secure AWS-native API access and read-only by default.
README
mwaa-mcp-server
A Model Context Protocol (MCP) server for Amazon Managed Workflows for Apache Airflow (MWAA).
Features
- MWAA Environment Management: List, describe, create, update, and delete MWAA environments
- Airflow DAG Operations: List DAGs, view details, get source code, trigger runs, pause/unpause
- DAG Run Monitoring: List and inspect DAG runs, task instances, and task logs
- Configuration Access: View Airflow connections (with password redaction) and variables
- Error Diagnostics: Retrieve DAG import/parsing errors
- Secure by Design: All Airflow API operations go through AWS
invoke_rest_api— no CLI or web tokens are exposed - Read-only by Default: Write operations require the
--allow-writeflag - Airflow 2.x and 3.x: The server detects each environment's Airflow major version and translates API differences (e.g.
execution_datevslogical_date) transparently — tools keep one stable interface
Prerequisites
- Python 3.10+
- AWS credentials configured (via environment variables, AWS CLI profile, or IAM role)
- An Amazon MWAA environment (Airflow 2.x or 3.x)
Installation
Using uvx (recommended)
uvx --from git+https://github.com/biswasbiplob/mwaa-mcp-server mwaa-mcp-server
Using pip
pip install git+https://github.com/biswasbiplob/mwaa-mcp-server
Using Docker
docker build -t mwaa-mcp-server .
docker run -it mwaa-mcp-server
Configuration
Environment Variables
| Variable | Description | Default |
|---|---|---|
AWS_REGION |
AWS region for API calls | us-east-1 |
AWS_PROFILE |
AWS CLI profile name | Default credential chain |
MWAA_ENVIRONMENT |
Default MWAA environment name (avoids per-call specification) | Auto-detect |
FASTMCP_LOG_LEVEL |
Log level (ERROR, WARNING, INFO, DEBUG) | WARNING |
CLI Arguments
| Argument | Description |
|---|---|
--allow-write |
Enable write operations (trigger DAG runs, pause/unpause DAGs, create/update/delete environments) |
Usage with Claude Desktop
Add to your Claude Desktop MCP configuration:
{
"mcpServers": {
"mwaa-mcp-server": {
"command": "uvx",
"args": ["--from", "git+https://github.com/biswasbiplob/mwaa-mcp-server", "mwaa-mcp-server"],
"env": {
"AWS_REGION": "us-east-1",
"AWS_PROFILE": "my-profile",
"MWAA_ENVIRONMENT": "my-environment",
"FASTMCP_LOG_LEVEL": "INFO"
}
}
}
}
For write access:
{
"mcpServers": {
"mwaa-mcp-server": {
"command": "uvx",
"args": ["--from", "git+https://github.com/biswasbiplob/mwaa-mcp-server", "mwaa-mcp-server", "--allow-write"],
"env": {
"AWS_REGION": "us-east-1",
"AWS_PROFILE": "my-profile",
"MWAA_ENVIRONMENT": "my-environment",
"FASTMCP_LOG_LEVEL": "INFO"
}
}
}
}
Tool Reference
Environment Management Tools
| Tool | Description | Access |
|---|---|---|
list-environments |
List all MWAA environments in the region | Read |
get-environment |
Get detailed information about an environment | Read |
create-environment |
Create a new MWAA environment | Write |
update-environment |
Update an existing MWAA environment | Write |
delete-environment |
Delete an MWAA environment | Write |
Airflow Tools
| Tool | Description | Access |
|---|---|---|
list-dags |
List all DAGs in an environment | Read |
get-dag |
Get details of a specific DAG | Read |
get-dag-source |
Get the source code of a DAG by DAG ID | Read |
list-dag-runs |
List DAG runs for a specific DAG | Read |
get-dag-run |
Get details of a specific DAG run | Read |
list-task-instances |
List task instances for a DAG run | Read |
get-task-instance |
Get details of a specific task instance (supports map_index for mapped tasks) |
Read |
list-mapped-task-instances |
List all mapped instances of a dynamically mapped task | Read |
get-task-logs |
Get logs for a task instance try (supports pagination for large logs) | Read |
list-connections |
List Airflow connections (passwords redacted) | Read |
list-variables |
List Airflow variables (sensitive values redacted) | Read |
get-import-errors |
Get DAG import/parsing errors | Read |
trigger-dag-run |
Trigger a new DAG run | Write |
pause-dag |
Pause a DAG | Write |
unpause-dag |
Unpause a DAG | Write |
clear-task-instances |
Clear task instances for a DAG, allowing re-runs | Write |
IAM Permissions
Minimum Read-only Policy
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"airflow:GetEnvironment",
"airflow:ListEnvironments",
"airflow:InvokeRestApi"
],
"Resource": "*"
}
]
}
Full Access Policy (Read + Write)
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"airflow:GetEnvironment",
"airflow:ListEnvironments",
"airflow:CreateEnvironment",
"airflow:UpdateEnvironment",
"airflow:DeleteEnvironment",
"airflow:InvokeRestApi"
],
"Resource": "*"
}
]
}
Security
- No token exposure: Unlike other MWAA tools, this server does not expose
create_cli_tokenorcreate_web_login_tokenas tools. All Airflow API operations go through the AWS-nativeinvoke_rest_api. - Password redaction: Connection passwords and extra fields are automatically redacted in responses.
- Variable redaction: Variable values with sensitive keys (matching patterns like
secret,password,token,api_key) are automatically redacted. - Input validation: Environment names and path parameters are validated to prevent injection.
- Read-only by default: Write operations are disabled unless
--allow-writeis explicitly passed.
License
Apache-2.0
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.