Yaw Labs AWS MCP
AWS MCP server — call any AWS API from AI assistants, with first-class SSO re-login
Connector by YawLabs · GitHub account verified by the MCP Registry
Install
Works with Claude Code, Codex, VS Code, Cursor, Windsurf, Claude Desktop. Read the repository before you give any tool access to your data.
npx agentmarket install connector/yawlabs-aws-mcp
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this server can do and what it asks for, from its tool list, install config and code. Checked Oct 25, 2026.
- Tools
- 14 read · 5 write · 9 delete
- Secrets
- None asked for
- Install scripts
- None found
- Runs as
- Node.js package
Tools by what they do 28
Read from the source code; the running server may list different tools.
Read 14 · Look things up without changing anything.
aws_docs_readaws_docs_searchaws_iam_simulateaws_list_profilesaws_logs_queryaws_logs_tailaws_metrics_queryaws_paginateaws_resource_diffaws_resource_getaws_resource_listaws_resource_status
Show 2 more tools
aws_session_getaws_whoami
Write 5 · Create, change, send or run things.
aws_login_completeaws_login_startaws_refresh_if_expiring_soonaws_resource_createaws_session_set
Delete 9 · Delete, drop, revoke or wipe things.
aws_assume_roleaws_callaws_lambda_invokeaws_multi_accountaws_multi_regionaws_resource_deleteaws_resource_updateaws_scriptaws_session_clear
Secrets and settings it asks for
Other settings (environment variables or headers).
AWS_PROFILEAWS_REGION
Network hosts it talks to 12
api.github.com· found in codebiomejs.dev· found in coded-test.awsapps.com· found in codedevice.sso.us-east-1.amazonaws.com· found in codedocs.aws.amazon.com· found in codegithub.com· found in codelambda.us-east-1.amazonaws.com· found in codeoamjs.org· found in codeoidc.us-east-1.amazonaws.com· found in codeproxy.search.docs.aws.com· found in codests.us-east-1.amazonaws.com· found in codeyaw.sh· found in code
Files it touches
/dev/shm- Your home directory (~)
~/yaw/homebrew-yaw~/yaw/scoop-yaw
Tools (28)
Read from the source code; the running server may differ. Descriptions are the server’s own words; hidden characters are shown as [U+…].
aws_assume_roleAssume an IAM role and stash creds as a profilecan change or delete dataCall 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-<sessionName>' (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. Def…
aws_callCall an AWS API operationcan change or delete dataRun an arbitrary AWS API operation via the aws CLI. Use kebab-case service and operation names as in `aws help` (service='s3api', operation='list-buckets'). Pass params as a JSON object using the AWS API's PascalCase keys (e.g. {Bucket: 'foo'}); they go through --cli-input-json. Session profile/region (from aws_session_set) are used by default; override per-call when needed. Hand-written CLI commands (aws s3 cp/ls/sync, aws logs tail) and operations that stream their response to an output file (s3api get-object, bedrock-runtime invoke-model, bedrock-agentcore invoke-agent-runtime, lambda invok…
aws_docs_readRead an AWS documentation page as markdownread-onlyFetch an AWS documentation page and return it as markdown. `url` must be an https://docs.aws.amazon.com/...html page (typically one returned by aws_docs_search). Long pages are paginated: pass `startIndex` (default 0) and `maxLength` (default 5000 chars); the response includes `hasMore` and `nextStartIndex` -- call again with nextStartIndex to continue. Strips nav/cookie-banner/feedback chrome before converting.
aws_docs_searchSearch live AWS documentationread-onlySearch 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 `lexicalMatch` ({overlap 0-1, matchedTerms, unmatchedTerms}), computed …
aws_iam_simulateSimulate IAM permissions for a principalread-onlySimulate IAM permissions for a principal: can principal X do actions Y on resources Z? Wraps `iam simulate-principal-policy`. Returns one entry per (action, resource) pair -- one per action, with resource '*', when `resources` is omitted -- with `decision` (allowed / explicitDeny / implicitDeny / unknown -- unknown is the malformed-response fallback when the decision is missing or unrecognised), `matchedStatementIds` (which IAM statements decided), `missingContextValues` (context keys the policy needed but you didn't provide -- common for tag-based policies), `permissionsBoundaryDecision`, and…
aws_lambda_invokeInvoke a Lambda functioncan change or delete dataInvoke 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 lambda invoke` needs a positional output file and rejects --cli-input-json, so aws_call structurally cannot reach it. The returned `logTail` is the last ~4 KB of the function's own log output, already base64-decoded, which removes the usual invoke -> find the log group -> tail it -> hope the window caught it loop. Functions on Lambda Managed Instances do not support the log tail; read their logs wi…
aws_list_profilesList configured AWS profilesread-onlyList AWS profiles configured in ~/.aws/config. Returns profile name, region, and SSO metadata (start URL, region, session name) where set, plus an `isSso` flag. Use when the user hasn't named a profile, when they ask to switch profiles, or when an SSO-expired error mentions a profile you haven't seen.
aws_login_completeWait for AWS SSO login to finishBlock 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_login_startStart AWS SSO login (device code)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_logs_queryRun a CloudWatch Logs Insights query and wait for resultsread-onlyRun 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. `logGroupNames` takes 1-50 bare group names ('/aws/lambda/my-fn'); a log-group ARN is accepted and its NAME extracted, which DISCARDS the ARN's account, so a cross-account ARN queries the same-named group in your own account -- real cross-account queries need logGroupIdentifiers, which this tool does not send. `queryString` …
aws_logs_tailFetch recent CloudWatch Logs events for a log groupread-onlyDescription is built at runtime.
aws_metrics_queryQuery CloudWatch metrics (GetMetricData)read-onlyQuery CloudWatch metrics via GetMetricData (the modern multi-metric / expression-capable API, not the legacy get-metric-statistics). Pass `queries` as a flat array of {id, namespace, metricName, dimensions?, statistic?, period?, expression?, label?}; the tool shapes them into MetricDataQueries for you. `startTime`/`endTime` accept relative shorthand ('15m', '1h', '1d', '1w'), 'now', or ISO 8601 WITH an explicit offset ('2026-05-16T10:00:00Z' / '...-04:00' -- an offset-less date-time is rejected rather than silently read in the host's local zone; a date-only '2026-05-16' is read as UTC midnight…
aws_multi_accountRun an AWS operation across multiple accounts in parallelcan change or delete dataRun 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 `accounts: string[]` of 12-digit account IDs and `roleName`. This is fan-out in one call, not new access: it is exactly what aws_assume_role in a loop would reach, minus the credentials-file churn -- each account's session is held in memory for the one subprocess that uses it and is NEVER written to ~/.aws/credentials, so a sweep that dies halfway leaves nothing on disk. If your org alre…
aws_multi_regionRun an AWS operation across multiple regions in parallelcan change or delete dataDescription is built at runtime.
aws_paginateFetch one page of a paginated AWS operationread-onlyFetch one page of a paginated AWS list/describe operation. Identical to aws_call plus `maxItems` (page size) and `startingToken` (resume cursor). When `query` is supplied it is wrapped server-side as {NextToken, items: <query>} so pagination survives a projection that would otherwise drop NextToken; the handler unwraps `items` before returning. Returns the parsed response, a `nextToken` (null when the list is exhausted), and `hasMore`. Call again with the returned nextToken as startingToken until hasMore is false. Use this instead of aws_call for operations that might exceed the 5 MB stdout ca…
Show 13 more tools
aws_refresh_if_expiring_soonRefresh SSO token if it's expiring soonProactive SSO token check. If the cached token has fewer than `thresholdMinutes` left (default 10), this kicks off aws_login_start and returns the verification URL + code in one round-trip. If plenty of time remains, returns `status: 'ok'` with the minutes left. Use at the start of a multi-step AWS workflow to avoid mid-session expiry. `status: 'ok'` is a point-in-time reading of the cache, not a lease: nothing re-checks afterwards, so a token that lapses mid-workflow still surfaces as an sso_expired error from the next aws_call / aws_whoami. Raise `thresholdMinutes` to cover the expected leng…
aws_resource_createCreate an AWS resource (async via CCAPI)Create an AWS resource via Cloud Control API. Async by default: returns a ProgressEvent with OperationStatus=IN_PROGRESS and a `requestToken` (top-level) -- poll aws_resource_status with that token, or pass `awaitCompletion: true` to have the server poll for you and return the terminal event. `desiredState` is the resource properties JSON matching the CloudFormation schema for `typeName`.
aws_resource_deleteDelete an AWS resource (async via CCAPI)can change or delete dataDelete an AWS resource via Cloud Control API. Async by default: returns a ProgressEvent with OperationStatus=IN_PROGRESS and a top-level `requestToken`. Pass `awaitCompletion: true` to have the server poll until terminal. Destructive -- double-check `identifier` before calling.
aws_resource_diffPreview a CCAPI update without applying itread-onlyDry-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_resource_getGet an AWS resource by type + identifierread-onlyRead a single AWS resource via Cloud Control API. Covers hundreds of resource types with a CloudFormation schema. `typeName` is '<Namespace>::<Service>::<Resource>' (e.g. 'AWS::Lambda::Function'); `identifier` is the primary key for that type (function name, bucket name, IAM role name, ARN, or composite id). Returns parsed Properties. For resources not covered by CCAPI or for data-plane operations, use aws_call.
aws_resource_listList AWS resources of a type (paginated)read-onlyList resources of a given type via Cloud Control API, paginated. Returns an array of {identifier, properties}, a `nextToken` (null when exhausted), and `hasMore`. Some types need parent identifiers (e.g. nested resources under a cluster); pass those as `resourceModel`.
aws_resource_statusGet the status of an async CCAPI requestread-onlyPoll the status of an async Cloud Control API request (create/update/delete). Pass the `requestToken` returned by those tools. Returns the current ProgressEvent with OperationStatus: PENDING | IN_PROGRESS | SUCCESS | FAILED | CANCEL_IN_PROGRESS | CANCEL_COMPLETE.
aws_resource_updateUpdate an AWS resource (async via CCAPI)can change or delete dataUpdate 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 `requestToken`. Pass `awaitCompletion: true` to have the server poll until terminal. Typical patch: [{op: 'replace', path: '/MemorySize', value: 512}].
aws_scriptRun a JS snippet that orchestrates AWS tool callscan change or delete dataRun 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 `return <value>` at the end to surface a result; console.log lines are captured and returned alongside. Helpers throw Errors on failure -- use try/catch. NOT A…
aws_session_clearClear session profile/region overridesRemove session-set profile and/or region overrides so subsequent calls fall back to env vars / defaults. No args clears both. Pass `profile: true` or `region: true` to clear just one. Use when the user says 'go back to the default profile,' 'unset the region,' or 'reset session.'
aws_session_getShow session default profile/regionread-onlyShow 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_setSet session default profile/regionSet 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_whoamiShow current AWS identityread-onlyShow 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.
Signals
- Stars
- 5
- Forks
- 1
- Open issues
- 0
- Last commit
- Oct 15, 2026 (13 days ago)
- Last release
- Oct 11, 2026 (17 days ago)
From GitHub (fetched Oct 24, 2026).
Details
- Registry name
io.github.YawLabs/aws-mcp- Version
- 2.6.0
- Auth
- No auth
- Packages
- npm @yawlabs/aws-mcp
- License
- MIT
- Repository
- github.com/YawLabs/aws-mcp
- Website
- yaw.sh/mcp-servers/aws-mcp/
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
More from YawLabs
- 0.665score
Tailscale MCP Server
YawLabs
Tailscale MCP server for managing your tailnet from AI assistants
ConnectorAFreshness: ALocal★ 34Claude Code +5 - 0.648score
ctxlint
YawLabs
Lint AI agent context files (CLAUDE.md, AGENTS.md, etc.) against your actual codebase
ConnectorAFreshness: ALocal★ 11Claude Code +5 - 0.646score
PostgreSQL MCP Server
YawLabs
PostgreSQL MCP server - query, schema introspection, explain, and health checks for AI assistants
ConnectorAFreshness: ALocal★ 10Claude Code +5 - 0.636score
Caddy MCP Server
YawLabs
MCP server for managing Caddy web servers via the admin API
ConnectorAFreshness: ALocal★ 12Claude Code +5 - 0.630score
LemonSqueezy MCP Server
YawLabs
LemonSqueezy MCP server for managing your store from AI assistants
ConnectorAFreshness: ALocal★ 4Claude Code +5 - 0.625score
SSH MCP Server
YawLabs
MCP server for SSH operations with built-in diagnostics
ConnectorAFreshness: ALocal★ 6Claude Code +5
Cite this page
Yaw Labs AWS MCP. Agent Mart. https://agentmart.dev/connectors/yawlabs-aws-mcp (last updated 2026-10-24)