Bring the evidence. Keep control of the fix.

Install the free local tools

Download the local-only Python wheel · SHA256 manifest. It uses a separate contentsweep_dag_doctor namespace and includes no hosted, account, or billing code.

python -m pip install "contentsweep-dag-doctor[mcp,patching] @ https://mcp.contentsweep.ai/dag-doctor/downloads/contentsweep_dag_doctor-1.0.0-py3-none-any.whl"

Local CLI

dagdoctor review dags/ --airflow-version 3.3.1 --format json
dagdoctor diagnose dags/ --runtime-context incident.json --suggest-patches --format json

Hosted API

Sign in, create an organization API key in the workspace, and send it as X-API-Key or a Bearer token. Upload an object containing files (relative .py filenames mapped to source), runtime_context, optional logs, airflow_version, and suggest_patches.

POST /v1/dag-doctor/uploads
POST /v1/dag-doctor/preview       {"upload_id":"…"}
POST /v1/dag-doctor/quotes        {"upload_id":"…"}
POST /v1/dag-doctor/jobs          {"quote_id":"…","idempotency_key":"…"}
GET  /v1/dag-doctor/jobs/{id}
GET  /v1/dag-doctor/jobs/{id}/report
DELETE /v1/dag-doctor/uploads/{id}
DELETE /v1/dag-doctor/jobs/{id}

MCP

Connect an HTTP MCP client to /v1/dag-doctor/mcp/ with the same organization key. Preview and quote before starting; preserve the quote and idempotency key on retries.

Limits & retention

Up to 200 Python files, 1 MB per file, 10 MiB source total, 1 MiB logs, and 12 MiB per encoded bundle. Diagnosis runs in a CPU/memory/time-bounded worker. Source and logs expire after 24 hours; reports after seven days; operational receipts after 30 days. Customer files are excluded from metadata backups. Financial identities remain separately for accounting.

Supported evidence

Provide Airflow version, DAG/run/task IDs, state, executor, and task logs. Provider versions and topology refine applicability. Static fixtures are checked for 3.2.0 and 3.3.1; this is not qualification of your scheduler, custom operators, or provider runtime. Numeric confidence is a heuristic, not measured accuracy. Mechanical suggestions are syntax-checked and rerun against the target rule; runtime behavior is not verified.

Review logs before uploading: remove credentials and material you are not authorized to share. Reports may contain your source in proposed edits and remain private to your organization.

Download a synthetic example bundle