Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
83 commits
Select commit Hold shift + click to select a range
1db48d3
Remove maintainers no longer in the team (#2394)
wcmjunior Feb 10, 2026
a4e73ba
fix: patch traversal path vulnerability (#2366)
HaoOliv Feb 10, 2026
87d60a0
refactor(aws-healthomics-mcp-server): unify error handling to include…
markjschreiber Feb 11, 2026
f12c719
chore(aws-api-mcp-server): upgrade AWS CLI to v1.44.36 (#2400)
awslabs-mcp Feb 11, 2026
a785b40
fix(aws-api-mcp-server): validate file path access in shorthand parse…
arnewouters Feb 12, 2026
2dc18b9
chore(aws-api-mcp-server): upgrade AWS CLI to v1.44.37 (#2416)
awslabs-mcp Feb 12, 2026
9990394
chore: bump packages for release/2026.02.20260212091017 (#2417)
awslabs-mcp Feb 12, 2026
e758bd6
docs: Disambiguating AWS MCP Servers from AWS MCP product. (#2353)
arangatang Feb 12, 2026
baff933
Updating search endpoint to new search endpoint (#2413)
AadityaBhoota Feb 12, 2026
df8e34a
feat(healthimaging): add comprehensive AWS HealthImaging MCP Server (…
manish364 Feb 12, 2026
0d0fc3f
chore: bump packages for release/2026.02.20260213033417 (#2423)
awslabs-mcp Feb 13, 2026
854d028
chore(aws-api-mcp-server): upgrade AWS CLI to v1.44.38 (#2424)
awslabs-mcp Feb 13, 2026
307c170
docs(aurora-dsql-mcp-server): update sequence and identity column sup…
amaksimo Feb 13, 2026
d661134
fix(healthimaging): publish release version reset. (#2427)
scottschreckengaust Feb 13, 2026
1e17784
chore: bump packages for release/2026.02.20260213185627 (#2431)
awslabs-mcp Feb 13, 2026
a3a1dd6
chore(aws-api-mcp-server): upgrade AWS CLI to v1.44.39 (#2432)
awslabs-mcp Feb 16, 2026
e9ee88c
fix(aws-diagram-mcp-server): AST-based dangerous function detection (…
MichaelWalker-git Feb 16, 2026
920ed40
fix(aws-diagram-mcp-server): use str for diagram_type param for Gemin…
MichaelWalker-git Feb 16, 2026
4e49ecd
chore(aws-api-mcp-server): upgrade AWS CLI to v1.44.40 (#2444)
awslabs-mcp Feb 17, 2026
9825e35
fix(aws-api-mcp-server): remove max range check (#2445)
arnewouters Feb 17, 2026
8f1888a
chore: bump packages for release/2026.02.20260217093030 (#2446)
awslabs-mcp Feb 17, 2026
b2141eb
fix(aurora_dsql_mcp): Code injection via gemini skill install instruc…
dineshSajwan Feb 17, 2026
6ff6c6e
chore(dynamodb-mcp-server): Add new code owners for dynamodb-mcp-serv…
amzn-erdemkemer Feb 17, 2026
e602792
feat: adds the ability to set the AGENT environment variable (#2441)
markjschreiber Feb 17, 2026
67fdb7e
fix(aws-healthomics-server): corrects issue that required environment…
markjschreiber Feb 17, 2026
84d6894
feat(dsql): Add MySQL to DSQL migration to Skill/Power (#2439)
anwesham-lab Feb 18, 2026
2ab1d8a
chore(aws-api-mcp-server): upgrade AWS CLI to v1.44.41 (#2451)
awslabs-mcp Feb 18, 2026
a7b7b7a
fix(aws-diagram-mcp-server): use cross-platform timeout instead of SI…
MichaelWalker-git Feb 18, 2026
b9d04cd
fix poorly rendered code in README.md (#2454)
mayakost Feb 18, 2026
61a0505
feat(dynamodb-mcp-server): add cross-table transaction support in rep…
amzn-erdemkemer Feb 19, 2026
edb9347
chore(aws-api-mcp-server): upgrade AWS CLI to v1.44.42 (#2464)
awslabs-mcp Feb 19, 2026
ac5c651
chore(aws-api-mcp-server): expose AWS_MAX_ATTEMPTS (#2457)
arnewouters Feb 19, 2026
2c5b9cc
feat: enforce MCP tool naming conventions and 64-char limit (#616)
isadeks Feb 19, 2026
25729c7
chore: bump packages for release/2026.02.20260219104155 (#2466)
awslabs-mcp Feb 19, 2026
9e09e5b
ci: make tool name validation non-blocking initially
isadeks Feb 19, 2026
64b7960
chore(docs): add AGENTS.md for dynamodb-mcp-server (#2072)
ysunio Feb 19, 2026
380142e
style: run ruff format on verify_tool_names.py
isadeks Feb 19, 2026
1e51656
style: apply ruff formatting fixes
isadeks Feb 19, 2026
b44905f
feat(dynamodb-mcp-server): Add cost calculator (#2401)
valeriodelbello-amazon Feb 19, 2026
3e71174
Update Aurora DSQL display name and description (#2472)
ammaruva Feb 20, 2026
2729418
chore(aws-api-mcp-server): upgrade AWS CLI to v1.44.43 (#2475)
awslabs-mcp Feb 20, 2026
8ea6696
feat(cloudwatch-applicationsignals): Add group-level monitoring tools…
yaooo97 Feb 20, 2026
6453e6a
chore(codeowners): Add praba2210 as code owner for aurora-dsql-mcp-se…
praba2210 Feb 20, 2026
cc4d499
chore(aws-dataprocessing-mcp-server): Fix DateTime Issue in MCP tools…
naikvaib Feb 20, 2026
17bb0a8
fix(dsql): Fix skill integrity risks (#2487)
anwesham-lab Feb 20, 2026
2a1ecc5
chore(aws-api-mcp-server): upgrade AWS CLI to v1.44.44 (#2489)
awslabs-mcp Feb 23, 2026
317fbce
chore(aws-api-mcp-server): upgrade fastmcp to 3.0.1 (#2490)
arnewouters Feb 23, 2026
85f5812
chore: bump packages for release/2026.02.20260223082610 (#2493)
awslabs-mcp Feb 23, 2026
c897802
fix(dynamodb): change env values to strings and add connection-based …
ClintEastman02 Feb 23, 2026
5e9dbe0
feat: enhance tool detection to support all MCP registration patterns
isadeks Feb 23, 2026
7ae5c79
chore(aws-api-mcp-server): upgrade AWS CLI to v1.44.45 (#2499)
awslabs-mcp Feb 24, 2026
f90a914
chore: remove validate_content from sanitizer and update tests (#2494)
kumvprat Feb 24, 2026
9278967
chore: bump packages for release/2026.02.20260224162646 (#2501)
awslabs-mcp Feb 24, 2026
7dfe826
feat(ecs-mcp-server): upgrade to fastmcp 3.0.0 (#2488)
matthewgoodman13 Feb 24, 2026
1184105
chore: bump packages for release/2026.02.20260224185711 (#2503)
awslabs-mcp Feb 24, 2026
17c9e60
fix: healthimaging mcp server docusaurus file (#2450)
manish364 Feb 24, 2026
c544b53
feat(dsql): Add AI agent telemetry, fix query guidance (#2502)
anwesham-lab Feb 25, 2026
2e321f9
chore(aws-api-mcp-server): upgrade AWS CLI to v1.44.46 (#2511)
awslabs-mcp Feb 25, 2026
243e55f
feat(dsql): Add access control steering and skill aliases (#2437)
anwesham-lab Feb 25, 2026
fe73c8b
fix(dsql): add skill symlinks to license header config (#2514)
anwesham-lab Feb 25, 2026
7f10780
chore(aws-api-mcp-server): upgrade AWS CLI to v1.44.47 (#2519)
awslabs-mcp Feb 26, 2026
a19401a
chore(dynamodb-mcp-server): update README.md (#2512)
LeeroyHannigan Feb 26, 2026
7b3828f
feat(aws-healthomics-mcp-server): add run group management tools (#2506)
markjschreiber Feb 26, 2026
f9fb8a0
Add code owner for aws-healthomics-mcp-server (#2524)
markjschreiber Feb 26, 2026
50abdb4
feat(aws-healthomics-mcp-server): add run cache management tools (#2523)
markjschreiber Feb 26, 2026
77132af
fix(aws-diagram-mcp-server): harden exec namespace and urlretrieve (#…
theagenticguy Feb 26, 2026
5048c5b
feat(aws-api-mcp-server): Implements batch calling for call_aws tool.…
bariskurt Feb 27, 2026
2cdbb75
feat(dynamodb-mcp-server): add complete multi-attribute keys support …
koffey-amazon Feb 27, 2026
fbaadbe
chore(aws-api-mcp-server): upgrade AWS CLI to v1.44.48 (#2527)
awslabs-mcp Feb 27, 2026
37fbf42
feat(dynamodb-mcp-server): add filter expression support for reposito…
amzn-erdemkemer Feb 27, 2026
b3abb32
chore(aws-msk-mcp-server): Add new code owners for aws-msk-mcp-server…
isaurab007 Feb 27, 2026
4573dd7
feat: Add Topics Management API Module (#2471)
isaurab007 Feb 27, 2026
b617cb2
chore(aws-api-mcp-server): upgrade AWS CLI to v1.44.49 (#2532)
awslabs-mcp Mar 2, 2026
04e2470
fix(aws-api-mcp-server): remove duplicate assignments in tests (#2535)
arnewouters Mar 2, 2026
27ecd13
fix(aws-api-mcp-server): deprecation warnings when running pytest (#2…
arnewouters Mar 2, 2026
8702fc8
fix: expand http config validation (#2544)
phani-srikar Mar 2, 2026
b11a945
fix(docs): replace dots with dashes in core and dynamodb MCP server n…
nizar-lahlali Mar 2, 2026
cdbab44
feat: add billing conductor tools to billing and cost Management MCP …
johnwangwyx Mar 2, 2026
d129dd3
fix(dsql): Update broken github links to pass that PR-lint (#2470)
praba2210 Mar 3, 2026
a03b3cb
chore(deps): update github-actions: bump the github-actions-version-u…
dependabot[bot] Mar 3, 2026
eff8183
Merge branch 'main' into issue-616-tool-naming-validation
scottschreckengaust Mar 3, 2026
836584a
fix: update trivy-action to v0.34.2 (#2556)
isadeks Mar 4, 2026
f71d020
Merge branch 'main' into issue-616-tool-naming-validation
scottschreckengaust Mar 4, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
9 changes: 5 additions & 4 deletions .github/CODEOWNERS
Original file line number Diff line number Diff line change
Expand Up @@ -26,20 +26,20 @@ NOTICE @awslabs/mcp-admi
/src/amazon-qbusiness-anonymous-mcp-server @awslabs/mcp-admins @awslabs/mcp-maintainers @abhjaw
/src/amazon-qindex-mcp-server @awslabs/mcp-admins @awslabs/mcp-maintainers @tkoba-aws @akhileshamara
/src/amazon-sns-sqs-mcp-server @awslabs/mcp-admins @awslabs/mcp-maintainers @kenliao94 @hashimsharkh
/src/aurora-dsql-mcp-server @awslabs/mcp-admins @awslabs/mcp-maintainers @gxjx-x @imforster @wcmjunior @anwesham-lab @benjscho @pkale @amaksimo @mitchell-elholm
/src/aurora-dsql-mcp-server @awslabs/mcp-admins @awslabs/mcp-maintainers @gxjx-x @anwesham-lab @benjscho @pkale @amaksimo @praba2210
/src/aws-api-mcp-server @awslabs/mcp-admins @awslabs/mcp-maintainers @awslabs/aws-api-mcp @rshevchuk-git @PCManticore @iddv @arnewouters @bidesh
/src/aws-appsync-mcp-server @awslabs/mcp-admins @awslabs/mcp-maintainers @phani-srikar @maxi114 @neelmurt
/src/aws-bedrock-custom-model-import-mcp-server @awslabs/mcp-admins @awslabs/mcp-maintainers @krokoko
/src/aws-bedrock-data-automation-mcp-server @awslabs/mcp-admins @awslabs/mcp-maintainers @krokoko @theagenticguy
/src/aws-dataprocessing-mcp-server @awslabs/mcp-admins @awslabs/mcp-maintainers @naikvaib @LiyuanLD @ckha2000 @raghav1397 @chappidim @yuxiaorun
/src/aws-diagram-mcp-server @awslabs/mcp-admins @awslabs/mcp-maintainers @MichaelWalker-git
/src/aws-documentation-mcp-server @awslabs/mcp-admins @awslabs/mcp-maintainers @Lavoiedavidw @JonLim @tuanknguyen @AadityaBhoota @artb30 @alexisareyn
/src/aws-healthomics-mcp-server @awslabs/mcp-admins @awslabs/mcp-maintainers @markjschreiber @WIIASD @a-li @alxawan
/src/aws-healthomics-mcp-server @awslabs/mcp-admins @awslabs/mcp-maintainers @markjschreiber @WIIASD @a-li @alxawan @sabeelmansuri
/src/aws-iac-mcp-server @awslabs/mcp-admins @awslabs/mcp-maintainers @kdbrogan @vishaalmehrishi @aemada-aws @kumvprat
/src/aws-iot-sitewise-mcp-server @awslabs/mcp-admins @awslabs/mcp-maintainers @ychamare @ashuanand1226 @charlie-7 @ajain13
/src/aws-knowledge-mcp-server @awslabs/mcp-admins @awslabs/mcp-maintainers @FaresYoussef94 @animebar @zdwheels @nihal712 @forerocf @deepankanbn @nzmdn @GuXiangTS
/src/aws-location-mcp-server @awslabs/mcp-admins @awslabs/mcp-maintainers @scottschreckengaust @theagenticguy
/src/aws-msk-mcp-server @awslabs/mcp-admins @awslabs/mcp-maintainers @dingyiheng # @elmoctarebnou
/src/aws-msk-mcp-server @awslabs/mcp-admins @awslabs/mcp-maintainers @dingyiheng @mehbey @isaurab007
/src/aws-network-mcp-server @awslabs/mcp-admins @awslabs/mcp-maintainers @juhala-aws @NetDevAutomate
/src/aws-pricing-mcp-server @awslabs/mcp-admins @awslabs/mcp-maintainers @nspring00 @aytech-in @s12v
/src/aws-serverless-mcp-server @awslabs/mcp-admins @awslabs/mcp-maintainers @bx9900
Expand All @@ -58,13 +58,14 @@ NOTICE @awslabs/mcp-admi
/src/cost-explorer-mcp-server @awslabs/mcp-admins @awslabs/mcp-maintainers
/src/document-loader-mcp-server @awslabs/mcp-admins @awslabs/mcp-maintainers @andywidjaja @hvital @HaoOliv
/src/documentdb-mcp-server @awslabs/mcp-admins @awslabs/mcp-maintainers @theagenticguy
/src/dynamodb-mcp-server @awslabs/mcp-admins @awslabs/mcp-maintainers @akeyesamzn @shetsa-amzn @LeeroyHannigan @amzn-erdemkemer
/src/dynamodb-mcp-server @awslabs/mcp-admins @awslabs/mcp-maintainers @akeyesamzn @ysunio @LeeroyHannigan @amzn-erdemkemer
/src/ecs-mcp-server @awslabs/mcp-admins @awslabs/mcp-maintainers @guitar80ep @matthewgoodman13 @nineonine @biagic @tusharbabbar @lewisct
/src/eks-mcp-server @awslabs/mcp-admins @awslabs/mcp-maintainers @patrick-yu-amzn @srhsrhsrhsrh
/src/elasticache-mcp-server @awslabs/mcp-admins @awslabs/mcp-maintainers @seaofawareness
/src/finch-mcp-server @awslabs/mcp-admins @awslabs/mcp-maintainers @Shubhranshu153 @pendo324
/src/frontend-mcp-server @awslabs/mcp-admins @awslabs/mcp-maintainers @jimini55
/src/git-repo-research-mcp-server @awslabs/mcp-admins @awslabs/mcp-maintainers @krokoko @theagenticguy
/src/healthimaging-mcp-server @awslabs/mcp-admins @awslabs/mcp-maintainers @manish364
/src/healthlake-mcp-server @awslabs/mcp-admins @awslabs/mcp-maintainers @aws-steve @awsri
/src/iam-mcp-server @awslabs/mcp-admins @awslabs/mcp-maintainers @oshardik
/src/lambda-tool-mcp-server @awslabs/mcp-admins @awslabs/mcp-maintainers @danilop @jsamuel1
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/aws-api-mcp-upgrade-version.yml
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ jobs:
with:
token: ${{ secrets.BOT_GITHUB_TOKEN }}
- name: Install uv
uses: astral-sh/setup-uv@61cb8a9741eeb8a550a1b8544337180c0fc8476b # v7.2.0
uses: astral-sh/setup-uv@eac588ad8def6316056a12d4907a9d4d84ff7a3b # v7.3.0
- name: Check and upgrade AWS CLI version
id: upgrade
working-directory: src/aws-api-mcp-server
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/cfn_nag.yml
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ jobs:
output_path: cfn_nag.sarif

- name: Upload SARIF file
uses: github/codeql-action/upload-sarif@b2ff80ddacba59b60f4e0cf3b699baaea3230cd9 # v4.31.9
uses: github/codeql-action/upload-sarif@c0fc915677567258ee3c194d03ffe7ae3dc8d741 # v4.31.9

# Results are generated only on a success or failure
# this is required since GitHub by default won't run the next step
Expand Down
5 changes: 4 additions & 1 deletion .github/workflows/check-license-header.json
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,10 @@
"**/*.template",
"**/*.properties",
"**/*.xml",
"**/dist/**"
"**/dist/**",
"**/skills/*/scripts",
"**/skills/*/references",
"**/skills/*/mcp"
]
}
]
4 changes: 2 additions & 2 deletions .github/workflows/checkov.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,14 +28,14 @@ jobs:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd #v6.0.2

- name: Checkov GitHub Action
uses: bridgecrewio/checkov-action@5051a5cfc7e4c71d95199f81ffafbb490c7e6213 # v12.3079.0
uses: bridgecrewio/checkov-action@f99709f8ccc3496220c987b7d8729653237c23dc # v12.3086.0
with:
# This will add both a CLI output to the console and create a results.sarif file
output_format: cli,sarif
output_file_path: console,results.sarif

- name: Upload SARIF file
uses: github/codeql-action/upload-sarif@b2ff80ddacba59b60f4e0cf3b699baaea3230cd9 # v4.31.9
uses: github/codeql-action/upload-sarif@c0fc915677567258ee3c194d03ffe7ae3dc8d741 # v4.31.9

# Results are generated only on a success or failure
# this is required since GitHub by default won't run the next step
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/codeql.yml
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,7 @@ jobs:

# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
uses: github/codeql-action/init@b2ff80ddacba59b60f4e0cf3b699baaea3230cd9 # v4.31.9
uses: github/codeql-action/init@c0fc915677567258ee3c194d03ffe7ae3dc8d741 # v4.31.9
with:
languages: ${{ matrix.language }}
build-mode: ${{ matrix.build-mode }}
Expand Down Expand Up @@ -99,6 +99,6 @@ jobs:
exit 1

- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@b2ff80ddacba59b60f4e0cf3b699baaea3230cd9 # v4.31.9
uses: github/codeql-action/analyze@c0fc915677567258ee3c194d03ffe7ae3dc8d741 # v4.31.9
with:
category: "/language:${{matrix.language}}"
2 changes: 1 addition & 1 deletion .github/workflows/dependency-review-action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ jobs:
- name: 'Checkout Repository'
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd #v6.0.2
- name: 'Dependency Review'
uses: actions/dependency-review-action@3c4e3dcb1aa7874d2c16be7d79418e9b7efd6261 #v4.8.2
uses: actions/dependency-review-action@05fe4576374b728f0c523d6a13d64c25081e0803 #v4.8.3
with:
# https://github.com/actions/dependency-review-action/issues/944
allow-dependencies-licenses: 'pkg:pypi/uv@0.8.10'
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/powershell.yml
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,6 @@ jobs:
output: results.sarif

- name: Upload SARIF results file
uses: github/codeql-action/upload-sarif@b2ff80ddacba59b60f4e0cf3b699baaea3230cd9 # v4.31.9
uses: github/codeql-action/upload-sarif@c0fc915677567258ee3c194d03ffe7ae3dc8d741 # v4.31.9
with:
sarif_file: results.sarif
6 changes: 5 additions & 1 deletion .github/workflows/pre-commit-requirements.txt
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
#
# This file is autogenerated by pip-compile with Python 3.12
# This file is autogenerated by pip-compile with Python 3.10
# by the following command:
#
# pip-compile --generate-hashes --output-file=.github/workflows/pre-commit-requirements.txt --strip-extras .github/workflows/pre-commit-requirements.in
Expand Down Expand Up @@ -87,6 +87,10 @@ pyyaml==6.0.2 \
--hash=sha256:f753120cb8181e736c57ef7636e83f31b9c0d1722c516f7e86cf15b7aa57ff12 \
--hash=sha256:ff3824dc5261f50c9b0dfb3be22b4567a6f938ccce4587b38952d85fd9e9afe4
# via pre-commit
typing-extensions==4.15.0 \
--hash=sha256:0cea48d173cc12fa28ecabc3b837ea3cf6f38c6d1136f85cbaaf598984861466 \
--hash=sha256:f0fa19c6845758ab08074a0cfa8b7aecb71c999ca73d62883bc25cc018c4e548
# via virtualenv
virtualenv==20.36.1 \
--hash=sha256:575a8d6b124ef88f6f51d56d656132389f961062a9177016a50e4f507bbcc19f \
--hash=sha256:8befb5c81842c641f8ee658481e42641c68b5eab3521d8e092d18320902466ba
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/pre-commit.yml
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ jobs:
echo "vars.GITHUB_WORKSPACE=${{ vars.GITHUB_WORKSPACE }}"
python -m pip install --require-hashes --requirement ${{ github.workspace }}/.github/workflows/pre-commit-requirements.txt
python -m pip freeze --local
- uses: actions/cache@8b402f58fbc84540c8b491a91e594a4576fec3d7 #v5.0.2
- uses: actions/cache@cdf6c1fa76f9f475f3d7449005a359c84ca0f306 #v5.0.3
with:
path: ~/.cache/pre-commit
key: pre-commit-3|${{ runner.os }}|${{ hashFiles(matrix.precommit) }}
Expand Down
5 changes: 3 additions & 2 deletions .github/workflows/python.yml
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,7 @@ jobs:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2

- name: Install uv
uses: astral-sh/setup-uv@61cb8a9741eeb8a550a1b8544337180c0fc8476b # v7.2.0
uses: astral-sh/setup-uv@eac588ad8def6316056a12d4907a9d4d84ff7a3b # v7.3.0

- name: Set up Python
uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
Expand All @@ -87,7 +87,7 @@ jobs:
# cache: uv (not supported)

- name: Cache GraphViz
uses: actions/cache@8b402f58fbc84540c8b491a91e594a4576fec3d7 #v5.0.2
uses: actions/cache@cdf6c1fa76f9f475f3d7449005a359c84ca0f306 #v5.0.3
id: cache-graphviz
with:
path: "~/graphviz"
Expand Down Expand Up @@ -132,6 +132,7 @@ jobs:
run: |
python3 scripts/verify_package_name.py src/${{ matrix.package }}
uv run --script scripts/verify_awslabs_init.py src/${{ matrix.package }}
python3 scripts/verify_tool_names.py src/${{ matrix.package }} || true

- name: Run tests
working-directory: src/${{ matrix.package }}
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/release-initiate-branch.yml
Original file line number Diff line number Diff line change
Expand Up @@ -178,7 +178,7 @@ jobs:
token: ${{ secrets.BOT_GITHUB_TOKEN }}
ref: ${{ needs.create-branch.outputs.release-branch }}
- name: Install uv
uses: astral-sh/setup-uv@61cb8a9741eeb8a550a1b8544337180c0fc8476b # v7.2.0
uses: astral-sh/setup-uv@eac588ad8def6316056a12d4907a9d4d84ff7a3b # v7.3.0
- name: Bump package version
run: |
set -euo pipefail
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -303,7 +303,7 @@ jobs:
# Clear up space for specific large projects
- name: Clear Up Space (Aggressively) for Specific Projects
if: contains(fromJson('["core-mcp-server"]'), matrix.changed-directory)
uses: awslabs/mcp/.github/actions/clear-space-ubuntu-latest-agressively@16fbeff0b6ac1bb09b767aec95f5d89fd3b30cd2
uses: awslabs/mcp/.github/actions/clear-space-ubuntu-latest-agressively@11841059cfcc830c367325450a1898ebffef6e01
#TODO: remove local action checkout when working...
- name: Checkout repository
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
Expand Down Expand Up @@ -350,7 +350,7 @@ jobs:

echo "::debug::Directory validated: $FULL_PATH"
- name: Install uv
uses: astral-sh/setup-uv@61cb8a9741eeb8a550a1b8544337180c0fc8476b # v7.2.0
uses: astral-sh/setup-uv@eac588ad8def6316056a12d4907a9d4d84ff7a3b # v7.3.0
- name: Build package
working-directory: ${{ env.SRC_DIRECTORY }}/${{ matrix.changed-directory }}
run: |
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/scorecard-analysis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,6 @@ jobs:
# Upload the results to GitHub's code scanning dashboard (optional).
# Commenting out will disable upload of results to your repo's Code Scanning dashboard
- name: "Upload to code-scanning"
uses: github/codeql-action/upload-sarif@b2ff80ddacba59b60f4e0cf3b699baaea3230cd9 # v4.31.9
uses: github/codeql-action/upload-sarif@c0fc915677567258ee3c194d03ffe7ae3dc8d741 # v4.31.9
with:
sarif_file: scorecard-results.sarif
2 changes: 1 addition & 1 deletion .github/workflows/semgrep.yml
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,6 @@ jobs:
python -m pip install --require-hashes --requirement .github/workflows/semgrep-requirements.txt
- run: semgrep scan --config auto --sarif-output semgrep.sarif.json --no-error --dryrun --verbose
- name: Upload Semgrep scan results to GitHub Security tab
uses: github/codeql-action/upload-sarif@b2ff80ddacba59b60f4e0cf3b699baaea3230cd9 # v4.31.9
uses: github/codeql-action/upload-sarif@c0fc915677567258ee3c194d03ffe7ae3dc8d741 # v4.31.9
with:
sarif_file: semgrep.sarif.json
2 changes: 1 addition & 1 deletion .github/workflows/stale.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ jobs:
issues: write
pull-requests: write
steps:
- uses: actions/stale@997185467fa4f803885201cee163a9f38240193d # v10.1.1
- uses: actions/stale@b5d41d4e1d5dceea10e7104786b73624c18a190f # v10.2.0
with:
days-before-stale: -1
days-before-close: -1
Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/trivy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ jobs:
steps:
- name: Clear Up Space (Agressively) for Trivy Scans that Run Out of Space
if: contains(toJson('["src/core-mcp-server"]'), matrix.dockerfile)
uses: awslabs/mcp/.github/actions/clear-space-ubuntu-latest-agressively@16fbeff0b6ac1bb09b767aec95f5d89fd3b30cd2
uses: awslabs/mcp/.github/actions/clear-space-ubuntu-latest-agressively@11841059cfcc830c367325450a1898ebffef6e01

- name: Get Checkout Depth
id: checkout-depth
Expand Down Expand Up @@ -122,14 +122,14 @@ jobs:

- name: Run Trivy vulnerability scanner
if: hashFiles(format('{0}/trivy-results.sarif', matrix.dockerfile)) == ''
uses: aquasecurity/trivy-action@b6643a29fecd7f34b3597bc6acb0a98b03d33ff8 #v0.33.1
uses: aquasecurity/trivy-action@97e0b3872f55f89b95b2f65b3dbab56962816478 #v0.34.2
with:
image-ref: 'docker.io/${{ matrix.dockerfile }}:${{ github.sha }}'
format: 'sarif'
output: '${{ matrix.dockerfile }}/trivy-results.sarif'

- name: Upload Trivy scan results to GitHub Security tab
uses: github/codeql-action/upload-sarif@b2ff80ddacba59b60f4e0cf3b699baaea3230cd9 # v4.31.9
uses: github/codeql-action/upload-sarif@c0fc915677567258ee3c194d03ffe7ae3dc8d741 # v4.31.9
with:
sarif_file: '${{ matrix.dockerfile }}/trivy-results.sarif'

Expand Down
4 changes: 2 additions & 2 deletions .secrets.baseline
Original file line number Diff line number Diff line change
Expand Up @@ -215,7 +215,7 @@
"filename": "src/dynamodb-mcp-server/README.md",
"hashed_secret": "37b5ecd16fe6c599c85077c7992427df62b2ab71",
"is_verified": false,
"line_number": 260,
"line_number": 269,
"is_secret": false
}
],
Expand Down Expand Up @@ -962,5 +962,5 @@
}
]
},
"generated_at": "2026-01-15T14:59:02Z"
"generated_at": "2026-02-25T11:54:09Z"
}
54 changes: 42 additions & 12 deletions DESIGN_GUIDELINES.md
Original file line number Diff line number Diff line change
Expand Up @@ -482,31 +482,61 @@ async def mcp_generate_image(

Tool guidelines:

1. Use descriptive tool names in `camelCase` or `snake_case` consistently
1. Use descriptive tool names following the naming conventions below
2. Include the Context parameter for error reporting
3. Use detailed Field descriptions for all parameters
4. Return structured responses using Pydantic models when possible
5. Document the tool's purpose, inputs, and outputs comprehensively

### πŸ”€ Tool Naming Conventions

To maintain consistency and compatibility, tool names must follow these rules:
To maintain consistency and compatibility with the Model Context Protocol specification, tool names must follow these rules:

- βœ… **Maximum of 64 characters** in total length
- βœ… Must start with a letter
- βœ… Use only lowercase letters and hyphens (`-`)
- ❌ Avoid special characters (e.g., `@`, `$`, `!`)
#### Required Rules:
- βœ… **Maximum of 64 characters** for the fully qualified name (including `awslabs` prefix, server name, and tool name)
- βœ… Must start with a letter (a-z, A-Z)
- βœ… Use only alphanumeric characters, underscores (`_`), or hyphens (`-`)
- βœ… Tool names are **case-sensitive** (per MCP specification)
- βœ… Tool names should be **unique within their namespace**
- ❌ No spaces, commas, or special characters (e.g., `@`, `$`, `!`)
- ❌ Do not start with a number

#### Naming Style Recommendations:

We **recommend snake_case** as it aligns with official MCP reference implementations and Python conventions, but we accept other styles for team consistency:

**βœ… Recommended: snake_case**
- `read_file`, `create_entities`, `get_current_time`
- Used by official MCP servers (filesystem, memory, time)
- Best for Python-based tools

**βœ… Accepted: kebab-case**
- `batch-apply-update-action`, `connect-jump-host`
- Common in CLI tools and web APIs

**βœ… Accepted: PascalCase**
- `ExecuteQuery`, `KendraQueryTool`, `QBusinessQueryTool`
- Familiar to developers from other languages

**Important:** Stay consistent within your MCP server. Don't mix naming styles.

#### βœ… Valid Examples:
- `data-cleaner`
- `csv-uploader`
- `pdf-generator`
- `read_file` (snake_case - recommended)
- `create-bucket` (kebab-case - accepted)
- `ExecuteQuery` (PascalCase - accepted)
- `get_file_info` (snake_case with clear verb-noun pattern)

#### ❌ Invalid Examples:
- `123tool`
- `tool!@#$`
- `name-that-is-way-too-long-and-goes-beyond-the-sixty-four-character-limit-of-the-rule`
- `123tool` (starts with number)
- `tool!@#$` (special characters)
- `read file` (contains space)
- `name-that-is-way-too-long-and-goes-beyond-the-sixty-four-character-limit-including-server-prefix` (exceeds 64 chars)

#### Best Practices:
1. Use descriptive, action-oriented names (verb-noun pattern: `get_status`, `create_user`)
2. Keep the fully qualified name under 64 characters (some MCP clients add prefixes/suffixes)
3. Be consistent within your server - pick one style and stick to it
4. Refer to the [MCP Tool Naming Specification (SEP-986)](https://modelcontextprotocol.io/community/seps/986-specify-format-for-tool-names.md) for official guidance

## Asynchronous Programming

Expand Down
Loading
Loading