Skip to main content

AWS Health MCP Server

Disclaimer: This AWS content is provided subject to the terms of the AWS Customer Agreement available at https://aws.amazon.com/agreement or other written agreement between the Customer and Amazon Web Services. This is sample code for demonstration purposes only. It is not intended for production use. You should work with your security and legal teams to meet your organizational security, regulatory, and compliance requirements before any deployment.

MCP server that exposes AWS Health API as tools. Works with Claude Desktop, Kiro or any MCP-compatible client.

📖 Blog: Building an AWS Health MCP Server for Agentic Operations

Prerequisites

  • Python 3.10+
  • AWS credentials configured (aws configure or environment variables)
  • AWS Business or Enterprise Support plan (required for Health API)
  • For org-level tools: AWS Organizations with Health service access enabled

Setup

Add this to your MCP config file:

  • Claude Desktop: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Kiro: ~/.kiro/settings/mcp.json
  • Amazon Q CLI: ~/.aws/amazonq/mcp.json
{
  "mcpServers": {
    "aws-health": {
      "command": "uvx",
      "args": ["aws-health-mcp-server"],
      "env": {
        "AWS_PROFILE": "default"
      }
    }
  }
}

Using pip

pip install aws-health-mcp-server

From a local clone

{
  "mcpServers": {
    "aws-health": {
      "command": "uv",
      "args": ["run", "--directory", "/path/to/aws-health-mcp-server", "aws-health-mcp-server"],
      "env": {
        "AWS_PROFILE": "default"
      }
    }
  }
}

That's it. uv handles the venv and dependencies automatically.

Tools

Account-Level

Tool Description
get_service_health All active health events
get_affected_entities Resources impacted by open events
get_service_events(service) Events for a specific service (e.g., EC2, RDS)
get_completed_events(service?) Recently resolved events
get_scheduled_changes Upcoming maintenance

Organization-Level

Tool Description
get_org_health_events(service?, account_id?, status?) Events across all accounts
get_org_service_health Active events org-wide
get_org_affected_entities(account_id?, event_arn?) Impacted resources across accounts
get_org_service_events(service) Service-specific events org-wide
get_org_account_events(account_id) Events for a specific account
get_org_scheduled_changes Org-wide scheduled maintenance

Example Prompts

  • "Are there any active AWS health events?"
  • "What's happening with EC2 right now?"
  • "Show me scheduled maintenance across my organization"
  • "What resources are affected by current issues in account 123456789012?"

Environment Variables

Variable Default Description
AWS_PROFILE none AWS credentials profile
AWS_REGION us-east-1 Region (Health API is us-east-1 only)
LOG_LEVEL INFO Logging level (DEBUG, INFO, WARNING)
HEALTH_API_TIMEOUT 30 API timeout in seconds

Troubleshooting

"SubscriptionRequiredException" — You need AWS Business or Enterprise Support.

"AccessDeniedException" — Your IAM user/role needs health:Describe* permissions.

Org tools return access error — Enable Health service access from your management account:

aws health enable-health-service-access-for-organization

Server not starting — Check the MCP client logs. Common issues:

  • Wrong Python path in config (use the full .venv/bin/python path)
  • Missing dependencies (run pip install -e . in the venv)

Development

git clone https://github.com/aws-samples/sample-health-mcp-server.git
cd aws-health-mcp-server
uv sync --extra dev
uv run pytest tests/ -v

License

MIT-0

Release files for aws-health-mcp-server 2.0.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for aws-health-mcp-server 2.0.0
File Size Uploaded
aws_health_mcp_server-2.0.0.tar.gz 19.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for aws-health-mcp-server 2.0.0
File Interpreter ABI Platform
aws_health_mcp_server-2.0.0-py3-none-any.whl Python 3 none any Details

Total release size: 38.5 kB

Release files / aws_health_mcp_server-2.0.0.tar.gz

Download URL aws_health_mcp_server-2.0.0.tar.gz
Size 19.9 kB
Tags Source
SHA-256 checksum
How to use checksums
cb1102bc629371f850f69d76e9ddcee9167f543a81d9c55667a010c7a8a2ae40
BLAKE2b-256 checksum
How to use checksums
7b5e4da297d4ca13bc2055685b90a443aadfa5c0fe76b6babbf386dbddf1ed0f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.7.12

Release files / aws_health_mcp_server-2.0.0-py3-none-any.whl

Download URL aws_health_mcp_server-2.0.0-py3-none-any.whl
Size 18.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
3fe155bd11fb02a4b2102bcaa6f0732f3243b19ff7da190f38e7b1aac197db01
BLAKE2b-256 checksum
How to use checksums
dd5113b21a663b023e0b68c65b86d6334387f7e251199a98629060be2cc36594
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.7.12

Release history Release notifications | RSS feed

This release

2.0.0 This release

2 release files

1.0.1

2 release files

1.0.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page