A side-by-side look at the AWS MCP Server and Python Openstackmcp Server MCP servers: transport, auth, tools, quality signals, and the config to install either one in Claude, Cursor, Windsurf or VS Code.
Verdict: choose AWS MCP Server for cloud platforms work as a local process; choose Python Openstackmcp Server for cloud platforms as a local process. You can also run both side by side in one mcpServers block.
aws_whoami, aws_login_start, aws_login_complete.OS_CLIENT_CONFIG_FILE.get_servers, get_server, create_server.Rows where the two servers differ are marked.
| Spec | ||
|---|---|---|
| Category | Cloud Platforms | Cloud Platforms |
| Quality signal | 59/100 · Good | 59/100 · Good |
| Install command | Confirmed | Confirmed |
| Transport | Local subprocess (stdio) | Local subprocess (stdio) |
| Auth | Not declared | other |
| Pricing | Not declared | Free |
| Required env vars | None listed | OS_CLIENT_CONFIG_FILE |
| Verified owner | Community listing | Community listing |
| GitHub stars | 5 | 19 |
| Directory activity | 0 views 0 installs 0 upvotes | 4 views 0 installs 0 upvotes |
| Tools | 28 | 75 |
| Full listing | View AWS MCP Server | View Python Openstackmcp Server |
aws_whoamiCurrent identity (account, ARN) + SSO token expiry countdown. Call this first.aws_login_startStart `aws sso login --no-browser --use-device-code`, returns a verification URL + short code and a `sessionId`. (`--use-device-code` is omitted on AWS CLI older than 2.22.0, where the device grant is already the default.)aws_login_completeBlock until the SSO subprocess finishes (you auth in your browser), returns the new identity.aws_refresh_if_expiring_soonCheck the cached SSO token and auto-start a refresh when < `thresholdMinutes` remain (default 10). One round-trip for "am I about to expire? if so, re-login."aws_session_setSet the default profile and/or region for the rest of this MCP session. "Switch to prod," "use us-west-2."aws_session_getShow the current session defaults and where each value came from (`session`/`env`/`default`).aws_session_clearRemove session profile/region overrides so env vars / defaults take over again. No args clears both.aws_list_profilesList profiles configured in `~/.aws/config` -- names, regions, and SSO metadata. Use before switching profiles or when an SSO error names one you haven't seen.aws_assume_roleCall STS AssumeRole with your current identity and stash the temp creds as a new profile (`mcp-<sessionName>`) in `~/.aws/credentials`. Use for cross-account access. The secret/session token stay on disk -- not returned to the model. Optional `timeoutMs` (default 120s) for slow SAML / `credential_p…aws_callRun any AWS API operation. `service: 's3api', operation: 'list-buckets'`, optional `params` (PascalCase JSON), optional `query` (JMESPath). Returns parsed JSON. Hand-written CLI commands (`s3 cp/ls/sync`, `logs tail`) and operations that stream their response to a file (`s3api get-object`, `bedrock…aws_paginateFetch one page of a paginated list/describe operation. Supports `query` too. Returns `nextToken`/`hasMore`; call again with the token to continue.aws_logs_tailFetch the newest CloudWatch Logs events for one log group (FilterLogEvents via `aws logs filter-log-events`), with `since`, `filterPattern` and stream-name filters; returns `{timestamp, logStreamName, message}` objects, oldest first. Bounded by `maxEvents` (default 500, max 10000): a busier window…get_serversGet the list of Compute servers.
:return: A list of Server objects.get_serverGet a specific Compute server.create_serverCreate a new Compute server.get_flavorsGet flavors (server hardware configurations).
:return: A list of Flavor objects.action_serverPerform an action on a Compute server.update_serverUpdate a Compute server's name, hostname, or description.delete_serverDelete a Compute server.attach_volumeAttach a volume to a Compute server.detach_volumeDetach a volume from a Compute server.get_imageGet an OpenStack image by ID.get_imagesGet the list of OpenStack images with optional filtering.
The filtering behavior is as follows:
- By default, all available images are returned without any filtering applied.
- Filters are only applied when specific values are provided by the user.create_imageCreate a new Openstack image.
This method handles both cases of image creation:
1. If a volume is provided, it creates an image from the volume.
2. If no volume is provided, it creates an image using the Image imports method
import_options field is required for this method.
Following import methods are supported:
- glance-direct: The image data is made available to the Image service via the Stage binary
- web-download: The image data is made available to the Image service by being posted to an accessible location with a URL that you know.
- must provide a URI to the image data.
- copy-image: The image data is made available to the Image service by copying existing image
- glance-download: The image data is made available to the Image service by fetching an image accessible from another glance service specified by a region name and an image id that you know.
- must provide a glance_region and glance_image_id.Paste either block (or both) into your client config, e.g. claude_desktop_config.json or ~/.cursor/mcp.json. We only show a config when the install command is confirmed.
{
"mcpServers": {
"aws-mcp-server-3": {
"command": "npx",
"args": [
"-y",
"@yawlabs/aws-mcp"
]
}
}
}
{
"mcpServers": {
"openstack-kr-python-openstackmcp-server": {
"command": "uvx",
"args": [
"python-openstackmcp-server"
],
"env": {
"OS_CLIENT_CONFIG_FILE": "YOUR_OS_CLIENT_CONFIG_FILE_HERE"
}
}
}
}