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