Public record
Software health reportschema 0.23.0 · metrics 1.13.0 · 2026-07-21 21:03 UTC

aws / mcp-proxy-for-aws

AWS MCP Proxy Server

PythonApache-2.0★ 327 stars⑂ 55 forkssince Sep 2025View on GitHub ↗

aws/mcp-proxy-for-aws holds a health index of 83 out of 100, placing it in the Good band. It scores highest on Vitality (94/100) and lowest on AI Readiness (53/100). It was last updated today. 3 contributors account for most of its recent work.

83
overall / 100
Good

Software health index

Metrics are grouped into weighted categories on one standardized 1–100 scale. Overall starts as their weighted mean; when public evidence triggers the High-Risk Jurisdiction Policy, the rating is adjusted and receives an At risk ceiling of 49. AI Readiness sits outside the overall score.

83
Excellent85-100Exemplary; meets essentially all checked criteria
Good70-84Healthy; minor gaps
Moderate50-69Acceptable with notable gaps; review recommended
At risk30-49Significant weaknesses; adoption warrants caution
Critical1-29Severe problems (abandoned, single-maintainer, no hygiene)
VitalityCommunity &AdoptionSustainability &GovernanceEngineeringQualitySecurityAI Readiness

Score profile

Each axis is a category. The shape matters more than the average — a healthy subject fills the whole shape, while a spike-and-crater profile means strength in one dimension is masking risk in another.

Ownership

16,125 followers552 public repossince Aug 2012

This repository is backed by an organization — shared, accountable stewardship that can outlive any single maintainer.

Package ecosystems

RegistryPackageVersionDownloads / moVersionsLast publish
PyPImcp-proxy-for-aws1.6.42,038,100201 day ago

Metrics by category

Vitality

Is the project alive — is code being written and are releases shipping?

94Excellent · 22% of overall
How it's scored
36/36Push recency — last push 0 days ago
25.6/36Commit cadence — 37/52 weeks with commits
18/18Commit volume — 262 commits in the last year
10/10OpenSSF Scorecard: Maintained — 30 commit(s) and 2 issue activity found in the last 90 days -- score normalized to 10
Inputs used
commits_last_year262
human_commit_share0.39
days_since_last_push0
active_weeks_last_year37

Release discipline

100Excellent
How it's scored
27/27Ships releases — 18 releases published
36/36Release recency — latest release 1 days ago
27/27Release cadence — a release every ~11.2 days
0/10OpenSSF Scorecard: Signed-Releases — no data
Inputs used
releases_count18
latest_release_tagv1.6.4
releases_from_tagsno
days_since_latest_release1
mean_days_between_releases11.2
Excluded from scoring (no data or not applicable): OpenSSF Scorecard: Signed-Releases. Remaining weights renormalized.

Community & Adoption

Does the project have users, downloads, attention, and a welcoming setup for contributors?

81Good · 18% of overall
How it's scored
40.8/60Stars — 327 stars
14.4/25Forks — 55 forks
4.7/15Watchers — 8 watchers
Inputs used
forks55
stars327
watchers8
growth_stateorganic
growth_factor_pct100

Community health

92Excellent
How it's scored
22.5/22.5README
22.5/22.5License — recognized license (Apache-2.0)
18/18CONTRIBUTING guide
13.5/13.5Code of conduct
0/7.2Issue template
6.3/6.3PR template
Inputs used
has_readmeyes
has_licenseyes
has_contributingyes
has_issue_templateno
has_code_of_conductyes
has_pull_request_templateyes
How it's scored
80/80Monthly downloads — 2,038,100 downloads/month across pypi
0/20Registry dependents — not reported by this ecosystem
Inputs used
packagesmcp-proxy-for-aws
dependents
ecosystemspypi
total_downloads
monthly_downloads2,038,100
Excluded from scoring (no data or not applicable): Registry dependents. Remaining weights renormalized.

Sustainability & Governance

Will the project survive its people — bus factor, responsiveness, who backs it, and package upkeep?

80Good · 24% of overall
How it's scored
36/54Bus factor — 3 contributor(s) cover half of all commits
18/22.5Commit distribution — top contributor authored 20% of commits
13.5/13.5Contributor breadth — 19 contributors
3/10OpenSSF Scorecard: Contributors — project has 1 contributing companies or organizations -- score normalized to 3
Inputs used
bus_factor3
contributors_sampled19
top_contributor_share0.199
How it's scored
32.7/46.8Issue resolution — 70% of issues closed
30/38.3PR acceptance — 260/332 decided PRs merged
15/15OpenSSF Scorecard: Code-Review — all changesets reviewed
Inputs used
merged_prs260
open_issues9
closed_issues21
issue_closed_ratio0.7
closed_unmerged_prs72
How it's scored
30/30Ownership backing — organization-owned
0/20Verified domain
25/25Owner reach — 16,125 followers of aws
25/25Track record — 552 public repos, account ~13 yr old
Inputs used
followers16,125
owner_typeOrganization
is_verified
owner_loginaws
public_repos552
account_age_days5,075
How it's scored
25/25Published & resolvable — 1 package(s) on pypi
35/35Publish recency — latest publish 1 days ago
20/20Version history — 20 published versions
20/20Not deprecated — active, not deprecated or yanked
Inputs used
packagesmcp-proxy-for-aws
ecosystemspypi
any_deprecatedno
min_days_since_publish1

Engineering Quality

Are baseline engineering and documentation practices in place?

76Good · 20% of overall
How it's scored
24/24CI workflows — 10 workflow(s)
24/24Tests present
16/16Linter config
9.6/9.6Pre-commit hooks
0/6.4.editorconfig
20/20OpenSSF Scorecard: CI-Tests — 30 out of 30 merged PRs checked by a CI test -- score normalized to 10
Inputs used
has_ciyes
has_testsyes
has_editorconfigno
has_linter_configyes
has_precommit_configyes

Documentation

50Moderate
How it's scored
30/30README
0/25Documentation directory
0/15Documentation / homepage site
10/10Repository description
10/10Topics — 4 topics
0/10Wiki
Inputs used
topicsaws, mcp, proxy, sigv4
has_wikino
homepage
has_readmeyes
has_docs_dirno
has_descriptionyes

Security

Are visible security and supply-chain practices strong, without unresolved high-risk jurisdiction exposure?

82Good · 16% of overall
How it's scored
7.5/7.5Binary-Artifacts — no binaries found in the repo
6/7.5Branch-Protection — branch protection is not maximal on development and all release branches
2.5/2.5CI-Tests — 30 out of 30 merged PRs checked by a CI test -- score normalized to 10
0/2.5CII-Best-Practices — no effort to earn an OpenSSF best practices badge detected
7.5/7.5Code-Review — all changesets reviewed
0.8/2.5Contributors — project has 1 contributing companies or organizations -- score normalized to 3
10/10Dangerous-Workflow — no dangerous workflow patterns detected
7.5/7.5Dependency-Update-Tool — update tool detected
0/5Fuzzing — project is not fuzzed
2.5/2.5License — license file detected
7.5/7.5Maintained — 30 commit(s) and 2 issue activity found in the last 90 days -- score normalized to 10
5/5Packaging — packaging workflow detected
4/5Pinned-Dependencies — dependency not pinned by hash detected -- score normalized to 8
5/5SAST — SAST tool is run on all commits
5/5Security-Policy — security policy file detected
0/7.5Signed-Releases — no data
0/7.5Token-Permissions — detected GitHub workflow tokens with excessive permissions
5.2/7.5Vulnerabilities — 3 existing vulnerabilities detected
Inputs used
sourceopenssf_scorecard
checks_evaluated17
scorecard_versionv5.5.0
checks_inconclusive1
scorecard_aggregate7.8
Excluded from scoring (no data or not applicable): signed_releases. Remaining weights renormalized.
How it's scored
35/35Direct dependencies free of known advisories — no direct dependency carries a known advisory
0/25Indirect dependencies free of known advisories — transitive set not separable from development and test dependencies in this scope
0/40No advisories left outstanding — no advisory carries a publication date
Inputs used
sourceosv
advisories4
affected_packages2
assessed_packages288
unassessed_packages12
affected_by_severityhigh 1, moderate 1
direct_affected_packages0
Excluded from scoring (no data or not applicable): Indirect dependencies free of known advisories, No advisories left outstanding. Remaining weights renormalized. Matched 288 resolved dependencies against OSV. 12 could not be assessed — no resolved version, an unsupported ecosystem, or beyond the reported package list. This repository publishes no package the index resolves, so the repository dependency graph was assessed instead. That graph mixes development and test pins with shipped dependencies, so only the declared runtime dependencies are scored; transitive findings are reported as context and excluded from the score. Reachability is not analyzed.

AI Readiness

How well is the repo equipped to be developed and maintained with AI coding agents? An independent, experimental badge — weight 0.0, so it is surfaced on its own and does not affect the overall health score.

53Moderate · 0% of overall
How it's scored
0/45Agent instructions — no CLAUDE.md / AGENTS.md / editor rules
0/15Machine-readable docs (llms.txt)
40/40Legible commit history — 38 of 39 human commits state their intent (structured subject or explanatory body)
Inputs used
has_llms_txtno
legible_history_share0.974
agent_instruction_files
agent_instruction_max_bytes
How it's scored
0/18One-command bootstrap
22/22Automated tests
11/11Lint / format config
0/11Static type checking
10/10Reproducible environment — Dockerfile, lockfile
0/10Demonstrated agent practice — no agent-authored commits among the last 100
8/8Automated maintenance — 61 of the last 100 commits are automated dependency updates
8/10OpenSSF Scorecard: Pinned-Dependencies — dependency not pinned by hash detected -- score normalized to 8
Inputs used
has_nixno
has_testsyes
lockfilesuv.lock
has_dockerfileyes
typed_languageno
bootstrap_files
has_devcontainerno
has_linter_configyes
typecheck_configs
agent_commit_share0
toolchain_manifests
dependency_bot_commit_share0.61
How it's scored
0/45Type-checkable code — Python without a type-check config
55/55Manageable file sizes — 0/46 source files over 60KB
Inputs used
primary_languagePython
largest_source_bytes41,177
source_files_sampled46
oversized_source_files0
How it's scored
0/40API schema (OpenAPI/GraphQL/proto)
20/20MCP server
40/40Runnable examples — examples
Inputs used
example_dirsexamples
has_mcp_signalyes
api_schema_files

Key facts

327GitHub stars
19contributors
262commits, last 12 months
0days since last push
18releases
3bus factor
9open issues
PyPIpackage ecosystems

Data collection warnings

  • deps.dev does not index pypi:mcp-proxy-for-aws@1.6.4; advisories assessed against the repository dependency graph instead

More detail

Star and fork history 327 ★ / 55 ⇿
327Stars
55Forks
18Releases

When each star and fork was added, collected from GitHub and bucketed by day. Cumulative growth sits directly above the daily additions it is made of, so the two read against each other: steady organic accretion looks nothing like an abrupt, short-lived burst. Where that difference is measurable, it is reported as growth authenticity.

012525037532755342025-092026-022026-07
Major 0Minor 6Patch 12
OpenSSF Scorecard 7.8 / 10
7.8aggregate

Independent, tool-agnostic security assessment from the open-source OpenSSF Scorecard. Each check rewards a security practice, not a specific vendor's tool. Checks Scorecard could not determine are marked n/a and excluded from the security score (never counted as zero).Scorecard v5.5.0 · 2026-07-21 21:03 UTC

10Binary-Artifactsno binaries found in the repo
8Branch-Protectionbranch protection is not maximal on development and all release branches
10CI-Tests30 out of 30 merged PRs checked by a CI test -- score normalized to 10
0CII-Best-Practicesno effort to earn an OpenSSF best practices badge detected
10Code-Reviewall changesets reviewed
3Contributorsproject has 1 contributing companies or organizations -- score normalized to 3
10Dangerous-Workflowno dangerous workflow patterns detected
10Dependency-Update-Toolupdate tool detected
0Fuzzingproject is not fuzzed
10Licenselicense file detected
10Maintained30 commit(s) and 2 issue activity found in the last 90 days -- score normalized to 10
10Packagingpackaging workflow detected
8Pinned-Dependenciesdependency not pinned by hash detected -- score normalized to 8
10SASTSAST tool is run on all commits
10Security-Policysecurity policy file detected
n/aSigned-Releasesno releases found
0Token-Permissionsdetected GitHub workflow tokens with excessive permissions
7Vulnerabilities3 existing vulnerabilities detected
Direct dependencies 3
RegistryPackageVersion constraintManifest
PyPIfastmcp>=3.2,<3.5pyproject.toml
PyPIboto3>=1.41.0pyproject.toml
PyPIbotocore>=1.41.0pyproject.toml
All dependencies 300

Full resolved dependency set from the GitHub dependency graph: 5 direct and 295 indirect (transitive) packages. The transitive closure is complete when the repository commits a lockfile.

RegistryPackageVersionRelation
PyPIboto31.43.51direct
PyPIbotocoredirect
PyPIbotocore1.43.51direct
PyPIfastmcpdirect
PyPIfastmcp3.4.4direct
PyPIa2a-sdk0.3.21indirect
PyPIag-ui-protocol0.1.10indirect
PyPIagent-frameworkindirect
PyPIagent-framework1.11.0indirect
PyPIagent-framework-a2a1.0.0b251211indirect
PyPIagent-framework-ag-ui1.0.0b251211indirect
PyPIagent-framework-anthropic1.0.0b251211indirect
PyPIagent-framework-azure-ai-search1.0.0b251211indirect
PyPIagent-framework-azure-cosmos1.0.0b260507indirect
PyPIagent-framework-azurefunctions1.0.0b251211indirect
PyPIagent-framework-bedrock1.0.0b260507indirect
PyPIagent-framework-chatkit1.0.0b251211indirect
PyPIagent-framework-claude1.0.0b260507indirect
PyPIagent-framework-copilotstudio1.0.0b251211indirect
PyPIagent-framework-core1.11.0indirect
PyPIagent-framework-declarative1.0.0b251211indirect
PyPIagent-framework-devui1.0.0b251211indirect
PyPIagent-framework-durabletask1.0.0b260507indirect
PyPIagent-framework-foundry1.3.0indirect
PyPIagent-framework-foundry-local1.0.0b260507indirect
PyPIagent-framework-github-copilot1.0.0rc1indirect
PyPIagent-framework-hyperlight1.0.0b260507indirect
PyPIagent-framework-lab1.0.0b251024indirect
PyPIagent-framework-mem01.0.0b251211indirect
PyPIagent-framework-ollama1.0.0b260507indirect
PyPIagent-framework-openai1.3.0indirect
PyPIagent-framework-orchestrations1.0.0b260507indirect
PyPIagent-framework-purview1.0.0b251211indirect
PyPIagent-framework-redis1.0.0b251211indirect
PyPIaiofile3.9.0indirect
PyPIaiohappyeyeballs2.6.1indirect
PyPIaiohttp3.14.1indirect
PyPIaiosignal1.4.0indirect
PyPIaiosqlite0.22.0indirect
PyPIannotated-doc0.0.4indirect
PyPIannotated-types0.7.0indirect
PyPIanthropic0.75.0indirect
PyPIanyio4.12.0indirect
PyPIargcomplete3.6.3indirect
PyPIast-serialize0.6.0indirect
PyPIasync-timeout5.0.1indirect
PyPIasyncio4.0.0indirect
PyPIattrs25.4.0indirect
PyPIauthlib1.6.12indirect
PyPIawscrt0.36.0indirect
PyPIazure-ai-inference1.0.0b9indirect
PyPIazure-ai-projects2.1.0indirect
PyPIazure-common1.1.28indirect
PyPIazure-core1.38.0indirect
PyPIazure-cosmos4.16.0b2indirect
PyPIazure-functions1.25.0b3.dev1indirect
PyPIazure-functions-durable1.4.0indirect
PyPIazure-identity1.26.0b1indirect
PyPIazure-search-documents11.7.0b2indirect
PyPIazure-storage-blob12.28.0b1indirect
PyPIbackoff2.2.1indirect
PyPIbackports-asyncio-runner1.2.0indirect
PyPIbackports-tarfile1.2.0indirect
PyPIbanks2.4.2indirect
PyPIbeartype0.22.9indirect
PyPIblack26.5.1indirect
PyPIcachetools6.2.3indirect
PyPIcaio0.9.25indirect
PyPIcertifi2025.11.12indirect
PyPIcffi2.0.0indirect
PyPIcfgv3.5.0indirect
PyPIcharset-normalizer3.4.4indirect
PyPIclaude-agent-sdk0.1.48indirect
PyPIclick8.4.2indirect
PyPIclr-loader0.2.9indirect
PyPIcolorama0.4.6indirect
PyPIcommitizen4.16.5indirect
PyPIcoverage7.13.0indirect
PyPIcryptography48.0.1indirect
PyPIcyclopts5.0.0a1indirect
PyPIdataclasses-json0.6.7indirect
PyPIdecli0.6.3indirect
PyPIdefusedxml0.8.0rc2indirect
PyPIdeprecated1.2.18indirect
PyPIdirtyjson1.0.8indirect
PyPIdistlib0.4.0indirect
PyPIdistro1.9.0indirect
PyPIdnspython2.8.0indirect
PyPIdocstring-parser0.17.0indirect
PyPIdurabletask1.4.0indirect
PyPIdurabletask-azuremanaged1.4.0indirect
PyPIemail-validator2.3.0indirect
PyPIexceptiongroup1.3.1indirect
PyPIfastapi0.136.3indirect
PyPIfastmcp-slim3.4.4indirect
PyPIfilelock3.20.3indirect
PyPIfiletype1.2.0indirect
PyPIfoundry-local-sdk0.5.1indirect
PyPIfrozenlist1.8.0indirect
PyPIfsspec2025.12.0indirect
PyPIfurl2.1.4indirect
PyPIgithub-copilot-sdk1.0.2indirect
PyPIgoogle-api-core2.28.1indirect
PyPIgoogle-auth2.43.0indirect
PyPIgoogleapis-common-protos1.72.0indirect
PyPIgreenlet3.3.0indirect
PyPIgriffe1.15.0indirect
PyPIgriffelib2.0.2indirect
PyPIgrpcio1.76.0indirect
PyPIh110.16.0indirect
PyPIh24.3.0indirect
PyPIhpack4.1.0indirect
PyPIhttpcore1.0.9indirect
PyPIhttptools0.7.1indirect
PyPIhttpx0.28.1indirect
PyPIhttpx-sse0.4.3indirect
PyPIhyperframe6.1.0indirect
PyPIhyperlight-sandbox0.4.0indirect
PyPIhyperlight-sandbox-backend-wasm0.4.0indirect
PyPIhyperlight-sandbox-python-guest0.4.0indirect
PyPIidentify2.6.15indirect
PyPIidna3.15indirect
PyPIimportlib-metadata8.7.0indirect
PyPIiniconfig2.3.0indirect
PyPIisodate0.7.2indirect
PyPIisort8.0.1indirect
PyPIjaraco-classes3.4.0indirect
PyPIjaraco-context6.1.2indirect
PyPIjaraco-functools4.3.0indirect
PyPIjeepney0.9.0indirect
PyPIjinja23.1.6indirect
PyPIjiter0.12.0indirect
PyPIjmespath1.0.1indirect
PyPIjoblib1.5.3indirect
PyPIjoserfc1.7.0indirect
PyPIjsonpatch1.33indirect
PyPIjsonpath-ng1.7.0indirect
PyPIjsonpointer3.0.0indirect
PyPIjsonref1.1.0indirect
PyPIjsonschema4.25.1indirect
PyPIjsonschema-path0.4.0b1indirect
PyPIjsonschema-specifications2025.9.1indirect
PyPIkeyring25.7.0indirect
PyPIlangchainindirect
PyPIlangchain1.3.14indirect
PyPIlangchain-awsindirect
PyPIlangchain-aws1.6.2indirect
PyPIlangchain-core1.4.9indirect
PyPIlangchain-mcp-adaptersindirect
PyPIlangchain-mcp-adapters0.3.0indirect
PyPIlangchain-protocol0.0.18indirect
PyPIlanggraph1.2.6indirect
PyPIlanggraph-checkpoint4.1.1indirect
PyPIlanggraph-prebuilt1.1.0indirect
PyPIlanggraph-sdk0.4.2indirect
PyPIlangsmith0.8.18indirect
PyPIlibrt0.13.0indirect
PyPIllama-indexindirect
PyPIllama-index0.14.23indirect
PyPIllama-index-core0.14.23indirect
PyPIllama-index-embeddings-openai0.6.0indirect
PyPIllama-index-instrumentation0.5.0indirect
PyPIllama-index-llms-openaiindirect
PyPIllama-index-llms-openai0.7.9indirect
PyPIllama-index-tools-mcpindirect
PyPIllama-index-tools-mcp0.4.8indirect
PyPIllama-index-workflows2.20.0indirect
PyPImarkdown-it-py4.0.0indirect
PyPImarkupsafe3.0.3indirect
PyPImarshmallow3.26.2indirect
PyPImcp1.28.1indirect
PyPImcp-client-example-agent-framework0.1.0indirect
PyPImcp-client-example-langchain0.1.0indirect
PyPImcp-client-example-llamaindex0.1.0indirect
PyPImcp-client-example-strands-agents0.1.0indirect
PyPImcp-proxy-for-awsindirect
PyPImcp-proxy-for-aws1.6.4indirect
PyPImdurl0.1.2indirect
PyPImem0ai2.0.0b2indirect
PyPImicrosoft-agents-activity0.7.0.dev10indirect
PyPImicrosoft-agents-copilotstudio-client0.7.0.dev10indirect
PyPImicrosoft-agents-hosting-core0.7.0.dev10indirect
PyPIml-dtypes0.5.4indirect
PyPImore-itertools10.8.0indirect
PyPImsal1.34.0indirect
PyPImsal-extensions1.3.1indirect
PyPImultidict6.7.0indirect
PyPImypy2.3.0indirect
PyPImypy-extensions1.1.0indirect
PyPInest-asyncio1.6.0indirect
PyPInetworkx3.4.2indirect
PyPInetworkx3.6.1indirect
PyPInltk3.10.0indirect
PyPInodeenv1.9.1indirect
PyPInumpy2.2.6indirect
PyPInumpy2.4.0rc1indirect
PyPIollama0.5.3indirect
PyPIopenai2.11.0indirect
PyPIopenai-agents0.6.3indirect
PyPIopenai-chatkit1.4.0indirect
PyPIopenapi-pydantic0.5.1indirect
PyPIopentelemetry-api1.39.1indirect
PyPIopentelemetry-instrumentation0.60b1indirect
PyPIopentelemetry-instrumentation-threading0.60b1indirect
PyPIopentelemetry-sdk1.39.1indirect
PyPIopentelemetry-semantic-conventions0.60b1indirect
PyPIorderedmultidict1.0.2indirect
PyPIorjson3.11.6indirect
PyPIormsgpack1.12.1indirect
PyPIpackaging26.1indirect
PyPIpathable0.5.0b2indirect
PyPIpathspec1.0.4indirect
PyPIpillow12.3.0indirect
PyPIplatformdirs4.5.1indirect
PyPIpluggy1.6.0indirect
PyPIply3.11indirect
PyPIportalocker3.2.0indirect
PyPIposthog7.0.1indirect
PyPIpowerfx0.0.33indirect
PyPIpre-commit4.6.0indirect
PyPIprompt-toolkit3.0.51indirect
PyPIpropcache0.4.1indirect
PyPIproto-plus1.26.1indirect
PyPIprotobuf5.29.6indirect
PyPIpy-key-value-aio0.4.4indirect
PyPIpyasn10.6.3indirect
PyPIpyasn1-modules0.4.2indirect
PyPIpycparser2.23indirect
PyPIpydantic2.12.5indirect
PyPIpydantic-core2.41.5indirect
PyPIpydantic-settings2.14.2indirect
PyPIpygments2.20.0indirect
PyPIpyjwt2.13.0indirect
PyPIpyperclip1.11.0indirect
PyPIpyright1.1.411indirect
PyPIpyrsistent0.20.0indirect
PyPIpytest9.1.1indirect
PyPIpytest-asyncio1.4.0indirect
PyPIpytest-cov7.1.0indirect
PyPIpytest-mock3.15.1indirect
PyPIpython-dateutil2.9.0.post0indirect
PyPIpython-dotenvindirect
PyPIpython-dotenv1.2.2indirect
PyPIpython-multipart0.0.31indirect
PyPIpython-ulid3.1.0indirect
PyPIpythonnet3.0.5indirect
PyPIpytokens0.4.1indirect
PyPIpytz2025.2indirect
PyPIpywin32311indirect
PyPIpywin32-ctypes0.2.3indirect
PyPIpyyaml6.0.3indirect
PyPIqdrant-client1.16.2indirect
PyPIquestionary2.1.1indirect
PyPIredis6.4.0indirect
PyPIredisvl0.12.1indirect
PyPIreferencing0.36.2indirect
PyPIregex2025.11.3indirect
PyPIrequests2.33.0indirect
PyPIrequests-toolbelt1.0.0indirect
PyPIrich14.2.0indirect
PyPIrpds-py0.30.0indirect
PyPIrsa4.9.1indirect
PyPIruff0.15.22indirect
PyPIs3transfer0.19.0indirect
PyPIsecretstorage3.5.0indirect
PyPIsetuptools80.9.0indirect
PyPIsix1.17.0indirect
PyPIsniffio1.3.1indirect
PyPIsqlalchemy2.0.45indirect
PyPIsse-starlette3.0.4indirect
PyPIstarlette1.3.1indirect
PyPIstrands-agentsindirect
PyPIstrands-agents1.48.0indirect
PyPItenacity9.1.2indirect
PyPItermcolor3.2.0indirect
PyPItiktoken0.12.0indirect
PyPItinytag2.2.1indirect
PyPItomli2.3.0indirect
PyPItomlkit0.13.3indirect
PyPItqdm4.67.1indirect
PyPItypes-requests2.32.4.20250913indirect
PyPItyping-extensions4.15.0indirect
PyPItyping-inspect0.9.0indirect
PyPItyping-inspection0.4.2indirect
PyPIuncalled-for0.2.0indirect
PyPIurllib32.7.0indirect
PyPIuuid-utils0.12.0indirect
PyPIuvicorn0.38.0indirect
PyPIuvloop0.22.1indirect
PyPIvirtualenv20.36.1indirect
PyPIwatchdog6.0.0indirect
PyPIwatchfiles1.1.1indirect
PyPIwcwidth0.2.14indirect
PyPIwebsockets15.0.1indirect
PyPIwerkzeug3.1.6indirect
PyPIwrapt1.17.3indirect
PyPIxxhash3.6.0indirect
PyPIyarl1.22.0indirect
PyPIzipp3.23.0indirect
PyPIzstandard0.25.0indirect
Dependency advisories 2

This repository publishes no package the index resolves, so its own dependency graph was assessed — 288 packages, which also include development and test pins that never ship: 2 carry known advisories, of which 0 are direct. 12 could not be assessed — no resolved version, an unsupported ecosystem, or beyond the reported package list.

PackageVersionRelationSeverityAdvisoriesFixed in
pyasn10.6.3indirecthigh20.6.4
setuptools80.9.0indirectmoderate283.0.0

An advisory means the version recorded in the dependency graph falls inside an advisory’s affected range. Reachability is not analysed, and the graph includes development and test pins — a finding may concern tooling rather than shipped software.

Raw JSON report machine-readable
{
  "data": {
    "repo": {
      "topics": [
        "aws",
        "mcp",
        "proxy",
        "sigv4"
      ],
      "is_fork": false,
      "size_kb": 6719,
      "has_wiki": false,
      "homepage": null,
      "languages": {
        "Shell": 3888,
        "Python": 315437,
        "Dockerfile": 1564
      },
      "pushed_at": "2026-07-21T11:12:13Z",
      "created_at": "2025-09-24T15:02:25Z",
      "owner_type": "Organization",
      "updated_at": "2026-07-21T11:17:16Z",
      "description": "AWS MCP Proxy Server",
      "is_archived": false,
      "is_disabled": false,
      "license_spdx": "Apache-2.0",
      "default_branch": "main",
      "license_spdx_raw": "Apache-2.0",
      "primary_language": "Python",
      "significant_languages": [
        "Python"
      ]
    },
    "owner": {
      "blog": "https://amazon.com/aws",
      "name": "Amazon Web Services",
      "type": "Organization",
      "login": "aws",
      "company": null,
      "location": "United States of America",
      "followers": 16125,
      "avatar_url": "https://avatars.githubusercontent.com/u/2232217?v=4",
      "created_at": "2012-08-28T05:37:55Z",
      "is_verified": null,
      "public_repos": 552,
      "account_age_days": 5075
    },
    "license": {
      "state": "standard",
      "spdx_id": "Apache-2.0",
      "raw_spdx": "Apache-2.0",
      "file_present": true,
      "scorecard_found": true,
      "profile_has_license": true
    },
    "activity": {
      "releases": [
        {
          "tag": "v1.6.4",
          "kind": "patch",
          "published_at": "2026-07-20T15:11:18Z"
        },
        {
          "tag": "v1.6.3",
          "kind": "patch",
          "published_at": "2026-06-26T14:19:54Z"
        },
        {
          "tag": "v1.6.2",
          "kind": "patch",
          "published_at": "2026-06-19T12:31:53Z"
        },
        {
          "tag": "v1.6.1",
          "kind": "patch",
          "published_at": "2026-06-12T14:24:34Z"
        },
        {
          "tag": "v1.6.0",
          "kind": "minor",
          "published_at": "2026-05-29T13:03:36Z"
        },
        {
          "tag": "v1.5.0",
          "kind": "minor",
          "published_at": "2026-05-22T11:38:35Z"
        },
        {
          "tag": "v1.4.2",
          "kind": "patch",
          "published_at": "2026-04-30T11:12:13Z"
        },
        {
          "tag": "v1.4.1",
          "kind": "patch",
          "published_at": "2026-04-29T10:49:46Z"
        },
        {
          "tag": "v1.4.0",
          "kind": "minor",
          "published_at": "2026-04-15T14:57:45Z"
        },
        {
          "tag": "v1.3.0",
          "kind": "minor",
          "published_at": "2026-04-10T13:51:53Z"
        },
        {
          "tag": "v1.2.0",
          "kind": "minor",
          "published_at": "2026-04-09T07:28:45Z"
        },
        {
          "tag": "v1.1.6",
          "kind": "patch",
          "published_at": "2026-01-29T14:37:53Z"
        },
        {
          "tag": "v1.1.5",
          "kind": "patch",
          "published_at": "2025-12-15T11:14:54Z"
        },
        {
          "tag": "v1.1.4",
          "kind": "patch",
          "published_at": "2025-12-04T15:27:20Z"
        },
        {
          "tag": "v1.1.3",
          "kind": "patch",
          "published_at": "2025-12-04T10:12:54Z"
        },
        {
          "tag": "v1.1.2",
          "kind": "patch",
          "published_at": "2025-11-27T16:58:09Z"
        },
        {
          "tag": "v1.1.1",
          "kind": "patch",
          "published_at": "2025-11-19T17:35:13Z"
        },
        {
          "tag": "v1.1.0",
          "kind": "minor",
          "published_at": "2025-11-14T10:34:53Z"
        }
      ],
      "recent_commits": [
        {
          "oid": "c5efec941da5ab48d04e658454265cc5c58c69cc",
          "body": "Bumps [pillow](https://github.com/python-pillow/Pillow) from 12.2.0 to 12.3.0.\n- [Release notes](https://github.com/python-pillow/Pillow/releases)\n- [Changelog](https://github.com/python-pillow/Pillow/blob/main/CHANGES.rst)\n- [Commits](https://github.com/python-pillow/Pillow/compare/12.2.0...12.3.0)\n[…]\now\n  dependency-version: 12.3.0\n  dependency-type: indirect\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "chore(deps): update uv: bump pillow from 12.2.0 to 12.3.0 (#366)",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-07-21T11:09:48Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "d42e9abd090ae8093cd1f9042ab562083b24c57a",
          "body": null,
          "is_bot": false,
          "headline": "bump: version 1.6.3 → 1.6.4 (#364)",
          "author_name": "Arne Wouters",
          "author_login": "arnewouters",
          "committed_at": "2026-07-20T15:06:52Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "24b1184001875f3e66e6b0340b8b2bd3e4b6eb8d",
          "body": null,
          "is_bot": false,
          "headline": "fix: stale profile refresh when using multi-profiles (#363)",
          "author_name": "Arne Wouters",
          "author_login": "arnewouters",
          "committed_at": "2026-07-20T14:18:17Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "1dd13476b0d0a857127be9c54a19391029114aab",
          "body": null,
          "is_bot": false,
          "headline": "fix: disable follow_redirects in SigV4 httpx client (#362)",
          "author_name": "anasstahr",
          "author_login": "anasstahr",
          "committed_at": "2026-07-20T13:02:39Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "6f9d735874c8963627adaf7c38e9089c24fbe8c0",
          "body": "* docs: clarify local vs signing region resolution\n\nDocument that --region / endpoint URL / --metadata AWS_REGION control\nthe signing region for the remote MCP server, while the proxy's local\nboto3 session resolves its own region from the standard provider chain\n(env or active profile) for credentia\n[…]\nr@amazon.com>\n\n* docs: use GitHub markdown alert syntax for notes\n\n---------\n\nSigned-off-by: anasstahr <anatahr@amazon.com>\nCo-authored-by: Arne Wouters <25950814+arnewouters@users.noreply.github.com>",
          "is_bot": false,
          "headline": "docs: clarify local vs signing region resolution (#343)",
          "author_name": "anasstahr",
          "author_login": "anasstahr",
          "committed_at": "2026-07-20T12:13:16Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "837a2cc40562a814cd2587c5d7c1598d6235582f",
          "body": "…rectory with 6 updates (#361)\n\nBumps the uv-version-updates group with 6 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [boto3](https://github.com/boto/boto3) | `1.43.46` | `1.43.51` |\n| [mypy](https://github.com/python/mypy) | `2.2.0` | `2.3.0` |\n| [commitizen](https://\n[…]\n-update:semver-minor\n  dependency-group: uv-version-updates\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "chore(deps): update uv: bump the uv-version-updates group across 1 di…",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-07-20T07:16:33Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "92fafae00b01acba507a73b3b7ed4f8660d402ec",
          "body": "Bumps the github-actions-version-updates group with 1 update: [actions/setup-python](https://github.com/actions/setup-python).\n\n\nUpdates `actions/setup-python` from 6.3.0 to 7.0.0\n- [Release notes](https://github.com/actions/setup-python/releases)\n- [Commits](https://github.com/actions/setup-python/\n[…]\ner-major\n  dependency-group: github-actions-version-updates\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "chore(deps): update github-actions: bump actions/setup-python (#360)",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-07-20T07:11:38Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "4c189f256f6a1407dcd33e58a9614d24bf602a0b",
          "body": null,
          "is_bot": false,
          "headline": "fix: resolve AWS_REGION metadata from profile configuration (#359)",
          "author_name": "Arne Wouters",
          "author_login": "arnewouters",
          "committed_at": "2026-07-17T14:25:49Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "519258a1dae5e846799b87bcfd88d6b573f0ff94",
          "body": null,
          "is_bot": false,
          "headline": "fix endpoint swallowing with multiple profiles (#358)",
          "author_name": "Arne Wouters",
          "author_login": "arnewouters",
          "committed_at": "2026-07-17T14:22:08Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e0264a9c3bf0d0d7b3e5634ed244926eca40a5c9",
          "body": "Bumps [nltk](https://github.com/nltk/nltk) from 3.9.4 to 3.10.0.\n- [Release notes](https://github.com/nltk/nltk/releases)\n- [Changelog](https://github.com/nltk/nltk/blob/develop/ChangeLog)\n- [Commits](https://github.com/nltk/nltk/compare/3.9.4...v3.10.0)\n\n---\nupdated-dependencies:\n- dependency-name:\n[…]\ntk\n  dependency-version: 3.10.0\n  dependency-type: indirect\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "chore(deps): update uv: bump nltk from 3.9.4 to 3.10.0 (#356)",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-07-17T08:45:36Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "43fc59c4a4c62cf7fe2892febf94b99bded1fbf1",
          "body": "…rectory with 8 updates (#353)\n\n* chore(deps): update uv: bump the uv-version-updates group across 1 directory with 8 updates\n\nBumps the uv-version-updates group with 8 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [fastmcp](https://github.com/PrefectHQ/fastmcp) | `3.4.2\n[…]\ns\n\n---------\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>\nCo-authored-by: Arne Wouters <awouters@amazon.com>",
          "is_bot": true,
          "headline": "chore(deps): update uv: bump the uv-version-updates group across 1 di…",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-07-17T08:33:21Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "f18653ec1ca4986b487ca82ed4fea58eb352a6f6",
          "body": "…pdates group across 1 directory with 6 updates (#352)\n\n---\nupdated-dependencies:\n- dependency-name: actions/checkout\n  dependency-version: 7.0.0\n  dependency-type: direct:production\n  update-type: version-update:semver-major\n  dependency-group: github-actions-version-updates\n- dependency-name: dock\n[…]\ner-minor\n  dependency-group: github-actions-version-updates\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "chore(deps): update github-actions: bump the github-actions-version-u…",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-07-17T06:23:30Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "6daef575c3eeed27a17e42c8c930f71340dcc66b",
          "body": "* fix: enforce read-only mode on tools/call requests\n\n* fix: check tool annotations directly on call instead of caching\n\n* test: add unit tests for on_call_tool read-only enforcement",
          "is_bot": false,
          "headline": "fix: enforce read-only mode on tools/call requests (#350)",
          "author_name": "anasstahr",
          "author_login": "anasstahr",
          "committed_at": "2026-07-16T12:28:39Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9edf678bbe6dafbbee01f06fdc595e32e7bc486c",
          "body": "* feat: add pip-audit CVE scanning to CI and release workflows\n\n* fix: exclude local project from pip-audit export\n\n* fix: only run pip-audit on PR/push when lockfile changes",
          "is_bot": false,
          "headline": "feat: add pip-audit CVE scanning to CI and release workflows (#331)",
          "author_name": "anasstahr",
          "author_login": "anasstahr",
          "committed_at": "2026-07-01T11:59:40Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f47cfefec537e88d9a17c33f5d618fe24effa8ac",
          "body": "…rectory with 7 updates (#345)\n\nBumps the uv-version-updates group with 7 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [boto3](https://github.com/boto/boto3) | `1.43.34` | `1.43.36` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.15.18` | `0.15.20` |\n| [pyright](http\n[…]\n-update:semver-minor\n  dependency-group: uv-version-updates\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "chore(deps): update uv: bump the uv-version-updates group across 1 di…",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-06-29T07:14:54Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "04a5738239109c36ff50cee0acb125a5db2b3f58",
          "body": "…pdates group with 2 updates (#344)\n\nBumps the github-actions-version-updates group with 2 updates: [actions/setup-python](https://github.com/actions/setup-python) and [aws-actions/configure-aws-credentials](https://github.com/aws-actions/configure-aws-credentials).\n\n\nUpdates `actions/setup-python` \n[…]\ner-patch\n  dependency-group: github-actions-version-updates\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "chore(deps): update github-actions: bump the github-actions-version-u…",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-06-29T07:14:31Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "9a3022410f88cf6a6800bf411504615dad1adf12",
          "body": null,
          "is_bot": false,
          "headline": "bump: version 1.6.2 → 1.6.3 (#341)",
          "author_name": "Arne Wouters",
          "author_login": "arnewouters",
          "committed_at": "2026-06-26T14:15:23Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e3b57966a64d47542aaafd565f12d33755ac00ef",
          "body": "Bumps [virtualenv](https://github.com/pypa/virtualenv) from 20.35.4 to 20.36.1.\n- [Release notes](https://github.com/pypa/virtualenv/releases)\n- [Changelog](https://github.com/pypa/virtualenv/blob/main/docs/changelog.rst)\n- [Commits](https://github.com/pypa/virtualenv/compare/20.35.4...20.36.1)\n\n---\n[…]\nv\n  dependency-version: 20.36.1\n  dependency-type: indirect\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "chore(deps): update uv: bump virtualenv from 20.35.4 to 20.36.1 (#340)",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-06-26T12:56:23Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "23ba8522a8bca975d5255860d0a4f014aee1b758",
          "body": "Bumps [marshmallow](https://github.com/marshmallow-code/marshmallow) from 3.26.1 to 3.26.2.\n- [Changelog](https://github.com/marshmallow-code/marshmallow/blob/dev/CHANGELOG.rst)\n- [Commits](https://github.com/marshmallow-code/marshmallow/compare/3.26.1...3.26.2)\n\n---\nupdated-dependencies:\n- dependen\n[…]\now\n  dependency-version: 3.26.2\n  dependency-type: indirect\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "chore(deps): update uv: bump marshmallow from 3.26.1 to 3.26.2 (#339)",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-06-26T12:56:20Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "950a21b8fef18508f6adc20030844b076482b52e",
          "body": "Bumps [filelock](https://github.com/tox-dev/py-filelock) from 3.20.0 to 3.20.3.\n- [Release notes](https://github.com/tox-dev/py-filelock/releases)\n- [Changelog](https://github.com/tox-dev/filelock/blob/main/docs/changelog.rst)\n- [Commits](https://github.com/tox-dev/py-filelock/compare/3.20.0...3.20.\n[…]\nck\n  dependency-version: 3.20.3\n  dependency-type: indirect\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "chore(deps): update uv: bump filelock from 3.20.0 to 3.20.3 (#338)",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-06-26T12:44:48Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "d3e4c3bd0e14e6230afd7db993be17084f60cc90",
          "body": "… (#337)\n\nBumps [langgraph-checkpoint](https://github.com/langchain-ai/langgraph) from 4.1.0 to 4.1.1.\n- [Release notes](https://github.com/langchain-ai/langgraph/releases)\n- [Commits](https://github.com/langchain-ai/langgraph/compare/checkpoint==4.1.0...checkpoint==4.1.1)\n\n---\nupdated-dependencies:\n[…]\nint\n  dependency-version: 4.1.1\n  dependency-type: indirect\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "chore(deps): update uv: bump langgraph-checkpoint from 4.1.0 to 4.1.1…",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-06-26T12:40:45Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "1ed8dd3532e9a30eb5adc8ceda781c569a11106e",
          "body": "* fix: set user agent on every request\n\n* update tests\n\n* reduce comments",
          "is_bot": false,
          "headline": "fix: set user agent on every request explicitly (#334)",
          "author_name": "Arne Wouters",
          "author_login": "arnewouters",
          "committed_at": "2026-06-26T12:38:17Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d792b801db3e11fb362f5ee353df5f26e274a024",
          "body": "Bumps [pyasn1](https://github.com/pyasn1/pyasn1) from 0.6.1 to 0.6.3.\n- [Release notes](https://github.com/pyasn1/pyasn1/releases)\n- [Changelog](https://github.com/pyasn1/pyasn1/blob/main/CHANGES.rst)\n- [Commits](https://github.com/pyasn1/pyasn1/compare/v0.6.1...v0.6.3)\n\n---\nupdated-dependencies:\n- \n[…]\nsn1\n  dependency-version: 0.6.3\n  dependency-type: indirect\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "chore(deps): update uv: bump pyasn1 from 0.6.1 to 0.6.3 (#336)",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-06-26T12:37:19Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "124ffb23c3a01938f208dcf5f134d0aaa630d9c6",
          "body": "Bumps [orjson](https://github.com/ijl/orjson) from 3.11.5 to 3.11.6.\n- [Release notes](https://github.com/ijl/orjson/releases)\n- [Changelog](https://github.com/ijl/orjson/blob/master/CHANGELOG.md)\n- [Commits](https://github.com/ijl/orjson/compare/3.11.5...3.11.6)\n\n---\nupdated-dependencies:\n- depende\n[…]\non\n  dependency-version: 3.11.6\n  dependency-type: indirect\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "chore(deps): update uv: bump orjson from 3.11.5 to 3.11.6 (#335)",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-06-26T12:37:15Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "0cb04702785fba1b00ab3e2915860fa2a8358242",
          "body": "Bumps [azure-core](https://github.com/Azure/azure-sdk-for-python) from 1.37.0 to 1.38.0.\n- [Release notes](https://github.com/Azure/azure-sdk-for-python/releases)\n- [Commits](https://github.com/Azure/azure-sdk-for-python/compare/azure-core_1.37.0...azure-core_1.38.0)\n\n---\nupdated-dependencies:\n- dep\n[…]\nre\n  dependency-version: 1.38.0\n  dependency-type: indirect\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "chore(deps): update uv: bump azure-core from 1.37.0 to 1.38.0 (#333)",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-06-26T12:32:58Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "184ef2594d9a1f030aa064ee00bd00a520fffcc8",
          "body": "Bumps the github-actions-version-updates group with 1 update: [actions/checkout](https://github.com/actions/checkout).\n\n\nUpdates `actions/checkout` from 6.0.3 to 7.0.0\n- [Release notes](https://github.com/actions/checkout/releases)\n- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELO\n[…]\ner-major\n  dependency-group: github-actions-version-updates\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "chore(deps): update github-actions: bump actions/checkout (#327)",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-06-25T08:10:47Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "9c578592c35c078cf7c2298ee41d3868eb34f257",
          "body": "…(#329)\n\nBumps [pydantic-settings](https://github.com/pydantic/pydantic-settings) from 2.12.0 to 2.14.2.\n- [Release notes](https://github.com/pydantic/pydantic-settings/releases)\n- [Commits](https://github.com/pydantic/pydantic-settings/compare/v2.12.0...v2.14.2)\n\n---\nupdated-dependencies:\n- depende\n[…]\ngs\n  dependency-version: 2.14.2\n  dependency-type: indirect\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "chore(deps): update uv: bump pydantic-settings from 2.12.0 to 2.14.2 …",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-06-25T07:58:55Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "532f349f8744ce1fabb7721aebbe5470e61b678c",
          "body": "Bumps [langsmith](https://github.com/langchain-ai/langsmith-sdk) from 0.8.0 to 0.8.18.\n- [Release notes](https://github.com/langchain-ai/langsmith-sdk/releases)\n- [Commits](https://github.com/langchain-ai/langsmith-sdk/compare/v0.8.0...v0.8.18)\n\n---\nupdated-dependencies:\n- dependency-name: langsmith\n  dependency-version: 0.8.18\n  dependency-type: indirect\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "chore(deps): update uv: bump langsmith from 0.8.0 to 0.8.18 (#330)",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-06-25T07:58:39Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e0b4eb6b712f1cc1a9fcfafceb42f9152bbfa4fe",
          "body": "…rectory with 8 updates (#328)\n\nBumps the uv-version-updates group with 8 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [boto3](https://github.com/boto/boto3) | `1.43.29` | `1.43.34` |\n| [commitizen](https://github.com/commitizen-tools/commitizen) | `4.16.3` | `4.16.4` |\n[…]\n-update:semver-minor\n  dependency-group: uv-version-updates\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "chore(deps): update uv: bump the uv-version-updates group across 1 di…",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-06-25T07:58:22Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "377eed49c89dd893d213fc407008a50ab540df71",
          "body": null,
          "is_bot": false,
          "headline": "bump: version 1.6.1 → 1.6.2 (#326)",
          "author_name": "Arne Wouters",
          "author_login": "arnewouters",
          "committed_at": "2026-06-19T12:24:06Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "1c362dce0555cedbcfc90d852388182670d857a5",
          "body": "* fix: patch default assume role session name\n\n* fix: add unit tests and timestamp in the default session name\n\n* fix: pyright error\n\n* fix set _using_default_session_name to false",
          "is_bot": false,
          "headline": "fix: assume role credentials (#325)",
          "author_name": "Arne Wouters",
          "author_login": "arnewouters",
          "committed_at": "2026-06-19T12:10:31Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "eaa8adafb4bf66f58c2c3c02fbad5f3a3f8f7a8f",
          "body": "---\nupdated-dependencies:\n- dependency-name: aiohttp\n  dependency-version: 3.14.1\n  dependency-type: indirect\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "chore(deps): update uv: bump aiohttp from 3.14.0 to 3.14.1 (#319)",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-06-16T06:24:25Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "671c565ca8516ee4d342fc2294efd287faf319f2",
          "body": "Bumps [cryptography](https://github.com/pyca/cryptography) from 46.0.7 to 48.0.1.\n- [Changelog](https://github.com/pyca/cryptography/blob/main/CHANGELOG.rst)\n- [Commits](https://github.com/pyca/cryptography/compare/46.0.7...48.0.1)\n\n---\nupdated-dependencies:\n- dependency-name: cryptography\n  dependency-version: 48.0.1\n  dependency-type: indirect\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "chore(deps): update uv: bump cryptography from 46.0.7 to 48.0.1 (#317)",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-06-16T06:24:14Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c9d5227013bdd41be911c76147a5b68293f6cab5",
          "body": "…#316)\n\nBumps [python-multipart](https://github.com/Kludex/python-multipart) from 0.0.27 to 0.0.31.\n- [Release notes](https://github.com/Kludex/python-multipart/releases)\n- [Changelog](https://github.com/Kludex/python-multipart/blob/main/CHANGELOG.md)\n- [Commits](https://github.com/Kludex/python-mul\n[…]\nrt\n  dependency-version: 0.0.31\n  dependency-type: indirect\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "chore(deps): update uv: bump python-multipart from 0.0.27 to 0.0.31 (…",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-06-16T06:22:56Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "f3cc5db5972f14a5fd745cfa005cb1acfa275680",
          "body": "Bumps [starlette](https://github.com/Kludex/starlette) from 1.2.1 to 1.3.1.\n- [Release notes](https://github.com/Kludex/starlette/releases)\n- [Changelog](https://github.com/Kludex/starlette/blob/main/docs/release-notes.md)\n- [Commits](https://github.com/Kludex/starlette/compare/1.2.1...1.3.1)\n\n---\nu\n[…]\ntte\n  dependency-version: 1.3.1\n  dependency-type: indirect\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "chore(deps): update uv: bump starlette from 1.2.1 to 1.3.1 (#318)",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-06-16T06:21:46Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "ea594264be8125d910e3f3f7fba33f46b6df128f",
          "body": "Bumps [pyjwt](https://github.com/jpadilla/pyjwt) from 2.10.1 to 2.13.0.\n- [Release notes](https://github.com/jpadilla/pyjwt/releases)\n- [Changelog](https://github.com/jpadilla/pyjwt/blob/master/CHANGELOG.rst)\n- [Commits](https://github.com/jpadilla/pyjwt/compare/2.10.1...2.13.0)\n\n---\nupdated-depende\n[…]\nwt\n  dependency-version: 2.13.0\n  dependency-type: indirect\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "chore(deps): update uv: bump pyjwt from 2.10.1 to 2.13.0 (#315)",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-06-16T06:11:26Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "06d2e7e85ac2194bb30ec7c89e3eaa6e7ff28fb4",
          "body": "…rectory with 9 updates (#314)\n\nBumps the uv-version-updates group with 8 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [boto3](https://github.com/boto/boto3) | `1.43.24` | `1.43.29` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.15.16` | `0.15.17` |\n| [pytest](https\n[…]\n-update:semver-minor\n  dependency-group: uv-version-updates\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "chore(deps): update uv: bump the uv-version-updates group across 1 di…",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-06-15T08:23:40Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "e0d305989622eba2e66209a93454ff2b471c1b57",
          "body": null,
          "is_bot": false,
          "headline": "chore: release v1.6.1 (#312)",
          "author_name": "anasstahr",
          "author_login": "anasstahr",
          "committed_at": "2026-06-12T14:21:29Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "2a2f79a83a384daaf3f154c593a99662b79067f8",
          "body": "… (#301)\n\n* feat(client): add metadata parameter to aws_iam_streamablehttp_client\n\nAdd optional metadata dict parameter that injects key-value pairs into\nthe MCP _meta field on every request via the existing\n_inject_metadata_hook. This enables passing additional context to the\nserver that cannot be \n[…]\ns #300\n\n* style: fix ruff formatting issues\n\nWrap long line in client.py and add missing blank line in test_client.py\nto satisfy ruff-format.\n\n---------\n\nCo-authored-by: anasstahr <anatahr@amazon.com>",
          "is_bot": false,
          "headline": "feat(client): add metadata parameter to aws_iam_streamablehttp_client…",
          "author_name": "Luke Plewa",
          "author_login": "lukeplewa",
          "committed_at": "2026-06-10T16:19:02Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "327106cba3953c6edd13c8bf347eedf53f8ee623",
          "body": "…ctices (#311)\n\nCo-authored-by: Claudiu Popa <clpo@amazon.com>",
          "is_bot": false,
          "headline": "Pin the version of the MCP Proxy for AWS to respect best security pra…",
          "author_name": "Claudiu Popa",
          "author_login": "PCManticore",
          "committed_at": "2026-06-08T16:21:20Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c61ef29a3f11b6392eb4e1bd0603d70652f9a040",
          "body": "Updates the requirements on [fastmcp](https://github.com/PrefectHQ/fastmcp) to permit the latest version.\n\nUpdates `fastmcp` to 3.4.2\n- [Release notes](https://github.com/PrefectHQ/fastmcp/releases)\n- [Changelog](https://github.com/PrefectHQ/fastmcp/blob/main/docs/changelog.mdx)\n- [Commits](https://\n[…]\nirect:production\n  dependency-group: python-version-updates\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "chore(deps): update pip: update fastmcp requirement (#308)",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-06-08T07:56:18Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "d900d314cf482e0ed88b0c8ed6aabf5e6d5a37a3",
          "body": "…pdates group with 2 updates (#309)\n\nBumps the github-actions-version-updates group with 2 updates: [actions/checkout](https://github.com/actions/checkout) and [aws-actions/configure-aws-credentials](https://github.com/aws-actions/configure-aws-credentials).\n\n\nUpdates `actions/checkout` from 6.0.2 t\n[…]\ner-minor\n  dependency-group: github-actions-version-updates\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "chore(deps): update github-actions: bump the github-actions-version-u…",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-06-08T07:56:14Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "dd5b13445fb24eb6c06b38828e88b1e4e75cdecc",
          "body": "…rectory with 5 updates (#310)\n\nBumps the uv-version-updates group with 5 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [fastmcp](https://github.com/PrefectHQ/fastmcp) | `3.3.1` | `3.4.2` |\n| [boto3](https://github.com/boto/boto3) | `1.43.19` | `1.43.24` |\n| [ruff](https\n[…]\n-update:semver-patch\n  dependency-group: uv-version-updates\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "chore(deps): update uv: bump the uv-version-updates group across 1 di…",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-06-08T07:56:11Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "ac093f0f8e8c223a6b584d82d8d61e7a7f3a02fa",
          "body": "---\nupdated-dependencies:\n- dependency-name: aiohttp\n  dependency-version: 3.14.0\n  dependency-type: indirect\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "chore(deps): update uv: bump aiohttp from 3.13.4 to 3.14.0 (#303)",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-06-04T08:21:43Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "6bcc27cadb35d0a5f291981eff75e4b892d292d3",
          "body": "* Add stale issue/PR workflow\n\nAutomatically mark issues stale after 60 days and close after 14 more.\nPRs are marked stale after 14 days and closed after 7 more.\nMirrors the configuration from aws/agent-toolkit-for-aws.\n\n* Exempt feature requests from stale bot\n\nIssues labeled feature-request or enhancement will not be\nmarked stale or auto-closed.",
          "is_bot": false,
          "headline": "Add stale issue/PR workflow (#302)",
          "author_name": "anasstahr",
          "author_login": "anasstahr",
          "committed_at": "2026-06-03T17:23:29Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "6da7350cbde48a734bf4110dd75ac38e3120c240",
          "body": "…rectory with 10 updates (#298)\n\nBumps the uv-version-updates group with 9 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [boto3](https://github.com/boto/boto3) | `1.43.14` | `1.43.19` |\n| [commitizen](https://github.com/commitizen-tools/commitizen) | `4.16.2` | `4.16.3` \n[…]\n-update:semver-minor\n  dependency-group: uv-version-updates\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "chore(deps): update uv: bump the uv-version-updates group across 1 di…",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-06-02T03:42:46Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "8d3eaa623bf5516a568df15c999e91ac4a03d2c7",
          "body": "…edentials (#297)\n\nBumps the github-actions-version-updates group with 1 update: [aws-actions/configure-aws-credentials](https://github.com/aws-actions/configure-aws-credentials).\n\n\nUpdates `aws-actions/configure-aws-credentials` from 6.1.1 to 6.1.3\n- [Release notes](https://github.com/aws-actions/c\n[…]\ner-patch\n  dependency-group: github-actions-version-updates\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "chore(deps): update github-actions: bump aws-actions/configure-aws-cr…",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-06-02T03:41:42Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "90e2cfd06e1275dad2a2dbe0901e323aa9dde8fe",
          "body": null,
          "is_bot": false,
          "headline": "bump: version 1.5.0 → 1.6.0 (#296)",
          "author_name": "anasstahr",
          "author_login": "anasstahr",
          "committed_at": "2026-05-29T13:01:00Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c01118bb486e3cb7d45b8d2a97c5a433e0c92749",
          "body": "* fix: always read fresh credentials from disk on every request\n\n* docs: update README and CHANGELOG for fresh credentials behavior\n\n* refactor: remove SessionHolder class, pass profile directly to hooks",
          "is_bot": false,
          "headline": "fix: always read fresh credentials from disk on every request (#294)",
          "author_name": "anasstahr",
          "author_login": "anasstahr",
          "committed_at": "2026-05-29T12:46:24Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "925cb6342d16d081c83a03b3e4d45e1ff3221174",
          "body": "* feat(auth): add per-call AWS profile override middleware\n\nAdds ProfileOverrideMiddleware that enables per-call AWS profile switching\nvia an aws_profile tool parameter on auth-requiring tools (call_aws,\nrun_script, get_presigned_url, get_tasks).\n\nConfiguration:\n- --profile accepts multiple values (\n[…]\ncs: clarify --profile fallback behavior in config table\n\n---------\n\nCo-authored-by: Krishma Kochhar <kochhk@amazon.com>\nCo-authored-by: Roman Shevchuk <51510790+rshevchuk-git@users.noreply.github.com>",
          "is_bot": false,
          "headline": "feat(auth): add per-call AWS profile override middleware (#266)",
          "author_name": "anasstahr",
          "author_login": "anasstahr",
          "committed_at": "2026-05-29T10:02:58Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "4ffd565c787eb09a67670bc1cb4b31e23d3e4443",
          "body": "…de (#293)\n\n* fix: prevent credential_process hang on Windows in stdio transport mode\n\nMonkey-patch botocore's ProcessProvider to pass stdin=subprocess.DEVNULL\nwhen spawning credential_process subprocesses. Without this, the child\ninherits the MCP JSON-RPC pipe as stdin, causing Popen.communicate() \n[…]\nlicate botocore's credential\nparsing logic.\n\n* chore: trigger PR sync\n\n* fix: suppress pyright type error for mock popen argument\n\n* test: simplify credential_process stdin tests to focus on the patch",
          "is_bot": false,
          "headline": "fix: prevent credential_process hang on Windows in stdio transport mo…",
          "author_name": "Roman Shevchuk",
          "author_login": "rshevchuk-git",
          "committed_at": "2026-05-29T08:22:01Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "9da6e4159bb1e53fa7855bc4414447c3f2ac8c1e",
          "body": "…pdates group with 2 updates (#291)\n\nBumps the github-actions-version-updates group with 2 updates: [docker/setup-buildx-action](https://github.com/docker/setup-buildx-action) and [docker/build-push-action](https://github.com/docker/build-push-action).\n\n\nUpdates `docker/setup-buildx-action` from 4.0\n[…]\ny: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>\nCo-authored-by: Arne Wouters <25950814+arnewouters@users.noreply.github.com>",
          "is_bot": true,
          "headline": "chore(deps): update github-actions: bump the github-actions-version-u…",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-05-26T06:05:14Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "b5531e28e2331a26e45c7b8c06fc4f3bc0ee5b84",
          "body": "…rectory with 7 updates (#292)\n\nBumps the uv-version-updates group with 6 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [boto3](https://github.com/boto/boto3) | `1.43.9` | `1.43.14` |\n| [black](https://github.com/psf/black) | `26.5.0` | `26.5.1` |\n| [ruff](https://github\n[…]\n-update:semver-minor\n  dependency-group: uv-version-updates\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "chore(deps): update uv: bump the uv-version-updates group across 1 di…",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-05-26T05:45:20Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "4777b65fd4e5cc977b5293a8d0042f52110d9e8c",
          "body": null,
          "is_bot": false,
          "headline": "bump: version 1.4.2 → 1.5.0 (#290)",
          "author_name": "anasstahr",
          "author_login": "anasstahr",
          "committed_at": "2026-05-22T11:36:09Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "53ff8ceef016c5072c0c38ae54604d8c3bd2f50a",
          "body": null,
          "is_bot": false,
          "headline": "docs: add --skip-auth flag documentation (#289)",
          "author_name": "anasstahr",
          "author_login": "anasstahr",
          "committed_at": "2026-05-22T11:24:46Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e44d76141c4f3119dd4acc2f84d5a5c30b4878a4",
          "body": "Bumps [idna](https://github.com/kjd/idna) from 3.11 to 3.15.\n- [Release notes](https://github.com/kjd/idna/releases)\n- [Changelog](https://github.com/kjd/idna/blob/master/HISTORY.md)\n- [Commits](https://github.com/kjd/idna/compare/v3.11...v3.15)\n\n---\nupdated-dependencies:\n- dependency-name: idna\n  dependency-version: '3.15'\n  dependency-type: indirect\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "chore(deps): update uv: bump idna from 3.11 to 3.15 (#285)",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-05-22T10:29:40Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "cba049ce029d97fd3b0c5ced009b883864c61281",
          "body": "* feat: allow unsigned requests when AWS credentials are unavailable\n\n* feat: add --skip-auth flag to opt-in to unsigned requests\n\n* docs: add --skip-auth to changelog\n\n---------\n\nCo-authored-by: Arne Wouters <25950814+arnewouters@users.noreply.github.com>",
          "is_bot": false,
          "headline": "feat: add --skip-auth flag to opt-in to unsigned requests (#260)",
          "author_name": "anasstahr",
          "author_login": "anasstahr",
          "committed_at": "2026-05-21T07:41:55Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b59ac1d240a13be8483f86d5ec7042ce597586e3",
          "body": "Updates the requirements on [fastmcp](https://github.com/PrefectHQ/fastmcp) to permit the latest version.\n\nUpdates `fastmcp` to 3.3.1\n- [Release notes](https://github.com/PrefectHQ/fastmcp/releases)\n- [Changelog](https://github.com/PrefectHQ/fastmcp/blob/main/docs/changelog.mdx)\n- [Commits](https://\n[…]\nsion-updates\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>\nCo-authored-by: anasstahr <anatahr@amazon.com>",
          "is_bot": true,
          "headline": "chore(deps): update pip: update fastmcp requirement (#283)",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-05-18T12:12:52Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "dd38749cbe559ce64e3157809ea38b602eb9410e",
          "body": "…rectory with 11 updates (#284)\n\nBumps the uv-version-updates group with 11 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [fastmcp](https://github.com/PrefectHQ/fastmcp) | `3.2.4` | `3.3.1` |\n| [boto3](https://github.com/boto/boto3) | `1.43.6` | `1.43.9` |\n| [black](http\n[…]\n-update:semver-minor\n  dependency-group: uv-version-updates\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "chore(deps): update uv: bump the uv-version-updates group across 1 di…",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-05-18T12:07:43Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "75d5e43cade82b7fcc5ed0f15f55afc109d95148",
          "body": "Bumps [authlib](https://github.com/authlib/authlib) from 1.6.11 to 1.6.12.\n- [Release notes](https://github.com/authlib/authlib/releases)\n- [Changelog](https://github.com/authlib/authlib/blob/1.6.12/docs/changelog.rst)\n- [Commits](https://github.com/authlib/authlib/compare/v1.6.11...1.6.12)\n\n---\nupd\n[…]\nib\n  dependency-version: 1.6.12\n  dependency-type: indirect\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "chore(deps): update uv: bump authlib from 1.6.11 to 1.6.12 (#280)",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-05-18T12:00:36Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "f2a9d0f7cf0b654b4223462964d4c6f3fcdc4f02",
          "body": "Bumps [langsmith](https://github.com/langchain-ai/langsmith-sdk) from 0.7.31 to 0.8.0.\n- [Release notes](https://github.com/langchain-ai/langsmith-sdk/releases)\n- [Commits](https://github.com/langchain-ai/langsmith-sdk/compare/v0.7.31...v0.8.0)\n\n---\nupdated-dependencies:\n- dependency-name: langsmith\n  dependency-version: 0.8.0\n  dependency-type: indirect\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "chore(deps): update uv: bump langsmith from 0.7.31 to 0.8.0 (#281)",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-05-18T11:56:41Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e05f556f01b60093f6f65e6d174df456424e9e47",
          "body": "Bumps [urllib3](https://github.com/urllib3/urllib3) from 2.6.2 to 2.7.0.\n- [Release notes](https://github.com/urllib3/urllib3/releases)\n- [Changelog](https://github.com/urllib3/urllib3/blob/main/CHANGES.rst)\n- [Commits](https://github.com/urllib3/urllib3/compare/2.6.2...2.7.0)\n\n---\nupdated-dependenc\n[…]\nib3\n  dependency-version: 2.7.0\n  dependency-type: indirect\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "chore(deps): update uv: bump urllib3 from 2.6.2 to 2.7.0 (#279)",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-05-18T09:41:36Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "690599e2cac1e98ba8633790db785d08d4873027",
          "body": "…rectory with 11 updates (#277)\n\n* chore(deps): update uv: bump the uv-version-updates group across 1 directory with 11 updates\n\nBumps the uv-version-updates group with 10 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [boto3](https://github.com/boto/boto3) | `1.43.2` | `\n[…]\ns\n\n---------\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>\nCo-authored-by: Arne Wouters <awouters@amazon.com>",
          "is_bot": true,
          "headline": "chore(deps): update uv: bump the uv-version-updates group across 1 di…",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-05-11T13:03:46Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "7f805c56f49324e18fdb8e544cd69f995b104b8f",
          "body": "…edentials (#276)\n\nBumps the github-actions-version-updates group with 1 update: [aws-actions/configure-aws-credentials](https://github.com/aws-actions/configure-aws-credentials).\n\n\nUpdates `aws-actions/configure-aws-credentials` from 6.1.0 to 6.1.1\n- [Release notes](https://github.com/aws-actions/c\n[…]\ny: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>\nCo-authored-by: Arne Wouters <25950814+arnewouters@users.noreply.github.com>",
          "is_bot": true,
          "headline": "chore(deps): update github-actions: bump aws-actions/configure-aws-cr…",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-05-11T12:30:13Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "0f7027c1b7da7d2ff6ef7f0575a451fc6fffac8d",
          "body": "Bumps [mem0ai](https://github.com/mem0ai/mem0) from 1.0.1 to 2.0.0b2.\n- [Release notes](https://github.com/mem0ai/mem0/releases)\n- [Commits](https://github.com/mem0ai/mem0/compare/openclaw-v1.0.1...v2.0.0b2)\n\n---\nupdated-dependencies:\n- dependency-name: mem0ai\n  dependency-version: 2.0.0b2\n  dependency-type: indirect\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "chore(deps): update uv: bump mem0ai from 1.0.1 to 2.0.0b2 (#272)",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-05-11T12:28:07Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d50e35c7b7366f26849660d1ca06b7aa42f81be4",
          "body": "…#271)\n\nBumps [python-multipart](https://github.com/Kludex/python-multipart) from 0.0.26 to 0.0.27.\n- [Release notes](https://github.com/Kludex/python-multipart/releases)\n- [Changelog](https://github.com/Kludex/python-multipart/blob/main/CHANGELOG.md)\n- [Commits](https://github.com/Kludex/python-mul\n[…]\nrt\n  dependency-version: 0.0.27\n  dependency-type: indirect\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "chore(deps): update uv: bump python-multipart from 0.0.26 to 0.0.27 (…",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-05-11T12:15:29Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "0730f2c582729e70041dfdd23675728ea661aa19",
          "body": "Bumps [banks](https://github.com/masci/banks) from 2.2.0 to 2.4.2.\n- [Release notes](https://github.com/masci/banks/releases)\n- [Commits](https://github.com/masci/banks/compare/v2.2.0...v2.4.2)\n\n---\nupdated-dependencies:\n- dependency-name: banks\n  dependency-version: 2.4.2\n  dependency-type: indirec\n[…]\ny: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>\nCo-authored-by: Arne Wouters <25950814+arnewouters@users.noreply.github.com>",
          "is_bot": true,
          "headline": "chore(deps): update uv: bump banks from 2.2.0 to 2.4.2 (#273)",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-05-11T12:12:15Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "3e4c9038aeff93cfa74ec22ea920300d568b4c31",
          "body": null,
          "is_bot": false,
          "headline": "fix: update negative integ test (#278)",
          "author_name": "Arne Wouters",
          "author_login": "arnewouters",
          "committed_at": "2026-05-11T11:15:41Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "fd42d8c09386ddbeeb33bb9c2db9ccbe46caa7c6",
          "body": "* test: rename retrieve_agent_sop to retrieve_skill\n\nReplace aws___retrieve_agent_sop with aws___retrieve_skill in\nintegration tests to match the renamed tool.\n\n* Update test skill name in aws_mcp_tools test\n\nSigned-off-by: Roman Shevchuk <51510790+rshevchuk-git@users.noreply.github.com>\n\n---------\n\n[…]\noff-by: Roman Shevchuk <51510790+rshevchuk-git@users.noreply.github.com>\nCo-authored-by: Claudiu Popa <clpo@amazon.com>\nCo-authored-by: Roman Shevchuk <51510790+rshevchuk-git@users.noreply.github.com>",
          "is_bot": false,
          "headline": "test: rename retrieve_agent_sop to retrieve_skill (#269)",
          "author_name": "Claudiu Popa",
          "author_login": "PCManticore",
          "committed_at": "2026-05-05T10:55:10Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "c864cf79cdcf669b8e324d8bf6899dd058245008",
          "body": "…rectory with 2 updates (#267)\n\nBumps the uv-version-updates group with 2 updates in the / directory: [boto3](https://github.com/boto/boto3) and [commitizen](https://github.com/commitizen-tools/commitizen).\n\n\nUpdates `boto3` from 1.42.96 to 1.43.2\n- [Release notes](https://github.com/boto/boto3/rele\n[…]\n-update:semver-minor\n  dependency-group: uv-version-updates\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "chore(deps): update uv: bump the uv-version-updates group across 1 di…",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-05-05T09:54:31Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "b84bd5ee63287053b7221fc2278988e60e6d5e6b",
          "body": null,
          "is_bot": false,
          "headline": "bump: version 1.4.1 → 1.4.2 (#265)",
          "author_name": "Arne Wouters",
          "author_login": "arnewouters",
          "committed_at": "2026-04-30T11:10:28Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a36bb430f730aecc15185b6b527e0b7d13ebac2e",
          "body": null,
          "is_bot": false,
          "headline": "fix: pass-through server capbilities (#264)",
          "author_name": "Arne Wouters",
          "author_login": "arnewouters",
          "committed_at": "2026-04-30T08:19:11Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "3c5909c72bde2a9090a03574d1541116dd250cab",
          "body": null,
          "is_bot": false,
          "headline": "bump: version 1.4.0 → 1.4.1 (#263)",
          "author_name": "Arne Wouters",
          "author_login": "arnewouters",
          "committed_at": "2026-04-29T10:27:44Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "0da09419201c8ee6ae6e11d45977b4f1d5db3375",
          "body": "* fix reconnect for http errors\n* Update CHANGELOG",
          "is_bot": false,
          "headline": "fix: catch HTTPStatusError during force disconnect retry (#262)",
          "author_name": "Arne Wouters",
          "author_login": "arnewouters",
          "committed_at": "2026-04-29T10:02:43Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "1c9e24b8ab1aaa0f5d8633539f1d0e0979b3b790",
          "body": "Bumps [protobuf](https://github.com/protocolbuffers/protobuf) from 5.29.5 to 5.29.6.\n- [Release notes](https://github.com/protocolbuffers/protobuf/releases)\n- [Commits](https://github.com/protocolbuffers/protobuf/commits)\n\n---\nupdated-dependencies:\n- dependency-name: protobuf\n  dependency-version: 5.29.6\n  dependency-type: indirect\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "chore(deps): update uv: bump protobuf from 5.29.5 to 5.29.6 (#261)",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-04-29T06:37:28Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "651faf27b28cae22516cd3ab85907375a598df29",
          "body": "…rectory with 5 updates (#259)\n\nBumps the uv-version-updates group with 5 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [boto3](https://github.com/boto/boto3) | `1.42.91` | `1.42.96` |\n| [mypy](https://github.com/python/mypy) | `1.20.1` | `1.20.2` |\n| [pre-commit](https:\n[…]\n-update:semver-patch\n  dependency-group: uv-version-updates\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "chore(deps): update uv: bump the uv-version-updates group across 1 di…",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-04-28T17:51:02Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "5310259b74b27ecb5dcc28c03d125ec684c1aa02",
          "body": "Bumps [python-dotenv](https://github.com/theskumar/python-dotenv) from 1.2.1 to 1.2.2.\n- [Release notes](https://github.com/theskumar/python-dotenv/releases)\n- [Changelog](https://github.com/theskumar/python-dotenv/blob/main/CHANGELOG.md)\n- [Commits](https://github.com/theskumar/python-dotenv/compar\n[…]\nenv\n  dependency-version: 1.2.2\n  dependency-type: indirect\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "chore(deps): update uv: bump python-dotenv from 1.2.1 to 1.2.2 (#258)",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-04-22T06:58:06Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "cf07b9c32ae9ea89debf905e4d6fd1d668edbf7b",
          "body": "Bumps [authlib](https://github.com/authlib/authlib) from 1.6.9 to 1.6.11.\n- [Release notes](https://github.com/authlib/authlib/releases)\n- [Changelog](https://github.com/authlib/authlib/blob/v1.6.11/docs/changelog.rst)\n- [Commits](https://github.com/authlib/authlib/compare/v1.6.9...v1.6.11)\n\n---\nupd\n[…]\nib\n  dependency-version: 1.6.11\n  dependency-type: indirect\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "chore(deps): update uv: bump authlib from 1.6.9 to 1.6.11 (#255)",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-04-20T13:50:55Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "afeb5c51a8488fa42c65b62b35efc1bf1f259000",
          "body": "Bumps [pypdf](https://github.com/py-pdf/pypdf) from 6.10.1 to 6.10.2.\n- [Release notes](https://github.com/py-pdf/pypdf/releases)\n- [Changelog](https://github.com/py-pdf/pypdf/blob/main/CHANGELOG.md)\n- [Commits](https://github.com/py-pdf/pypdf/compare/6.10.1...6.10.2)\n\n---\nupdated-dependencies:\n- de\n[…]\ny: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>\nCo-authored-by: Arne Wouters <25950814+arnewouters@users.noreply.github.com>",
          "is_bot": true,
          "headline": "chore(deps): update uv: bump pypdf from 6.10.1 to 6.10.2 (#254)",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-04-20T13:48:05Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "831254bbc23c82ea64689320704a9fb9f0cd8874",
          "body": "…pdates group with 2 updates (#256)\n\n* chore(deps): update github-actions: bump the github-actions-version-updates group with 2 updates\n\nBumps the github-actions-version-updates group with 2 updates: [dependabot/fetch-metadata](https://github.com/dependabot/fetch-metadata) and [aws-actions/configure\n[…]\n4+arnewouters@users.noreply.github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>\nCo-authored-by: Arne Wouters <25950814+arnewouters@users.noreply.github.com>",
          "is_bot": true,
          "headline": "chore(deps): update github-actions: bump the github-actions-version-u…",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-04-20T08:08:06Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "c18d000967526be20573675fb726b31afd4fe14e",
          "body": "…rectory with 2 updates (#257)\n\nBumps the uv-version-updates group with 2 updates in the / directory: [boto3](https://github.com/boto/boto3) and [ruff](https://github.com/astral-sh/ruff).\n\n\nUpdates `boto3` from 1.42.89 to 1.42.91\n- [Release notes](https://github.com/boto/boto3/releases)\n- [Commits](\n[…]\n-update:semver-patch\n  dependency-group: uv-version-updates\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "chore(deps): update uv: bump the uv-version-updates group across 1 di…",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-04-20T08:06:08Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "5bbf33ddaa67ec80fd329bfefca5c11a8f703a70",
          "body": null,
          "is_bot": false,
          "headline": "fix: remove incorrect us-east-1 default from --region docs (#253)",
          "author_name": "anasstahr",
          "author_login": "anasstahr",
          "committed_at": "2026-04-17T07:35:01Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "bcca08938ce295c77eb32a8d54e616645dd60683",
          "body": "…pdates group across 1 directory with 8 updates (#212)\n\nUpdates the requirements on [actions/checkout](https://github.com/actions/checkout), [dependabot/fetch-metadata](https://github.com/dependabot/fetch-metadata), [docker/setup-buildx-action](https://github.com/docker/setup-buildx-action), [docker\n[…]\nsion-updates\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>\nCo-authored-by: anasstahr <anatahr@amazon.com>",
          "is_bot": true,
          "headline": "chore(deps): update github-actions: bump the github-actions-version-u…",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-04-16T12:43:57Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "69c92d1cda5f9689a1f097856aa4a1cb23801ced",
          "body": "Bumps [authlib](https://github.com/authlib/authlib) from 1.6.6 to 1.6.9.\n- [Release notes](https://github.com/authlib/authlib/releases)\n- [Commits](https://github.com/authlib/authlib/compare/v1.6.6...v1.6.9)\n\n---\nupdated-dependencies:\n- dependency-name: authlib\n  dependency-version: 1.6.9\n  dependency-type: indirect\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "chore(deps): update uv: bump authlib from 1.6.6 to 1.6.9 (#252)",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-04-16T09:29:28Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "dd58f79a17b21cfbe51ace3180aa3968c9263b90",
          "body": "Bumps [langsmith](https://github.com/langchain-ai/langsmith-sdk) from 0.4.59 to 0.7.31.\n- [Release notes](https://github.com/langchain-ai/langsmith-sdk/releases)\n- [Commits](https://github.com/langchain-ai/langsmith-sdk/compare/v0.4.59...v0.7.31)\n\n---\nupdated-dependencies:\n- dependency-name: langsmith\n  dependency-version: 0.7.31\n  dependency-type: indirect\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "chore(deps): update uv: bump langsmith from 0.4.59 to 0.7.31 (#251)",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-04-16T07:58:42Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "3323e8e0abcb41198cb6163a3007e3cab4845347",
          "body": "…#250)\n\nBumps [python-multipart](https://github.com/Kludex/python-multipart) from 0.0.20 to 0.0.26.\n- [Release notes](https://github.com/Kludex/python-multipart/releases)\n- [Changelog](https://github.com/Kludex/python-multipart/blob/master/CHANGELOG.md)\n- [Commits](https://github.com/Kludex/python-m\n[…]\npe: indirect\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>\nCo-authored-by: anasstahr <anatahr@amazon.com>",
          "is_bot": true,
          "headline": "chore(deps): update uv: bump python-multipart from 0.0.20 to 0.0.26 (…",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-04-16T07:55:25Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "8fa27282efd82bbbe6a648ff70904da77a0ee9f3",
          "body": "Bumps [pypdf](https://github.com/py-pdf/pypdf) from 6.10.0 to 6.10.1.\n- [Release notes](https://github.com/py-pdf/pypdf/releases)\n- [Changelog](https://github.com/py-pdf/pypdf/blob/main/CHANGELOG.md)\n- [Commits](https://github.com/py-pdf/pypdf/compare/6.10.0...6.10.1)\n\n---\nupdated-dependencies:\n- de\n[…]\ndf\n  dependency-version: 6.10.1\n  dependency-type: indirect\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "chore(deps): update uv: bump pypdf from 6.10.0 to 6.10.1 (#249)",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-04-16T07:53:28Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "2abab20f29f9a56aa6f9104f090c704d86d589b9",
          "body": null,
          "is_bot": false,
          "headline": "chore: bump version to 1.4.0 (#248)",
          "author_name": "anasstahr",
          "author_login": "anasstahr",
          "committed_at": "2026-04-15T14:51:46Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a552cc7ae4341dd6e5073b859cbceae48c6d4c23",
          "body": null,
          "is_bot": false,
          "headline": "fix: increase test timeout for integration tests (#165)",
          "author_name": "Bernadett Bakos",
          "author_login": "detti456",
          "committed_at": "2026-04-15T14:06:21Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a6ea73f1304a6d6b0c11f1a79243fbd47ae8ed9a",
          "body": "* chore: switch from dependabot to renovate for single weekly PR\n\n* fix: format renovate.json for pre-commit hook\n\n* chore: add renovate workflow, remove dependabot auto-merge\n\n* chore: remove redundant schedule from config, drop issues permission\n\n* chore: revert to dependabot, schedule all ecosystems Monday 7am UTC",
          "is_bot": false,
          "headline": "chore: schedule dependabot PRs at 7 AM monday (#246)",
          "author_name": "anasstahr",
          "author_login": "anasstahr",
          "committed_at": "2026-04-15T13:54:44Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "3ff098ff6c5cd5a0b55b9475a84cb0e0a96caa69",
          "body": null,
          "is_bot": false,
          "headline": "fix: disable SBOM upload to immutable GitHub release (#247)",
          "author_name": "anasstahr",
          "author_login": "anasstahr",
          "committed_at": "2026-04-15T13:51:26Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f2ea7ba689bc1d235e4be6073edfc528dd238d4e",
          "body": "…rectory with 5 updates (#243)\n\nBumps the uv-version-updates group with 5 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [fastmcp](https://github.com/PrefectHQ/fastmcp) | `3.2.0` | `3.2.3` |\n| [boto3](https://github.com/boto/boto3) | `1.42.84` | `1.42.88` |\n| [mypy](https\n[…]\n-update:semver-patch\n  dependency-group: uv-version-updates\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "chore(deps): update uv: bump the uv-version-updates group across 1 di…",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-04-15T13:46:06Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "3c0c2bb3a094f9853ad78684df0833ba03f14746",
          "body": "Bumps [pypdf](https://github.com/py-pdf/pypdf) from 6.9.2 to 6.10.0.\n- [Release notes](https://github.com/py-pdf/pypdf/releases)\n- [Changelog](https://github.com/py-pdf/pypdf/blob/main/CHANGELOG.md)\n- [Commits](https://github.com/py-pdf/pypdf/compare/6.9.2...6.10.0)\n\n---\nupdated-dependencies:\n- depe\n[…]\ndf\n  dependency-version: 6.10.0\n  dependency-type: indirect\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "chore(deps): update uv: bump pypdf from 6.9.2 to 6.10.0 (#240)",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-04-15T13:39:40Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "d0ab934f0cab273e4423b1fb765370df1f48d0b4",
          "body": "Bumps [pillow](https://github.com/python-pillow/Pillow) from 12.0.0 to 12.2.0.\n- [Release notes](https://github.com/python-pillow/Pillow/releases)\n- [Changelog](https://github.com/python-pillow/Pillow/blob/main/CHANGES.rst)\n- [Commits](https://github.com/python-pillow/Pillow/compare/12.0.0...12.2.0)\n[…]\ny: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>\nCo-authored-by: Arne Wouters <25950814+arnewouters@users.noreply.github.com>",
          "is_bot": true,
          "headline": "chore(deps): update uv: bump pillow from 12.0.0 to 12.2.0 (#244)",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-04-15T13:36:30Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "20690ef0fad02ae8228c187cfe5ae4af4af74429",
          "body": null,
          "is_bot": false,
          "headline": "fix: remove fast fail credential check from create_aws_session (#233)",
          "author_name": "anasstahr",
          "author_login": "anasstahr",
          "committed_at": "2026-04-15T13:18:01Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "8fc772f5f28377d89ef1d1ed4e04f8e26e4d5b45",
          "body": "* fix: refresh stale credentials on auth failure without restart\n\nWhen AWS credentials expire, the proxy now automatically picks up\nrefreshed credentials on the next request without requiring a restart.\n\nProblem:\n- boto3.Session was created once at startup and cached forever\n- session.get_credential\n[…]\nl refresh\n\n* chore: fix ruff lint and format issues\n\n* test: add unit tests for credential refresh flow\n\n* fix: address PR review comments\n\n---------\n\nCo-authored-by: Ian de Villiers <iddv@amazon.com>",
          "is_bot": false,
          "headline": "fix: refresh stale credentials on auth failure without restart (#245)",
          "author_name": "anasstahr",
          "author_login": "anasstahr",
          "committed_at": "2026-04-15T12:35:00Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "08a93de13773be9d59fa4125dce41f2b7a8021bc",
          "body": null,
          "is_bot": false,
          "headline": "fix(auth): remove sensitive credential logging (#242)",
          "author_name": "anasstahr",
          "author_login": "anasstahr",
          "committed_at": "2026-04-14T08:37:09Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "0b8ea5593df1354d6576e5158b99d7477901714b",
          "body": null,
          "is_bot": false,
          "headline": "bump: version 1.2.0 → 1.3.0 (#239)",
          "author_name": "Arne Wouters",
          "author_login": "arnewouters",
          "committed_at": "2026-04-10T13:50:01Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "69856ada7754651d40d04bd30a750b590f94f088",
          "body": "* store client info\n\n* Set user agent with client info\n\n* Update tests\n\n* Update README",
          "is_bot": false,
          "headline": "feat: add client info to user agent (#224)",
          "author_name": "Arne Wouters",
          "author_login": "arnewouters",
          "committed_at": "2026-04-10T09:08:33Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "8e3bd72c89781e7cbbf344f6e362e4cd0e527d1b",
          "body": "Bumps [nltk](https://github.com/nltk/nltk) from 3.9.2 to 3.9.4.\n- [Changelog](https://github.com/nltk/nltk/blob/develop/ChangeLog)\n- [Commits](https://github.com/nltk/nltk/compare/3.9.2...3.9.4)\n\n---\nupdated-dependencies:\n- dependency-name: nltk\n  dependency-version: 3.9.4\n  dependency-type: indirect\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "chore(deps): update uv: bump nltk from 3.9.2 to 3.9.4 (#237)",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-04-09T13:45:35Z",
          "body_truncated": false,
          "is_coding_agent": false
        }
      ],
      "releases_count": 18,
      "commits_last_year": 262,
      "latest_release_at": "2026-07-20T15:11:18Z",
      "latest_release_tag": "v1.6.4",
      "releases_from_tags": false,
      "days_since_last_push": 0,
      "active_weeks_last_year": 37,
      "days_since_latest_release": 1,
      "mean_days_between_releases": 11.2
    },
    "community": {
      "has_readme": true,
      "has_license": true,
      "has_description": true,
      "has_contributing": true,
      "health_percentage": 87,
      "has_issue_template": false,
      "has_code_of_conduct": true,
      "has_pull_request_template": true
    },
    "ecosystem": {
      "packages": [
        {
          "name": "mcp-proxy-for-aws",
          "exists": true,
          "license": "Apache-2.0",
          "keywords": [
            "License :: OSI Approved :: Apache Software License",
            "Operating System :: OS Independent",
            "Programming Language :: Python",
            "Programming Language :: Python :: 3",
            "Programming Language :: Python :: 3.10",
            "Programming Language :: Python :: 3.11",
            "Programming Language :: Python :: 3.12",
            "Programming Language :: Python :: 3.13",
            "Programming Language :: Python :: 3.14"
          ],
          "ecosystem": "pypi",
          "matches_repo": true,
          "registry_url": "https://pypi.org/project/mcp-proxy-for-aws/",
          "is_deprecated": false,
          "latest_version": "1.6.4",
          "repository_url": "https://github.com/aws/mcp-proxy-for-aws.git",
          "versions_count": 20,
          "total_downloads": null,
          "dependents_count": null,
          "deprecation_note": null,
          "maintainers_count": null,
          "monthly_downloads": 2038100,
          "first_published_at": "2025-10-29T13:28:05.280508Z",
          "latest_published_at": "2026-07-20T15:16:04.107690Z",
          "latest_version_yanked": null,
          "days_since_latest_publish": 1
        }
      ]
    },
    "popularity": {
      "forks": 55,
      "stars": 327,
      "watchers": 8,
      "fork_history": {
        "days": [
          {
            "date": "2025-10-30",
            "count": 2
          },
          {
            "date": "2025-10-31",
            "count": 1
          },
          {
            "date": "2025-11-01",
            "count": 4
          },
          {
            "date": "2025-11-02",
            "count": 1
          },
          {
            "date": "2025-11-04",
            "count": 5
          },
          {
            "date": "2025-11-05",
            "count": 2
          },
          {
            "date": "2025-11-07",
            "count": 1
          },
          {
            "date": "2025-11-10",
            "count": 2
          },
          {
            "date": "2025-11-26",
            "count": 1
          },
          {
            "date": "2025-11-27",
            "count": 1
          },
          {
            "date": "2025-12-02",
            "count": 1
          },
          {
            "date": "2025-12-04",
            "count": 1
          },
          {
            "date": "2025-12-09",
            "count": 1
          },
          {
            "date": "2025-12-29",
            "count": 1
          },
          {
            "date": "2026-01-01",
            "count": 1
          },
          {
            "date": "2026-01-05",
            "count": 1
          },
          {
            "date": "2026-01-17",
            "count": 1
          },
          {
            "date": "2026-01-24",
            "count": 2
          },
          {
            "date": "2026-01-26",
            "count": 1
          },
          {
            "date": "2026-02-06",
            "count": 1
          },
          {
            "date": "2026-02-11",
            "count": 1
          },
          {
            "date": "2026-02-12",
            "count": 1
          },
          {
            "date": "2026-02-19",
            "count": 1
          },
          {
            "date": "2026-02-26",
            "count": 1
          },
          {
            "date": "2026-03-06",
            "count": 1
          },
          {
            "date": "2026-03-07",
            "count": 1
          },
          {
            "date": "2026-03-11",
            "count": 1
          },
          {
            "date": "2026-03-15",
            "count": 1
          },
          {
            "date": "2026-04-09",
            "count": 1
          },
          {
            "date": "2026-04-13",
            "count": 1
          },
          {
            "date": "2026-05-03",
            "count": 1
          },
          {
            "date": "2026-05-04",
            "count": 1
          },
          {
            "date": "2026-05-08",
            "count": 1
          },
          {
            "date": "2026-05-09",
            "count": 1
          },
          {
            "date": "2026-05-20",
            "count": 1
          },
          {
            "date": "2026-05-21",
            "count": 1
          },
          {
            "date": "2026-05-22",
            "count": 1
          },
          {
            "date": "2026-06-02",
            "count": 1
          },
          {
            "date": "2026-06-04",
            "count": 1
          },
          {
            "date": "2026-06-08",
            "count": 1
          },
          {
            "date": "2026-06-12",
            "count": 1
          },
          {
            "date": "2026-06-18",
            "count": 1
          },
          {
            "date": "2026-07-12",
            "count": 1
          },
          {
            "date": "2026-07-17",
            "count": 1
          }
        ],
        "complete": true,
        "collected": 55,
        "total_forks": 55
      },
      "star_history": {
        "days": [
          {
            "date": "2025-09-26",
            "count": 1
          },
          {
            "date": "2025-10-14",
            "count": 1
          },
          {
            "date": "2025-10-29",
            "count": 1
          },
          {
            "date": "2025-10-30",
            "count": 4
          },
          {
            "date": "2025-10-31",
            "count": 7
          },
          {
            "date": "2025-11-01",
            "count": 21
          },
          {
            "date": "2025-11-02",
            "count": 26
          },
          {
            "date": "2025-11-03",
            "count": 21
          },
          {
            "date": "2025-11-04",
            "count": 34
          },
          {
            "date": "2025-11-05",
            "count": 26
          },
          {
            "date": "2025-11-06",
            "count": 8
          },
          {
            "date": "2025-11-08",
            "count": 1
          },
          {
            "date": "2025-11-10",
            "count": 3
          },
          {
            "date": "2025-11-11",
            "count": 4
          },
          {
            "date": "2025-11-12",
            "count": 1
          },
          {
            "date": "2025-11-13",
            "count": 2
          },
          {
            "date": "2025-11-15",
            "count": 1
          },
          {
            "date": "2025-11-18",
            "count": 2
          },
          {
            "date": "2025-11-19",
            "count": 5
          },
          {
            "date": "2025-11-20",
            "count": 2
          },
          {
            "date": "2025-11-21",
            "count": 3
          },
          {
            "date": "2025-11-22",
            "count": 2
          },
          {
            "date": "2025-11-23",
            "count": 1
          },
          {
            "date": "2025-11-24",
            "count": 6
          },
          {
            "date": "2025-11-26",
            "count": 2
          },
          {
            "date": "2025-11-27",
            "count": 2
          },
          {
            "date": "2025-11-28",
            "count": 1
          },
          {
            "date": "2025-11-30",
            "count": 2
          },
          {
            "date": "2025-12-01",
            "count": 2
          },
          {
            "date": "2025-12-02",
            "count": 1
          },
          {
            "date": "2025-12-03",
            "count": 2
          },
          {
            "date": "2025-12-04",
            "count": 1
          },
          {
            "date": "2025-12-07",
            "count": 1
          },
          {
            "date": "2025-12-09",
            "count": 2
          },
          {
            "date": "2025-12-11",
            "count": 2
          },
          {
            "date": "2025-12-13",
            "count": 1
          },
          {
            "date": "2025-12-15",
            "count": 1
          },
          {
            "date": "2025-12-16",
            "count": 1
          },
          {
            "date": "2025-12-17",
            "count": 1
          },
          {
            "date": "2025-12-18",
            "count": 3
          },
          {
            "date": "2025-12-19",
            "count": 1
          },
          {
            "date": "2025-12-23",
            "count": 3
          },
          {
            "date": "2025-12-27",
            "count": 1
          },
          {
            "date": "2025-12-29",
            "count": 1
          },
          {
            "date": "2026-01-02",
            "count": 2
          },
          {
            "date": "2026-01-04",
            "count": 1
          },
          {
            "date": "2026-01-06",
            "count": 1
          },
          {
            "date": "2026-01-09",
            "count": 1
          },
          {
            "date": "2026-01-14",
            "count": 1
          },
          {
            "date": "2026-01-15",
            "count": 2
          },
          {
            "date": "2026-01-16",
            "count": 1
          },
          {
            "date": "2026-01-17",
            "count": 2
          },
          {
            "date": "2026-01-18",
            "count": 1
          },
          {
            "date": "2026-01-19",
            "count": 1
          },
          {
            "date": "2026-01-20",
            "count": 1
          },
          {
            "date": "2026-01-21",
            "count": 1
          },
          {
            "date": "2026-01-22",
            "count": 1
          },
          {
            "date": "2026-01-23",
            "count": 1
          },
          {
            "date": "2026-01-27",
            "count": 1
          },
          {
            "date": "2026-01-30",
            "count": 1
          },
          {
            "date": "2026-02-01",
            "count": 2
          },
          {
            "date": "2026-02-16",
            "count": 1
          },
          {
            "date": "2026-02-21",
            "count": 1
          },
          {
            "date": "2026-03-05",
            "count": 1
          },
          {
            "date": "2026-03-06",
            "count": 1
          },
          {
            "date": "2026-03-07",
            "count": 1
          },
          {
            "date": "2026-03-09",
            "count": 1
          },
          {
            "date": "2026-03-10",
            "count": 3
          },
          {
            "date": "2026-03-17",
            "count": 1
          },
          {
            "date": "2026-03-19",
            "count": 1
          },
          {
            "date": "2026-03-21",
            "count": 1
          },
          {
            "date": "2026-03-25",
            "count": 1
          },
          {
            "date": "2026-03-31",
            "count": 1
          },
          {
            "date": "2026-04-03",
            "count": 2
          },
          {
            "date": "2026-04-04",
            "count": 1
          },
          {
            "date": "2026-04-07",
            "count": 1
          },
          {
            "date": "2026-04-12",
            "count": 1
          },
          {
            "date": "2026-04-13",
            "count": 2
          },
          {
            "date": "2026-04-14",
            "count": 1
          },
          {
            "date": "2026-04-17",
            "count": 1
          },
          {
            "date": "2026-04-22",
            "count": 2
          },
          {
            "date": "2026-05-04",
            "count": 1
          },
          {
            "date": "2026-05-07",
            "count": 7
          },
          {
            "date": "2026-05-08",
            "count": 1
          },
          {
            "date": "2026-05-10",
            "count": 6
          },
          {
            "date": "2026-05-11",
            "count": 4
          },
          {
            "date": "2026-05-12",
            "count": 5
          },
          {
            "date": "2026-05-14",
            "count": 1
          },
          {
            "date": "2026-05-15",
            "count": 1
          },
          {
            "date": "2026-05-18",
            "count": 1
          },
          {
            "date": "2026-05-20",
            "count": 2
          },
          {
            "date": "2026-05-26",
            "count": 2
          },
          {
            "date": "2026-05-27",
            "count": 1
          },
          {
            "date": "2026-05-29",
            "count": 1
          },
          {
            "date": "2026-05-31",
            "count": 1
          },
          {
            "date": "2026-06-01",
            "count": 1
          },
          {
            "date": "2026-06-02",
            "count": 2
          },
          {
            "date": "2026-06-05",
            "count": 1
          },
          {
            "date": "2026-06-08",
            "count": 2
          },
          {
            "date": "2026-06-09",
            "count": 1
          },
          {
            "date": "2026-06-11",
            "count": 1
          },
          {
            "date": "2026-06-15",
            "count": 2
          },
          {
            "date": "2026-06-17",
            "count": 1
          },
          {
            "date": "2026-06-18",
            "count": 1
          },
          {
            "date": "2026-06-22",
            "count": 1
          },
          {
            "date": "2026-07-05",
            "count": 1
          },
          {
            "date": "2026-07-06",
            "count": 3
          },
          {
            "date": "2026-07-09",
            "count": 2
          },
          {
            "date": "2026-07-10",
            "count": 1
          },
          {
            "date": "2026-07-11",
            "count": 1
          },
          {
            "date": "2026-07-14",
            "count": 1
          },
          {
            "date": "2026-07-15",
            "count": 5
          },
          {
            "date": "2026-07-16",
            "count": 2
          },
          {
            "date": "2026-07-17",
            "count": 1
          },
          {
            "date": "2026-07-20",
            "count": 2
          },
          {
            "date": "2026-07-21",
            "count": 1
          }
        ],
        "complete": true,
        "collected": 327,
        "total_stars": 327
      },
      "open_issues_and_prs": 13
    },
    "ai_readiness": {
      "has_nix": false,
      "example_dirs": [
        "examples"
      ],
      "has_llms_txt": false,
      "has_dockerfile": true,
      "has_mcp_signal": true,
      "bootstrap_files": [],
      "api_schema_files": [],
      "has_devcontainer": false,
      "typecheck_configs": [],
      "toolchain_manifests": [],
      "largest_source_bytes": 41177,
      "source_files_sampled": 46,
      "oversized_source_files": 0,
      "agent_instruction_files": [],
      "agent_instruction_max_bytes": null
    },
    "dependencies": {
      "manifests": [
        "pyproject.toml"
      ],
      "advisories": {
        "error": null,
        "scope": "repository_graph",
        "source": "osv",
        "findings": [
          {
            "name": "pyasn1",
            "direct": false,
            "version": "0.6.3",
            "severity": "high",
            "ecosystem": "pypi",
            "cvss_score": 7.5,
            "advisory_ids": [
              "GHSA-8ppf-4f7h-5ppj",
              "GHSA-hm4w-wwcw-mr6r"
            ],
            "fixed_version": "0.6.4",
            "advisory_count": 2,
            "oldest_advisory_days": 0
          },
          {
            "name": "setuptools",
            "direct": false,
            "version": "80.9.0",
            "severity": "moderate",
            "ecosystem": "pypi",
            "cvss_score": 6.1,
            "advisory_ids": [
              "GHSA-h35f-9h28-mq5c",
              "PYSEC-2026-3447"
            ],
            "fixed_version": "83.0.0",
            "advisory_count": 2,
            "oldest_advisory_days": 13
          }
        ],
        "collected": true,
        "truncated": false,
        "by_severity": {
          "high": 1,
          "moderate": 1
        },
        "advisory_count": 4,
        "affected_count": 2,
        "assessed_count": 288,
        "assessed_package": null,
        "unassessed_count": 12,
        "direct_affected_count": 0
      },
      "ecosystems": [
        "pypi"
      ],
      "dependencies": [
        {
          "name": "fastmcp",
          "manifest": "pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=3.2,<3.5"
        },
        {
          "name": "boto3",
          "manifest": "pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=1.41.0"
        },
        {
          "name": "botocore",
          "manifest": "pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=1.41.0"
        }
      ],
      "all_dependencies": {
        "error": null,
        "source": "github-sbom",
        "packages": [
          {
            "name": "boto3",
            "direct": true,
            "version": "1.43.51",
            "ecosystem": "pypi"
          },
          {
            "name": "botocore",
            "direct": true,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "botocore",
            "direct": true,
            "version": "1.43.51",
            "ecosystem": "pypi"
          },
          {
            "name": "fastmcp",
            "direct": true,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "fastmcp",
            "direct": true,
            "version": "3.4.4",
            "ecosystem": "pypi"
          },
          {
            "name": "a2a-sdk",
            "direct": false,
            "version": "0.3.21",
            "ecosystem": "pypi"
          },
          {
            "name": "ag-ui-protocol",
            "direct": false,
            "version": "0.1.10",
            "ecosystem": "pypi"
          },
          {
            "name": "agent-framework",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "agent-framework",
            "direct": false,
            "version": "1.11.0",
            "ecosystem": "pypi"
          },
          {
            "name": "agent-framework-a2a",
            "direct": false,
            "version": "1.0.0b251211",
            "ecosystem": "pypi"
          },
          {
            "name": "agent-framework-ag-ui",
            "direct": false,
            "version": "1.0.0b251211",
            "ecosystem": "pypi"
          },
          {
            "name": "agent-framework-anthropic",
            "direct": false,
            "version": "1.0.0b251211",
            "ecosystem": "pypi"
          },
          {
            "name": "agent-framework-azure-ai-search",
            "direct": false,
            "version": "1.0.0b251211",
            "ecosystem": "pypi"
          },
          {
            "name": "agent-framework-azure-cosmos",
            "direct": false,
            "version": "1.0.0b260507",
            "ecosystem": "pypi"
          },
          {
            "name": "agent-framework-azurefunctions",
            "direct": false,
            "version": "1.0.0b251211",
            "ecosystem": "pypi"
          },
          {
            "name": "agent-framework-bedrock",
            "direct": false,
            "version": "1.0.0b260507",
            "ecosystem": "pypi"
          },
          {
            "name": "agent-framework-chatkit",
            "direct": false,
            "version": "1.0.0b251211",
            "ecosystem": "pypi"
          },
          {
            "name": "agent-framework-claude",
            "direct": false,
            "version": "1.0.0b260507",
            "ecosystem": "pypi"
          },
          {
            "name": "agent-framework-copilotstudio",
            "direct": false,
            "version": "1.0.0b251211",
            "ecosystem": "pypi"
          },
          {
            "name": "agent-framework-core",
            "direct": false,
            "version": "1.11.0",
            "ecosystem": "pypi"
          },
          {
            "name": "agent-framework-declarative",
            "direct": false,
            "version": "1.0.0b251211",
            "ecosystem": "pypi"
          },
          {
            "name": "agent-framework-devui",
            "direct": false,
            "version": "1.0.0b251211",
            "ecosystem": "pypi"
          },
          {
            "name": "agent-framework-durabletask",
            "direct": false,
            "version": "1.0.0b260507",
            "ecosystem": "pypi"
          },
          {
            "name": "agent-framework-foundry",
            "direct": false,
            "version": "1.3.0",
            "ecosystem": "pypi"
          },
          {
            "name": "agent-framework-foundry-local",
            "direct": false,
            "version": "1.0.0b260507",
            "ecosystem": "pypi"
          },
          {
            "name": "agent-framework-github-copilot",
            "direct": false,
            "version": "1.0.0rc1",
            "ecosystem": "pypi"
          },
          {
            "name": "agent-framework-hyperlight",
            "direct": false,
            "version": "1.0.0b260507",
            "ecosystem": "pypi"
          },
          {
            "name": "agent-framework-lab",
            "direct": false,
            "version": "1.0.0b251024",
            "ecosystem": "pypi"
          },
          {
            "name": "agent-framework-mem0",
            "direct": false,
            "version": "1.0.0b251211",
            "ecosystem": "pypi"
          },
          {
            "name": "agent-framework-ollama",
            "direct": false,
            "version": "1.0.0b260507",
            "ecosystem": "pypi"
          },
          {
            "name": "agent-framework-openai",
            "direct": false,
            "version": "1.3.0",
            "ecosystem": "pypi"
          },
          {
            "name": "agent-framework-orchestrations",
            "direct": false,
            "version": "1.0.0b260507",
            "ecosystem": "pypi"
          },
          {
            "name": "agent-framework-purview",
            "direct": false,
            "version": "1.0.0b251211",
            "ecosystem": "pypi"
          },
          {
            "name": "agent-framework-redis",
            "direct": false,
            "version": "1.0.0b251211",
            "ecosystem": "pypi"
          },
          {
            "name": "aiofile",
            "direct": false,
            "version": "3.9.0",
            "ecosystem": "pypi"
          },
          {
            "name": "aiohappyeyeballs",
            "direct": false,
            "version": "2.6.1",
            "ecosystem": "pypi"
          },
          {
            "name": "aiohttp",
            "direct": false,
            "version": "3.14.1",
            "ecosystem": "pypi"
          },
          {
            "name": "aiosignal",
            "direct": false,
            "version": "1.4.0",
            "ecosystem": "pypi"
          },
          {
            "name": "aiosqlite",
            "direct": false,
            "version": "0.22.0",
            "ecosystem": "pypi"
          },
          {
            "name": "annotated-doc",
            "direct": false,
            "version": "0.0.4",
            "ecosystem": "pypi"
          },
          {
            "name": "annotated-types",
            "direct": false,
            "version": "0.7.0",
            "ecosystem": "pypi"
          },
          {
            "name": "anthropic",
            "direct": false,
            "version": "0.75.0",
            "ecosystem": "pypi"
          },
          {
            "name": "anyio",
            "direct": false,
            "version": "4.12.0",
            "ecosystem": "pypi"
          },
          {
            "name": "argcomplete",
            "direct": false,
            "version": "3.6.3",
            "ecosystem": "pypi"
          },
          {
            "name": "ast-serialize",
            "direct": false,
            "version": "0.6.0",
            "ecosystem": "pypi"
          },
          {
            "name": "async-timeout",
            "direct": false,
            "version": "5.0.1",
            "ecosystem": "pypi"
          },
          {
            "name": "asyncio",
            "direct": false,
            "version": "4.0.0",
            "ecosystem": "pypi"
          },
          {
            "name": "attrs",
            "direct": false,
            "version": "25.4.0",
            "ecosystem": "pypi"
          },
          {
            "name": "authlib",
            "direct": false,
            "version": "1.6.12",
            "ecosystem": "pypi"
          },
          {
            "name": "awscrt",
            "direct": false,
            "version": "0.36.0",
            "ecosystem": "pypi"
          },
          {
            "name": "azure-ai-inference",
            "direct": false,
            "version": "1.0.0b9",
            "ecosystem": "pypi"
          },
          {
            "name": "azure-ai-projects",
            "direct": false,
            "version": "2.1.0",
            "ecosystem": "pypi"
          },
          {
            "name": "azure-common",
            "direct": false,
            "version": "1.1.28",
            "ecosystem": "pypi"
          },
          {
            "name": "azure-core",
            "direct": false,
            "version": "1.38.0",
            "ecosystem": "pypi"
          },
          {
            "name": "azure-cosmos",
            "direct": false,
            "version": "4.16.0b2",
            "ecosystem": "pypi"
          },
          {
            "name": "azure-functions",
            "direct": false,
            "version": "1.25.0b3.dev1",
            "ecosystem": "pypi"
          },
          {
            "name": "azure-functions-durable",
            "direct": false,
            "version": "1.4.0",
            "ecosystem": "pypi"
          },
          {
            "name": "azure-identity",
            "direct": false,
            "version": "1.26.0b1",
            "ecosystem": "pypi"
          },
          {
            "name": "azure-search-documents",
            "direct": false,
            "version": "11.7.0b2",
            "ecosystem": "pypi"
          },
          {
            "name": "azure-storage-blob",
            "direct": false,
            "version": "12.28.0b1",
            "ecosystem": "pypi"
          },
          {
            "name": "backoff",
            "direct": false,
            "version": "2.2.1",
            "ecosystem": "pypi"
          },
          {
            "name": "backports-asyncio-runner",
            "direct": false,
            "version": "1.2.0",
            "ecosystem": "pypi"
          },
          {
            "name": "backports-tarfile",
            "direct": false,
            "version": "1.2.0",
            "ecosystem": "pypi"
          },
          {
            "name": "banks",
            "direct": false,
            "version": "2.4.2",
            "ecosystem": "pypi"
          },
          {
            "name": "beartype",
            "direct": false,
            "version": "0.22.9",
            "ecosystem": "pypi"
          },
          {
            "name": "black",
            "direct": false,
            "version": "26.5.1",
            "ecosystem": "pypi"
          },
          {
            "name": "cachetools",
            "direct": false,
            "version": "6.2.3",
            "ecosystem": "pypi"
          },
          {
            "name": "caio",
            "direct": false,
            "version": "0.9.25",
            "ecosystem": "pypi"
          },
          {
            "name": "certifi",
            "direct": false,
            "version": "2025.11.12",
            "ecosystem": "pypi"
          },
          {
            "name": "cffi",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "pypi"
          },
          {
            "name": "cfgv",
            "direct": false,
            "version": "3.5.0",
            "ecosystem": "pypi"
          },
          {
            "name": "charset-normalizer",
            "direct": false,
            "version": "3.4.4",
            "ecosystem": "pypi"
          },
          {
            "name": "claude-agent-sdk",
            "direct": false,
            "version": "0.1.48",
            "ecosystem": "pypi"
          },
          {
            "name": "click",
            "direct": false,
            "version": "8.4.2",
            "ecosystem": "pypi"
          },
          {
            "name": "clr-loader",
            "direct": false,
            "version": "0.2.9",
            "ecosystem": "pypi"
          },
          {
            "name": "colorama",
            "direct": false,
            "version": "0.4.6",
            "ecosystem": "pypi"
          },
          {
            "name": "commitizen",
            "direct": false,
            "version": "4.16.5",
            "ecosystem": "pypi"
          },
          {
            "name": "coverage",
            "direct": false,
            "version": "7.13.0",
            "ecosystem": "pypi"
          },
          {
            "name": "cryptography",
            "direct": false,
            "version": "48.0.1",
            "ecosystem": "pypi"
          },
          {
            "name": "cyclopts",
            "direct": false,
            "version": "5.0.0a1",
            "ecosystem": "pypi"
          },
          {
            "name": "dataclasses-json",
            "direct": false,
            "version": "0.6.7",
            "ecosystem": "pypi"
          },
          {
            "name": "decli",
            "direct": false,
            "version": "0.6.3",
            "ecosystem": "pypi"
          },
          {
            "name": "defusedxml",
            "direct": false,
            "version": "0.8.0rc2",
            "ecosystem": "pypi"
          },
          {
            "name": "deprecated",
            "direct": false,
            "version": "1.2.18",
            "ecosystem": "pypi"
          },
          {
            "name": "dirtyjson",
            "direct": false,
            "version": "1.0.8",
            "ecosystem": "pypi"
          },
          {
            "name": "distlib",
            "direct": false,
            "version": "0.4.0",
            "ecosystem": "pypi"
          },
          {
            "name": "distro",
            "direct": false,
            "version": "1.9.0",
            "ecosystem": "pypi"
          },
          {
            "name": "dnspython",
            "direct": false,
            "version": "2.8.0",
            "ecosystem": "pypi"
          },
          {
            "name": "docstring-parser",
            "direct": false,
            "version": "0.17.0",
            "ecosystem": "pypi"
          },
          {
            "name": "durabletask",
            "direct": false,
            "version": "1.4.0",
            "ecosystem": "pypi"
          },
          {
            "name": "durabletask-azuremanaged",
            "direct": false,
            "version": "1.4.0",
            "ecosystem": "pypi"
          },
          {
            "name": "email-validator",
            "direct": false,
            "version": "2.3.0",
            "ecosystem": "pypi"
          },
          {
            "name": "exceptiongroup",
            "direct": false,
            "version": "1.3.1",
            "ecosystem": "pypi"
          },
          {
            "name": "fastapi",
            "direct": false,
            "version": "0.136.3",
            "ecosystem": "pypi"
          },
          {
            "name": "fastmcp-slim",
            "direct": false,
            "version": "3.4.4",
            "ecosystem": "pypi"
          },
          {
            "name": "filelock",
            "direct": false,
            "version": "3.20.3",
            "ecosystem": "pypi"
          },
          {
            "name": "filetype",
            "direct": false,
            "version": "1.2.0",
            "ecosystem": "pypi"
          },
          {
            "name": "foundry-local-sdk",
            "direct": false,
            "version": "0.5.1",
            "ecosystem": "pypi"
          },
          {
            "name": "frozenlist",
            "direct": false,
            "version": "1.8.0",
            "ecosystem": "pypi"
          },
          {
            "name": "fsspec",
            "direct": false,
            "version": "2025.12.0",
            "ecosystem": "pypi"
          },
          {
            "name": "furl",
            "direct": false,
            "version": "2.1.4",
            "ecosystem": "pypi"
          },
          {
            "name": "github-copilot-sdk",
            "direct": false,
            "version": "1.0.2",
            "ecosystem": "pypi"
          },
          {
            "name": "google-api-core",
            "direct": false,
            "version": "2.28.1",
            "ecosystem": "pypi"
          },
          {
            "name": "google-auth",
            "direct": false,
            "version": "2.43.0",
            "ecosystem": "pypi"
          },
          {
            "name": "googleapis-common-protos",
            "direct": false,
            "version": "1.72.0",
            "ecosystem": "pypi"
          },
          {
            "name": "greenlet",
            "direct": false,
            "version": "3.3.0",
            "ecosystem": "pypi"
          },
          {
            "name": "griffe",
            "direct": false,
            "version": "1.15.0",
            "ecosystem": "pypi"
          },
          {
            "name": "griffelib",
            "direct": false,
            "version": "2.0.2",
            "ecosystem": "pypi"
          },
          {
            "name": "grpcio",
            "direct": false,
            "version": "1.76.0",
            "ecosystem": "pypi"
          },
          {
            "name": "h11",
            "direct": false,
            "version": "0.16.0",
            "ecosystem": "pypi"
          },
          {
            "name": "h2",
            "direct": false,
            "version": "4.3.0",
            "ecosystem": "pypi"
          },
          {
            "name": "hpack",
            "direct": false,
            "version": "4.1.0",
            "ecosystem": "pypi"
          },
          {
            "name": "httpcore",
            "direct": false,
            "version": "1.0.9",
            "ecosystem": "pypi"
          },
          {
            "name": "httptools",
            "direct": false,
            "version": "0.7.1",
            "ecosystem": "pypi"
          },
          {
            "name": "httpx",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "pypi"
          },
          {
            "name": "httpx-sse",
            "direct": false,
            "version": "0.4.3",
            "ecosystem": "pypi"
          },
          {
            "name": "hyperframe",
            "direct": false,
            "version": "6.1.0",
            "ecosystem": "pypi"
          },
          {
            "name": "hyperlight-sandbox",
            "direct": false,
            "version": "0.4.0",
            "ecosystem": "pypi"
          },
          {
            "name": "hyperlight-sandbox-backend-wasm",
            "direct": false,
            "version": "0.4.0",
            "ecosystem": "pypi"
          },
          {
            "name": "hyperlight-sandbox-python-guest",
            "direct": false,
            "version": "0.4.0",
            "ecosystem": "pypi"
          },
          {
            "name": "identify",
            "direct": false,
            "version": "2.6.15",
            "ecosystem": "pypi"
          },
          {
            "name": "idna",
            "direct": false,
            "version": "3.15",
            "ecosystem": "pypi"
          },
          {
            "name": "importlib-metadata",
            "direct": false,
            "version": "8.7.0",
            "ecosystem": "pypi"
          },
          {
            "name": "iniconfig",
            "direct": false,
            "version": "2.3.0",
            "ecosystem": "pypi"
          },
          {
            "name": "isodate",
            "direct": false,
            "version": "0.7.2",
            "ecosystem": "pypi"
          },
          {
            "name": "isort",
            "direct": false,
            "version": "8.0.1",
            "ecosystem": "pypi"
          },
          {
            "name": "jaraco-classes",
            "direct": false,
            "version": "3.4.0",
            "ecosystem": "pypi"
          },
          {
            "name": "jaraco-context",
            "direct": false,
            "version": "6.1.2",
            "ecosystem": "pypi"
          },
          {
            "name": "jaraco-functools",
            "direct": false,
            "version": "4.3.0",
            "ecosystem": "pypi"
          },
          {
            "name": "jeepney",
            "direct": false,
            "version": "0.9.0",
            "ecosystem": "pypi"
          },
          {
            "name": "jinja2",
            "direct": false,
            "version": "3.1.6",
            "ecosystem": "pypi"
          },
          {
            "name": "jiter",
            "direct": false,
            "version": "0.12.0",
            "ecosystem": "pypi"
          },
          {
            "name": "jmespath",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "pypi"
          },
          {
            "name": "joblib",
            "direct": false,
            "version": "1.5.3",
            "ecosystem": "pypi"
          },
          {
            "name": "joserfc",
            "direct": false,
            "version": "1.7.0",
            "ecosystem": "pypi"
          },
          {
            "name": "jsonpatch",
            "direct": false,
            "version": "1.33",
            "ecosystem": "pypi"
          },
          {
            "name": "jsonpath-ng",
            "direct": false,
            "version": "1.7.0",
            "ecosystem": "pypi"
          },
          {
            "name": "jsonpointer",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "pypi"
          },
          {
            "name": "jsonref",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "pypi"
          },
          {
            "name": "jsonschema",
            "direct": false,
            "version": "4.25.1",
            "ecosystem": "pypi"
          },
          {
            "name": "jsonschema-path",
            "direct": false,
            "version": "0.4.0b1",
            "ecosystem": "pypi"
          },
          {
            "name": "jsonschema-specifications",
            "direct": false,
            "version": "2025.9.1",
            "ecosystem": "pypi"
          },
          {
            "name": "keyring",
            "direct": false,
            "version": "25.7.0",
            "ecosystem": "pypi"
          },
          {
            "name": "langchain",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "langchain",
            "direct": false,
            "version": "1.3.14",
            "ecosystem": "pypi"
          },
          {
            "name": "langchain-aws",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "langchain-aws",
            "direct": false,
            "version": "1.6.2",
            "ecosystem": "pypi"
          },
          {
            "name": "langchain-core",
            "direct": false,
            "version": "1.4.9",
            "ecosystem": "pypi"
          },
          {
            "name": "langchain-mcp-adapters",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "langchain-mcp-adapters",
            "direct": false,
            "version": "0.3.0",
            "ecosystem": "pypi"
          },
          {
            "name": "langchain-protocol",
            "direct": false,
            "version": "0.0.18",
            "ecosystem": "pypi"
          },
          {
            "name": "langgraph",
            "direct": false,
            "version": "1.2.6",
            "ecosystem": "pypi"
          },
          {
            "name": "langgraph-checkpoint",
            "direct": false,
            "version": "4.1.1",
            "ecosystem": "pypi"
          },
          {
            "name": "langgraph-prebuilt",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "pypi"
          },
          {
            "name": "langgraph-sdk",
            "direct": false,
            "version": "0.4.2",
            "ecosystem": "pypi"
          },
          {
            "name": "langsmith",
            "direct": false,
            "version": "0.8.18",
            "ecosystem": "pypi"
          },
          {
            "name": "librt",
            "direct": false,
            "version": "0.13.0",
            "ecosystem": "pypi"
          },
          {
            "name": "llama-index",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "llama-index",
            "direct": false,
            "version": "0.14.23",
            "ecosystem": "pypi"
          },
          {
            "name": "llama-index-core",
            "direct": false,
            "version": "0.14.23",
            "ecosystem": "pypi"
          },
          {
            "name": "llama-index-embeddings-openai",
            "direct": false,
            "version": "0.6.0",
            "ecosystem": "pypi"
          },
          {
            "name": "llama-index-instrumentation",
            "direct": false,
            "version": "0.5.0",
            "ecosystem": "pypi"
          },
          {
            "name": "llama-index-llms-openai",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "llama-index-llms-openai",
            "direct": false,
            "version": "0.7.9",
            "ecosystem": "pypi"
          },
          {
            "name": "llama-index-tools-mcp",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "llama-index-tools-mcp",
            "direct": false,
            "version": "0.4.8",
            "ecosystem": "pypi"
          },
          {
            "name": "llama-index-workflows",
            "direct": false,
            "version": "2.20.0",
            "ecosystem": "pypi"
          },
          {
            "name": "markdown-it-py",
            "direct": false,
            "version": "4.0.0",
            "ecosystem": "pypi"
          },
          {
            "name": "markupsafe",
            "direct": false,
            "version": "3.0.3",
            "ecosystem": "pypi"
          },
          {
            "name": "marshmallow",
            "direct": false,
            "version": "3.26.2",
            "ecosystem": "pypi"
          },
          {
            "name": "mcp",
            "direct": false,
            "version": "1.28.1",
            "ecosystem": "pypi"
          },
          {
            "name": "mcp-client-example-agent-framework",
            "direct": false,
            "version": "0.1.0",
            "ecosystem": "pypi"
          },
          {
            "name": "mcp-client-example-langchain",
            "direct": false,
            "version": "0.1.0",
            "ecosystem": "pypi"
          },
          {
            "name": "mcp-client-example-llamaindex",
            "direct": false,
            "version": "0.1.0",
            "ecosystem": "pypi"
          },
          {
            "name": "mcp-client-example-strands-agents",
            "direct": false,
            "version": "0.1.0",
            "ecosystem": "pypi"
          },
          {
            "name": "mcp-proxy-for-aws",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "mcp-proxy-for-aws",
            "direct": false,
            "version": "1.6.4",
            "ecosystem": "pypi"
          },
          {
            "name": "mdurl",
            "direct": false,
            "version": "0.1.2",
            "ecosystem": "pypi"
          },
          {
            "name": "mem0ai",
            "direct": false,
            "version": "2.0.0b2",
            "ecosystem": "pypi"
          },
          {
            "name": "microsoft-agents-activity",
            "direct": false,
            "version": "0.7.0.dev10",
            "ecosystem": "pypi"
          },
          {
            "name": "microsoft-agents-copilotstudio-client",
            "direct": false,
            "version": "0.7.0.dev10",
            "ecosystem": "pypi"
          },
          {
            "name": "microsoft-agents-hosting-core",
            "direct": false,
            "version": "0.7.0.dev10",
            "ecosystem": "pypi"
          },
          {
            "name": "ml-dtypes",
            "direct": false,
            "version": "0.5.4",
            "ecosystem": "pypi"
          },
          {
            "name": "more-itertools",
            "direct": false,
            "version": "10.8.0",
            "ecosystem": "pypi"
          },
          {
            "name": "msal",
            "direct": false,
            "version": "1.34.0",
            "ecosystem": "pypi"
          },
          {
            "name": "msal-extensions",
            "direct": false,
            "version": "1.3.1",
            "ecosystem": "pypi"
          },
          {
            "name": "multidict",
            "direct": false,
            "version": "6.7.0",
            "ecosystem": "pypi"
          },
          {
            "name": "mypy",
            "direct": false,
            "version": "2.3.0",
            "ecosystem": "pypi"
          },
          {
            "name": "mypy-extensions",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "pypi"
          },
          {
            "name": "nest-asyncio",
            "direct": false,
            "version": "1.6.0",
            "ecosystem": "pypi"
          },
          {
            "name": "networkx",
            "direct": false,
            "version": "3.4.2",
            "ecosystem": "pypi"
          },
          {
            "name": "networkx",
            "direct": false,
            "version": "3.6.1",
            "ecosystem": "pypi"
          },
          {
            "name": "nltk",
            "direct": false,
            "version": "3.10.0",
            "ecosystem": "pypi"
          },
          {
            "name": "nodeenv",
            "direct": false,
            "version": "1.9.1",
            "ecosystem": "pypi"
          },
          {
            "name": "numpy",
            "direct": false,
            "version": "2.2.6",
            "ecosystem": "pypi"
          },
          {
            "name": "numpy",
            "direct": false,
            "version": "2.4.0rc1",
            "ecosystem": "pypi"
          },
          {
            "name": "ollama",
            "direct": false,
            "version": "0.5.3",
            "ecosystem": "pypi"
          },
          {
            "name": "openai",
            "direct": false,
            "version": "2.11.0",
            "ecosystem": "pypi"
          },
          {
            "name": "openai-agents",
            "direct": false,
            "version": "0.6.3",
            "ecosystem": "pypi"
          },
          {
            "name": "openai-chatkit",
            "direct": false,
            "version": "1.4.0",
            "ecosystem": "pypi"
          },
          {
            "name": "openapi-pydantic",
            "direct": false,
            "version": "0.5.1",
            "ecosystem": "pypi"
          },
          {
            "name": "opentelemetry-api",
            "direct": false,
            "version": "1.39.1",
            "ecosystem": "pypi"
          },
          {
            "name": "opentelemetry-instrumentation",
            "direct": false,
            "version": "0.60b1",
            "ecosystem": "pypi"
          },
          {
            "name": "opentelemetry-instrumentation-threading",
            "direct": false,
            "version": "0.60b1",
            "ecosystem": "pypi"
          },
          {
            "name": "opentelemetry-sdk",
            "direct": false,
            "version": "1.39.1",
            "ecosystem": "pypi"
          },
          {
            "name": "opentelemetry-semantic-conventions",
            "direct": false,
            "version": "0.60b1",
            "ecosystem": "pypi"
          },
          {
            "name": "orderedmultidict",
            "direct": false,
            "version": "1.0.2",
            "ecosystem": "pypi"
          },
          {
            "name": "orjson",
            "direct": false,
            "version": "3.11.6",
            "ecosystem": "pypi"
          },
          {
            "name": "ormsgpack",
            "direct": false,
            "version": "1.12.1",
            "ecosystem": "pypi"
          },
          {
            "name": "packaging",
            "direct": false,
            "version": "26.1",
            "ecosystem": "pypi"
          },
          {
            "name": "pathable",
            "direct": false,
            "version": "0.5.0b2",
            "ecosystem": "pypi"
          },
          {
            "name": "pathspec",
            "direct": false,
            "version": "1.0.4",
            "ecosystem": "pypi"
          },
          {
            "name": "pillow",
            "direct": false,
            "version": "12.3.0",
            "ecosystem": "pypi"
          },
          {
            "name": "platformdirs",
            "direct": false,
            "version": "4.5.1",
            "ecosystem": "pypi"
          },
          {
            "name": "pluggy",
            "direct": false,
            "version": "1.6.0",
            "ecosystem": "pypi"
          },
          {
            "name": "ply",
            "direct": false,
            "version": "3.11",
            "ecosystem": "pypi"
          },
          {
            "name": "portalocker",
            "direct": false,
            "version": "3.2.0",
            "ecosystem": "pypi"
          },
          {
            "name": "posthog",
            "direct": false,
            "version": "7.0.1",
            "ecosystem": "pypi"
          },
          {
            "name": "powerfx",
            "direct": false,
            "version": "0.0.33",
            "ecosystem": "pypi"
          },
          {
            "name": "pre-commit",
            "direct": false,
            "version": "4.6.0",
            "ecosystem": "pypi"
          },
          {
            "name": "prompt-toolkit",
            "direct": false,
            "version": "3.0.51",
            "ecosystem": "pypi"
          },
          {
            "name": "propcache",
            "direct": false,
            "version": "0.4.1",
            "ecosystem": "pypi"
          },
          {
            "name": "proto-plus",
            "direct": false,
            "version": "1.26.1",
            "ecosystem": "pypi"
          },
          {
            "name": "protobuf",
            "direct": false,
            "version": "5.29.6",
            "ecosystem": "pypi"
          },
          {
            "name": "py-key-value-aio",
            "direct": false,
            "version": "0.4.4",
            "ecosystem": "pypi"
          },
          {
            "name": "pyasn1",
            "direct": false,
            "version": "0.6.3",
            "ecosystem": "pypi"
          },
          {
            "name": "pyasn1-modules",
            "direct": false,
            "version": "0.4.2",
            "ecosystem": "pypi"
          },
          {
            "name": "pycparser",
            "direct": false,
            "version": "2.23",
            "ecosystem": "pypi"
          },
          {
            "name": "pydantic",
            "direct": false,
            "version": "2.12.5",
            "ecosystem": "pypi"
          },
          {
            "name": "pydantic-core",
            "direct": false,
            "version": "2.41.5",
            "ecosystem": "pypi"
          },
          {
            "name": "pydantic-settings",
            "direct": false,
            "version": "2.14.2",
            "ecosystem": "pypi"
          },
          {
            "name": "pygments",
            "direct": false,
            "version": "2.20.0",
            "ecosystem": "pypi"
          },
          {
            "name": "pyjwt",
            "direct": false,
            "version": "2.13.0",
            "ecosystem": "pypi"
          },
          {
            "name": "pyperclip",
            "direct": false,
            "version": "1.11.0",
            "ecosystem": "pypi"
          },
          {
            "name": "pyright",
            "direct": false,
            "version": "1.1.411",
            "ecosystem": "pypi"
          },
          {
            "name": "pyrsistent",
            "direct": false,
            "version": "0.20.0",
            "ecosystem": "pypi"
          },
          {
            "name": "pytest",
            "direct": false,
            "version": "9.1.1",
            "ecosystem": "pypi"
          },
          {
            "name": "pytest-asyncio",
            "direct": false,
            "version": "1.4.0",
            "ecosystem": "pypi"
          },
          {
            "name": "pytest-cov",
            "direct": false,
            "version": "7.1.0",
            "ecosystem": "pypi"
          },
          {
            "name": "pytest-mock",
            "direct": false,
            "version": "3.15.1",
            "ecosystem": "pypi"
          },
          {
            "name": "python-dateutil",
            "direct": false,
            "version": "2.9.0.post0",
            "ecosystem": "pypi"
          },
          {
            "name": "python-dotenv",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "python-dotenv",
            "direct": false,
            "version": "1.2.2",
            "ecosystem": "pypi"
          },
          {
            "name": "python-multipart",
            "direct": false,
            "version": "0.0.31",
            "ecosystem": "pypi"
          },
          {
            "name": "python-ulid",
            "direct": false,
            "version": "3.1.0",
            "ecosystem": "pypi"
          },
          {
            "name": "pythonnet",
            "direct": false,
            "version": "3.0.5",
            "ecosystem": "pypi"
          },
          {
            "name": "pytokens",
            "direct": false,
            "version": "0.4.1",
            "ecosystem": "pypi"
          },
          {
            "name": "pytz",
            "direct": false,
            "version": "2025.2",
            "ecosystem": "pypi"
          },
          {
            "name": "pywin32",
            "direct": false,
            "version": "311",
            "ecosystem": "pypi"
          },
          {
            "name": "pywin32-ctypes",
            "direct": false,
            "version": "0.2.3",
            "ecosystem": "pypi"
          },
          {
            "name": "pyyaml",
            "direct": false,
            "version": "6.0.3",
            "ecosystem": "pypi"
          },
          {
            "name": "qdrant-client",
            "direct": false,
            "version": "1.16.2",
            "ecosystem": "pypi"
          },
          {
            "name": "questionary",
            "direct": false,
            "version": "2.1.1",
            "ecosystem": "pypi"
          },
          {
            "name": "redis",
            "direct": false,
            "version": "6.4.0",
            "ecosystem": "pypi"
          },
          {
            "name": "redisvl",
            "direct": false,
            "version": "0.12.1",
            "ecosystem": "pypi"
          },
          {
            "name": "referencing",
            "direct": false,
            "version": "0.36.2",
            "ecosystem": "pypi"
          },
          {
            "name": "regex",
            "direct": false,
            "version": "2025.11.3",
            "ecosystem": "pypi"
          },
          {
            "name": "requests",
            "direct": false,
            "version": "2.33.0",
            "ecosystem": "pypi"
          },
          {
            "name": "requests-toolbelt",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "pypi"
          },
          {
            "name": "rich",
            "direct": false,
            "version": "14.2.0",
            "ecosystem": "pypi"
          },
          {
            "name": "rpds-py",
            "direct": false,
            "version": "0.30.0",
            "ecosystem": "pypi"
          },
          {
            "name": "rsa",
            "direct": false,
            "version": "4.9.1",
            "ecosystem": "pypi"
          },
          {
            "name": "ruff",
            "direct": false,
            "version": "0.15.22",
            "ecosystem": "pypi"
          },
          {
            "name": "s3transfer",
            "direct": false,
            "version": "0.19.0",
            "ecosystem": "pypi"
          },
          {
            "name": "secretstorage",
            "direct": false,
            "version": "3.5.0",
            "ecosystem": "pypi"
          },
          {
            "name": "setuptools",
            "direct": false,
            "version": "80.9.0",
            "ecosystem": "pypi"
          },
          {
            "name": "six",
            "direct": false,
            "version": "1.17.0",
            "ecosystem": "pypi"
          },
          {
            "name": "sniffio",
            "direct": false,
            "version": "1.3.1",
            "ecosystem": "pypi"
          },
          {
            "name": "sqlalchemy",
            "direct": false,
            "version": "2.0.45",
            "ecosystem": "pypi"
          },
          {
            "name": "sse-starlette",
            "direct": false,
            "version": "3.0.4",
            "ecosystem": "pypi"
          },
          {
            "name": "starlette",
            "direct": false,
            "version": "1.3.1",
            "ecosystem": "pypi"
          },
          {
            "name": "strands-agents",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "strands-agents",
            "direct": false,
            "version": "1.48.0",
            "ecosystem": "pypi"
          },
          {
            "name": "tenacity",
            "direct": false,
            "version": "9.1.2",
            "ecosystem": "pypi"
          },
          {
            "name": "termcolor",
            "direct": false,
            "version": "3.2.0",
            "ecosystem": "pypi"
          },
          {
            "name": "tiktoken",
            "direct": false,
            "version": "0.12.0",
            "ecosystem": "pypi"
          },
          {
            "name": "tinytag",
            "direct": false,
            "version": "2.2.1",
            "ecosystem": "pypi"
          },
          {
            "name": "tomli",
            "direct": false,
            "version": "2.3.0",
            "ecosystem": "pypi"
          },
          {
            "name": "tomlkit",
            "direct": false,
            "version": "0.13.3",
            "ecosystem": "pypi"
          },
          {
            "name": "tqdm",
            "direct": false,
            "version": "4.67.1",
            "ecosystem": "pypi"
          },
          {
            "name": "types-requests",
            "direct": false,
            "version": "2.32.4.20250913",
            "ecosystem": "pypi"
          },
          {
            "name": "typing-extensions",
            "direct": false,
            "version": "4.15.0",
            "ecosystem": "pypi"
          },
          {
            "name": "typing-inspect",
            "direct": false,
            "version": "0.9.0",
            "ecosystem": "pypi"
          },
          {
            "name": "typing-inspection",
            "direct": false,
            "version": "0.4.2",
            "ecosystem": "pypi"
          },
          {
            "name": "uncalled-for",
            "direct": false,
            "version": "0.2.0",
            "ecosystem": "pypi"
          },
          {
            "name": "urllib3",
            "direct": false,
            "version": "2.7.0",
            "ecosystem": "pypi"
          },
          {
            "name": "uuid-utils",
            "direct": false,
            "version": "0.12.0",
            "ecosystem": "pypi"
          },
          {
            "name": "uvicorn",
            "direct": false,
            "version": "0.38.0",
            "ecosystem": "pypi"
          },
          {
            "name": "uvloop",
            "direct": false,
            "version": "0.22.1",
            "ecosystem": "pypi"
          },
          {
            "name": "virtualenv",
            "direct": false,
            "version": "20.36.1",
            "ecosystem": "pypi"
          },
          {
            "name": "watchdog",
            "direct": false,
            "version": "6.0.0",
            "ecosystem": "pypi"
          },
          {
            "name": "watchfiles",
            "direct": false,
            "version": "1.1.1",
            "ecosystem": "pypi"
          },
          {
            "name": "wcwidth",
            "direct": false,
            "version": "0.2.14",
            "ecosystem": "pypi"
          },
          {
            "name": "websockets",
            "direct": false,
            "version": "15.0.1",
            "ecosystem": "pypi"
          },
          {
            "name": "werkzeug",
            "direct": false,
            "version": "3.1.6",
            "ecosystem": "pypi"
          },
          {
            "name": "wrapt",
            "direct": false,
            "version": "1.17.3",
            "ecosystem": "pypi"
          },
          {
            "name": "xxhash",
            "direct": false,
            "version": "3.6.0",
            "ecosystem": "pypi"
          },
          {
            "name": "yarl",
            "direct": false,
            "version": "1.22.0",
            "ecosystem": "pypi"
          },
          {
            "name": "zipp",
            "direct": false,
            "version": "3.23.0",
            "ecosystem": "pypi"
          },
          {
            "name": "zstandard",
            "direct": false,
            "version": "0.25.0",
            "ecosystem": "pypi"
          }
        ],
        "collected": true,
        "truncated": false,
        "total_count": 300,
        "direct_count": 5,
        "indirect_count": 295
      }
    },
    "maintainership": {
      "issues": {
        "open_prs": 4,
        "merged_prs": 260,
        "open_issues": 9,
        "closed_ratio": 0.7,
        "closed_issues": 21,
        "closed_unmerged_prs": 72
      },
      "bus_factor": 3,
      "bot_contributors": 1,
      "top_contributors": [
        {
          "type": "User",
          "login": "arangatang",
          "commits": 32,
          "avatar_url": "https://avatars.githubusercontent.com/u/9272897?v=4"
        },
        {
          "type": "User",
          "login": "wzxxing",
          "commits": 32,
          "avatar_url": "https://avatars.githubusercontent.com/u/169175349?v=4"
        },
        {
          "type": "User",
          "login": "anasstahr",
          "commits": 29,
          "avatar_url": "https://avatars.githubusercontent.com/u/203639952?v=4"
        },
        {
          "type": "User",
          "login": "arnewouters",
          "commits": 20,
          "avatar_url": "https://avatars.githubusercontent.com/u/25950814?v=4"
        },
        {
          "type": "User",
          "login": "JacqualinPotgieter",
          "commits": 8,
          "avatar_url": "https://avatars.githubusercontent.com/u/6557035?v=4"
        },
        {
          "type": "User",
          "login": "kyoncal",
          "commits": 8,
          "avatar_url": "https://avatars.githubusercontent.com/u/91875365?v=4"
        },
        {
          "type": "User",
          "login": "acmlau",
          "commits": 5,
          "avatar_url": "https://avatars.githubusercontent.com/u/66322063?v=4"
        },
        {
          "type": "User",
          "login": "detti456",
          "commits": 5,
          "avatar_url": "https://avatars.githubusercontent.com/u/100231663?v=4"
        },
        {
          "type": "User",
          "login": "vtols",
          "commits": 3,
          "avatar_url": "https://avatars.githubusercontent.com/u/1188278?v=4"
        },
        {
          "type": "User",
          "login": "awsjjzhou",
          "commits": 3,
          "avatar_url": "https://avatars.githubusercontent.com/u/233749958?v=4"
        }
      ],
      "contributors_sampled": 19,
      "top_contributor_share": 0.199
    },
    "quality_signals": {
      "has_ci": true,
      "has_tests": true,
      "ci_workflows": [
        "bandit.yml",
        "dependabot-auto-merge.yml",
        "ecr-publish-on-release.yml",
        "pip-audit.yml",
        "pypi-publish-on-release.yml",
        "python-integ.yml",
        "python.yml",
        "scheduled-integ-tests.yml",
        "stale.yml",
        "test-pypi-publish.yml"
      ],
      "has_docs_dir": false,
      "linter_configs": [],
      "has_editorconfig": false,
      "has_linter_config": true,
      "has_precommit_config": true
    },
    "security_signals": {
      "lockfiles": [
        "uv.lock"
      ],
      "scorecard": {
        "checks": [
          {
            "name": "Binary-Artifacts",
            "score": 10,
            "reason": "no binaries found in the repo",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#binary-artifacts"
          },
          {
            "name": "Branch-Protection",
            "score": 8,
            "reason": "branch protection is not maximal on development and all release branches",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#branch-protection"
          },
          {
            "name": "CI-Tests",
            "score": 10,
            "reason": "30 out of 30 merged PRs checked by a CI test -- score normalized to 10",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#ci-tests"
          },
          {
            "name": "CII-Best-Practices",
            "score": 0,
            "reason": "no effort to earn an OpenSSF best practices badge detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#cii-best-practices"
          },
          {
            "name": "Code-Review",
            "score": 10,
            "reason": "all changesets reviewed",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#code-review"
          },
          {
            "name": "Contributors",
            "score": 3,
            "reason": "project has 1 contributing companies or organizations -- score normalized to 3",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#contributors"
          },
          {
            "name": "Dangerous-Workflow",
            "score": 10,
            "reason": "no dangerous workflow patterns detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#dangerous-workflow"
          },
          {
            "name": "Dependency-Update-Tool",
            "score": 10,
            "reason": "update tool detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#dependency-update-tool"
          },
          {
            "name": "Fuzzing",
            "score": 0,
            "reason": "project is not fuzzed",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#fuzzing"
          },
          {
            "name": "License",
            "score": 10,
            "reason": "license file detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#license"
          },
          {
            "name": "Maintained",
            "score": 10,
            "reason": "30 commit(s) and 2 issue activity found in the last 90 days -- score normalized to 10",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#maintained"
          },
          {
            "name": "Packaging",
            "score": 10,
            "reason": "packaging workflow detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#packaging"
          },
          {
            "name": "Pinned-Dependencies",
            "score": 8,
            "reason": "dependency not pinned by hash detected -- score normalized to 8",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#pinned-dependencies"
          },
          {
            "name": "SAST",
            "score": 10,
            "reason": "SAST tool is run on all commits",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#sast"
          },
          {
            "name": "Security-Policy",
            "score": 10,
            "reason": "security policy file detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#security-policy"
          },
          {
            "name": "Signed-Releases",
            "score": null,
            "reason": "no releases found",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#signed-releases"
          },
          {
            "name": "Token-Permissions",
            "score": 0,
            "reason": "detected GitHub workflow tokens with excessive permissions",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#token-permissions"
          },
          {
            "name": "Vulnerabilities",
            "score": 7,
            "reason": "3 existing vulnerabilities detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#vulnerabilities"
          }
        ],
        "commit": "c5efec941da5ab48d04e658454265cc5c58c69cc",
        "ran_at": "2026-07-21T21:03:32Z",
        "aggregate_score": 7.8,
        "scorecard_version": "v5.5.0"
      },
      "has_codeql_workflow": false,
      "has_security_policy": false,
      "has_dependabot_config": true
    }
  },
  "config": {
    "disabled_metrics": [],
    "disabled_categories": [],
    "disabled_components": {}
  },
  "source": {
    "url": "https://github.com/aws/mcp-proxy-for-aws",
    "host": "github.com",
    "name": "mcp-proxy-for-aws",
    "owner": "aws"
  },
  "metrics": {
    "overall": {
      "key": "overall",
      "band": "good",
      "name": "Overall health",
      "note": null,
      "notes": [],
      "value": 83,
      "inputs": {
        "security": 82,
        "vitality": 94,
        "community": 81,
        "governance": 80,
        "engineering": 76
      },
      "components": []
    },
    "categories": [
      {
        "key": "vitality",
        "band": "excellent",
        "name": "Vitality",
        "value": 94,
        "weight": 0.22,
        "metrics": [
          {
            "key": "development_activity",
            "band": "excellent",
            "name": "Development activity",
            "note": null,
            "notes": [],
            "value": 90,
            "inputs": {
              "commits_last_year": 262,
              "human_commit_share": 0.39,
              "days_since_last_push": 0,
              "active_weeks_last_year": 37
            },
            "components": [
              {
                "key": "push_recency",
                "name": "Push recency",
                "detail": "last push 0 days ago",
                "points": 36,
                "status": "met",
                "details": [
                  {
                    "code": "push_recency",
                    "params": {
                      "days": 0
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "commit_cadence",
                "name": "Commit cadence",
                "detail": "37/52 weeks with commits",
                "points": 25.6,
                "status": "partial",
                "details": [
                  {
                    "code": "commit_cadence_weeks",
                    "params": {
                      "weeks": 37
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "commit_volume",
                "name": "Commit volume",
                "detail": "262 commits in the last year",
                "points": 18,
                "status": "met",
                "details": [
                  {
                    "code": "commits_last_year",
                    "params": {
                      "count": 262
                    }
                  }
                ],
                "max_points": 18
              },
              {
                "key": "openssf_scorecard_maintained",
                "name": "OpenSSF Scorecard: Maintained",
                "detail": "30 commit(s) and 2 issue activity found in the last 90 days -- score normalized to 10",
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "release_discipline",
            "band": "excellent",
            "name": "Release discipline",
            "note": "Excluded from scoring (no data or not applicable): OpenSSF Scorecard: Signed-Releases. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "openssf_scorecard_signed_releases"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 100,
            "inputs": {
              "releases_count": 18,
              "latest_release_tag": "v1.6.4",
              "releases_from_tags": false,
              "days_since_latest_release": 1,
              "mean_days_between_releases": 11.2
            },
            "components": [
              {
                "key": "ships_releases",
                "name": "Ships releases",
                "detail": "18 releases published",
                "points": 27,
                "status": "met",
                "details": [
                  {
                    "code": "releases_published",
                    "params": {
                      "count": 18
                    }
                  }
                ],
                "max_points": 27
              },
              {
                "key": "release_recency",
                "name": "Release recency",
                "detail": "latest release 1 days ago",
                "points": 36,
                "status": "met",
                "details": [
                  {
                    "code": "release_recency",
                    "params": {
                      "days": 1
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "release_cadence",
                "name": "Release cadence",
                "detail": "a release every ~11.2 days",
                "points": 27,
                "status": "met",
                "details": [
                  {
                    "code": "release_cadence",
                    "params": {
                      "gap": 11.2
                    }
                  }
                ],
                "max_points": 27
              },
              {
                "key": "openssf_scorecard_signed_releases",
                "name": "OpenSSF Scorecard: Signed-Releases",
                "detail": "no releases found",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 10
              }
            ]
          },
          {
            "key": "abandonment",
            "band": "excellent",
            "name": "Abandonment",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "cap": null,
              "state": "maintained",
              "guards": [],
              "signals": [],
              "red_flag": false,
              "multiplier_pct": 100,
              "declared_reason": null,
              "unverified_reason": null,
              "unanswered_open_prs": null,
              "unanswered_open_issues": null,
              "days_since_last_merged_pr": null,
              "days_since_last_human_commit": 1,
              "days_since_last_human_commit_is_floor": false
            },
            "components": [
              {
                "key": "project_is_still_maintained",
                "name": "Project is still maintained",
                "detail": "last human commit 1 days ago",
                "points": 100,
                "status": "met",
                "details": [
                  {
                    "code": "abandonment_maintained",
                    "params": {
                      "days": 1
                    }
                  }
                ],
                "max_points": 100
              }
            ]
          }
        ],
        "description": "Is the project alive — is code being written and are releases shipping?"
      },
      {
        "key": "community",
        "band": "good",
        "name": "Community & Adoption",
        "value": 81,
        "weight": 0.18,
        "metrics": [
          {
            "key": "popularity",
            "band": "moderate",
            "name": "Popularity & adoption",
            "note": null,
            "notes": [],
            "value": 60,
            "inputs": {
              "forks": 55,
              "stars": 327,
              "watchers": 8,
              "growth_state": "organic",
              "growth_factor_pct": 100
            },
            "components": [
              {
                "key": "stars",
                "name": "Stars",
                "detail": "327 stars",
                "points": 40.8,
                "status": "partial",
                "details": [
                  {
                    "code": "stars",
                    "params": {
                      "count": 327
                    }
                  }
                ],
                "max_points": 60
              },
              {
                "key": "forks",
                "name": "Forks",
                "detail": "55 forks",
                "points": 14.4,
                "status": "partial",
                "details": [
                  {
                    "code": "forks",
                    "params": {
                      "count": 55
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "watchers",
                "name": "Watchers",
                "detail": "8 watchers",
                "points": 4.7,
                "status": "partial",
                "details": [
                  {
                    "code": "watchers",
                    "params": {
                      "count": 8
                    }
                  }
                ],
                "max_points": 15
              }
            ]
          },
          {
            "key": "community_health",
            "band": "excellent",
            "name": "Community health",
            "note": null,
            "notes": [],
            "value": 92,
            "inputs": {
              "has_readme": true,
              "has_license": true,
              "has_contributing": true,
              "has_issue_template": false,
              "has_code_of_conduct": true,
              "has_pull_request_template": true
            },
            "components": [
              {
                "key": "readme",
                "name": "README",
                "detail": null,
                "points": 22.5,
                "status": "met",
                "details": [],
                "max_points": 22.5
              },
              {
                "key": "license",
                "name": "License",
                "detail": "recognized license (Apache-2.0)",
                "points": 22.5,
                "status": "met",
                "details": [
                  {
                    "code": "license_standard",
                    "params": {}
                  },
                  {
                    "code": "license_spdx",
                    "params": {
                      "spdx": "Apache-2.0"
                    }
                  }
                ],
                "max_points": 22.5
              },
              {
                "key": "contributing_guide",
                "name": "CONTRIBUTING guide",
                "detail": null,
                "points": 18,
                "status": "met",
                "details": [],
                "max_points": 18
              },
              {
                "key": "code_of_conduct",
                "name": "Code of conduct",
                "detail": null,
                "points": 13.5,
                "status": "met",
                "details": [],
                "max_points": 13.5
              },
              {
                "key": "issue_template",
                "name": "Issue template",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.2
              },
              {
                "key": "pr_template",
                "name": "PR template",
                "detail": null,
                "points": 6.3,
                "status": "met",
                "details": [],
                "max_points": 6.3
              }
            ]
          },
          {
            "key": "ecosystem_adoption",
            "band": "excellent",
            "name": "Ecosystem adoption (downloads)",
            "note": "Excluded from scoring (no data or not applicable): Registry dependents. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "registry_dependents"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 100,
            "inputs": {
              "packages": [
                "mcp-proxy-for-aws"
              ],
              "dependents": null,
              "ecosystems": "pypi",
              "total_downloads": null,
              "monthly_downloads": 2038100
            },
            "components": [
              {
                "key": "monthly_downloads",
                "name": "Monthly downloads",
                "detail": "2,038,100 downloads/month across pypi",
                "points": 80,
                "status": "met",
                "details": [
                  {
                    "code": "downloads_monthly",
                    "params": {
                      "count": 2038100,
                      "ecosystems": "pypi"
                    }
                  }
                ],
                "max_points": 80
              },
              {
                "key": "registry_dependents",
                "name": "Registry dependents",
                "detail": "not reported by this ecosystem",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "not_reported_by_this_ecosystem",
                    "params": {}
                  }
                ],
                "max_points": 20
              }
            ]
          }
        ],
        "description": "Does the project have users, downloads, attention, and a welcoming setup for contributors?"
      },
      {
        "key": "governance",
        "band": "good",
        "name": "Sustainability & Governance",
        "value": 80,
        "weight": 0.24,
        "metrics": [
          {
            "key": "maintainer_resilience",
            "band": "good",
            "name": "Maintainer resilience (bus factor)",
            "note": null,
            "notes": [],
            "value": 70,
            "inputs": {
              "bus_factor": 3,
              "contributors_sampled": 19,
              "top_contributor_share": 0.199
            },
            "components": [
              {
                "key": "bus_factor",
                "name": "Bus factor",
                "detail": "3 contributor(s) cover half of all commits",
                "points": 36,
                "status": "partial",
                "details": [
                  {
                    "code": "bus_factor",
                    "params": {
                      "count": 3
                    }
                  }
                ],
                "max_points": 54
              },
              {
                "key": "commit_distribution",
                "name": "Commit distribution",
                "detail": "top contributor authored 20% of commits",
                "points": 18,
                "status": "partial",
                "details": [
                  {
                    "code": "top_contributor_share",
                    "params": {
                      "share": 20
                    }
                  }
                ],
                "max_points": 22.5
              },
              {
                "key": "contributor_breadth",
                "name": "Contributor breadth",
                "detail": "19 contributors",
                "points": 13.5,
                "status": "met",
                "details": [
                  {
                    "code": "contributors_sampled",
                    "params": {
                      "count": 19
                    }
                  }
                ],
                "max_points": 13.5
              },
              {
                "key": "openssf_scorecard_contributors",
                "name": "OpenSSF Scorecard: Contributors",
                "detail": "project has 1 contributing companies or organizations -- score normalized to 3",
                "points": 3,
                "status": "partial",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "responsiveness",
            "band": "good",
            "name": "Issue & PR responsiveness",
            "note": null,
            "notes": [],
            "value": 78,
            "inputs": {
              "merged_prs": 260,
              "open_issues": 9,
              "closed_issues": 21,
              "issue_closed_ratio": 0.7,
              "closed_unmerged_prs": 72
            },
            "components": [
              {
                "key": "issue_resolution",
                "name": "Issue resolution",
                "detail": "70% of issues closed",
                "points": 32.7,
                "status": "partial",
                "details": [
                  {
                    "code": "issues_closed_share",
                    "params": {
                      "share": 70
                    }
                  }
                ],
                "max_points": 46.75
              },
              {
                "key": "pr_acceptance",
                "name": "PR acceptance",
                "detail": "260/332 decided PRs merged",
                "points": 30,
                "status": "partial",
                "details": [
                  {
                    "code": "decided_prs_merged",
                    "params": {
                      "merged": 260,
                      "decided": 332
                    }
                  }
                ],
                "max_points": 38.25
              },
              {
                "key": "openssf_scorecard_code_review",
                "name": "OpenSSF Scorecard: Code-Review",
                "detail": "all changesets reviewed",
                "points": 15,
                "status": "met",
                "details": [],
                "max_points": 15
              }
            ]
          },
          {
            "key": "stewardship",
            "band": "good",
            "name": "Ownership & stewardship",
            "note": null,
            "notes": [],
            "value": 80,
            "inputs": {
              "followers": 16125,
              "owner_type": "Organization",
              "is_verified": null,
              "owner_login": "aws",
              "public_repos": 552,
              "account_age_days": 5075
            },
            "components": [
              {
                "key": "ownership_backing",
                "name": "Ownership backing",
                "detail": "organization-owned",
                "points": 30,
                "status": "met",
                "details": [
                  {
                    "code": "owner_organization",
                    "params": {}
                  }
                ],
                "max_points": 30
              },
              {
                "key": "verified_domain",
                "name": "Verified domain",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 20
              },
              {
                "key": "owner_reach",
                "name": "Owner reach",
                "detail": "16,125 followers of aws",
                "points": 25,
                "status": "met",
                "details": [
                  {
                    "code": "owner_followers",
                    "params": {
                      "count": 16125,
                      "login": "aws"
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "track_record",
                "name": "Track record",
                "detail": "552 public repos, account ~13 yr old",
                "points": 25,
                "status": "met",
                "details": [
                  {
                    "code": "public_repos",
                    "params": {
                      "count": 552
                    }
                  },
                  {
                    "code": "account_age_years",
                    "params": {
                      "years": 13
                    }
                  }
                ],
                "max_points": 25
              }
            ]
          },
          {
            "key": "package_maintenance",
            "band": "excellent",
            "name": "Package maintenance",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "packages": [
                "mcp-proxy-for-aws"
              ],
              "ecosystems": "pypi",
              "any_deprecated": false,
              "min_days_since_publish": 1
            },
            "components": [
              {
                "key": "published_resolvable",
                "name": "Published & resolvable",
                "detail": "1 package(s) on pypi",
                "points": 25,
                "status": "met",
                "details": [
                  {
                    "code": "packages_published",
                    "params": {
                      "count": 1,
                      "ecosystems": "pypi"
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "publish_recency",
                "name": "Publish recency",
                "detail": "latest publish 1 days ago",
                "points": 35,
                "status": "met",
                "details": [
                  {
                    "code": "publish_recency",
                    "params": {
                      "days": 1
                    }
                  }
                ],
                "max_points": 35
              },
              {
                "key": "version_history",
                "name": "Version history",
                "detail": "20 published versions",
                "points": 20,
                "status": "met",
                "details": [
                  {
                    "code": "published_versions",
                    "params": {
                      "count": 20
                    }
                  }
                ],
                "max_points": 20
              },
              {
                "key": "not_deprecated",
                "name": "Not deprecated",
                "detail": "active, not deprecated or yanked",
                "points": 20,
                "status": "met",
                "details": [
                  {
                    "code": "package_not_deprecated",
                    "params": {}
                  }
                ],
                "max_points": 20
              }
            ]
          }
        ],
        "description": "Will the project survive its people — bus factor, responsiveness, who backs it, and package upkeep?"
      },
      {
        "key": "engineering",
        "band": "good",
        "name": "Engineering Quality",
        "value": 76,
        "weight": 0.2,
        "metrics": [
          {
            "key": "engineering_practices",
            "band": "excellent",
            "name": "Engineering practices",
            "note": null,
            "notes": [],
            "value": 94,
            "inputs": {
              "has_ci": true,
              "has_tests": true,
              "has_editorconfig": false,
              "has_linter_config": true,
              "has_precommit_config": true
            },
            "components": [
              {
                "key": "ci_workflows",
                "name": "CI workflows",
                "detail": "10 workflow(s)",
                "points": 24,
                "status": "met",
                "details": [
                  {
                    "code": "ci_workflows",
                    "params": {
                      "count": 10
                    }
                  }
                ],
                "max_points": 24
              },
              {
                "key": "tests_present",
                "name": "Tests present",
                "detail": null,
                "points": 24,
                "status": "met",
                "details": [],
                "max_points": 24
              },
              {
                "key": "linter_config",
                "name": "Linter config",
                "detail": null,
                "points": 16,
                "status": "met",
                "details": [],
                "max_points": 16
              },
              {
                "key": "pre_commit_hooks",
                "name": "Pre-commit hooks",
                "detail": null,
                "points": 9.6,
                "status": "met",
                "details": [],
                "max_points": 9.6
              },
              {
                "key": "editorconfig",
                "name": ".editorconfig",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 6.4
              },
              {
                "key": "openssf_scorecard_ci_tests",
                "name": "OpenSSF Scorecard: CI-Tests",
                "detail": "30 out of 30 merged PRs checked by a CI test -- score normalized to 10",
                "points": 20,
                "status": "met",
                "details": [],
                "max_points": 20
              }
            ]
          },
          {
            "key": "documentation",
            "band": "moderate",
            "name": "Documentation",
            "note": null,
            "notes": [],
            "value": 50,
            "inputs": {
              "topics": [
                "aws",
                "mcp",
                "proxy",
                "sigv4"
              ],
              "has_wiki": false,
              "homepage": null,
              "has_readme": true,
              "has_docs_dir": false,
              "has_description": true
            },
            "components": [
              {
                "key": "readme",
                "name": "README",
                "detail": null,
                "points": 30,
                "status": "met",
                "details": [],
                "max_points": 30
              },
              {
                "key": "documentation_directory",
                "name": "Documentation directory",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 25
              },
              {
                "key": "documentation_homepage_site",
                "name": "Documentation / homepage site",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 15
              },
              {
                "key": "repository_description",
                "name": "Repository description",
                "detail": null,
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              },
              {
                "key": "topics",
                "name": "Topics",
                "detail": "4 topics",
                "points": 10,
                "status": "met",
                "details": [
                  {
                    "code": "topics_count",
                    "params": {
                      "count": 4
                    }
                  }
                ],
                "max_points": 10
              },
              {
                "key": "wiki",
                "name": "Wiki",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 10
              }
            ]
          }
        ],
        "description": "Are baseline engineering and documentation practices in place?"
      },
      {
        "key": "security",
        "band": "good",
        "name": "Security",
        "value": 82,
        "weight": 0.16,
        "metrics": [
          {
            "key": "security_posture",
            "band": "good",
            "name": "Security posture",
            "note": "Excluded from scoring (no data or not applicable): Signed-Releases. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "signed_releases"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 78,
            "inputs": {
              "source": "openssf_scorecard",
              "checks_evaluated": 17,
              "scorecard_version": "v5.5.0",
              "checks_inconclusive": 1,
              "scorecard_aggregate": 7.8
            },
            "components": [
              {
                "key": "binary_artifacts",
                "name": "Binary-Artifacts",
                "detail": "no binaries found in the repo",
                "points": 7.5,
                "status": "met",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "branch_protection",
                "name": "Branch-Protection",
                "detail": "branch protection is not maximal on development and all release branches",
                "points": 6,
                "status": "partial",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "ci_tests",
                "name": "CI-Tests",
                "detail": "30 out of 30 merged PRs checked by a CI test -- score normalized to 10",
                "points": 2.5,
                "status": "met",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "cii_best_practices",
                "name": "CII-Best-Practices",
                "detail": "no effort to earn an OpenSSF best practices badge detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "code_review",
                "name": "Code-Review",
                "detail": "all changesets reviewed",
                "points": 7.5,
                "status": "met",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "contributors",
                "name": "Contributors",
                "detail": "project has 1 contributing companies or organizations -- score normalized to 3",
                "points": 0.8,
                "status": "partial",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "dangerous_workflow",
                "name": "Dangerous-Workflow",
                "detail": "no dangerous workflow patterns detected",
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              },
              {
                "key": "dependency_update_tool",
                "name": "Dependency-Update-Tool",
                "detail": "update tool detected",
                "points": 7.5,
                "status": "met",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "fuzzing",
                "name": "Fuzzing",
                "detail": "project is not fuzzed",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 5
              },
              {
                "key": "license",
                "name": "License",
                "detail": "license file detected",
                "points": 2.5,
                "status": "met",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "maintained",
                "name": "Maintained",
                "detail": "30 commit(s) and 2 issue activity found in the last 90 days -- score normalized to 10",
                "points": 7.5,
                "status": "met",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "packaging",
                "name": "Packaging",
                "detail": "packaging workflow detected",
                "points": 5,
                "status": "met",
                "details": [],
                "max_points": 5
              },
              {
                "key": "pinned_dependencies",
                "name": "Pinned-Dependencies",
                "detail": "dependency not pinned by hash detected -- score normalized to 8",
                "points": 4,
                "status": "partial",
                "details": [],
                "max_points": 5
              },
              {
                "key": "sast",
                "name": "SAST",
                "detail": "SAST tool is run on all commits",
                "points": 5,
                "status": "met",
                "details": [],
                "max_points": 5
              },
              {
                "key": "security_policy",
                "name": "Security-Policy",
                "detail": "security policy file detected",
                "points": 5,
                "status": "met",
                "details": [],
                "max_points": 5
              },
              {
                "key": "signed_releases",
                "name": "Signed-Releases",
                "detail": "no releases found",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 7.5
              },
              {
                "key": "token_permissions",
                "name": "Token-Permissions",
                "detail": "detected GitHub workflow tokens with excessive permissions",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "vulnerabilities",
                "name": "Vulnerabilities",
                "detail": "3 existing vulnerabilities detected",
                "points": 5.2,
                "status": "partial",
                "details": [],
                "max_points": 7.5
              }
            ]
          },
          {
            "key": "dependency_advisories",
            "band": "excellent",
            "name": "Dependency advisories",
            "note": "Excluded from scoring (no data or not applicable): Indirect dependencies free of known advisories, No advisories left outstanding. Remaining weights renormalized. Matched 288 resolved dependencies against OSV; 12 could not be assessed (no resolved version, an unsupported ecosystem, or beyond the reported package list). This repository publishes no package the index resolves, so the repository dependency graph was assessed instead. That graph mixes development and test pins with shipped dependencies, so only the declared runtime dependencies are scored; transitive findings are reported as context and excluded from the score. Reachability is not analyzed.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "indirect_dependencies_free_of_known_advisories",
                    "no_advisories_left_outstanding"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              },
              {
                "code": "advisories_scope_repository",
                "params": {
                  "assessed": 288
                }
              },
              {
                "code": "advisories_unassessed",
                "params": {
                  "count": 12
                }
              },
              {
                "code": "advisories_repo_graph_caveat",
                "params": {}
              },
              {
                "code": "advisories_reachability",
                "params": {}
              }
            ],
            "value": 100,
            "inputs": {
              "source": "osv",
              "advisories": 4,
              "affected_packages": 2,
              "assessed_packages": 288,
              "unassessed_packages": 12,
              "affected_by_severity": "high 1, moderate 1",
              "direct_affected_packages": 0
            },
            "components": [
              {
                "key": "direct_dependencies_free_of_known_advisories",
                "name": "Direct dependencies free of known advisories",
                "detail": "no direct dependency carries a known advisory",
                "points": 35,
                "status": "met",
                "details": [
                  {
                    "code": "no_direct_advisories",
                    "params": {}
                  }
                ],
                "max_points": 35
              },
              {
                "key": "indirect_dependencies_free_of_known_advisories",
                "name": "Indirect dependencies free of known advisories",
                "detail": "transitive set not separable from development and test dependencies in this scope",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "advisories_scope_not_separable",
                    "params": {}
                  }
                ],
                "max_points": 25
              },
              {
                "key": "no_advisories_left_outstanding",
                "name": "No advisories left outstanding",
                "detail": "no advisory carries a publication date",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "advisories_no_publication_date",
                    "params": {}
                  }
                ],
                "max_points": 40
              }
            ]
          },
          {
            "key": "malicious_dependencies",
            "band": "excellent",
            "name": "Malicious dependencies",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "source": "osv",
              "meaning": "reported as a malicious package by the OpenSSF corpus; the remedy is removal or moving off the compromised name, never an upgrade of the same artifact. Versions the registry has since pulled are listed but not scored",
              "packages": [],
              "red_flag": false,
              "assessed_packages": 288,
              "malicious_packages": 0,
              "direct_malicious_packages": 0,
              "withdrawn_malicious_packages": 0,
              "installable_malicious_packages": 0
            },
            "components": [
              {
                "key": "no_dependency_reported_as_a_malicious_package",
                "name": "No dependency reported as a malicious package",
                "detail": "no dependency is reported as a malicious package",
                "points": 100,
                "status": "met",
                "details": [
                  {
                    "code": "no_malicious_dependencies",
                    "params": {}
                  }
                ],
                "max_points": 100
              }
            ]
          },
          {
            "key": "high_risk_jurisdiction_exposure",
            "band": "excellent",
            "name": "High-Risk Jurisdiction Exposure",
            "note": "Only high-confidence self-published location evidence affects this multiplier. Ambiguous matches are review-only; country evidence is not proof of nationality, citizenship, legal registration, malicious intent, or sanctions status.",
            "notes": [
              {
                "code": "jurisdiction_evidence_limits",
                "params": {}
              }
            ],
            "value": 100,
            "inputs": {
              "meaning": "self-published location evidence; not nationality or citizenship",
              "red_flag": false,
              "exposures": [],
              "policy_countries": [
                "Russia",
                "Iran",
                "North Korea"
              ],
              "review_only_matches": 0,
              "assessed_self_published_locations": 5
            },
            "components": [
              {
                "key": "policy_exposure_multiplier",
                "name": "Policy exposure multiplier",
                "detail": "no confirmed policy-scope location match",
                "points": 100,
                "status": "met",
                "details": [
                  {
                    "code": "jurisdiction_no_match",
                    "params": {}
                  }
                ],
                "max_points": 100
              }
            ]
          }
        ],
        "description": "Are visible security and supply-chain practices strong, with no malicious dependency and no unresolved high-risk jurisdiction exposure?"
      },
      {
        "key": "ai_readiness",
        "band": "moderate",
        "name": "AI Readiness",
        "value": 53,
        "weight": 0,
        "metrics": [
          {
            "key": "ai_agent_context",
            "band": "at_risk",
            "name": "Agent context & guidance",
            "note": null,
            "notes": [],
            "value": 40,
            "inputs": {
              "has_llms_txt": false,
              "legible_history_share": 0.974,
              "agent_instruction_files": [],
              "agent_instruction_max_bytes": null
            },
            "components": [
              {
                "key": "agent_instructions",
                "name": "Agent instructions",
                "detail": "no CLAUDE.md / AGENTS.md / editor rules",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "no_agent_instructions",
                    "params": {}
                  }
                ],
                "max_points": 45
              },
              {
                "key": "machine_readable_docs_llms_txt",
                "name": "Machine-readable docs (llms.txt)",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 15
              },
              {
                "key": "legible_commit_history",
                "name": "Legible commit history",
                "detail": "38 of 39 human commits state their intent (structured subject or explanatory body)",
                "points": 40,
                "status": "met",
                "details": [
                  {
                    "code": "legible_history",
                    "params": {
                      "legible": 38,
                      "sampled": 39
                    }
                  }
                ],
                "max_points": 40
              }
            ]
          },
          {
            "key": "ai_verify_loop",
            "band": "moderate",
            "name": "Verify loop (build / test / typecheck)",
            "note": null,
            "notes": [],
            "value": 59,
            "inputs": {
              "has_nix": false,
              "has_tests": true,
              "lockfiles": [
                "uv.lock"
              ],
              "has_dockerfile": true,
              "typed_language": false,
              "bootstrap_files": [],
              "has_devcontainer": false,
              "has_linter_config": true,
              "typecheck_configs": [],
              "agent_commit_share": 0,
              "toolchain_manifests": [],
              "dependency_bot_commit_share": 0.61
            },
            "components": [
              {
                "key": "one_command_bootstrap",
                "name": "One-command bootstrap",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 18
              },
              {
                "key": "automated_tests",
                "name": "Automated tests",
                "detail": null,
                "points": 22,
                "status": "met",
                "details": [],
                "max_points": 22
              },
              {
                "key": "lint_format_config",
                "name": "Lint / format config",
                "detail": null,
                "points": 11,
                "status": "met",
                "details": [],
                "max_points": 11
              },
              {
                "key": "static_type_checking",
                "name": "Static type checking",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 11
              },
              {
                "key": "reproducible_environment",
                "name": "Reproducible environment",
                "detail": "Dockerfile, lockfile",
                "points": 10,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "Dockerfile, lockfile"
                    }
                  }
                ],
                "max_points": 10
              },
              {
                "key": "demonstrated_agent_practice",
                "name": "Demonstrated agent practice",
                "detail": "no agent-authored commits among the last 100",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "no_agent_authored_commits",
                    "params": {
                      "sampled": 100
                    }
                  }
                ],
                "max_points": 10
              },
              {
                "key": "automated_maintenance",
                "name": "Automated maintenance",
                "detail": "61 of the last 100 commits are automated dependency updates",
                "points": 8,
                "status": "met",
                "details": [
                  {
                    "code": "dependency_bot_commits",
                    "params": {
                      "count": 61,
                      "sampled": 100
                    }
                  }
                ],
                "max_points": 8
              },
              {
                "key": "openssf_scorecard_pinned_dependencies",
                "name": "OpenSSF Scorecard: Pinned-Dependencies",
                "detail": "dependency not pinned by hash detected -- score normalized to 8",
                "points": 8,
                "status": "partial",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "ai_code_legibility",
            "band": "moderate",
            "name": "Code legibility for models",
            "note": null,
            "notes": [],
            "value": 55,
            "inputs": {
              "primary_language": "Python",
              "largest_source_bytes": 41177,
              "source_files_sampled": 46,
              "oversized_source_files": 0
            },
            "components": [
              {
                "key": "type_checkable_code",
                "name": "Type-checkable code",
                "detail": "Python without a type-check config",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "no_typecheck_config_language",
                    "params": {
                      "language": "Python"
                    }
                  }
                ],
                "max_points": 45
              },
              {
                "key": "manageable_file_sizes",
                "name": "Manageable file sizes",
                "detail": "0/46 source files over 60KB",
                "points": 55,
                "status": "met",
                "details": [
                  {
                    "code": "oversized_source_files",
                    "params": {
                      "kb": 60,
                      "sampled": 46,
                      "oversized": 0
                    }
                  }
                ],
                "max_points": 55
              }
            ]
          },
          {
            "key": "ai_interfaces",
            "band": "moderate",
            "name": "Machine-readable interfaces",
            "note": null,
            "notes": [],
            "value": 60,
            "inputs": {
              "example_dirs": [
                "examples"
              ],
              "has_mcp_signal": true,
              "api_schema_files": []
            },
            "components": [
              {
                "key": "api_schema_openapi_graphql_proto",
                "name": "API schema (OpenAPI/GraphQL/proto)",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 40
              },
              {
                "key": "mcp_server",
                "name": "MCP server",
                "detail": null,
                "points": 20,
                "status": "met",
                "details": [],
                "max_points": 20
              },
              {
                "key": "runnable_examples",
                "name": "Runnable examples",
                "detail": "examples",
                "points": 40,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "examples"
                    }
                  }
                ],
                "max_points": 40
              }
            ]
          }
        ],
        "description": "How well is the repo equipped to be developed and maintained with AI coding agents? An independent, experimental badge — weight 0.0, so it is surfaced on its own and does not affect the overall health score."
      }
    ],
    "metrics_version": "1.13.0"
  },
  "warnings": [
    "deps.dev does not index pypi:mcp-proxy-for-aws@1.6.4; advisories assessed against the repository dependency graph instead"
  ],
  "report_type": "repository",
  "generated_at": "2026-07-21T21:03:56.758741Z",
  "schema_version": "0.23.0",
  "badge_url": "https://raw.githubusercontent.com/inspect-software/badges/main/v1/a/aws/mcp-proxy-for-aws.svg",
  "full_name": "aws/mcp-proxy-for-aws",
  "license_state": "standard",
  "license_spdx": "Apache-2.0"
}

Scores are signals, not warranties. They reflect publicly visible practices on GitHub — not a code audit, and not a security guarantee.

Missing data is excluded and weights renormalized, never scored as zero. Methodology is versioned and open: metrics v1.13.0, schema v0.23.0 — full methodology · metrics wiki.

How one result sits in the wider record: aggregate statisticsPyPI.