@yawlabs/aws-mcp
OfficialServer Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| AWS_REGION | No | Region used when a tool call omits region. AWS_REGION wins if both AWS_REGION and AWS_DEFAULT_REGION are set. | us-east-1 |
| AWS_PROFILE | No | Profile used when a tool call omits profile. | default |
| AWS_DEFAULT_REGION | No | Fallback region if AWS_REGION is not set. | us-east-1 |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| aws_whoamiA | Show the current AWS identity (account, role ARN, user ID) plus SSO token status and time remaining. Use this first to verify auth before running other AWS operations. Returns a structured fix-it message if SSO is expired. |
| aws_login_startA | Start an AWS SSO login via the device-code flow (no browser spawned from this process). Returns a verification URL and short code -- surface these to the user so they can open the URL in their own browser and paste the code. After they auth, call aws_login_complete with the returned sessionId to confirm completion. |
| aws_login_completeA | Block until the SSO login started by aws_login_start finishes (user completed auth in browser, or subprocess exited with error). Returns the new identity on success, or a structured error. |
| aws_refresh_if_expiring_soonA | Proactive SSO token check. If the cached token has fewer than |
| aws_session_setA | Set the default AWS profile and/or region for the rest of this MCP session. Subsequent calls to aws_whoami, aws_login_*, and other AWS tools will use these values unless they override explicitly. Use when the user says 'switch to prod', 'use us-west-2', 'look at the staging account', etc. Both params are optional; pass whichever changed. Returns the resulting session state. |
| aws_session_getA | Show the current session's default AWS profile and region, and where each value came from ('session' = set by aws_session_set, 'env' = AWS_PROFILE/AWS_REGION env var, 'default' = built-in fallback). Useful for confirming state before running operations or debugging why a call hit the wrong account. |
| aws_session_clearA | Remove session-set profile and/or region overrides so subsequent calls fall back to env vars / defaults. No args clears both. Pass |
| aws_callA | Run an arbitrary AWS API operation via the aws CLI. Use kebab-case service and operation names as in |
| aws_list_profilesA | List AWS profiles configured in ~/.aws/config. Returns profile name, region, and SSO metadata (start URL, region, session name) where set, plus an |
| aws_paginateA | Fetch one page of a paginated AWS list/describe operation. Identical to aws_call plus |
| aws_assume_roleA | Call STS AssumeRole and stash the returned temporary credentials as a named profile in the shared credentials file ($AWS_SHARED_CREDENTIALS_FILE when set, otherwise ~/.aws/credentials; the resolved path is returned as credentialsPath). Subsequent calls to aws_call / aws_whoami / aws_paginate can use profile='mcp-' (or your overridden targetProfile name). The raw secret key / session token are NOT returned to the caller — only the profile name, expiration, and assumed identity. Use for cross-account access: a source profile (your SSO identity) assumes a role in another account. Default timeout is 120s (raise via timeoutMs for slow SAML / credential_process setups on cold start). |
| aws_logs_tailA | Tail CloudWatch Logs for a log group. Wraps 'aws logs tail' (not the raw FilterLogEvents API) so you get the same server-side time parsing and event-grouping the CLI uses. Returns recent events as JSON, oldest first. At most |
| aws_logs_queryA | Run a CloudWatch Logs Insights query and wait for it to finish -- StartQuery, poll GetQueryResults until the query reaches a terminal status, return the rows -- in ONE call, replacing the three-step start/poll/interpret-status dance you would otherwise write with aws_call. |
| aws_metrics_queryA | Query CloudWatch metrics via GetMetricData (the modern multi-metric / expression-capable API, not the legacy get-metric-statistics). Pass |
| aws_resource_getA | Read a single AWS resource via Cloud Control API. Covers hundreds of resource types with a CloudFormation schema. |
| aws_resource_listA | List resources of a given type via Cloud Control API, paginated. Returns an array of {identifier, properties}, a |
| aws_resource_createA | Create an AWS resource via Cloud Control API. Async by default: returns a ProgressEvent with OperationStatus=IN_PROGRESS and a |
| aws_resource_updateA | Update an AWS resource via Cloud Control API using RFC 6902 JSON Patch. Async by default: returns a ProgressEvent with OperationStatus=IN_PROGRESS and a top-level |
| aws_resource_deleteA | Delete an AWS resource via Cloud Control API. Async by default: returns a ProgressEvent with OperationStatus=IN_PROGRESS and a top-level |
| aws_resource_statusA | Poll the status of an async Cloud Control API request (create/update/delete). Pass the |
| aws_resource_diffA | Dry-run a CCAPI update: fetch the current resource state, simulate applying a JSON Patch in memory, and return before/after plus a flat list of changed paths. No mutation is sent to AWS. Use this before aws_resource_update to verify the patch does what you expect. Supports the add/remove/replace subset of RFC 6902 (covers the vast majority of CCAPI updates); 'move'/'copy'/'test' are rejected at schema validation -- use aws_resource_update directly if you need those (CCAPI accepts them, this preview tool just doesn't simulate them locally). |
| aws_multi_regionA | Run the same AWS API operation across multiple regions in parallel. Same shape as aws_call (service, operation, params?, query?, outputFormat?, timeoutMs?) but takes |
| aws_multi_accountA | Run the same AWS API operation across multiple ACCOUNTS in parallel by assuming the same role name in each. Same shape as aws_call (service, operation, params?, query?, outputFormat?, region?, timeoutMs?) plus |
| aws_iam_simulateA | Simulate IAM permissions for a principal: can principal X do actions Y on resources Z? Wraps |
| aws_lambda_invokeA | Invoke a Lambda function synchronously (RequestResponse) and return its response payload plus the DECODED tail of its execution log in one call. Use this instead of aws_call for Lambda invokes: |
| aws_docs_searchA | Search the live AWS documentation (the same backend that powers the docs.aws.amazon.com search box). Use this to discover the right doc page for a service, API, or concept the model may not know about -- new services, recently changed APIs, exact parameter names. Returns ranked results as {title, url, summary, excerpt}. IMPORTANT: that backend always returns a full page of fuzzy matches and has no way to answer 'no good match' -- a nonsense query still comes back with ten confident-looking hits. So each result also carries |
| aws_docs_readA | Fetch an AWS documentation page and return it as markdown. |
| aws_scriptA | Run a short JavaScript snippet that orchestrates other aws-mcp tools (aws.call, aws.paginate, aws.paginateAll, aws.resource.*, aws.logsTail, aws.metricsQuery, aws.iamSimulate, aws.multiRegion, aws.assumeRole, aws.docs.{search,read}) and returns a combined result. Best for batched read+filter+aggregate workflows that would otherwise need N tool round-trips: 'list all Lambdas, fetch each one's config, return those with memory > 1024'. Use |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 28 tools
Most tools target distinct resources/actions (auth, session, docs, resource CRUD, logs, metrics, IAM). There is mild overlap among the generic API runners (aws_call, aws_paginate, aws_multi_region, aws_multi_account) and between aws_logs_tail and aws_logs_query, but the descriptions explicitly state when to prefer each, so misselection risk is low.
Every tool uses a consistent snake_case verb_noun pattern with a uniform aws_ prefix (aws_whoami, aws_login_start, aws_resource_get, aws_metrics_query, etc.). The grouping by domain (login_*, session_*, resource_*, logs_*) is predictable and readable throughout.
28 tools is on the heavy side, but the server spans genuinely distinct AWS domains (auth, session, docs, generic API, pagination, multi-region/account fan-out, Cloud Control CRUD, logs, metrics, IAM, Lambda, scripting), so most tools earn their place. It stays under the extreme-mismatch threshold.
The surface covers the full lifecycle: auth verification/login/refresh, session profile+region management, arbitrary API access with pagination and fan-out, Cloud Control create/read/update/delete plus status polling and a dry-run diff, observability (logs tail/query, metrics), IAM simulation, Lambda invoke, docs, and an orchestration escape hatch. No obvious dead ends for the domain.