Публічний реєстр
Звіт про здоров'я програмного забезпеченнясхема 0.23.0 · метрики 1.13.0 · 2026-07-21 21:03 UTC

aws / mcp-proxy-for-aws

AWS MCP Proxy Server

PythonApache-2.0★ 327 зірок⑂ 55 форківз вер. 2025 р.Переглянути на GitHub ↗

aws/mcp-proxy-for-aws має індекс здоров’я 83 зі 100, що відповідає смузі «Добрий». Найвищий показник — Vitality (94/100), найнижчий — AI Readiness (53/100). Останнє оновлення — сьогодні. Більшість нещодавньої роботи виконують 3 учасники.

83
загалом / 100
Добрий

Індекс здоров'я програмного забезпечення

Метрики згруповано у зважені категорії на шкалі 1–100. Загальна оцінка починається як їхнє середнє; коли публічні дані активують Політику юрисдикцій високого ризику, рейтинг коригується й отримує верхню межу 49 («Під ризиком»). Готовність до ШІ не входить до індексу.

83
Відмінний85-100Зразковий; відповідає практично всім перевіреним критеріям
Добрий70-84Здоровий; незначні прогалини
Помірний50-69Прийнятний, але з помітними прогалинами; рекомендовано перевірку
У зоні ризику30-49Суттєві слабкі місця; впровадження потребує обережності
Критичний1-29Серйозні проблеми (покинутий, єдиний мейнтейнер, без базової гігієни)
ЖиттєздатністьСпільнота тавпровадженняСталість таврядуванняІнженернаякістьБезпекаГотовність доШІ

Профіль оцінок

Кожна вісь — окрема категорія. Форма важить більше, ніж середнє: здоровий об'єкт заповнює всю фігуру, тоді як профіль із піками та провалами означає, що сила в одному вимірі маскує ризик в іншому.

Власність

Amazon Web ServicesОрганізація
16 125 підписників552 публічні репозиторіїз серп. 2012 р.

За цим репозиторієм стоїть організація — спільна, підзвітна опіка, здатна пережити будь-якого окремого мейнтейнера.

Пакетні екосистеми

РеєстрПакетВерсіяЗавантажень / місВерсіїОстання публікація
PyPImcp-proxy-for-aws1.6.42 038 100201 день тому

Метрики за категоріями

Життєздатність

Чи живий проєкт — чи пишеться код і чи виходять релізи?

94Відмінний · 22% загального індексу
Як обчислюється оцінка
36/36Свіжість push — останній push 0 дн. тому
25.6/36Ритм комітів — 37/52 тижнів із комітами
18/18Обсяг комітів — 262 комітів за останній рік
10/10OpenSSF Scorecard: Maintained — 30 commit(s) and 2 issue activity found in the last 90 days -- score normalized to 10
Використані вхідні дані
commits_last_year262
human_commit_share0,39
days_since_last_push0
active_weeks_last_year37
Як обчислюється оцінка
27/27Випускає релізи — опубліковано 18 релізів
36/36Свіжість релізів — останній реліз 1 дн. тому
27/27Ритм релізів — реліз кожні ~11,2 дн.
0/10OpenSSF Scorecard: Signed-Releases — немає даних
Використані вхідні дані
releases_count18
latest_release_tagv1.6.4
releases_from_tagsні
days_since_latest_release1
mean_days_between_releases11,2
Виключено з оцінювання (немає даних або не застосовно): OpenSSF Scorecard: Signed-Releases. Залишкові ваги перенормовано.

Спільнота та впровадження

Чи має проєкт користувачів, завантаження, увагу та влаштовані умови для контриб’юторів?

81Добрий · 18% загального індексу
Як обчислюється оцінка
40.8/60Зірки — 327 зірок
14.4/25Форки — 55 форків
4.7/15Спостерігачі — 8 спостерігачів
Використані вхідні дані
forks55
stars327
watchers8
growth_stateorganic
growth_factor_pct100
Як обчислюється оцінка
22.5/22.5README
22.5/22.5Ліцензія — визнана ліцензія (Apache-2.0)
18/18Настанови CONTRIBUTING
13.5/13.5Кодекс поведінки
0/7.2Шаблон issue
6.3/6.3Шаблон PR
Використані вхідні дані
has_readmeтак
has_licenseтак
has_contributingтак
has_issue_templateні
has_code_of_conductтак
has_pull_request_templateтак
Як обчислюється оцінка
80/80Щомісячні завантаження — 2 038 100 завантажень/місяць у pypi
0/20Залежні пакети в реєстрі — ця екосистема цього не повідомляє
Використані вхідні дані
packagesmcp-proxy-for-aws
dependents
ecosystemspypi
total_downloads
monthly_downloads2 038 100
Виключено з оцінювання (немає даних або не застосовно): Залежні пакети в реєстрі. Залишкові ваги перенормовано.

Сталість та врядування

Чи переживе проєкт своїх людей — бас-фактор, реактивність, хто за ним стоїть і як супроводжуються пакети?

80Добрий · 24% загального індексу
Як обчислюється оцінка
36/54Бас-фактор — на 3 контриб’ютор(ів) припадає половина всіх комітів
18/22.5Розподіл комітів — головний контриб’ютор — автор 20% комітів
13.5/13.5Широта контриб’юторів — 19 контриб’юторів
3/10OpenSSF Scorecard: Contributors — project has 1 contributing companies or organizations -- score normalized to 3
Використані вхідні дані
bus_factor3
contributors_sampled19
top_contributor_share0,199
Як обчислюється оцінка
32.7/46.8Вирішення issue — закрито 70% issue
30/38.3Прийняття PR — злито 260/332 вирішених PR
15/15OpenSSF Scorecard: Code-Review — all changesets reviewed
Використані вхідні дані
merged_prs260
open_issues9
closed_issues21
issue_closed_ratio0,7
closed_unmerged_prs72
Як обчислюється оцінка
30/30Підтримка власника — у власності організації
0/20Верифікований домен
25/25Охоплення власника — 16 125 підписників у aws
25/25Послужний список — 552 публічних репозиторіїв, вік облікового запису ~13 р.
Використані вхідні дані
followers16 125
owner_typeOrganization
is_verified
owner_loginaws
public_repos552
account_age_days5 075

Супровід пакетів

100Відмінний
Як обчислюється оцінка
25/25Опубліковано й доступно — 1 пакет(ів) у pypi
35/35Свіжість публікацій — остання публікація 1 дн. тому
20/20Історія версій — 20 опублікованих версій
20/20Не застарілий — активний, не deprecated і не yanked
Використані вхідні дані
packagesmcp-proxy-for-aws
ecosystemspypi
any_deprecatedні
min_days_since_publish1

Інженерна якість

Чи наявні базові інженерні практики та документація?

76Добрий · 20% загального індексу
Як обчислюється оцінка
24/24Процеси CI — 10 процес(ів) CI
24/24Наявні тести
16/16Конфігурація лінтера
9.6/9.6Pre-commit-хуки
0/6.4.editorconfig
20/20OpenSSF Scorecard: CI-Tests — 30 out of 30 merged PRs checked by a CI test -- score normalized to 10
Використані вхідні дані
has_ciтак
has_testsтак
has_editorconfigні
has_linter_configтак
has_precommit_configтак

Документація

50Помірний
Як обчислюється оцінка
30/30README
0/25Каталог документації
0/15Сайт документації / домашня сторінка
10/10Опис репозиторію
10/10Теми — 4 тем
0/10Wiki
Використані вхідні дані
topicsaws, mcp, proxy, sigv4
has_wikiні
homepage
has_readmeтак
has_docs_dirні
has_descriptionтак

Безпека

Чи міцні видимі практики безпеки й ланцюга постачання, без непослабленої пов’язаності з юрисдикціями високого ризику?

82Добрий · 16% загального індексу
Як обчислюється оцінка
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.5Ліцензія — 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 — немає даних
0/7.5Token-Permissions — detected GitHub workflow tokens with excessive permissions
5.2/7.5Vulnerabilities — 3 existing vulnerabilities detected
Використані вхідні дані
sourceopenssf_scorecard
checks_evaluated17
scorecard_versionv5.5.0
checks_inconclusive1
scorecard_aggregate7,8
Виключено з оцінювання (немає даних або не застосовно): signed_releases. Залишкові ваги перенормовано.
Як обчислюється оцінка
35/35Прямі залежності без відомих сповіщень — жодна пряма залежність не має відомих сповіщень
0/25Непрямі залежності без відомих сповіщень — транзитивний набір не відокремлюється від залежностей розробки й тестування в цьому обсязі
0/40Немає задавнених сповіщень — жодне сповіщення не має дати публікації
Використані вхідні дані
sourceosv
advisories4
affected_packages2
assessed_packages288
unassessed_packages12
affected_by_severityhigh 1, moderate 1
direct_affected_packages0
Виключено з оцінювання (немає даних або не застосовно): Непрямі залежності без відомих сповіщень, Немає задавнених сповіщень. Залишкові ваги перенормовано. Звірено 288 резолвлених залежностей із OSV. 12 не вдалося оцінити — немає резолвленої версії, непідтримувана екосистема або поза межами звітованого переліку пакетів. Цей репозиторій не публікує пакета, який резолвить індекс, тож натомість оцінено граф залежностей репозиторію. Цей граф змішує закріплені версії для розробки й тестування зі справді постачаними залежностями, тож оцінюються лише задекларовані runtime-залежності; транзитивні знахідки подаються як контекст і в оцінку не входять. Досяжність не аналізується.

Готовність до ШІ

Наскільки репозиторій оснащений для розробки та супроводу за участі ШІ-агентів? Незалежний, експериментальний бейдж — вага 0.0, тож він подається окремо і не впливає на загальний індекс здоров'я.

53Помірний · 0% загального індексу
Як обчислюється оцінка
0/45Інструкції для агентів — немає CLAUDE.md / AGENTS.md / правил редактора
0/15Машиночитана документація (llms.txt)
40/40Читабельна історія комітів — намір зазначено у 38 з 39 людських комітів (структурований заголовок або пояснювальний текст)
Використані вхідні дані
has_llms_txtні
legible_history_share0,974
agent_instruction_files
agent_instruction_max_bytes
Як обчислюється оцінка
0/18Розгортання однією командою
22/22Автоматизовані тести
11/11Конфігурація лінтера / форматера
0/11Статична перевірка типів
10/10Відтворюване середовище — Dockerfile, lockfile
0/10Підтверджена практика роботи з агентами — серед останніх 100 комітів немає створених агентом
8/8Автоматизоване супроводження — 61 з останніх 100 комітів — автоматичні оновлення залежностей
8/10OpenSSF Scorecard: Pinned-Dependencies — dependency not pinned by hash detected -- score normalized to 8
Використані вхідні дані
has_nixні
has_testsтак
lockfilesuv.lock
has_dockerfileтак
typed_languageні
bootstrap_files
has_devcontainerні
has_linter_configтак
typecheck_configs
agent_commit_share0
toolchain_manifests
dependency_bot_commit_share0,61
Як обчислюється оцінка
0/45Типізований код — Python без конфігурації перевірки типів
55/55Керовані розміри файлів — 0/46 файлів вихідного коду понад 60 КБ
Використані вхідні дані
primary_languagePython
largest_source_bytes41 177
source_files_sampled46
oversized_source_files0
Як обчислюється оцінка
0/40Схема API (OpenAPI/GraphQL/proto)
20/20Сервер MCP
40/40Придатні до запуску приклади — examples
Використані вхідні дані
example_dirsexamples
has_mcp_signalтак
api_schema_files

Ключові факти

327зірок GitHub
19контриб'юторів
262комітів за останні 12 місяців
0днів від останнього пушу
18релізів
3бас-фактор
9відкритих issue
PyPIпакетних екосистем

Попередження щодо збору даних

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

Докладніше

Історія зірок і форків 327 ★ / 55 ⇿
327Зірки
55Форки
18Релізи

Коли додано кожну зірку й форк — зібрано з GitHub і згруповано за днями. Кумулятивне зростання розміщено просто над денними додаваннями, з яких воно складається, тож їх видно одне проти одного: рівномірне органічне накопичення виглядає зовсім інакше, ніж різкий короткочасний сплеск. Там, де цю різницю можна виміряти, її подано як автентичність росту.

012525037532755342025-092026-022026-07
Мажорні 0Мінорні 6Патчі 12
OpenSSF Scorecard 7.8 / 10
7.8сукупно

Незалежна, не прив'язана до інструментів оцінка безпеки від відкритого проєкту OpenSSF Scorecard. Кожна перевірка винагороджує практику безпеки, а не інструмент конкретного постачальника. Перевірки, які Scorecard не зміг визначити, позначено н/д і виключено з оцінки безпеки (вони ніколи не зараховуються як нуль).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
н/дSigned-Releasesno releases found
0Token-Permissionsdetected GitHub workflow tokens with excessive permissions
7Vulnerabilities3 existing vulnerabilities detected
Прямі залежності 3
РеєстрПакетОбмеження версіїМаніфест
PyPIfastmcp>=3.2,<3.5pyproject.toml
PyPIboto3>=1.41.0pyproject.toml
PyPIbotocore>=1.41.0pyproject.toml
Усі залежності 300

Повний розв'язаний набір залежностей із графа залежностей GitHub: 5 прямих і 295 непрямих (транзитивних) пакетів. Транзитивне замикання є повним, коли в репозиторії закомічено lockfile.

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

Цей репозиторій не публікує пакета, який розпізнає індекс, тож оцінено його власний граф залежностей — 288 пакетів, серед яких є й піниї розробки та тестування, що ніколи не постачаються: 2 мають відомі сповіщення, з них 0 прямі. 12 не вдалося оцінити — немає резолвленої версії, непідтримувана екосистема або поза наведеним переліком пакетів.

ПакетВерсіяЗв'язокКритичністьСповіщеньВиправлено в
pyasn10.6.3непрямависока20.6.4
setuptools80.9.0непрямапомірна283.0.0

Сповіщення означає, що версія, записана в графі залежностей, потрапляє в уражений діапазон. Досяжність не аналізується, а граф містить піниї розробки й тестування — знахідка може стосуватися інструментів, а не поставленого коду.

Звіт у форматі JSON машиночитний
{
  "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"
}

Оцінки — це сигнали, а не гарантії. Вони відображають публічно видимі практики на GitHub — це не аудит коду й не гарантія безпеки.

Відсутні дані виключаються, а ваги перенормовуються — нуль за відсутність ніколи не ставиться. Методологія версіонована й відкрита: метрики v1.13.0, схема v0.23.0 — повна методологія · вікі метрик.

Як окремий результат виглядає на тлі всього реєстру: сукупна статистикаPyPI.