-
Notifications
You must be signed in to change notification settings - Fork 6
Expand file tree
/
Copy pathserver.json
More file actions
192 lines (192 loc) · 12.3 KB
/
server.json
File metadata and controls
192 lines (192 loc) · 12.3 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
{
"$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
"_meta": {
"io.modelcontextprotocol.registry/publisher-provided": {
"io.github.stacklok": {
"public.ecr.aws/awslabs-mcp/awslabs/aws-api-mcp-server:1.3.19": {
"metadata": {
"last_updated": "2026-03-04T22:50:04Z",
"stars": 8259
},
"overview": "## AWS API MCP Server\n\nThe aws-api MCP server is an MCP (Model Context Protocol) server that enables AI assistants and agents to interact directly and securely with AWS services and APIs through a standardized, protocol-driven interface. It acts as a bridge between your MCP-compatible AI workflows and the breadth of AWS's cloud API surface, allowing natural-language-orchestrated tasks — from exploring resources to managing infrastructure — without manual API coding.",
"permissions": {
"network": {
"outbound": {
"allow_host": [
"aws.amazon.com",
".amazonaws.com"
],
"allow_port": [
443
]
}
}
},
"status": "Active",
"tags": [
"aws",
"cli",
"cloud",
"infrastructure",
"api",
"devops"
],
"tier": "Official",
"tool_definitions": [
{
"annotations": {
"destructiveHint": true,
"openWorldHint": true,
"readOnlyHint": false,
"title": "Execute AWS CLI commands"
},
"description": "Execute AWS CLI commands with validation and proper error handling. This is the PRIMARY tool to use when you are confident about the exact AWS CLI command needed to fulfill a user's request. Always prefer this tool over 'suggest_aws_commands' when you have a specific command in mind.\n Key points:\n - The command MUST start with \"aws\" and follow AWS CLI syntax\n - Commands are executed in us-east-1 region by default\n - For cross-region or account-wide operations, explicitly include --region parameter\n - All commands are validated before execution to prevent errors\n - Supports pagination control via max_results parameter\n - Commands can only reference files within the working directory (/tmp/aws-api-mcp/workdir); use forward slashes (/) regardless of the system (e.g. if working directory is 'c:/tmp/workdir', use 'c:/tmp/workdir/subdir/file.txt' or 'subdir/file.txt'); relative paths resolve from the working directory.\n - You can use `--region *` to run a command on all regions enabled in the account.\n - Do not generate explicit batch calls for iterating over all regions, use `--region *` instead.\n\n Single Command Mode:\n - You can run a single AWS CLI command using this tool.\n - Example:\n call_aws(cli_command=\"aws s3api list-buckets --region us-east-1\")\n\n Batch Running:\n - The tool can also run multiple independent commands at the same time.\n - Call this tool with multiple CLI commands whenever possible.\n - Batch calling is especially useful where you need to run a command multiple times with different parameter values\n - Example:\n call_aws(\n cli_command=[\n \"aws s3api get-bucket-website --bucket bucket1\",\n \"aws s3api get-bucket-website --bucket bucket2\"\n ]\n )\n - You can call at most 20 CLI commands in batch mode.\n\n Best practices for command generation:\n - Always use the most specific service and operation names\n - Always use the working directory when writing files, unless user explicitly mentioned another directory\n - Include --region when operating across regions\n - Only use filters (--filters, --query, --prefix, --pattern, etc) when necessary or user explicitly asked for it\n - Always use the tool in batch mode whenever it's possible.\n\n Command restrictions:\n - DO NOT use bash/zsh pipes (|) or any shell operators\n - DO NOT use bash/zsh tools like grep, awk, sed, etc.\n - DO NOT use shell redirection operators (\u003e, \u003e\u003e, \u003c)\n - DO NOT use command substitution ($())\n - DO NOT use shell variables or environment variables\n\n Common pitfalls to avoid:\n 1. Missing required parameters - always include all required parameters\n 2. Incorrect parameter values - ensure values match expected format\n 3. Missing --region when operating across regions\n\n Returns:\n CLI execution results with API response data or error message\n ",
"inputSchema": {
"properties": {
"cli_command": {
"anyOf": [
{
"type": "string"
},
{
"items": {
"type": "string"
},
"type": "array"
}
],
"description": "A single command or a list of complete AWS CLI commands to execute"
},
"max_results": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "Optional limit for number of results (useful for pagination)"
}
},
"required": [
"cli_command"
],
"type": "object"
},
"name": "call_aws"
},
{
"annotations": {
"openWorldHint": false,
"readOnlyHint": true,
"title": "Suggest AWS CLI commands"
},
"description": "Suggest AWS CLI commands based on a natural language query. This is a FALLBACK tool to use when you are uncertain about the exact AWS CLI command needed to fulfill a user's request.\n\n IMPORTANT: Only use this tool when:\n 1. You are unsure about the exact AWS service or operation to use\n 2. The user's request is ambiguous or lacks specific details\n 3. You need to explore multiple possible approaches to solve a task\n 4. You want to provide options to the user for different ways to accomplish their goal\n\n DO NOT use this tool when:\n 1. You are confident about the exact AWS CLI command needed - use 'call_aws' instead\n 2. The user's request is clear and specific about the AWS service and operation\n 3. You already know the exact parameters and syntax needed\n 4. The task requires immediate execution of a known command\n\n Best practices for query formulation:\n 1. Include the user's primary goal or intent\n 2. Specify any relevant AWS services if mentioned\n 3. Include important parameters or conditions mentioned\n 4. Add context about the environment or constraints\n 5. Mention any specific requirements or preferences\n\n CRITICAL: Query Granularity\n - Each query should be granular enough to be accomplished by a single CLI command\n - If the user's request requires multiple commands to complete, break it down into individual tasks\n - Call this tool separately for each specific task to get the most relevant suggestions\n - Example of breaking down a complex request:\n User request: \"Set up a new EC2 instance with a security group and attach it to an EBS volume\"\n Break down into:\n 1. \"Create a new security group with inbound rules for SSH and HTTP\"\n 2. \"Create a new EBS volume with 100GB size\"\n 3. \"Launch an EC2 instance with t2.micro instance type\"\n 4. \"Attach the EBS volume to the EC2 instance\"\n\n Query examples:\n 1. \"List all running EC2 instances in us-east-1 region\"\n 2. \"Get the size of my S3 bucket named 'my-backup-bucket'\"\n 3. \"List all IAM users who have AdministratorAccess policy\"\n 4. \"List all Lambda functions in my account\"\n 5. \"Create a new S3 bucket with versioning enabled and server-side encryption\"\n 6. \"Update the memory allocation of my Lambda function 'data-processor' to 1024MB\"\n 7. \"Add a new security group rule to allow inbound traffic on port 443\"\n 8. \"Tag all EC2 instances in the 'production' environment with 'Environment=prod'\"\n 9. \"Configure CloudWatch alarms for high CPU utilization on my RDS instance\"\n\n Returns:\n A list of up to 10 most likely AWS CLI commands that could accomplish the task, including:\n - The CLI command\n - Confidence score for the suggestion\n - Required parameters\n - Description of what the command does\n ",
"inputSchema": {
"properties": {
"query": {
"description": "A natural language description of what you want to do in AWS. Should be detailed enough to capture the user's intent and any relevant context.",
"maxLength": 2000,
"type": "string"
}
},
"required": [
"query"
],
"type": "object"
},
"name": "suggest_aws_commands"
}
],
"tools": [
"call_aws",
"suggest_aws_commands"
]
}
}
}
},
"description": "Enables AI assistants to interact with AWS services and resources through AWS CLI commands",
"icons": [
{
"mimeType": "image/svg+xml",
"sizes": [
"any"
],
"src": "https://raw.githubusercontent.com/stacklok/toolhive-registry/main/registries/toolhive/servers/aws-api/icon.svg"
}
],
"name": "io.github.stacklok/aws-api",
"packages": [
{
"environmentVariables": [
{
"default": "us-east-1",
"description": "Default AWS region for CLI commands unless a specific region is provided in the request",
"name": "AWS_REGION"
},
{
"description": "AWS access key ID for authentication",
"isSecret": true,
"name": "AWS_ACCESS_KEY_ID"
},
{
"description": "AWS secret access key for authentication",
"isSecret": true,
"name": "AWS_SECRET_ACCESS_KEY"
},
{
"description": "AWS session token for temporary credentials",
"isSecret": true,
"name": "AWS_SESSION_TOKEN"
},
{
"default": "false",
"description": "When set to \"true\", restricts execution to read-only operations",
"name": "READ_OPERATIONS_ONLY"
},
{
"default": "false",
"description": "When set to \"true\", asks explicit consent before executing non-read-only operations",
"name": "REQUIRE_MUTATION_CONSENT"
},
{
"description": "Working directory path for MCP server operations (must be absolute path)",
"name": "AWS_API_MCP_WORKING_DIR"
},
{
"default": "false",
"description": "When set to \"true\", enables system-wide file access (may cause unintended overwrites)",
"name": "AWS_API_MCP_ALLOW_UNRESTRICTED_LOCAL_FILE_ACCESS"
},
{
"default": "true",
"description": "Allow sending additional telemetry data to AWS related to server configuration",
"name": "AWS_API_MCP_TELEMETRY"
},
{
"default": "false",
"description": "When set to \"true\", enables experimental agent scripts functionality",
"name": "EXPERIMENTAL_AGENT_SCRIPTS"
},
{
"description": "Directory path containing custom user scripts for agent scripts functionality",
"name": "AWS_API_MCP_AGENT_SCRIPTS_DIR"
}
],
"identifier": "public.ecr.aws/awslabs-mcp/awslabs/aws-api-mcp-server:1.3.19",
"registryType": "oci",
"transport": {
"type": "stdio"
}
}
],
"repository": {
"source": "github",
"url": "https://github.com/awslabs/mcp"
},
"title": "AWS API",
"version": "1.0.0"
}