# 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)

## send_unibox_reply

Commit a reply from a connected mailbox into an existing conversation using a preview confirmation token. The server derives the send replay key.

Use only after previewing. The preview names the exact addresses the message will reach, and the token binds them — the commit cannot widen that set.

This is real mail to a real person and cannot be recalled. It is a paid action, it is refused on a frozen subscription, and the server deduplicates retries of the same confirmed send.

Use the native preview first and pass its confirmation token unchanged to commit. A token does not bypass current permissions or Workspace checks.

Scopes: unibox:reply

Risk: costly; confirmation: preview_token; idempotency: required.

### 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"
    },
    "messageId": {
      "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"
    },
    "confirmationToken": {
      "$ref": "#/$defs/OpaqueId"
    }
  },
  "required": [
    "workspaceId",
    "messageId",
    "confirmationToken"
  ],
  "patternProperties": {
    "^(?!(?:workspaceId|messageId|confirmationToken)$)[\\s\\S]*$": false
  },
  "additionalProperties": true,
  "propertyNames": {
    "type": "string",
    "enum": [
      "workspaceId",
      "messageId",
      "confirmationToken"
    ]
  },
  "$defs": {
    "OpaqueId": {
      "type": "string",
      "minLength": 1,
      "maxLength": 512
    }
  }
}
```

### 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"
    },
    "messageId": {
      "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"
    },
    "confirmationToken": {
      "$ref": "#/$defs/OpaqueId"
    }
  },
  "required": [
    "workspaceId",
    "messageId",
    "confirmationToken"
  ],
  "patternProperties": {
    "^(?!(?:workspaceId|messageId|confirmationToken)$)[\\s\\S]*$": false
  },
  "additionalProperties": true,
  "propertyNames": {
    "type": "string",
    "enum": [
      "workspaceId",
      "messageId",
      "confirmationToken"
    ]
  },
  "$defs": {
    "OpaqueId": {
      "type": "string",
      "minLength": 1,
      "maxLength": 512
    }
  }
}
```

### Output schema (structuredContent)

```json
{
  "type": "object",
  "properties": {
    "threadId": {
      "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"
    },
    "messageId": {
      "anyOf": [
        {
          "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"
        },
        {
          "type": "null"
        }
      ]
    },
    "providerMessageId": {
      "$ref": "#/$defs/OpaqueId"
    },
    "providerThreadId": {
      "$ref": "#/$defs/OpaqueId"
    },
    "sentAt": {
      "$ref": "#/$defs/UtcDateTimeEncoded"
    }
  },
  "required": [
    "threadId",
    "messageId",
    "providerMessageId",
    "providerThreadId",
    "sentAt"
  ],
  "patternProperties": {
    "^(?!(?:threadId|messageId|providerMessageId|providerThreadId|sentAt)$)[\\s\\S]*$": false
  },
  "additionalProperties": true,
  "propertyNames": {
    "type": "string",
    "enum": [
      "threadId",
      "messageId",
      "providerMessageId",
      "providerThreadId",
      "sentAt"
    ]
  },
  "$defs": {
    "OpaqueId": {
      "type": "string",
      "minLength": 1,
      "maxLength": 512
    },
    "UtcDateTimeEncoded": {
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{3}Z$"
    }
  }
}
```

### Underlying API operations

- `uniboxMessages.previewReply`: `POST /v1/workspaces/:workspaceId/unibox/messages/:messageId/reply-preview`
- `uniboxMessages.commitReply`: `POST /v1/workspaces/:workspaceId/unibox/messages/:messageId/reply`

