Skip to content

Releases: astronomer/agents

astro-airflow-mcp 0.7.0

01 May 19:02
7cbaab4

Choose a tag to compare

stable release of the PAT-auth rewrite (#204) plus the OSError follow-up (#205)

what's new since 0.6.4

  • af instance discover astro now reuses the user's astro login session via Auth0 refresh-token exchange instead of minting permanent DEPLOYMENT_ADMIN tokens. discovered deployments use auth.kind = astro_pat and never write tokens to af's config
  • existing kind = token and kind = basic instances 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.yaml under flock so the astro CLI's own session doesn't break
  • astro_context is always pinned at discover time (avoids cross-tenant token leak after astro context switch)
  • naive expiresin strings are anchored to UTC (defense in depth)
  • _read_yaml catches FileNotFoundError, NotADirectoryError, IsADirectoryError so non-file ASTRO_HOME paths 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)

01 May 18:46
7cbaab4

Choose a tag to compare

Pre-release

follow-up alpha bundling the OSError fix from #205 on top of 0.7.0a1

what's new since 0.7.0a1

  • _read_yaml now catches the specific OSError shapes that mean "no readable astro config" (FileNotFoundError, NotADirectoryError, IsADirectoryError) instead of leaking through to detect_version as a masked "Failed to detect Airflow version" (#205)
  • PermissionError and 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)

01 May 18:11
a064b56

Choose a tag to compare

Pre-release

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 astro now reuses the user's astro login session via Auth0 refresh-token exchange instead of minting permanent DEPLOYMENT_ADMIN tokens
  • new auth.kind = astro_pat in instance config; existing token / basic instances 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 expiresin strings 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

27 Apr 15:14
3f3560c

Choose a tag to compare

What's Changed

  • Detect paused DAG in runs trigger-wait by @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

Full Changelog: astro-airflow-mcp-0.6.3...astro-airflow-mcp-0.6.4

astro-airflow-mcp-0.6.3

16 Apr 21:12
5935c43

Choose a tag to compare

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

14 Apr 13:24
acee1a0

Choose a tag to compare

What's Changed

  • Fix Airflow MCP plugin mode for remote deployments by @kaxil in #183

Full Changelog: astro-airflow-mcp-0.6.1...astro-airflow-mcp-0.6.2

astro-airflow-mcp 0.6.1

13 Apr 18:30
4fc2366

Choose a tag to compare

Bug Fixes

  • Fix env var auth when config file has credentials for a different instance (#181)
  • Fix: remove upstream_failed from TERMINAL_DAG_RUN_STATES (#166)

astro-airflow-mcp-0.6.0

17 Mar 15:16
85d6053

Choose a tag to compare

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 transfers
  • af registry parameters <provider> — Show constructor parameters for provider classes
  • af 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_id filter to list_dag_runs MCP tool (#163)
  • Clarify get_dag_stats requires dag_ids as 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

02 Mar 16:57
9cc4449

Choose a tag to compare

What's Changed

Full Changelog: astro-airflow-mcp-0.5.0...astro-airflow-mcp-0.5.1

astro-airflow-mcp-0.5.0

26 Feb 22:50
e57e436

Choose a tag to compare

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 af CLI telemetry by @schnie in #106
  • Use af cli 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.md by @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 delete and af runs clear commands 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