MCP Servers

Use this resource to manage MCP (Model Context Protocol) servers programmatically.

Quick reference

TypeResourceDescription
GET/api/mcp/mcp_serversList MCP servers.
POST/api/mcp/mcp_serversCreate an MCP server.
GET/api/mcp/mcp_servers/:handleRetrieve MCP server details.
PUT/api/mcp/mcp_servers/:handleUpdate an MCP server.
DELETE/api/mcp/mcp_servers/:handleDelete an MCP server.
POST/api/mcp/mcp_servers/:handle/token_renewRenew MCP server authentication token.
POST/api/mcp/mcp_servers/:handle/assign_toolsAssign tools to an MCP server.
POST/api/mcp/mcp_servers/:handle/assign_user_groupsAssign user groups to an MCP server.
POST/api/mcp/mcp_servers/:handle/remove_user_groupsRemove user groups from an MCP server.
PUT/api/mcp/mcp_servers/:handle/update_folderMove an MCP server to a different folder.
GET/api/mcp/mcp_servers/:mcp_server_handle/server_policiesRetrieve the server policy configuration.
PUT/api/mcp/mcp_servers/:mcp_server_handle/server_policiesUpdate the server policy configuration.
GET/api/mcp/mcp_servers/:mcp_server_handle/toolsList tools for an MCP server.
PUT/api/mcp/mcp_servers/:mcp_server_handle/tools/:idUpdate the tool description for an MCP.
DELETE/api/mcp/mcp_servers/:mcp_server_handle/tools/:idDelete a tool.
GET/api/mcp/user_groupsList identity provider user groups.

List MCP servers

Returns a list of MCP servers in the workspace.

shell
GET /api/mcp/mcp_servers

Query parameters

NameTypeDescription
project_idnumber
optional
Filter by project ID.
folder_idnumber
optional
Filter by folder ID.
authentication_methodstring
optional
Filter by authentication method. Accepted values: token, workato_idp.
pagenumber
optional
Page number. Defaults to 1.
per_pagenumber
optional
Number of items per page. Maximum is 50.

Sample request

shell
curl  -X GET 'https://www.workato.com/api/mcp/mcp_servers?folder_id=27180380' \
      -H 'Authorization: Bearer <api_token>'

Sample response

json
{
    "data": [
        {
            "id": 1001,
            "name": "Sales Tools MCP Server",
            "description": "Provides CRM and deal management tools for AI clients",
            "folder_id": 27180380,
            "project_id": 13595198,
            "authentication_method": "token",
            "tools_count": 5
        },
        {
            "id": 1002,
            "name": "HR Automation Server",
            "description": "HR onboarding and employee management tools",
            "folder_id": 27180380,
            "project_id": 13595198,
            "authentication_method": "workato_idp",
            "tools_count": 3
        }
    ],
    "count": 2,
    "page": 1,
    "per_page": 50
}

Create an MCP server

Creates a new MCP server in the workspace.

shell
POST /api/mcp/mcp_servers

Payload

NameTypeDescription
namestring
required
Server name.
folder_idnumber
required
Folder ID for the MCP server.
descriptionstring
optional
Server description.
asset_idnumber
optional
API collection ID. Omit to create a project asset server.
toolsarray of objects
optional
Tools to assign to the server at creation. Each object requires trigger_application (string) and id (string). id is a number when used with workato_recipe_function and workato_api_platform tools. id is a string handle when used with workato_genie tools.

Sample request

shell
curl  -X POST https://www.workato.com/api/mcp/mcp_servers \
      -H 'Authorization: Bearer <api_token>' \
      -H 'Content-Type: application/json' \
      -d '{
            "name": "Sales Tools MCP Server",
            "description": "Provides CRM and deal management tools for AI clients",
            "folder_id": 27180380,
            "tools": [
              {
                "trigger_application": "workato_api_platform",
                "id": "98231"
              }
            ]
          }'

Sample response

json
{
    "data": {
        "id": 1001,
        "name": "Sales Tools MCP Server",
        "description": "Provides CRM and deal management tools for AI clients",
        "asset_type": "api_collection",
        "logo_url": "https://www.workato.com/images/mcp-server-logo.png",
        "tools_count": 1,
        "mcp_url": "https://www.workato.com/mcp/servers/sales-tools-mcp-server?token=abc123xyz",
        "auth_type": "token",
        "idp_user_group_ids": [],
        "api_collection": null,
        "created_at": "2025-10-15T13:41:05.207-07:00",
        "updated_at": "2025-10-15T13:41:05.207-07:00"
    }
}

Get MCP server details

Retrieves details for a specific MCP server.

shell
GET /api/mcp/mcp_servers/:handle

URL parameters

NameTypeDescription
handlestring
required
MCP server handle.

Sample request

shell
curl  -X GET 'https://www.workato.com/api/mcp/mcp_servers/sales-tools-mcp-server' \
      -H 'Authorization: Bearer <api_token>'

Sample response

json
{
    "data": {
        "id": 1001,
        "name": "Sales Tools MCP Server",
        "description": "Provides CRM and deal management tools for AI clients",
        "asset_type": "api_collection",
        "logo_url": "https://www.workato.com/images/mcp-server-logo.png",
        "tools_count": 5,
        "mcp_url": "https://www.workato.com/mcp/servers/sales-tools-mcp-server?token=abc123xyz",
        "auth_type": "token",
        "idp_user_group_ids": [],
        "api_collection": null,
        "created_at": "2025-10-15T13:41:05.207-07:00",
        "updated_at": "2025-10-16T09:22:11.100-07:00"
    }
}

Update an MCP server

Updates an existing MCP server.

shell
PUT /api/mcp/mcp_servers/:handle

URL parameters

NameTypeDescription
handlestring
required
MCP server handle.

Payload

NameTypeDescription
namestring
optional
Server name.
descriptionstring
optional
Server description.
auth_typestring
optional
Authentication type. Accepted values: token, workato_idp.
idp_user_group_idsarray of strings
optional
Identity provider user group IDs that have access to the server. Only applicable when auth_type is workato_idp.
folder_idnumber
optional
Target folder ID to move the server.

Sample request

shell
curl  -X PUT 'https://www.workato.com/api/mcp/mcp_servers/sales-tools-mcp-server' \
      -H 'Authorization: Bearer <api_token>' \
      -H 'Content-Type: application/json' \
      -d '{
            "name": "Sales & CRM Tools MCP Server",
            "description": "Provides CRM, deal management, and pipeline tools for AI clients",
            "auth_type": "token"
          }'

Sample response

json
{
    "data": {
        "id": 1001,
        "name": "Sales & CRM Tools MCP Server",
        "description": "Provides CRM, deal management, and pipeline tools for AI clients",
        "asset_type": "api_collection",
        "logo_url": "https://www.workato.com/images/mcp-server-logo.png",
        "tools_count": 5,
        "mcp_url": "https://www.workato.com/mcp/servers/sales-tools-mcp-server?token=abc123xyz",
        "auth_type": "token",
        "idp_user_group_ids": [],
        "api_collection": null,
        "created_at": "2025-10-15T13:41:05.207-07:00",
        "updated_at": "2025-10-17T11:05:33.812-07:00"
    }
}

Delete an MCP server

Deletes an MCP server.

shell
DELETE /api/mcp/mcp_servers/:handle

URL parameters

NameTypeDescription
handlestring
required
MCP server handle.

Sample request

shell
curl  -X DELETE 'https://www.workato.com/api/mcp/mcp_servers/sales-tools-mcp-server' \
      -H 'Authorization: Bearer <api_token>'

Sample response

Returns 204 No Content on success.

Renew MCP server authentication token

Generates a new authentication token for an MCP server and invalidates the previous token. Use this endpoint to rotate credentials after a security event or as part of a regular credential rotation policy.

shell
POST /api/mcp/mcp_servers/:handle/token_renew

URL parameters

NameTypeDescription
handlestring
required
MCP server handle.

Sample request

shell
curl  -X POST 'https://www.workato.com/api/mcp/mcp_servers/sales-tools-mcp-server/token_renew' \
      -H 'Authorization: Bearer <api_token>'

Sample response

Returns the updated MCP server object with the new mcp_url containing the refreshed token.

json
{
    "data": {
        "id": 1001,
        "name": "Sales & CRM Tools MCP Server",
        "description": "Provides CRM, deal management, and pipeline tools for AI clients",
        "asset_type": "api_collection",
        "logo_url": "https://www.workato.com/images/mcp-server-logo.png",
        "tools_count": 5,
        "mcp_url": "https://www.workato.com/mcp/servers/sales-tools-mcp-server?token=newtoken789",
        "auth_type": "token",
        "idp_user_group_ids": [],
        "api_collection": null,
        "created_at": "2025-10-15T13:41:05.207-07:00",
        "updated_at": "2025-10-18T08:00:00.000-07:00"
    }
}

Assign tools to an MCP server

Assigns one or more tools to an MCP server. Tools already assigned to the server aren't duplicated.

shell
POST /api/mcp/mcp_servers/:handle/assign_tools

URL parameters

NameTypeDescription
handlestring
required
MCP server handle.

Payload

NameTypeDescription
toolsarray of objects
required
Tools to assign. Each object requires trigger_application (string) and id (string).

Sample request

shell
curl  -X POST 'https://www.workato.com/api/mcp/mcp_servers/sales-tools-mcp-server/assign_tools' \
      -H 'Authorization: Bearer <api_token>' \
      -H 'Content-Type: application/json' \
      -d '{
            "tools": [
              {
                "trigger_application": "workato_api_platform",
                "id": "98232"
              },
              {
                "trigger_application": "workato_genie",
                "id": "my-genie-handle"
              }
            ]
          }'

Sample response

Returns the updated MCP server object.

json
{
    "data": {
        "id": 1001,
        "name": "Sales & CRM Tools MCP Server",
        "description": "Provides CRM, deal management, and pipeline tools for AI clients",
        "asset_type": "api_collection",
        "logo_url": "https://www.workato.com/images/mcp-server-logo.png",
        "tools_count": 7,
        "mcp_url": "https://www.workato.com/mcp/servers/sales-tools-mcp-server?token=newtoken789",
        "auth_type": "token",
        "idp_user_group_ids": [],
        "api_collection": null,
        "created_at": "2025-10-15T13:41:05.207-07:00",
        "updated_at": "2025-10-18T09:15:22.000-07:00"
    }
}

Assign user groups to an MCP server

Assigns identity provider user groups to an MCP server. Only applicable when the server's auth_type is workato_idp.

shell
POST /api/mcp/mcp_servers/:handle/assign_user_groups

URL parameters

NameTypeDescription
handlestring
required
MCP server handle.

Payload

NameTypeDescription
idp_user_group_idsarray of strings
required
IDs of the user groups to add.

Sample request

shell
curl  -X POST 'https://www.workato.com/api/mcp/mcp_servers/hr-automation-server/assign_user_groups' \
      -H 'Authorization: Bearer <api_token>' \
      -H 'Content-Type: application/json' \
      -d '{
            "idp_user_group_ids": ["group-abc123", "group-def456"]
          }'

Sample response

Returns the updated MCP server object with the assigned user group IDs reflected in idp_user_group_ids.

json
{
    "data": {
        "id": 1002,
        "name": "HR Automation Server",
        "description": "HR onboarding and employee management tools",
        "asset_type": "project_asset",
        "logo_url": "https://www.workato.com/images/mcp-server-logo.png",
        "tools_count": 3,
        "mcp_url": "https://www.workato.com/mcp/servers/hr-automation-server?token=hrtoken456",
        "auth_type": "workato_idp",
        "idp_user_group_ids": ["group-abc123", "group-def456"],
        "api_collection": null,
        "created_at": "2025-10-15T10:00:00.000-07:00",
        "updated_at": "2025-10-18T10:30:00.000-07:00"
    }
}

Remove user groups from an MCP server

Removes identity provider user groups from an MCP server.

shell
POST /api/mcp/mcp_servers/:handle/remove_user_groups

URL parameters

NameTypeDescription
handlestring
required
MCP server handle.

Payload

NameTypeDescription
idp_user_group_idsarray of strings
required
IDs of the user groups to remove.

Sample request

shell
curl  -X POST 'https://www.workato.com/api/mcp/mcp_servers/hr-automation-server/remove_user_groups' \
      -H 'Authorization: Bearer <api_token>' \
      -H 'Content-Type: application/json' \
      -d '{
            "idp_user_group_ids": ["group-abc123"]
          }'

Sample response

Returns the updated MCP server object with the specified groups removed from idp_user_group_ids.

json
{
    "data": {
        "id": 1002,
        "name": "HR Automation Server",
        "description": "HR onboarding and employee management tools",
        "asset_type": "project_asset",
        "logo_url": "https://www.workato.com/images/mcp-server-logo.png",
        "tools_count": 3,
        "mcp_url": "https://www.workato.com/mcp/servers/hr-automation-server?token=hrtoken456",
        "auth_type": "workato_idp",
        "idp_user_group_ids": ["group-def456"],
        "api_collection": null,
        "created_at": "2025-10-15T10:00:00.000-07:00",
        "updated_at": "2025-10-18T11:00:00.000-07:00"
    }
}

Move MCP server to a different folder

Moves an MCP server to a specified folder.

shell
PUT /api/mcp/mcp_servers/:handle/update_folder

URL parameters

NameTypeDescription
handlestring
required
MCP server handle.

Payload

NameTypeDescription
folder_idnumber
required
Target folder ID.

Sample request

shell
curl  -X PUT 'https://www.workato.com/api/mcp/mcp_servers/hr-automation-server/update_folder' \
      -H 'Authorization: Bearer <api_token>' \
      -H 'Content-Type: application/json' \
      -d '{
            "folder_id": 27180399
          }'

Sample response

Returns the updated MCP server object with the new folder_id reflected in created_at and updated_at timestamps.

json
{
    "data": {
        "id": 1002,
        "name": "HR Automation Server",
        "description": "HR onboarding and employee management tools",
        "asset_type": "project_asset",
        "logo_url": "https://www.workato.com/images/mcp-server-logo.png",
        "tools_count": 3,
        "mcp_url": "https://www.workato.com/mcp/servers/hr-automation-server?token=hrtoken456",
        "auth_type": "workato_idp",
        "idp_user_group_ids": ["group-def456"],
        "api_collection": null,
        "created_at": "2025-10-15T10:00:00.000-07:00",
        "updated_at": "2025-10-18T12:00:00.000-07:00"
    }
}

Get server policy configuration

Retrieves the security policy configuration for an MCP server, including rate limits, quota limits, Classless Inter-Domain Routing (CIDR), and IP addresses.

shell
GET /api/mcp/mcp_servers/:mcp_server_handle/server_policies

URL parameters

NameTypeDescription
mcp_server_handlestring
required
MCP server handle.

Sample request

shell
curl  -X GET 'https://www.workato.com/api/mcp/mcp_servers/sales-tools-mcp-server/server_policies' \
      -H 'Authorization: Bearer <api_token>'

Sample response

json
{
    "id": 501,
    "mcp_server_id": 1001,
    "rate_limits": {
        "per_minute": 60
    },
    "quota_limits": {
        "per_day": 10000
    },
    "ip_allow_list": ["203.0.113.0/24"],
    "ip_deny_list": [],
    "created_at": "2025-10-15T13:41:05.207-07:00",
    "updated_at": "2025-10-16T09:22:11.100-07:00"
}

Update server policy configuration

Updates the security policy configuration, including IP for an MCP server.

shell
PUT /api/mcp/mcp_servers/:mcp_server_handle/server_policies

URL parameters

NameTypeDescription
mcp_server_handlestring
required
MCP server handle.

Payload

NameTypeDescription
mcp_server_policyobject
required
Policy configuration object.
mcp_server_policy[rate_limits]object
optional
Rate limit configurations.
mcp_server_policy[quota_limits]object
optional
Quota limit configurations.
mcp_server_policy[ip_allow_list]array of strings
optional
IP addresses or CIDR ranges to allow.
mcp_server_policy[ip_deny_list]array of strings
optional
IP addresses or CIDR ranges to deny.

Sample request

shell
curl  -X PUT 'https://www.workato.com/api/mcp/mcp_servers/sales-tools-mcp-server/server_policies' \
      -H 'Authorization: Bearer <api_token>' \
      -H 'Content-Type: application/json' \
      -d '{
            "mcp_server_policy": {
              "rate_limits": { "per_minute": 30 },
              "quota_limits": { "per_day": 5000 },
              "ip_allow_list": ["203.0.113.0/24", "198.51.100.42"],
              "ip_deny_list": []
            }
          }'

Sample response

json
{
    "id": 501,
    "mcp_server_id": 1001,
    "rate_limits": {
        "per_minute": 30
    },
    "quota_limits": {
        "per_day": 5000
    },
    "ip_allow_list": ["203.0.113.0/24", "198.51.100.42"],
    "ip_deny_list": [],
    "created_at": "2025-10-15T13:41:05.207-07:00",
    "updated_at": "2025-10-18T14:00:00.000-07:00"
}

List tools for an MCP server

Returns a paginated list of tools assigned to an MCP server.

shell
GET /api/mcp/mcp_servers/:mcp_server_handle/tools

URL parameters

NameTypeDescription
mcp_server_handlestring
required
MCP server handle.

Query parameters

NameTypeDescription
vua_requiredboolean
optional
Filter by whether Verified User Access (VUA) is required.
searchstring
optional
Search term to filter tools by name.
pagenumber
optional
Page number. Defaults to 1.
per_pagenumber
optional
Number of items per page. Defaults to 100. Maximum is 100.

Sample request

shell
curl  -X GET 'https://www.workato.com/api/mcp/mcp_servers/sales-tools-mcp-server/tools' \
      -H 'Authorization: Bearer <api_token>'

Sample response

json
{
    "data": [
        {
            "id": 3001,
            "name": "Create Salesforce Lead",
            "description": "Creates a new lead record in Salesforce CRM",
            "trigger_application": "workato_api_platform",
            "action_applications": ["salesforce"],
            "flow_id": 66870001,
            "vua_required": false
        },
        {
            "id": 3002,
            "name": "Send Deal Notification",
            "description": "Sends a Slack notification when a deal stage changes",
            "trigger_application": "workato_recipe_function",
            "action_applications": ["slack"],
            "flow_id": 66870002,
            "vua_required": true
        }
    ],
    "count": 2,
    "page": 1,
    "per_page": 100
}

Update tool description

Updates the description of a tool within an MCP server. This modifies the description shown to AI clients without affecting the underlying recipe or API endpoint.

shell
PUT /api/mcp/mcp_servers/:mcp_server_handle/tools/:id

URL parameters

NameTypeDescription
mcp_server_handlestring
required
MCP server handle.
idnumber
required
Tool ID.

Payload

NameTypeDescription
descriptionstring
optional
New description for the tool.

Sample request

shell
curl  -X PUT 'https://www.workato.com/api/mcp/mcp_servers/sales-tools-mcp-server/tools/3001' \
      -H 'Authorization: Bearer <api_token>' \
      -H 'Content-Type: application/json' \
      -d '{
            "description": "Creates a new lead record in Salesforce CRM with name, email, and company details"
          }'

Sample response

json
{
    "id": 3001,
    "name": "Create Salesforce Lead",
    "description": "Creates a new lead record in Salesforce CRM with name, email, and company details",
    "trigger_application": "workato_api_platform",
    "action_applications": ["salesforce"],
    "flow_id": 66870001,
    "vua_required": false
}

Delete a tool

Removes a tool from an MCP server.

API ENDPOINTS CAN'T BE DELETED

Only tools backed by recipe functions or genies can be deleted. Attempting to delete an API endpoint tool returns a 400 Bad Request error.

shell
DELETE /api/mcp/mcp_servers/:mcp_server_handle/tools/:id

URL parameters

NameTypeDescription
mcp_server_handlestring
required
MCP server handle.
idnumber
required
Tool ID.

Sample request

shell
curl  -X DELETE 'https://www.workato.com/api/mcp/mcp_servers/sales-tools-mcp-server/tools/3002' \
      -H 'Authorization: Bearer <api_token>'

Sample response

Returns 204 No Content on success.

List identity provider user groups

Returns a paginated list of identity provider user groups available in the workspace. Use the group IDs from this response when assigning access to MCP servers that use workato_idp authentication.

shell
GET /api/mcp/user_groups

Query parameters

NameTypeDescription
pagenumber
optional
Page number. Defaults to 1.
per_pagenumber
optional
Number of items per page. Defaults to 100. Maximum is 100.

Sample request

shell
curl  -X GET 'https://www.workato.com/api/mcp/user_groups' \
      -H 'Authorization: Bearer <api_token>'

Sample response

json
{
    "data": [
        {
            "id": "group-abc123",
            "name": "Sales Team",
            "users_count": 24,
            "created_at": "2025-01-10T08:00:00.000Z",
            "updated_at": "2025-09-15T12:30:00.000Z"
        },
        {
            "id": "group-def456",
            "name": "HR Admins",
            "users_count": 6,
            "created_at": "2025-01-10T08:00:00.000Z",
            "updated_at": "2025-08-20T10:00:00.000Z"
        }
    ],
    "count": 2,
    "page": 1,
    "per_page": 100
}

Last updated: