# AWS Support MCP Server

A Model Context Protocol (MCP) server implementation for interacting with the AWS Support API. This server enables AI assistants to create and manage AWS support cases programmatically.

## Features

- Create and manage AWS support cases
- Retrieve case information and full communication history
- Add communications to existing cases (with attachment support)
- Resolve support cases
- Upload and download attachments with double-encoding protection
- Discover valid service codes, category codes, severity levels, and languages before creating a case
- Browse available case creation options per service

## Available Tools

| Tool | Description |
|------|-------------|
| `create_support_case` | Create a new support case |
| `describe_support_cases` | List/search existing cases |
| `describe_communications` | Get full communication history for a case |
| `add_communication_to_case` | Reply to a case (with optional attachments) |
| `resolve_support_case` | Close a case |
| `describe_services` | List AWS services and category codes |
| `describe_severity_levels` | List severity levels |
| `describe_create_case_options` | Get valid categories/severities for a service |
| `describe_supported_languages` | List supported languages |
| `add_attachments_to_set` | Upload files for attachment to cases |
| `describe_attachment` | Download an attachment by ID |


## Requirements

- Python 3.7+
- AWS credentials with Support API access
- Business, Enterprise On-Ramp, or Enterprise Support plan

## Prerequisites

1. Install `uv` from [Astral](https://docs.astral.sh/uv/getting-started/installation/) or the [GitHub README](https://github.com/astral-sh/uv#installation)
2. Install Python using `uv python install 3.10`

## Installation

| Kiro | Cursor | VS Code |
|:----:|:------:|:-------:|
| [![Add to Kiro](https://kiro.dev/images/add-to-kiro.svg)](https://kiro.dev/launch/mcp/add?name=awslabs_support_mcp_server&config=%7B%22command%22%3A%22uvx%22%2C%22args%22%3A%5B%22-m%22%2C%22awslabs.aws-support-mcp-server%40latest%22%2C%22--debug%22%2C%22--log-file%22%2C%22./logs/mcp_support_server.log%22%5D%2C%22env%22%3A%7B%22AWS_PROFILE%22%3A%22your-aws-profile%22%7D%7D) | [![Install MCP Server](https://cursor.com/deeplink/mcp-install-light.svg)](https://cursor.com/en/install-mcp?name=awslabs_support_mcp_server&config=eyJjb21tYW5kIjoidXZ4IC1tIGF3c2xhYnMuYXdzLXN1cHBvcnQtbWNwLXNlcnZlckBsYXRlc3QgLS1kZWJ1ZyAtLWxvZy1maWxlIC4vbG9ncy9tY3Bfc3VwcG9ydF9zZXJ2ZXIubG9nIiwiZW52Ijp7IkFXU19QUk9GSUxFIjoieW91ci1hd3MtcHJvZmlsZSJ9fQ%3D%3D) | [![Install on VS Code](https://img.shields.io/badge/Install_on-VS_Code-FF9900?style=flat-square&logo=visualstudiocode&logoColor=white)](https://insiders.vscode.dev/redirect/mcp/install?name=AWS%20Support%20MCP%20Server&config=%7B%22command%22%3A%22uvx%22%2C%22args%22%3A%5B%22-m%22%2C%22awslabs.aws-support-mcp-server%40latest%22%2C%22--debug%22%2C%22--log-file%22%2C%22.%2Flogs%2Fmcp_support_server.log%22%5D%2C%22env%22%3A%7B%22AWS_PROFILE%22%3A%22your-aws-profile%22%7D%7D) |

Configure the MCP server in your MCP client configuration (e.g., for Kiro, edit `~/.kiro/settings/mcp.json`):

```json

{
   "mcpServers": {
      "awslabs_support_mcp_server": {
         "command": "uvx",
         "args": [
            "-m", "awslabs.aws-support-mcp-server@latest",
            "--debug",
            "--log-file",
            "./logs/mcp_support_server.log"
         ],
         "env": {
            "AWS_PROFILE": "your-aws-profile"
         }
      }
   }
}
```

Alternatively:
```bash


uv pip install -e .
uv run awslabs/aws_support_mcp_server/server.py
```

```json
{
   "mcpServers": {
      "awslabs_support_mcp_server": {
         "command": "path-to-python",
         "args": [
            "-m",
            "awslabs.aws_support_mcp_server.server",
            "--debug",
            "--log-file",
            "./logs/mcp_support_server.log"
         ],
         "env": {
            "AWS_PROFILE": "manual_enterprise"
         }
      }
   }
}
```

### Windows Installation

For Windows users, the MCP server configuration format is slightly different:

```json
{
  "mcpServers": {
    "awslabs.aws-support-mcp-server": {
      "disabled": false,
      "timeout": 60,
      "type": "stdio",
      "command": "uv",
      "args": [
        "tool",
        "run",
        "--from",
        "awslabs.aws-support-mcp-server@latest",
        "awslabs.aws-support-mcp-server.exe"
      ],
      "env": {
        "FASTMCP_LOG_LEVEL": "ERROR",
        "AWS_PROFILE": "your-aws-profile",
        "AWS_REGION": "us-east-1"
      }
    }
  }
}
```

## Usage

Start the server:

```bash
python -m awslabs.aws_support_mcp_server.server [options]
```

Options:
- `--port PORT`: Port to run the server on (default: 8888)
- `--debug`: Enable debug logging
- `--log-file`: Where to save the log file

## Configuration

The server can be configured using environment variables:

- `AWS_REGION`: AWS region (default: us-east-1)
- `AWS_PROFILE`: AWS credentials profile name

## Documentation

For detailed documentation on available tools and resources, see the [API Documentation](https://github.com/awslabs/mcp/blob/main/src/aws-support-mcp-server/docs/api.md).



## License

Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.

Licensed under the Apache License, Version 2.0 (the "License").
