Skip to content

MCP servers

Create workflow MCP server

Create an MCP server exposing deployed workflows as tools. Every supplied workflow must already be deployed. With `isPublic: true`, anyone holding the server URL can execute its workflows without a Sim API key. Requires workspace Admin access. Workspace API keys return `403`; use a personal API key or scoped OAuth token. OAuth scope: `api:write`.

POST/api/v2/workflow-mcp-servers

Create an MCP server exposing deployed workflows as tools. Every supplied workflow must already be deployed. With isPublic: true, anyone holding the server URL can execute its workflows without a Sim API key. Requires workspace Admin access. Workspace API keys return 403; use a personal API key or scoped OAuth token.

OAuth scope: api:write.

Authentication

Send a personal or workspace API key in X-API-Key. See key types and access; operations that reject workspace keys say so in their description.

Send X-API-Key in the request header.

Alternatively

Send a Sim OAuth access token in Authorization: Bearer. See OAuth authentication and scopes.

Authorization: Bearer YOUR_ACCESS_TOKEN

Required scopes: api:write

OAuth flows
json
{
  "authorizationCode": {
    "authorizationUrl": "https://www.sim.ai/api/auth/oauth2/authorize",
    "tokenUrl": "https://www.sim.ai/api/auth/oauth2/token",
    "refreshUrl": "https://www.sim.ai/api/auth/oauth2/token",
    "scopes": {
      "api:read": "Read your workspaces, workflows, files, tables, and logs",
      "api:write": "Read, create, change, run, and delete resources in your workspaces",
      "offline_access": "Stay signed in without asking again"
    }
  }
}

OAuth scope: api:write.

Request body

Required

A new workflow MCP server and deployed workflows to expose as tools.

object

A new workflow MCP server and deployed workflows to expose as tools.

5 fields
workspaceIdstringRequired

Workspace in which to create the workflow MCP server.

minLength
1
maxLength
128
namestringRequired

Server display name, shown to connecting MCP clients.

minLength
1
maxLength
255
descriptionstring

Optional server description.

maxLength
2000
isPublicboolean

Whether the server accepts MCP clients without a Sim API key. Defaults to false; a public server lets anyone holding its URL execute the workflows it exposes.

default
false
workflowIdsarray

Deployed workflows to expose as MCP tools on the new server.

maxItems
100
Schema details
Array itemstring
minLength
1

Additional properties are not allowed.

Request example 1

json
{
  "workspaceId": "9f4c2a10-3b7e-4d58-8f6a-2c1d0e5b7a94",
  "name": "Support agents",
  "workflowIds": [
    "3b1f7c92-8d4e-4a6b-9c0d-5e2f8a714b36"
  ]
}

Responses

201

The workflow MCP server.

object

The workflow MCP server.

1 field
dataobjectRequired

Response data.

7 fields
idstringRequired

Unique workflow-MCP server identifier.

namestringRequired

Server display name, shown to connecting MCP clients.

descriptionvalueRequired

Optional server description, or null when unset.

Schema details

Any of

Option 1string
Option 2null
isPublicbooleanRequired

Whether the server answers MCP clients without a Sim API key.

mcpServerUrlstringRequired

MCP client endpoint. Use this returned URL instead of constructing one.

createdAtstringRequired

ISO 8601 timestamp when the server was created.

format
date-time
updatedAtstringRequired

ISO 8601 timestamp when the server was last modified.

format
date-time

Additional properties are not allowed.

Additional properties are not allowed.

Response example 1

json
{
  "data": {
    "id": "wfmcp_01J8ZK3QW4M6X2R9T7B5C0V2",
    "name": "Support agents",
    "description": "Ticket triage and escalation workflows.",
    "isPublic": false,
    "mcpServerUrl": "https://www.sim.ai/api/mcp/serve/wfmcp_01J8ZK3QW4M6X2R9T7B5C0V2",
    "createdAt": "2026-06-12T10:30:00.000Z",
    "updatedAt": "2026-06-12T10:30:00.000Z"
  }
}

Response headers

X-RateLimit-Limitinteger

Maximum requests allowed in the current window.

minimum
0
maximum
9007199254740991
X-RateLimit-Remaininginteger

Requests remaining in the current window.

minimum
0
maximum
9007199254740991
X-RateLimit-Resetstring

ISO 8601 timestamp when the current rate-limit window resets.

format
date-time
pattern
^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
Was this helpful?
Suggest an edit