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 |
Capabilities
Features and capabilities supported by this server
| 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 | |
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/PrefectHQ/prefect-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server