Skip to main content
Glama

get_deployments

Retrieve and filter deployment lists from Prefect workflows using criteria like flow name, tags, schedule status, or work queue to manage and monitor automated processes.

Instructions

Get a list of deployments with optional filtering.

Args: limit: Maximum number of deployments to return offset: Number of deployments to skip flow_name: Filter by flow name name: Filter by deployment name tags: Filter by tags is_schedule_active: Filter by schedule active status work_queue_name: Filter by work queue name

Returns: A list of deployments with their details

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
flow_nameNo
is_schedule_activeNo
limitNo
nameNo
offsetNo
tagsNo
work_queue_nameNo

Implementation Reference

  • The @mcp.tool decorated handler function that implements the get_deployments tool logic. It queries Prefect deployments using filters and returns results with UI links.
    @mcp.tool
    async def get_deployments(
        limit: Optional[int] = None,
        offset: Optional[int] = None,
        flow_name: Optional[str] = None,
        name: Optional[str] = None,
        tags: Optional[List[str]] = None,
        is_schedule_active: Optional[bool] = None,
        work_queue_name: Optional[str] = None,
    ) -> List[Union[types.TextContent, types.ImageContent, types.EmbeddedResource]]:
        """
        Get a list of deployments with optional filtering.
        
        Args:
            limit: Maximum number of deployments to return
            offset: Number of deployments to skip
            flow_name: Filter by flow name
            name: Filter by deployment name
            tags: Filter by tags
            is_schedule_active: Filter by schedule active status
            work_queue_name: Filter by work queue name
            
        Returns:
            A list of deployments with their details
        """
        try:
            async with get_client() as client:
                # Build deployment filter
                deployment_filter = None
                if any([name, tags, is_schedule_active, work_queue_name]):
                    from prefect.client.schemas.filters import DeploymentFilter
                    
                    filter_dict = {}
                    if name:
                        filter_dict["name"] = {"like_": f"%{name}%"}
                    if tags:
                        filter_dict["tags"] = {"all_": tags}
                    if is_schedule_active is not None:
                        filter_dict["is_schedule_active"] = {"eq_": is_schedule_active}
                    if work_queue_name:
                        filter_dict["work_queue_name"] = {"eq_": work_queue_name}
                    
                    deployment_filter = DeploymentFilter(**filter_dict)
                
                # Build flow filter if flow_name is specified
                flow_filter = None
                if flow_name:
                    from prefect.client.schemas.filters import FlowFilter
                    
                    flow_filter = FlowFilter(name={"like_": f"%{flow_name}%"})
                
                # Query using proper filter objects
                deployments = await client.read_deployments(
                    deployment_filter=deployment_filter,
                    flow_filter=flow_filter,
                    limit=limit,
                    offset=offset,
                )
                
                # Add UI links to each deployment
                deployments_result = {
                    "deployments": [
                        {
                            **deployment.model_dump(),
                            "ui_url": get_deployment_url(str(deployment.id))
                        }
                        for deployment in deployments
                    ]
                }
                
                return [types.TextContent(type="text", text=str(deployments_result))]
        except Exception as e:
            # Add proper error handling
            return [types.TextContent(type="text", text=str({"error": str(e)}))]
  • Conditional import of the deployment module in main.py, which triggers registration of all deployment tools including get_deployments via their @mcp.tool decorators.
    if APIType.DEPLOYMENT.value in apis:
        info("Loading Deployment API...")
        from . import deployment
  • Helper function used within get_deployments (and other deployment tools) to generate UI URLs for deployments.
    def get_deployment_url(deployment_id: str) -> str:
        base_url = PREFECT_API_URL.replace("/api", "")
        return f"{base_url}/deployments/{deployment_id}"

Latest Blog Posts

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/allen-munsch/mcp-prefect'

If you have feedback or need assistance with the MCP directory API, please join our Discord server