Skip to main content
Glama
gabcoyne

airflow-unfactor

by gabcoyne

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault

No arguments

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": true
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
extensions
{
  "io.modelcontextprotocol/ui": {}
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
read_dagA

Read an Airflow DAG file and return raw source with metadata.

Accepts a file path or inline content. Returns the source code, file path, size, and line count. The LLM reads the code directly.

Args: path: Path to a DAG file on disk. content: Inline DAG source code.

Returns: JSON with source, file_path, file_size_bytes, line_count — or error.

lookup_conceptA

Look up Airflow→Prefect translation knowledge for a concept.

Searches Colin-compiled knowledge for operators, patterns, connections, and core concepts. Falls back to built-in mappings if Colin output is not available.

Args: concept: The Airflow concept to look up (e.g. "PythonOperator", "XCom", "TaskGroup", "postgres_default").

Returns: JSON with concept_type, airflow info, prefect_equivalent, translation_rules, and source ("colin" or "fallback").

search_prefect_docsA

Search current Prefect documentation via the Prefect MCP server.

For real-time queries beyond what Colin pre-compiled. Returns search results or an error with suggestion to run 'colin run'.

Args: query: Search query for Prefect docs.

Returns: JSON with search results or error.

validateA

Validate a converted Prefect flow against the original Airflow DAG.

Returns both source files for comparison plus a syntax check on the generated code. You perform the structural comparison.

Args: original_dag: Path or inline content of the original DAG. converted_flow: Path or inline content of the generated flow.

Returns: JSON with original_source, converted_source, syntax_valid, syntax_errors, and comparison_guidance.

scaffoldA

Generate a Prefect project directory structure.

Creates the project skeleton following prefecthq/flows conventions. Does NOT generate flow code - that's for the LLM to do.

Args: output_directory: Where to create the project project_name: Project name (defaults to directory name) workspace: Workspace name for deployments// structure flow_names: List of flow names to create directories for include_docker: Include Dockerfile template include_github_actions: Include CI workflow template schedule_interval: Cron string, preset (@daily etc.), seconds, or None.

Returns: JSON with created_directories, created_files, prefect_yaml_template, next_steps

generate_deploymentA

Write prefect.yaml deployment configuration from DAG metadata.

Call after generating flow.py. Produces a complete prefect.yaml with YAML anchors, schedule config, parameter defaults, and TODO stubs for work pool and pull step configuration.

Args: output_directory: Directory to write prefect.yaml into. flows: List of flow dicts. Each requires flow_name and entrypoint. Optional fields: schedule (cron/interval/None), parameters (dict of name→default), description, tags, dataset_triggers. workspace: Workspace name (default: "default").

Returns: JSON with created_file, deployment_names, next_steps.

generate_migration_reportA

Write MIGRATION.md — human-readable record of a DAG conversion.

Call as the final step after generate_deployment. Documents every conversion decision, produces a before-production checklist with Prefect doc links, and suggests adding the Prefect MCP server.

Args: output_directory: Directory to write MIGRATION.md into. dag_path: Path to the original Airflow DAG file. flow_path: Path to the generated Prefect flow file. decisions: List of dicts, each with: component, outcome, rationale (optional), manual_action (optional). manual_actions: Top-level action types not tied to a specific component (e.g. "setup_work_pool", "migrate_connections").

Returns: JSON with created_file, checklist_items_count.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/gabcoyne/airflow-unfactor'

If you have feedback or need assistance with the MCP directory API, please join our Discord server