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

## save_unibox_reply_draft

Save or update a durable authored reply draft for a human to review in its exact conversation. Creates no send token and sends or enqueues nothing.

Use a stable client-generated draft UUID and expectedRevision 0 to create; read the saved revision before updating. Repeat the identical request for a retry.

Never treat a saved draft as approval to send. A stale revision conflicts; read back before editing. Subject must retain the bound message's reply subject.

Scopes: unibox:reply

Risk: write; confirmation: none; 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"
    },
    "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"
    },
    "draftId": {
      "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"
    },
    "save": {
      "type": "object",
      "properties": {
        "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"
        },
        "expectedRevision": {
          "type": "integer",
          "minimum": 0,
          "maximum": 9007199254740991,
          "allOf": [
            {
              "maximum": 2147483646
            }
          ]
        },
        "subject": {
          "anyOf": [
            {
              "type": "string",
              "maxLength": 998,
              "pattern": "^[^\\r\\n\\u0000]*$"
            },
            {
              "type": "null"
            }
          ]
        },
        "draft": {
          "type": "object",
          "properties": {
            "fromInboxId": {
              "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"
            },
            "to": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/EmailAddress"
              },
              "minItems": 1,
              "maxItems": 50
            },
            "cc": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/EmailAddress"
              },
              "minItems": 0,
              "maxItems": 50
            },
            "bcc": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/EmailAddress"
              },
              "minItems": 0,
              "maxItems": 50
            },
            "body": {
              "$ref": "#/$defs/ReplyBody"
            },
            "bodyContentType": {
              "type": "string",
              "enum": [
                "html",
                "plain"
              ]
            },
            "personalizationTemplate": {
              "type": "string",
              "minLength": 1,
              "maxLength": 100000
            },
            "track": {
              "type": "boolean"
            }
          },
          "required": [
            "to",
            "body",
            "bodyContentType"
          ],
          "patternProperties": {
            "^(?!(?:fromInboxId|to|cc|bcc|body|bodyContentType|personalizationTemplate|track)$)[\\s\\S]*$": false
          },
          "additionalProperties": true,
          "propertyNames": {
            "type": "string",
            "enum": [
              "fromInboxId",
              "to",
              "cc",
              "bcc",
              "body",
              "bodyContentType",
              "personalizationTemplate",
              "track"
            ]
          }
        }
      },
      "required": [
        "messageId",
        "expectedRevision",
        "subject",
        "draft"
      ],
      "patternProperties": {
        "^(?!(?:messageId|expectedRevision|subject|draft)$)[\\s\\S]*$": false
      },
      "additionalProperties": true,
      "propertyNames": {
        "type": "string",
        "enum": [
          "messageId",
          "expectedRevision",
          "subject",
          "draft"
        ]
      }
    }
  },
  "required": [
    "workspaceId",
    "threadId",
    "draftId",
    "save"
  ],
  "patternProperties": {
    "^(?!(?:workspaceId|threadId|draftId|save)$)[\\s\\S]*$": false
  },
  "additionalProperties": true,
  "propertyNames": {
    "type": "string",
    "enum": [
      "workspaceId",
      "threadId",
      "draftId",
      "save"
    ]
  },
  "$defs": {
    "EmailAddress": {
      "type": "string",
      "minLength": 3,
      "maxLength": 320,
      "pattern": "^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$"
    },
    "ReplyBody": {
      "type": "string",
      "minLength": 1,
      "maxLength": 1000000
    }
  }
}
```

### 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"
    },
    "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"
    },
    "draftId": {
      "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"
    },
    "save": {
      "type": "object",
      "properties": {
        "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"
        },
        "expectedRevision": {
          "type": "integer",
          "minimum": 0,
          "maximum": 9007199254740991,
          "allOf": [
            {
              "maximum": 2147483646
            }
          ]
        },
        "subject": {
          "anyOf": [
            {
              "type": "string",
              "maxLength": 998,
              "pattern": "^[^\\r\\n\\u0000]*$"
            },
            {
              "type": "null"
            }
          ]
        },
        "draft": {
          "type": "object",
          "properties": {
            "fromInboxId": {
              "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"
            },
            "to": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/EmailAddress"
              },
              "minItems": 1,
              "maxItems": 50
            },
            "cc": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/EmailAddress"
              },
              "minItems": 0,
              "maxItems": 50
            },
            "bcc": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/EmailAddress"
              },
              "minItems": 0,
              "maxItems": 50
            },
            "body": {
              "$ref": "#/$defs/ReplyBody"
            },
            "bodyContentType": {
              "type": "string",
              "enum": [
                "html",
                "plain"
              ]
            },
            "personalizationTemplate": {
              "type": "string",
              "minLength": 1,
              "maxLength": 100000
            },
            "track": {
              "type": "boolean"
            }
          },
          "required": [
            "to",
            "body",
            "bodyContentType"
          ],
          "patternProperties": {
            "^(?!(?:fromInboxId|to|cc|bcc|body|bodyContentType|personalizationTemplate|track)$)[\\s\\S]*$": false
          },
          "additionalProperties": true,
          "propertyNames": {
            "type": "string",
            "enum": [
              "fromInboxId",
              "to",
              "cc",
              "bcc",
              "body",
              "bodyContentType",
              "personalizationTemplate",
              "track"
            ]
          }
        }
      },
      "required": [
        "messageId",
        "expectedRevision",
        "subject",
        "draft"
      ],
      "patternProperties": {
        "^(?!(?:messageId|expectedRevision|subject|draft)$)[\\s\\S]*$": false
      },
      "additionalProperties": true,
      "propertyNames": {
        "type": "string",
        "enum": [
          "messageId",
          "expectedRevision",
          "subject",
          "draft"
        ]
      }
    }
  },
  "required": [
    "workspaceId",
    "threadId",
    "draftId",
    "save"
  ],
  "patternProperties": {
    "^(?!(?:workspaceId|threadId|draftId|save)$)[\\s\\S]*$": false
  },
  "additionalProperties": true,
  "propertyNames": {
    "type": "string",
    "enum": [
      "workspaceId",
      "threadId",
      "draftId",
      "save"
    ]
  },
  "$defs": {
    "EmailAddress": {
      "type": "string",
      "minLength": 3,
      "maxLength": 320,
      "pattern": "^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$"
    },
    "ReplyBody": {
      "type": "string",
      "minLength": 1,
      "maxLength": 1000000
    }
  }
}
```

### Output schema (structuredContent)

```json
{
  "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"
    },
    "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"
    },
    "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": {
      "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"
    },
    "fromInboxId": {
      "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"
    },
    "subject": {
      "anyOf": [
        {
          "type": "string",
          "maxLength": 998,
          "pattern": "^[^\\r\\n\\u0000]*$"
        },
        {
          "type": "null"
        }
      ]
    },
    "revision": {
      "type": "integer",
      "minimum": 0,
      "maximum": 9007199254740991,
      "allOf": [
        {
          "maximum": 2147483647
        }
      ]
    },
    "createdAt": {
      "$ref": "#/$defs/UtcDateTimeEncoded"
    },
    "updatedAt": {
      "$ref": "#/$defs/UtcDateTimeEncoded"
    },
    "state": {
      "type": "string",
      "enum": [
        "draft"
      ]
    },
    "draft": {
      "type": "object",
      "properties": {
        "fromInboxId": {
          "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"
        },
        "to": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/EmailAddress"
          },
          "minItems": 1,
          "maxItems": 50
        },
        "cc": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/EmailAddress"
          },
          "minItems": 0,
          "maxItems": 50
        },
        "bcc": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/EmailAddress"
          },
          "minItems": 0,
          "maxItems": 50
        },
        "body": {
          "$ref": "#/$defs/ReplyBody"
        },
        "bodyContentType": {
          "type": "string",
          "enum": [
            "html",
            "plain"
          ]
        },
        "personalizationTemplate": {
          "type": "string",
          "minLength": 1,
          "maxLength": 100000
        },
        "track": {
          "type": "boolean"
        }
      },
      "required": [
        "to",
        "body",
        "bodyContentType"
      ],
      "patternProperties": {
        "^(?!(?:fromInboxId|to|cc|bcc|body|bodyContentType|personalizationTemplate|track)$)[\\s\\S]*$": false
      },
      "additionalProperties": true,
      "propertyNames": {
        "type": "string",
        "enum": [
          "fromInboxId",
          "to",
          "cc",
          "bcc",
          "body",
          "bodyContentType",
          "personalizationTemplate",
          "track"
        ]
      }
    }
  },
  "required": [
    "id",
    "workspaceId",
    "threadId",
    "messageId",
    "fromInboxId",
    "subject",
    "revision",
    "createdAt",
    "updatedAt",
    "state",
    "draft"
  ],
  "patternProperties": {
    "^(?!(?:id|workspaceId|threadId|messageId|fromInboxId|subject|revision|createdAt|updatedAt|state|draft)$)[\\s\\S]*$": false
  },
  "additionalProperties": true,
  "propertyNames": {
    "type": "string",
    "enum": [
      "id",
      "workspaceId",
      "threadId",
      "messageId",
      "fromInboxId",
      "subject",
      "revision",
      "createdAt",
      "updatedAt",
      "state",
      "draft"
    ]
  },
  "$defs": {
    "UtcDateTimeEncoded": {
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{3}Z$"
    },
    "EmailAddress": {
      "type": "string",
      "minLength": 3,
      "maxLength": 320,
      "pattern": "^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$"
    },
    "ReplyBody": {
      "type": "string",
      "minLength": 1,
      "maxLength": 1000000
    }
  }
}
```

### Underlying API operations

- `uniboxThreads.saveReplyDraft`: `PUT /v1/workspaces/:workspaceId/unibox/threads/:threadId/reply-drafts/:draftId`

