Skip to main content
Glama
tallpizza

Dooray MCP Server

by tallpizza

dooray_workflows

Manage Dooray project workflows by listing, viewing details, creating, updating, or deleting workflows to organize and automate project processes.

Instructions

Manage Dooray workflows - list project workflows, get workflow details, create, update, delete workflows

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
actionYesAction to perform on workflows
workflowIdNoWorkflow ID (required for get/update/delete)
nameNoWorkflow name (for create/update)
projectIdNoProject ID (optional - uses default from environment if not provided)

Implementation Reference

  • The WorkflowsTool class provides the main handler for the 'dooray_workflows' tool, dispatching to specific workflow actions (list, get, create, update, delete) based on input arguments.
    class WorkflowsTool:
        """Handle Dooray workflow operations."""
        
        def __init__(self, client: DoorayClient):
            self.client = client
        
        async def handle(self, args: Dict[str, Any]) -> Dict[str, Any]:
            """Handle workflow tool calls."""
            action = args.get("action")
            
            if action == "list":
                return await list_workflows(
                    self.client, 
                    args.get("projectId")
                )
            elif action == "get":
                return await get_workflow_details(
                    self.client,
                    args["workflowId"],
                    args.get("projectId")
                )
            elif action == "create":
                return await create_workflow(
                    self.client,
                    args["name"],
                    args.get("projectId")
                )
            elif action == "update":
                return await update_workflow(
                    self.client,
                    args["workflowId"],
                    args["name"],
                    args.get("projectId")
                )
            elif action == "delete":
                return await delete_workflow(
                    self.client,
                    args["workflowId"],
                    args.get("projectId")
                )
            else:
                raise ValueError(f"Unknown action: {action}")
  • Input schema definition for the 'dooray_workflows' tool, specifying actions and required parameters.
    types.Tool(
        name="dooray_workflows",
        description="Manage Dooray workflows - list project workflows, get workflow details, create, update, delete workflows",
        inputSchema={
            "type": "object",
            "properties": {
                "action": {
                    "type": "string",
                    "enum": ["list", "get", "create", "update", "delete"],
                    "description": "Action to perform on workflows"
                },
                "workflowId": {
                    "type": "string",
                    "description": "Workflow ID (required for get/update/delete)"
                },
                "name": {
                    "type": "string",
                    "description": "Workflow name (for create/update)"
                },
                "projectId": {
                    "type": "string",
                    "description": "Project ID (optional - uses default from environment if not provided)"
                }
            },
            "required": ["action"]
        }
    )
  • Tool registration and invocation in the main handle_call_tool function, instantiating WorkflowsTool and calling its handle method.
    elif name == "dooray_workflows":
        tool = WorkflowsTool(dooray_client)
        result = await tool.handle(args)
  • Helper function to list workflows for a project via Dooray API.
    async def list_workflows(client: DoorayClient, project_id: Optional[str] = None) -> Dict[str, Any]:
        """
        List all workflows for a project
        
        Args:
            client: DoorayClient instance
            project_id: Project ID (optional - uses default from environment if not provided)
            
        Returns:
            Dictionary containing workflow list response
        """
        # Use default project ID if not provided
        if not project_id:
            project_id = client.project_id
            
        if not project_id:
            raise ValueError("Project ID must be provided either as parameter or environment variable")
        
        endpoint = f"/project/v1/projects/{project_id}/workflows"
        return await client.get(endpoint)

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/tallpizza/dooray-mcp'

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