Releases: astronomer/agents
astro-airflow-mcp 0.7.0
stable release of the PAT-auth rewrite (#204) plus the OSError follow-up (#205)
what's new since 0.6.4
af instance discover astronow reuses the user'sastro loginsession via Auth0 refresh-token exchange instead of minting permanentDEPLOYMENT_ADMINtokens. discovered deployments useauth.kind = astro_patand never write tokens to af's config- existing
kind = tokenandkind = basicinstances keep working unchanged (backward compatible) - 401-retry path with one forced refresh, debounced to once per 60s
- rotated refresh tokens are persisted back to
~/.astro/config.yamlunder flock so the astro CLI's own session doesn't break astro_contextis always pinned at discover time (avoids cross-tenant token leak afterastro context switch)- naive
expiresinstrings are anchored to UTC (defense in depth) _read_yamlcatchesFileNotFoundError,NotADirectoryError,IsADirectoryErrorso non-fileASTRO_HOMEpaths surface clean "run astro login" errors instead of masked version-detect failures
verification
- 490 unit tests pass; CI green across all matrix entries (py3.10/11/12, AF2/AF3 integration)
- full break battery (~30 scenarios) ran clean against 0.7.0a1 and 0.7.0a2
- end-to-end with otto agent against an AF3 cloud deployment AND a local AF2 standalone
- no deployment tokens minted across all testing
install
uvx --from 'astro-airflow-mcp==0.7.0' af
upgrade notes
- if you have existing af config with deployment tokens minted by the old
af instance discover astro, those continue to work. you can leave them alone, or re-run discover (it'll overwrite as PAT-backed instances if you pass--overwrite) - existing
af-discover-*tokens left in your astro deployments are now orphans. revoke them in the astro UI when convenient
astro-airflow-mcp 0.7.0a2 (alpha)
follow-up alpha bundling the OSError fix from #205 on top of 0.7.0a1
what's new since 0.7.0a1
_read_yamlnow catches the specific OSError shapes that mean "no readable astro config" (FileNotFoundError,NotADirectoryError,IsADirectoryError) instead of leaking through todetect_versionas a masked "Failed to detect Airflow version" (#205)PermissionErrorand other unexpected OS errors propagate so they surface clearly instead of dead-ending at "run astro login"
install
uvx --from 'astro-airflow-mcp==0.7.0a2' af
astro-airflow-mcp 0.7.0a1 (alpha)
alpha release of the PAT-auth rewrite (PR #204) for testing in otto before promoting to 0.7.0 stable
what's new
af instance discover astronow reuses the user'sastro loginsession via Auth0 refresh-token exchange instead of minting permanentDEPLOYMENT_ADMINtokens- new
auth.kind = astro_patin instance config; existingtoken/basicinstances keep working unchanged - 401-retry path with one forced refresh, debounced to once per 60s
- rotated refresh tokens are persisted back to ~/.astro/config.yaml under flock so the astro CLI's own session doesn't break
- naive
expiresinstrings are anchored to UTC (defense in depth against hand-edits)
install
uvx --from 'astro-airflow-mcp==0.7.0a1' af
why alpha
cutting an alpha to validate end-to-end with otto's wrapper (which pins af via uvx) before promoting to 0.7.0
astro-airflow-mcp-0.6.4
What's Changed
- Detect paused DAG in
runs trigger-waitby @jlaneve in #190 - af CLI: treat empty AIRFLOW_API_URL as explicit no-op by @jlaneve in #191
- af CLI: Don't crash when AF_CONFIG points to a non-regular file by @kaxil in #193
- Fix list_dag_runs (MCP tool + af CLI) returning oldest runs first by @JoaVirtudes19 in #192
New contributors
- @JoaVirtudes19 made their first contribution in #192
Full Changelog: astro-airflow-mcp-0.6.3...astro-airflow-mcp-0.6.4
astro-airflow-mcp-0.6.3
What's Changed
- Expand plugin mode docs with Astro auth, roles, and troubleshooting by @tayloramurphy in #184
- Add Airflow 2.x plugin mode support for MCP server by @kaxil in #186
Full Changelog: astro-airflow-mcp-0.6.2...astro-airflow-mcp-0.6.3
astro-airflow-mcp-0.6.2
What's Changed
Full Changelog: astro-airflow-mcp-0.6.1...astro-airflow-mcp-0.6.2
astro-airflow-mcp 0.6.1
astro-airflow-mcp-0.6.0
What's New
af registry — Query the Airflow Provider Registry (#145)
Four new CLI commands for browsing the Airflow Provider Registry directly from your terminal — no running Airflow instance required:
af registry providers— List all providers (id, name, version, lifecycle)af registry modules <provider>— List operators, hooks, sensors, and transfersaf registry parameters <provider>— Show constructor parameters for provider classesaf registry connections <provider>— Show connection types and their fields
Supports --version to pin to a specific provider release, and results are cached locally (1h for latest, 30d for versioned snapshots). Use --no-cache to bypass.
af registry modules amazon | jq '.modules[] | select(.type == "hook") | .name'
af registry parameters ftp | jq '.classes | keys[]'Improvements
- Add
dag_idfilter tolist_dag_runsMCP tool (#163) - Clarify
get_dag_statsrequiresdag_idsas a list (#162)
Fixes
- Make discovery token names user-specific to avoid collisions (#156)
- Fix airflow-adapter skill frontmatter (#147)
Full Changelog: astro-airflow-mcp-0.5.1...astro-airflow-mcp-0.6.0
astro-airflow-mcp-0.5.1
What's Changed
- Improve agent detection by @schnie in #141
- Separate agent and ci_system properties by @schnie in #142
Full Changelog: astro-airflow-mcp-0.5.0...astro-airflow-mcp-0.5.1
astro-airflow-mcp-0.5.0
What's Changed
- fix: loading hooks when running --plugin-dir by @milton-li in #102
- Ensures efficient uvx cache usage of airflow mcp package by @schnie in #100
- fix: remove doctoc TOCs from skill reference files by @kaxil in #107
- Improve authoring-dags skill based on early user feedback by @tayloramurphy in #104
- Adds
afCLI telemetry by @schnie in #106 - Use
afcli in skills by @milton-li in #108 - docs: add missing skills to README by @tayloramurphy in #112
- Refactor skill hooks and flatten analyzing-data scripts by @milton-li in #113
- docs: add shared utility imports breaking change to Airflow 2→3 migration by @tayloramurphy in #111
- Rename init skill to warehouse-init by @kaxil in #114
- Add BigQuery job labels support and fix location parameter bug by @kaxil in #118
- Add Snowflake query_tag support by @kaxil in #119
- Add Postgres application_name support by @kaxil in #120
- Fix
cosmos-dbt-core/SKILL.mdby @tatiana in #122 - Further improve Cosmos skills by @tatiana in #123
- feat: add deployment management agents by @kh3dron in #121
- fix: add SSL certificate verification bypass for self-signed certs by @kaxil in #126
- Automatically unpause DAGs before triggering by @josh-fell in #127
- docs: clarify Snowflake account identifier format by @josh-fell in #130
- Removes write keys by @schnie in #128
- feat: add
af runs deleteandaf runs clearcommands by @tayloramurphy in #129 - Migrate to prek.toml configuration for static checks by @josh-fell in #131
- Add telemetry tracking for MCP tool calls by @schnie in #134
- Move telemetry config into config.yaml by @schnie in #135
- Migrate from mypy to ty for type checking by @josh-fell in #133
- Address Copilot feedback on type safety by @kaxil in #139
- Implement AF_READ_ONLY Mode to Block Write Operations by @igorastronomer in #138
New Contributors
Full Changelog: plugin-0.2.0...astro-airflow-mcp-0.5.0