This MCP server provides tools to interact with the AWS Programmatic Service Reference, allowing you to:
- List all available AWS services
- Get API actions for specific AWS services
- Get condition keys supported by specific API actions
- Get resource types supported by specific API actions
- Get action properties for specific API actions (such as write or list capabilities)
- Make sure you have Python 3.10 or higher installed
- Clone this repository
- Install the required dependencies:
# Create and activate a virtual environment (recommended)
python -m venv .venv
source .venv/bin/activate # On Unix/macOS
.venv\Scripts\activate # On Windows
# Install dependencies
pip install -r requirements.txt
You can run the server directly:
python aws_service_reference.py
-
Open your Claude Desktop configuration file:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json
- Windows:
%APPDATA%\Claude\claude_desktop_config.json
- macOS:
-
Add the server configuration:
{
"mcpServers": {
"aws-service-reference": {
"command": "python",
"args": ["/ABSOLUTE/PATH/TO/aws_service_reference.py"]
}
}
}
Replace /ABSOLUTE/PATH/TO/
with the actual path to where you saved the server file.
- Restart Claude Desktop
The server provides five tools:
list_aws_services
: Lists all available AWS servicesget_service_actions
: Gets API actions for a specific AWS serviceget_action_condition_keys
: Gets condition keys supported by a specific API actionget_action_resource_types
: Gets resource types supported by a specific API actionget_action_properties
: Gets action properties for a specific API action (such as write or list capabilities)
Once connected, you can ask Claude questions like:
- "What AWS services are available?"
- "Show me all the API actions for the S3 service"
- "What condition keys are supported by the s3:PutObject action?"
- "What resource types can I use with the ec2:RunInstances action?"
- "What are the action properties of s3:PutObject?"
The get_action_properties
tool provides information about what an action is capable of, such as whether it has write or list capabilities. This is useful when creating IAM policies and understanding the nature of different API actions.
# Example response for get_action_properties with s3:PutObject
Action properties for s3:PutObject:
IsList: False
IsPermissionManagement: False
IsTaggingOnly: False
IsWrite: True
You can use this information to:
- Identify write operations that modify resources
- Find permission management actions that should be carefully controlled
- Distinguish between read-only and write operations
- Identify actions that only modify tags
You can test the server using the MCP Inspector:
mcp dev aws_service_reference.py
The project uses the following dependencies (specified in requirements.txt
):
mcp[cli]>=0.1.0
: The Model Context Protocol SDK with CLI toolshttpx>=0.26.0
: Modern HTTP client for making API requests
If you encounter issues:
- Verify your Python version is 3.10 or higher
- Ensure all dependencies are installed correctly:
pip install -r requirements.txt
- Check the Claude Desktop logs:
- macOS:
~/Library/Logs/Claude/mcp*.log
- Windows:
%APPDATA%\Claude\logs\mcp*.log
- macOS:
- Make sure you're using absolute paths in the Claude Desktop configuration
This project is licensed under the MIT License.