Workato · Arazzo Workflow

Workato Provision an MCP Server with Tools

Version 1.0.0

Create an MCP server, assign tools, and confirm the tool list.

1 workflow 1 source API 1 provider
View Spec View on GitHub AgenticAPI ManagementAutomationB2BEmbedded iPaaSEnterpriseIntegrationiPaaSOrchestrationWorkflowArazzoWorkflows

Provider

workato

Workflows

provision-mcp-server-with-tools
Create an MCP server, assign tools, and verify them.
Creates an MCP server, reads its handle and URL, assigns tools, and lists the resulting tools.
4 steps inputs: authenticationMethod, folderId, name, tools outputs: assignedTools, handle, mcpUrl
1
createServer
createMcpServer
Create the MCP server in the target folder.
2
confirmServer
getMcpServer
Read the MCP server back to confirm it exists and capture its URL.
3
assignTools
assignToolsToMcpServer
Assign the supplied tools to the MCP server.
4
listTools
listMcpServerTools
List the server's tools to confirm the assignment took effect.

Source API Descriptions

Arazzo Workflow Specification

workato-provision-mcp-server-with-tools-workflow.yml Raw ↑
arazzo: 1.0.1
info:
  title: Workato Provision an MCP Server with Tools
  summary: Create an MCP server, assign tools, and confirm the tool list.
  description: >-
    Stands up a Model Context Protocol server that exposes Workato endpoints to
    AI development environments. The workflow creates the MCP server, reads it
    back to capture its authenticated URL, assigns a set of tools to it, and
    lists the assigned tools to confirm they registered. Every step spells out
    its request inline so the flow can be read and executed without opening the
    underlying OpenAPI description.
  version: 1.0.0
sourceDescriptions:
- name: mcpServerApi
  url: ../openapi/workato-mcp-server-openapi.yml
  type: openapi
workflows:
- workflowId: provision-mcp-server-with-tools
  summary: Create an MCP server, assign tools, and verify them.
  description: >-
    Creates an MCP server, reads its handle and URL, assigns tools, and lists
    the resulting tools.
  inputs:
    type: object
    required:
    - name
    - folderId
    - tools
    properties:
      name:
        type: string
        description: Display name for the MCP server.
      folderId:
        type: integer
        description: ID of the folder to place the MCP server in.
      authenticationMethod:
        type: string
        description: Authentication method to use for the MCP server.
      tools:
        type: array
        description: Array of tools to assign (each with trigger_application and id).
        items:
          type: object
  steps:
  - stepId: createServer
    description: Create the MCP server in the target folder.
    operationId: createMcpServer
    requestBody:
      contentType: application/json
      payload:
        name: $inputs.name
        folder_id: $inputs.folderId
        authentication_method: $inputs.authenticationMethod
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      handle: $response.body#/handle
      mcpUrl: $response.body#/mcp_url
  - stepId: confirmServer
    description: Read the MCP server back to confirm it exists and capture its URL.
    operationId: getMcpServer
    parameters:
    - name: handle
      in: path
      value: $steps.createServer.outputs.handle
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      mcpUrl: $response.body#/mcp_url
  - stepId: assignTools
    description: Assign the supplied tools to the MCP server.
    operationId: assignToolsToMcpServer
    parameters:
    - name: handle
      in: path
      value: $steps.createServer.outputs.handle
    requestBody:
      contentType: application/json
      payload:
        tools: $inputs.tools
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      tools: $response.body#/items
  - stepId: listTools
    description: List the server's tools to confirm the assignment took effect.
    operationId: listMcpServerTools
    parameters:
    - name: mcp_server_handle
      in: path
      value: $steps.createServer.outputs.handle
    - name: per_page
      in: query
      value: 100
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      assignedTools: $response.body#/items
  outputs:
    handle: $steps.createServer.outputs.handle
    mcpUrl: $steps.confirmServer.outputs.mcpUrl
    assignedTools: $steps.listTools.outputs.assignedTools