prefect-mcp-server
OfficialServer Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| PREFECT_API_KEY | No | Prefect Cloud API key (required if PREFECT_API_URL is set and using Cloud) | |
| PREFECT_API_URL | No | Prefect API URL (e.g., https://api.prefect.cloud/api/accounts/[ACCOUNT_ID]/workspaces/[WORKSPACE_ID]) | |
| PREFECT_API_AUTH_STRING | No | Basic auth credentials for Prefect OSS (format: username:password); use instead of PREFECT_API_KEY for open-source servers |
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
| Capability | Details |
|---|---|
| tasks | {
"list": {},
"cancel": {},
"requests": {
"tools": {
"call": {}
},
"prompts": {
"get": {}
},
"resources": {
"read": {}
}
}
} |
| tools | {
"listChanged": true
} |
| logging | {} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| extensions | {
"io.modelcontextprotocol/ui": {}
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| orientationC | Use this tool to get oriented with the Prefect MCP server. |
| get_identityA | Get identity and connection information for the current Prefect instance. Returns API URL, type (cloud/oss), and user information if available. Essential for understanding which Prefect instance you're connected to. |
| get_dashboardB | Get a high-level dashboard overview of the Prefect instance. Returns current flow run statistics, work pool status, and all active concurrency limits (global/tag-based, deployment, work pool, and work queue). Essential for diagnosing flow run delays and bottlenecks. |
| get_deploymentsA | Get deployments with optional filters. Returns compact summaries by default. Filter by specific ID(s) for full detail including parameters, parameter_openapi_schema, job_variables, work_pool details, and recent_runs. Filter operators:
Examples: - List all deployments: get_deployments() - Full detail: get_deployments(filter={"id": {"any_": [""]}}) - Active deployments: get_deployments(filter={"paused": {"eq_": False}}) - Production deployments: get_deployments(filter={"tags": {"all_": ["production"]}}) |
| get_flowsA | Get flows with optional filters. Returns a list of flows registered in the workspace. Filter operators:
Examples: - List all flows: get_flows() - Get specific flow: get_flows(filter={"id": {"any_": [""]}}) - Flows by name pattern: get_flows(filter={"name": {"like_": "etl-%"}}) - Flows by tags: get_flows(filter={"tags": {"all_": ["production"]}}) |
| get_flow_runsA | Get flow runs with optional filters. Returns compact summaries by default. Filter by specific ID(s) for full detail including parameters, inlined deployment info, and work pool info. Filter operators:
Examples: - List recent runs: get_flow_runs() - Get specific run: get_flow_runs(filter={"id": {"any_": [""]}}) - Failed runs: get_flow_runs(filter={"state": {"type": {"any_": ["FAILED"]}}}) - Production runs: get_flow_runs(filter={"tags": {"all_": ["production"]}}) |
| get_flow_run_logsA | Get execution logs for a flow run. Retrieves log entries from the flow run execution, including timestamps, log levels, and messages. Examples: - Get logs: get_flow_run_logs(flow_run_id="...") - Get more logs: get_flow_run_logs(flow_run_id="...", limit=500) |
| get_task_runsA | Get task runs with optional filters. Returns a list of task runs and their details matching the filters. Note that 'task_inputs' contains dependency tracking information (upstream task relationships), not the actual parameter values passed to the task. Filter operators:
Examples: - List recent tasks: get_task_runs() - Get specific task: get_task_runs(filter={"id": {"any_": [""]}}) - Failed tasks: get_task_runs(filter={"state": {"type": {"any_": ["FAILED"]}}}) - Tasks by pattern: get_task_runs(filter={"name": {"like_": "%process%"}}) |
| get_work_poolsA | Get work pools with optional filters. Returns compact summaries by default (name, type, status, concurrency_limit). Filter by specific ID(s) for full detail including work queues, active worker counts, and descriptions. Essential for debugging deployment issues related to flow runs being stuck or not starting. Filter operators:
Examples: - List all pools: get_work_pools() - Full detail: get_work_pools(filter={"id": {"any_": [""]}}) - Kubernetes pools: get_work_pools(filter={"type": {"any_": ["kubernetes"]}}) |
| read_eventsA | Read and filter events from the Prefect instance. Provides a structured view of events with filtering capabilities. Note: When no time range is specified, events from the last 1 hour are returned by default. Use occurred_after/occurred_before parameters to query a different time range. Common event type prefixes:
Examples: - Recent flow run events: read_events(event_type_prefix="prefect.flow-run") - Last 24 hours: read_events(occurred_after="") - Specific time range: read_events(occurred_after="2024-01-01T00:00:00Z", occurred_before="2024-01-02T00:00:00Z") |
| get_automationsA | Get automations with optional filters. Returns compact summaries by default (trigger_type, action_count). Filter by specific ID(s) for full detail including trigger config, actions, actions_on_trigger, and actions_on_resolve. Filter operators:
Examples: - List all automations: get_automations() - Full detail: get_automations(filter={"id": {"any_": [""]}}) - Get by name: get_automations(filter={"name": {"any_": ["my-automation"]}}) - Only enabled: get_automations(filter={"enabled": {"eq_": True}}) |
| get_object_schemaC | Get a schema for an object type. |
| review_rate_limitsA | Review rate limit usage for this Prefect Cloud account (Cloud only). Prefect Cloud API access is governed by rate limits in different categories (runs, deployments, flows, work_pools, writing-logs, etc.). When you see HTTP 429 errors or "Too Many Requests" responses from the Prefect API, use this tool to identify which operation groups were throttled and when. Queries all common rate limit operation groups and groups consecutive throttled minutes into periods, showing which operation groups were affected during each stretch. Note: These are not API authentication keys - they're categories of API operations that are rate limited together (e.g., "runs" includes all flow run API calls, "writing-logs" includes log write operations). Useful for diagnosing why API calls are being rate limited. The response shows:
Examples: - Check recent throttling: review_rate_limits() - Custom time range: review_rate_limits(since="2025-09-30T00:00:00Z", until="2025-10-01T00:00:00Z") |
| docs_search_prefectB | Search the Prefect knowledgebase for documentation on concepts, usage examples, and best practices. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 14 tools
All tools have clearly distinct purposes: each targets a specific Prefect entity (automations, dashboard, deployments, flow runs, flows, etc.) with no overlapping functionality. The descriptions make it easy for an agent to select the appropriate tool.
Tool names follow a consistent verb_noun pattern with underscores, predominantly using 'get_' for retrieval operations. Minor deviations like 'docs_search_prefect', 'read_events', and 'orientation' are still clear and fit the overall schema.
With 14 tools, the server is well-scoped for Prefect monitoring and inspection. Each tool serves a distinct function without unnecessary redundancy, covering all key entities and operations relevant to the domain.
The tool set covers all major entities for observation (flows, deployments, runs, work pools, automations, events, rate limits), but lacks any mutation or management capabilities (create, update, delete). This is a notable gap for a comprehensive Prefect interface, though internally consistent for a read-only server.