Skip to content

Rename aws-core to aws-agent-toolkit and align its auth with the toolkit - #22

Merged
morgante merged 2 commits into
CognitionAI:mainfrom
bsmitches:devin/aws-agent-toolkit-rename
Sep 15, 2026
Merged

morgante merged 2 commits into
CognitionAI:mainfrom
bsmitches:devin/aws-agent-toolkit-rename

Conversation

@bsmitches

@bsmitches bsmitches commented Sep 15, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Rename the aws-core plugin to aws-agent-toolkit, so the card is named after the product it actually is (displayName: "Agent Toolkit for AWS"), and move logo.svg with it.
  • Rewrite the description to say that credentials resolve through the standard AWS chain (env vars, shared config, SSO, instance roles).
  • Replace the AWS_PROFILE env entry with AWS_MCP_PROXY_PROFILES. This is not a rename: the proxy reads it as a space-separated list, takes the first as the default, exposes the rest for per-call override via the aws_profile tool parameter, and gives it precedence over --profile/AWS_PROFILE.
  • Both env values carry an empty :- default so an unset credential does not leave an unresolved placeholder.
  • Update the optionalPlugins entry in .devin-plugin/plugin.json (list stays sorted and canonical).

The server command and endpoint (uvx mcp-proxy-for-aws-cli@latest https://aws-mcp.us-east-1.api.aws/mcp) are unchanged. Since the slug changes, existing installations of aws-core will need to install the renamed plugin, and a saved AWS_PROFILE credential will not carry over to AWS_MCP_PROXY_PROFILES.

Live auth test

The empty :- defaults mean both env vars are set but empty when the user has saved nothing, so I tested that case end to end against the real endpoint rather than assuming it is safe. With AWS_MCP_PROXY_PROFILES="" and AWS_REGION="", an initialize + tools/list handshake and a real aws___run_script tool call calling sts:GetCallerIdentity both succeed, identical to a no-env baseline.

Empty is safe because every read site in the proxy guards on truthiness, and because the signing region comes from the endpoint before the environment is consulted at all:

  • server.py: env_profiles = os.environ.get('AWS_MCP_PROXY_PROFILES') / if env_profiles: — an empty string is falsy, so no profile is pinned and a plain boto3.Session() runs the full default chain.
  • utils.py determine_signing_region(): the endpoint region wins over profile and environment, so aws-mcp.us-east-1.api.aws resolves to us-east-1 regardless of AWS_REGION.
  • utils.py determine_aws_region(): profile region first, AWS_REGION only as a fallback — which is why the description calls AWS_REGION a fallback rather than an override.

Credential sources verified against the live endpoint:

Source Result
Shared config (~/.aws/config) + aws login session Tool call returns the expected caller identity
Environment-variable credentials Deliberately invalid keys produce failed due to expired or invalid AWS credentials, confirming the env source is consumed and takes precedence
Profile selection via AWS_MCP_PROXY_PROFILES A nonexistent profile name fails at launch in create_aws_session, confirming the variable is honored

Not exercised, because the test machine has no such credentials available: SSO, EC2/ECS instance roles, web identity, and process credentials. All of these ride the same boto3.Session() the tested sources do, so they are covered by code path but not by live evidence.

Test plan

  • python3 scripts/validate.pyok: 170 entries (169 authored, 1 upstream)
  • python3 scripts/validate.py --fix → no changes (manifest already canonical)
  • python3 scripts/validate.py --fetch → all pinned upstream shas resolve
  • Live MCP handshake and tool call succeed with both env vars empty, and with them populated
  • No credential values checked in; both env values are plain ${<OWN_KEY>} placeholders

Generated with Devin

Brian Smitches and others added 2 commits September 14, 2026 19:13
The plugin is the Agent Toolkit for AWS, so name the card after it rather
than AWS Core. Credentials come from the standard AWS chain, and the
toolkit selects profiles via AWS_MCP_PROXY_PROFILES, so replace the
AWS_PROFILE entry and let both env values default to empty when the user
has saved nothing.

Generated with [Devin](https://devin.ai)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Live-tested the config against the proxy. AWS_MCP_PROXY_PROFILES takes a
space-separated list and enables per-call switching via the aws_profile
tool parameter, and determine_aws_region() reads the profile's region
first and only falls back to AWS_REGION when the profile sets none, so
AWS_REGION does not override a profile region. Say both accurately.

Generated with [Devin](https://devin.ai)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
@morgante
morgante merged commit 64518c7 into CognitionAI:main Sep 15, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants