# MCP tool reference

1 callable tools.

Use tools/call at https://mcp.schedulerzero.com/mcp with the exact tool name and arguments below. The /tools/ paths in this view are documentation identifiers, not HTTP endpoints. Request execution is disabled for this reference.

Inputs are shown for personal API keys (bound) and for OAuth/delegated agents. Output schemas describe MCP structuredContent: native objects pass through; arrays, scalars and null use a data wrapper. Text content retains the native JSON result.

[Connect a client](/mcp/connect) · [Authentication and authorization](/authentication) · [Generated auth guide](/auth.md) · [Download tool catalog](/mcp-catalog.json) · [Agent documentation](/llms.txt)

## provision_dialer_numbers

Buy dialing numbers for the workspace or read the latest purchase's per-number progress.

Use action provision (or omit action for existing callers) to start a purchase. Use action status to read the workspace's latest per-number provisioning progress; get_operation only reports the generic operation state.

This spends the workspace's money with the carrier and cannot be undone by cancelling the operation — a number that has already been bought must be released instead. Numbers are bought per country under a configured regulatory bundle; check the provisioning options first.

Obtain the user's explicit authorization before invoking a write or destructive action. This is a client interaction requirement, not a server-issued approval token.

Scopes: dialer:manage_numbers_self, dialer:manage_numbers, dialer:read

Risk: costly; confirmation: explicit; idempotency: supported.

### Input schema (personal API key)

```json
{
  "type": "object",
  "properties": {
    "workspaceId": {
      "type": "string",
      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|[fF]{8}-[fF]{4}-[fF]{4}-[fF]{4}-[fF]{12})$",
      "format": "uuid"
    },
    "action": {
      "type": "string",
      "enum": [
        "provision",
        "status"
      ]
    },
    "provision": {
      "type": "object",
      "properties": {
        "count": {
          "type": "integer",
          "minimum": 1,
          "maximum": 10
        },
        "countryCode": {
          "type": "string",
          "enum": [
            "US",
            "CA",
            "GB",
            "AU",
            "NZ"
          ]
        },
        "areaCode": {
          "$ref": "#/$defs/AreaCode"
        },
        "assignedUserId": {
          "type": "string",
          "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|[fF]{8}-[fF]{4}-[fF]{4}-[fF]{4}-[fF]{12})$",
          "format": "uuid"
        },
        "phoneNumbers": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/E164PhoneNumber"
          },
          "minItems": 1,
          "maxItems": 10
        }
      },
      "required": [
        "count"
      ],
      "patternProperties": {
        "^(?!(?:count|countryCode|areaCode|assignedUserId|phoneNumbers)$)[\\s\\S]*$": false
      },
      "additionalProperties": true,
      "propertyNames": {
        "type": "string",
        "enum": [
          "count",
          "countryCode",
          "areaCode",
          "assignedUserId",
          "phoneNumbers"
        ]
      }
    }
  },
  "required": [
    "workspaceId"
  ],
  "patternProperties": {
    "^(?!(?:workspaceId|action|provision)$)[\\s\\S]*$": false
  },
  "additionalProperties": true,
  "propertyNames": {
    "type": "string",
    "enum": [
      "workspaceId",
      "action",
      "provision"
    ]
  },
  "$defs": {
    "AreaCode": {
      "type": "string",
      "pattern": "^\\d{3}$"
    },
    "E164PhoneNumber": {
      "type": "string",
      "pattern": "^\\+[1-9]\\d{1,14}$"
    }
  }
}
```

### Input schema (OAuth / delegated agent)

```json
{
  "type": "object",
  "properties": {
    "workspaceId": {
      "type": "string",
      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|[fF]{8}-[fF]{4}-[fF]{4}-[fF]{4}-[fF]{12})$",
      "format": "uuid"
    },
    "action": {
      "type": "string",
      "enum": [
        "provision",
        "status"
      ]
    },
    "provision": {
      "type": "object",
      "properties": {
        "count": {
          "type": "integer",
          "minimum": 1,
          "maximum": 10
        },
        "countryCode": {
          "type": "string",
          "enum": [
            "US",
            "CA",
            "GB",
            "AU",
            "NZ"
          ]
        },
        "areaCode": {
          "$ref": "#/$defs/AreaCode"
        },
        "assignedUserId": {
          "type": "string",
          "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|[fF]{8}-[fF]{4}-[fF]{4}-[fF]{4}-[fF]{12})$",
          "format": "uuid"
        },
        "phoneNumbers": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/E164PhoneNumber"
          },
          "minItems": 1,
          "maxItems": 10
        }
      },
      "required": [
        "count"
      ],
      "patternProperties": {
        "^(?!(?:count|countryCode|areaCode|assignedUserId|phoneNumbers)$)[\\s\\S]*$": false
      },
      "additionalProperties": true,
      "propertyNames": {
        "type": "string",
        "enum": [
          "count",
          "countryCode",
          "areaCode",
          "assignedUserId",
          "phoneNumbers"
        ]
      }
    }
  },
  "required": [
    "workspaceId"
  ],
  "patternProperties": {
    "^(?!(?:workspaceId|action|provision)$)[\\s\\S]*$": false
  },
  "additionalProperties": true,
  "propertyNames": {
    "type": "string",
    "enum": [
      "workspaceId",
      "action",
      "provision"
    ]
  },
  "$defs": {
    "AreaCode": {
      "type": "string",
      "pattern": "^\\d{3}$"
    },
    "E164PhoneNumber": {
      "type": "string",
      "pattern": "^\\+[1-9]\\d{1,14}$"
    }
  }
}
```

### Output schema (structuredContent)

```json
{
  "$defs": {
    "HttpUrl": {
      "type": "string",
      "minLength": 1,
      "maxLength": 2048,
      "pattern": "^https?:\\/\\/[^\\s/$.?#][^\\s]*$"
    },
    "HttpResourcePath": {
      "type": "string",
      "minLength": 1,
      "maxLength": 2048,
      "pattern": "^\\/[A-Za-z0-9._~!$&'()*+,;=:@/%-]*$"
    },
    "UtcDateTimeEncoded": {
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{3}Z$"
    },
    "NonEmptyString": {
      "type": "string",
      "minLength": 1,
      "maxLength": 4096
    },
    "OpaqueId": {
      "type": "string",
      "minLength": 1,
      "maxLength": 512
    },
    "ShortText": {
      "type": "string",
      "minLength": 1,
      "maxLength": 256
    }
  },
  "type": "object",
  "anyOf": [
    {
      "allOf": [
        {
          "anyOf": [
            {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string",
                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|[fF]{8}-[fF]{4}-[fF]{4}-[fF]{4}-[fF]{12})$",
                  "format": "uuid"
                },
                "statusUrl": {
                  "anyOf": [
                    {
                      "$ref": "#/$defs/HttpUrl"
                    },
                    {
                      "$ref": "#/$defs/HttpResourcePath"
                    }
                  ]
                },
                "state": {
                  "type": "string",
                  "enum": [
                    "queued",
                    "running",
                    "waiting_for_user",
                    "succeeded",
                    "partially_succeeded",
                    "failed",
                    "canceled",
                    "canceling"
                  ]
                },
                "acceptedAt": {
                  "$ref": "#/$defs/UtcDateTimeEncoded"
                },
                "progress": {
                  "type": "object",
                  "properties": {
                    "completed": {
                      "type": "integer",
                      "minimum": 0
                    },
                    "total": {
                      "type": "integer",
                      "minimum": 0
                    },
                    "message": {
                      "$ref": "#/$defs/NonEmptyString"
                    }
                  },
                  "required": [
                    "completed"
                  ],
                  "patternProperties": {
                    "^(?!(?:completed|total|message)$)[\\s\\S]*$": false
                  },
                  "additionalProperties": true,
                  "propertyNames": {
                    "type": "string",
                    "enum": [
                      "completed",
                      "total",
                      "message"
                    ]
                  }
                },
                "canCancel": {
                  "type": "boolean"
                }
              },
              "required": [
                "id",
                "statusUrl",
                "state",
                "acceptedAt",
                "canCancel"
              ],
              "patternProperties": {
                "^(?!(?:id|statusUrl|state|acceptedAt|progress|canCancel)$)[\\s\\S]*$": false
              },
              "additionalProperties": true,
              "propertyNames": {
                "type": "string",
                "enum": [
                  "id",
                  "statusUrl",
                  "state",
                  "acceptedAt",
                  "progress",
                  "canCancel"
                ]
              }
            },
            {
              "type": "object",
              "properties": {
                "state": {
                  "type": "string",
                  "enum": [
                    "idle",
                    "running",
                    "completed",
                    "failed"
                  ]
                },
                "runId": {
                  "anyOf": [
                    {
                      "$ref": "#/$defs/OpaqueId"
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "step": {
                  "anyOf": [
                    {
                      "$ref": "#/$defs/ShortText"
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "progress": {
                  "type": "integer",
                  "minimum": 0,
                  "maximum": 100
                },
                "requestedNumbers": {
                  "type": "array",
                  "items": {
                    "$ref": "#/$defs/ShortText"
                  }
                },
                "candidateNumbers": {
                  "type": "array",
                  "items": {
                    "$ref": "#/$defs/ShortText"
                  }
                },
                "orderedNumbers": {
                  "type": "array",
                  "items": {
                    "$ref": "#/$defs/ShortText"
                  }
                },
                "provisionedNumbers": {
                  "type": "array",
                  "items": {
                    "$ref": "#/$defs/ShortText"
                  }
                },
                "numberStates": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "phoneNumber": {
                        "$ref": "#/$defs/ShortText"
                      },
                      "status": {
                        "type": "string",
                        "enum": [
                          "pending",
                          "provisioning",
                          "provisioned",
                          "failed"
                        ]
                      },
                      "progress": {
                        "type": "integer",
                        "minimum": 0,
                        "maximum": 100
                      },
                      "error": {
                        "anyOf": [
                          {
                            "$ref": "#/$defs/ShortText"
                          },
                          {
                            "type": "null"
                          }
                        ]
                      }
                    },
                    "required": [
                      "phoneNumber",
                      "status",
                      "progress",
                      "error"
                    ],
                    "patternProperties": {
                      "^(?!(?:phoneNumber|status|progress|error)$)[\\s\\S]*$": false
                    },
                    "additionalProperties": true,
                    "propertyNames": {
                      "type": "string",
                      "enum": [
                        "phoneNumber",
                        "status",
                        "progress",
                        "error"
                      ]
                    }
                  }
                },
                "currentNumber": {
                  "anyOf": [
                    {
                      "$ref": "#/$defs/ShortText"
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "reason": {
                  "anyOf": [
                    {
                      "$ref": "#/$defs/ShortText"
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "error": {
                  "anyOf": [
                    {
                      "$ref": "#/$defs/ShortText"
                    },
                    {
                      "type": "null"
                    }
                  ]
                }
              },
              "required": [
                "state",
                "runId",
                "step",
                "progress",
                "requestedNumbers",
                "candidateNumbers",
                "orderedNumbers",
                "provisionedNumbers",
                "numberStates",
                "currentNumber",
                "reason",
                "error"
              ],
              "patternProperties": {
                "^(?!(?:state|runId|step|progress|requestedNumbers|candidateNumbers|orderedNumbers|provisionedNumbers|numberStates|currentNumber|reason|error)$)[\\s\\S]*$": false
              },
              "additionalProperties": true,
              "propertyNames": {
                "type": "string",
                "enum": [
                  "state",
                  "runId",
                  "step",
                  "progress",
                  "requestedNumbers",
                  "candidateNumbers",
                  "orderedNumbers",
                  "provisionedNumbers",
                  "numberStates",
                  "currentNumber",
                  "reason",
                  "error"
                ]
              }
            }
          ]
        },
        {
          "type": "object"
        }
      ]
    },
    {
      "type": "object",
      "properties": {
        "data": {
          "allOf": [
            {
              "anyOf": [
                {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|[fF]{8}-[fF]{4}-[fF]{4}-[fF]{4}-[fF]{12})$",
                      "format": "uuid"
                    },
                    "statusUrl": {
                      "anyOf": [
                        {
                          "$ref": "#/$defs/HttpUrl"
                        },
                        {
                          "$ref": "#/$defs/HttpResourcePath"
                        }
                      ]
                    },
                    "state": {
                      "type": "string",
                      "enum": [
                        "queued",
                        "running",
                        "waiting_for_user",
                        "succeeded",
                        "partially_succeeded",
                        "failed",
                        "canceled",
                        "canceling"
                      ]
                    },
                    "acceptedAt": {
                      "$ref": "#/$defs/UtcDateTimeEncoded"
                    },
                    "progress": {
                      "type": "object",
                      "properties": {
                        "completed": {
                          "type": "integer",
                          "minimum": 0
                        },
                        "total": {
                          "type": "integer",
                          "minimum": 0
                        },
                        "message": {
                          "$ref": "#/$defs/NonEmptyString"
                        }
                      },
                      "required": [
                        "completed"
                      ],
                      "patternProperties": {
                        "^(?!(?:completed|total|message)$)[\\s\\S]*$": false
                      },
                      "additionalProperties": true,
                      "propertyNames": {
                        "type": "string",
                        "enum": [
                          "completed",
                          "total",
                          "message"
                        ]
                      }
                    },
                    "canCancel": {
                      "type": "boolean"
                    }
                  },
                  "required": [
                    "id",
                    "statusUrl",
                    "state",
                    "acceptedAt",
                    "canCancel"
                  ],
                  "patternProperties": {
                    "^(?!(?:id|statusUrl|state|acceptedAt|progress|canCancel)$)[\\s\\S]*$": false
                  },
                  "additionalProperties": true,
                  "propertyNames": {
                    "type": "string",
                    "enum": [
                      "id",
                      "statusUrl",
                      "state",
                      "acceptedAt",
                      "progress",
                      "canCancel"
                    ]
                  }
                },
                {
                  "type": "object",
                  "properties": {
                    "state": {
                      "type": "string",
                      "enum": [
                        "idle",
                        "running",
                        "completed",
                        "failed"
                      ]
                    },
                    "runId": {
                      "anyOf": [
                        {
                          "$ref": "#/$defs/OpaqueId"
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "step": {
                      "anyOf": [
                        {
                          "$ref": "#/$defs/ShortText"
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "progress": {
                      "type": "integer",
                      "minimum": 0,
                      "maximum": 100
                    },
                    "requestedNumbers": {
                      "type": "array",
                      "items": {
                        "$ref": "#/$defs/ShortText"
                      }
                    },
                    "candidateNumbers": {
                      "type": "array",
                      "items": {
                        "$ref": "#/$defs/ShortText"
                      }
                    },
                    "orderedNumbers": {
                      "type": "array",
                      "items": {
                        "$ref": "#/$defs/ShortText"
                      }
                    },
                    "provisionedNumbers": {
                      "type": "array",
                      "items": {
                        "$ref": "#/$defs/ShortText"
                      }
                    },
                    "numberStates": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "phoneNumber": {
                            "$ref": "#/$defs/ShortText"
                          },
                          "status": {
                            "type": "string",
                            "enum": [
                              "pending",
                              "provisioning",
                              "provisioned",
                              "failed"
                            ]
                          },
                          "progress": {
                            "type": "integer",
                            "minimum": 0,
                            "maximum": 100
                          },
                          "error": {
                            "anyOf": [
                              {
                                "$ref": "#/$defs/ShortText"
                              },
                              {
                                "type": "null"
                              }
                            ]
                          }
                        },
                        "required": [
                          "phoneNumber",
                          "status",
                          "progress",
                          "error"
                        ],
                        "patternProperties": {
                          "^(?!(?:phoneNumber|status|progress|error)$)[\\s\\S]*$": false
                        },
                        "additionalProperties": true,
                        "propertyNames": {
                          "type": "string",
                          "enum": [
                            "phoneNumber",
                            "status",
                            "progress",
                            "error"
                          ]
                        }
                      }
                    },
                    "currentNumber": {
                      "anyOf": [
                        {
                          "$ref": "#/$defs/ShortText"
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "reason": {
                      "anyOf": [
                        {
                          "$ref": "#/$defs/ShortText"
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "error": {
                      "anyOf": [
                        {
                          "$ref": "#/$defs/ShortText"
                        },
                        {
                          "type": "null"
                        }
                      ]
                    }
                  },
                  "required": [
                    "state",
                    "runId",
                    "step",
                    "progress",
                    "requestedNumbers",
                    "candidateNumbers",
                    "orderedNumbers",
                    "provisionedNumbers",
                    "numberStates",
                    "currentNumber",
                    "reason",
                    "error"
                  ],
                  "patternProperties": {
                    "^(?!(?:state|runId|step|progress|requestedNumbers|candidateNumbers|orderedNumbers|provisionedNumbers|numberStates|currentNumber|reason|error)$)[\\s\\S]*$": false
                  },
                  "additionalProperties": true,
                  "propertyNames": {
                    "type": "string",
                    "enum": [
                      "state",
                      "runId",
                      "step",
                      "progress",
                      "requestedNumbers",
                      "candidateNumbers",
                      "orderedNumbers",
                      "provisionedNumbers",
                      "numberStates",
                      "currentNumber",
                      "reason",
                      "error"
                    ]
                  }
                }
              ]
            },
            {
              "not": {
                "type": "object"
              }
            }
          ]
        }
      },
      "required": [
        "data"
      ],
      "additionalProperties": false
    }
  ]
}
```

### Underlying API operations

- `dialerNumbers.provision`: `POST /v1/workspaces/:workspaceId/dialer/numbers/provision`
- `dialerNumbers.provisionStatus`: `GET /v1/workspaces/:workspaceId/dialer/numbers/provision-status`

