Skip to main content
Astro provides Model Context Protocol (MCP) servers that allow AI models and agents to securely access your Astro and Airflow resources. Connect to MCP servers natively or by using the mcp-remote module in compatible AI clients. For enhanced agent capabilities such as Dag authoring, testing, and debugging, see the Astronomer AI Agent tooling repository.

MCP servers

Astro provides the following MCP servers:
  • Astro MCP server (astro) is an authenticated remote MCP server for accessing your Astro control plane, including Deployments, Workspaces, environment objects, and Organization settings. It signs you in with your own Astro credentials and respects your existing permissions. This server replaces the deprecated Astro Cloud MCP server.
  • Astro Registry MCP server (astro-registry) is an experimental remote MCP server for accessing the Astro Registry.
  • Astro Cloud MCP server (astro-cloud) is deprecated and replaced by the Astro MCP server. See the following warning.
Astro Cloud MCP server deprecationThe Astro Cloud MCP server (astro-cloud) is deprecated and shouldn’t be used. It’s replaced by the Astro MCP server. Migrate any existing astro-cloud configuration to the new server. Unlike astro-cloud, which required an Organization ID and an API token, the Astro MCP server signs you in with your Astro credentials.

Set up the Astro MCP server

LabsThis feature is in Labs. Contact your account team to enable this feature.
The Astro MCP server currently provides read access to your Astro control plane: Deployments, Workspaces, environment objects (connections and variables), and Organization settings. It also provides Otto skills over the same connection, such as Airflow upgrade planning and the investigation agent.
Claude Code connects to remote MCP servers natively without the mcp-remote module.
The first time you use a tool from the server, your client opens a browser window so you can sign in with your Astro credentials.
You can also connect through an internal AI gateway if your organization uses one. Contact your Astronomer account team for details.

Set up the Astro Registry MCP server

PreviewThis feature is in Preview.
If you experience any issues, try restarting your client or disabling and re-enabling the Astro MCP server connection.
  1. Open Windsurf settings with CTRL/CMD + ,.
  2. Navigate to Cascade > Manage plugins.
  3. Select View raw config.
  4. Add the following configuration:
  5. Click Save to save your configuration and check the Plugins section to verify that your server is connected.

Airflow MCP plugin

The Airflow MCP plugin (astro-airflow-mcp) is an open-source package that installs directly into an Airflow Deployment and exposes an MCP endpoint on the webserver. This gives AI tools direct access to Airflow’s REST API — Dags, task logs, connections, variables, and more — without running a separate server. Unlike the Astro MCP server (which manages Astro-level resources like Deployments and Workspaces), the Airflow MCP plugin provides Airflow-level access for a single Deployment: listing Dags, viewing task logs, inspecting connections, diagnosing failures, and more. The plugin auto-detects the installed Airflow version and registers the appropriate integration:
  • Airflow 3.x: Mounts as a FastAPI app on the API server.
  • Airflow 2.x (2.4 or later): Registers as a Flask blueprint on the webserver.

Prerequisites

  • An Airflow Deployment on Astro. The plugin supports Airflow 3.x (Runtime 3.1 or later) and Airflow 2.x (2.4 or later).
  • A Deployment API token with a role that allows POST requests (required by the MCP protocol). See Configure authentication for role options.

Install the plugin

Add astro-airflow-mcp to your Astro project’s requirements.txt:
Deploy the change. The package auto-registers as an Airflow plugin — no Dockerfile changes or additional configuration needed.

Set environment variables

After deploying, set the following environment variable on your Deployment to block write operations:
In plugin mode, the MCP server always runs in stateless HTTP mode, so Claude Code and other MCP clients work without additional configuration. The FASTMCP_STATELESS_HTTP environment variable applies only when running the MCP server as a standalone process.

Configure authentication

The MCP protocol uses POST requests for all operations, including read-only ones. Your Deployment API token does not need write permissions for read-only MCP access: authorization is still based on the underlying Airflow permissions, so a custom role with read permissions such as *.get is sufficient. The important exception is WORKSPACE_MEMBER, which Astro’s auth proxy blocks from making the POST requests the MCP protocol requires.

Option A: Use a built-in role

Create a Deployment API token with one of the following roles:
  • DEPLOYMENT_ADMIN — Full access (works but overprivileged)
  • WORKSPACE_OPERATOR or WORKSPACE_AUTHOR — Moderate privilege
WORKSPACE_MEMBER does not work with the MCP plugin. Astro’s auth proxy blocks POST requests for this role, which prevents the MCP protocol handshake from completing.
For least-privilege access, create a custom Deployment role that includes only read permissions. This ensures the token can use all MCP read tools but cannot modify any Airflow resources.
  1. In the Astro UI, go to Settings, then in the Access Management section, click Roles & Permissions, click Custom, then click + New Custom Role (in the legacy UI, go to Organization Settings > Access Management > Roles, then click + Add Role).
  2. Set the Scope to Deployment.
  3. Name the role MCP_VIEWER with a description like “Read-only access for Airflow MCP plugin.”
  4. Select all deployment.airflow.*.get permissions. See Custom role permissions reference for the full list. The role should include these 28 permissions:
  5. Click Create role.
Then create a Deployment API token with the new role:

Connect your MCP client

After the plugin is deployed and a token is created, the MCP endpoint is available at:
You can find your Deployment’s webserver URL in the Astro UI on the Deployment’s overview page.
Use -t http, not -t sse. The MCP endpoint returns SSE-formatted responses, but the correct Claude Code transport type is http. Using -t sse causes the connection to fail.

Troubleshooting