Agent skill

cli

Prefect CLI commands for mutations. The MCP server is read-only - use this skill when you need to trigger deployments, cancel flow runs, create automations, or modify Prefect resources.

Stars 163
Forks 31

Install this agent skill to your Project

npx add-skill https://github.com/majiayu000/claude-skill-registry/tree/main/skills/productivity/cli-prefecthq-prefect-mcp-server

SKILL.md

Prefect CLI

The MCP server is read-only. For mutations, use the CLI.

Critical: Agent-Friendly Usage

The CLI is designed for interactive terminal use. For non-interactive (agent) use:

bash
# ALWAYS use --no-prompt as a TOP-LEVEL flag to disable confirmations
prefect --no-prompt flow-run delete <uuid>
prefect --no-prompt deployment delete <name>

Avoiding Truncated Output

Rich table output truncates IDs and names, making them useless. Solutions:

bash
# Use `prefect api` for raw JSON (preferred for agents)
prefect api POST /flow_runs/filter --data '{"limit": 5}'

# Use inspect with -o json for single resources
prefect flow-run inspect <uuid> -o json
prefect deployment inspect <name> -o json

IDs Must Be Complete UUIDs

Partial IDs don't work. Always get full UUIDs from JSON output:

bash
# Get full flow run ID
prefect api POST /flow_runs/filter --data '{"limit": 1}' | jq -r '.[0].id'

Common Mutations

Task Command
Trigger deployment prefect deployment run 'flow-name/deployment-name'
Trigger by ID prefect deployment run --id <deployment-uuid>
Cancel flow run prefect --no-prompt flow-run cancel <uuid>
Delete flow run prefect --no-prompt flow-run delete <uuid>
Delete deployment prefect --no-prompt deployment delete <name>

Direct API Access

prefect api gives full API access with JSON output:

bash
# List flow runs (with filters)
prefect api POST /flow_runs/filter --data '{"limit": 10}'

# Filter by state
prefect api POST /flow_runs/filter --data '{"flow_runs": {"state": {"type": {"any_": ["FAILED"]}}}}'

# Delete a flow run
prefect api DELETE /flow_runs/<uuid>

# Cancel a flow run
prefect api POST /flow_runs/<uuid>/set_state --data '{"state": {"type": "CANCELLING"}}'

Automation Creation

Create from JSON string (inline):

bash
prefect automation create --from-json '{
  "name": "notify-on-failure",
  "trigger": {
    "posture": "Reactive",
    "expect": ["prefect.flow-run.Failed"],
    "match": {"prefect.resource.id": "prefect.flow-run.*"}
  },
  "actions": [{"type": "send-notification", ...}]
}'

Or from file:

bash
prefect automation create --from-file automation.yaml

Use get_automations() from the MCP server to inspect existing automation schemas.

Didn't find tool you were looking for?

Be as detailed as possible for better results