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

## inspect_campaign

Inspect a campaign's bounded projection and step summaries without sender credentials.

Use first to learn the campaign's status, version, and step shape before validating or launching.

Step content bodies and sender internals are never returned; do not probe for them.

Scopes: campaign:read

Risk: read; confirmation: none; idempotency: none.

### 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"
    },
    "campaignId": {
      "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"
    }
  },
  "required": [
    "workspaceId",
    "campaignId"
  ],
  "patternProperties": {
    "^(?!(?:workspaceId|campaignId)$)[\\s\\S]*$": false
  },
  "additionalProperties": true,
  "propertyNames": {
    "type": "string",
    "enum": [
      "workspaceId",
      "campaignId"
    ]
  }
}
```

### 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"
    },
    "campaignId": {
      "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"
    }
  },
  "required": [
    "workspaceId",
    "campaignId"
  ],
  "patternProperties": {
    "^(?!(?:workspaceId|campaignId)$)[\\s\\S]*$": false
  },
  "additionalProperties": true,
  "propertyNames": {
    "type": "string",
    "enum": [
      "workspaceId",
      "campaignId"
    ]
  }
}
```

### Output schema (structuredContent)

```json
{
  "type": "object",
  "properties": {
    "campaign": {
      "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"
        },
        "name": {
          "$ref": "#/$defs/ShortText"
        },
        "status": {
          "type": "string",
          "enum": [
            "draft",
            "active",
            "paused",
            "archived",
            "completed"
          ]
        },
        "pauseContext": {
          "anyOf": [
            {
              "anyOf": [
                {
                  "type": "object",
                  "properties": {
                    "reason": {
                      "anyOf": [
                        {
                          "type": "string",
                          "enum": [
                            "manual"
                          ]
                        }
                      ]
                    },
                    "pausedAt": {
                      "$ref": "#/$defs/UtcDateTimeEncoded"
                    },
                    "source": {
                      "anyOf": [
                        {
                          "type": "string",
                          "enum": [
                            "user"
                          ]
                        }
                      ]
                    },
                    "evidence": {
                      "type": "null"
                    }
                  },
                  "required": [
                    "reason",
                    "pausedAt",
                    "source",
                    "evidence"
                  ],
                  "patternProperties": {
                    "^(?!(?:reason|pausedAt|source|evidence)$)[\\s\\S]*$": false
                  },
                  "additionalProperties": true,
                  "propertyNames": {
                    "type": "string",
                    "enum": [
                      "reason",
                      "pausedAt",
                      "source",
                      "evidence"
                    ]
                  }
                },
                {
                  "type": "object",
                  "properties": {
                    "reason": {
                      "anyOf": [
                        {
                          "type": "string",
                          "enum": [
                            "bounce_threshold"
                          ]
                        }
                      ]
                    },
                    "pausedAt": {
                      "$ref": "#/$defs/UtcDateTimeEncoded"
                    },
                    "source": {
                      "anyOf": [
                        {
                          "type": "string",
                          "enum": [
                            "system"
                          ]
                        }
                      ]
                    },
                    "evidence": {
                      "type": "object",
                      "properties": {
                        "thresholdPercent": {
                          "anyOf": [
                            {
                              "type": "number"
                            },
                            {
                              "type": "string",
                              "enum": [
                                "Infinity",
                                "-Infinity",
                                "NaN"
                              ]
                            }
                          ]
                        },
                        "bounceRatePercent": {
                          "anyOf": [
                            {
                              "type": "number"
                            },
                            {
                              "type": "string",
                              "enum": [
                                "Infinity",
                                "-Infinity",
                                "NaN"
                              ]
                            }
                          ]
                        },
                        "sentCount": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 9007199254740991
                        },
                        "bouncedCount": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 9007199254740991
                        },
                        "recipientBounceCount": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 9007199254740991
                        },
                        "senderBounceCount": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 9007199254740991
                        },
                        "unclassifiedBounceCount": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 9007199254740991
                        },
                        "scope": {
                          "anyOf": [
                            {
                              "type": "string",
                              "enum": [
                                "campaign_lifetime"
                              ]
                            }
                          ]
                        }
                      },
                      "required": [
                        "thresholdPercent",
                        "bounceRatePercent",
                        "sentCount",
                        "bouncedCount",
                        "recipientBounceCount",
                        "senderBounceCount",
                        "unclassifiedBounceCount",
                        "scope"
                      ],
                      "patternProperties": {
                        "^(?!(?:thresholdPercent|bounceRatePercent|sentCount|bouncedCount|recipientBounceCount|senderBounceCount|unclassifiedBounceCount|scope)$)[\\s\\S]*$": false
                      },
                      "additionalProperties": true,
                      "propertyNames": {
                        "type": "string",
                        "enum": [
                          "thresholdPercent",
                          "bounceRatePercent",
                          "sentCount",
                          "bouncedCount",
                          "recipientBounceCount",
                          "senderBounceCount",
                          "unclassifiedBounceCount",
                          "scope"
                        ]
                      }
                    }
                  },
                  "required": [
                    "reason",
                    "pausedAt",
                    "source",
                    "evidence"
                  ],
                  "patternProperties": {
                    "^(?!(?:reason|pausedAt|source|evidence)$)[\\s\\S]*$": false
                  },
                  "additionalProperties": true,
                  "propertyNames": {
                    "type": "string",
                    "enum": [
                      "reason",
                      "pausedAt",
                      "source",
                      "evidence"
                    ]
                  }
                },
                {
                  "type": "object",
                  "properties": {
                    "reason": {
                      "anyOf": [
                        {
                          "type": "string",
                          "enum": [
                            "unknown"
                          ]
                        }
                      ]
                    },
                    "pausedAt": {
                      "anyOf": [
                        {
                          "$ref": "#/$defs/UtcDateTimeEncoded"
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "source": {
                      "anyOf": [
                        {
                          "type": "string",
                          "enum": [
                            "unknown"
                          ]
                        }
                      ]
                    },
                    "evidence": {
                      "type": "null"
                    }
                  },
                  "required": [
                    "reason",
                    "pausedAt",
                    "source",
                    "evidence"
                  ],
                  "patternProperties": {
                    "^(?!(?:reason|pausedAt|source|evidence)$)[\\s\\S]*$": false
                  },
                  "additionalProperties": true,
                  "propertyNames": {
                    "type": "string",
                    "enum": [
                      "reason",
                      "pausedAt",
                      "source",
                      "evidence"
                    ]
                  }
                }
              ],
              "description": "Opt-in response context: request Accept: application/vnd.scheduler-zero.campaign-pause-context.v1+json, application/json. Unnegotiated responses omit pauseContext for strict legacy clients. Old servers omit it even for new clients; an absent field on a paused campaign means unknown attribution."
            },
            {
              "type": "null"
            }
          ]
        },
        "kind": {
          "anyOf": [
            {
              "$ref": "#/$defs/ShortText"
            },
            {
              "type": "null"
            }
          ]
        },
        "currentVersion": {
          "type": "integer",
          "minimum": 0,
          "maximum": 9007199254740991
        },
        "inboxCount": {
          "type": "integer",
          "minimum": 0,
          "maximum": 9007199254740991
        },
        "contactCount": {
          "type": "integer",
          "minimum": 0,
          "maximum": 9007199254740991
        },
        "createdAt": {
          "$ref": "#/$defs/UtcDateTimeEncoded"
        },
        "updatedAt": {
          "$ref": "#/$defs/UtcDateTimeEncoded"
        }
      },
      "required": [
        "id",
        "workspaceId",
        "name",
        "status",
        "kind",
        "currentVersion",
        "inboxCount",
        "contactCount",
        "createdAt",
        "updatedAt"
      ],
      "patternProperties": {
        "^(?!(?:id|workspaceId|name|status|pauseContext|kind|currentVersion|inboxCount|contactCount|createdAt|updatedAt)$)[\\s\\S]*$": false
      },
      "additionalProperties": true,
      "propertyNames": {
        "type": "string",
        "enum": [
          "id",
          "workspaceId",
          "name",
          "status",
          "pauseContext",
          "kind",
          "currentVersion",
          "inboxCount",
          "contactCount",
          "createdAt",
          "updatedAt"
        ]
      }
    },
    "steps": {
      "type": "array",
      "items": {
        "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"
          },
          "type": {
            "type": "string",
            "enum": [
              "email_content",
              "manual_review",
              "linked_in_connection_request",
              "linked_in_in_mail",
              "phone_call",
              "text_message",
              "http_post_request",
              "attio_task",
              "heyreach_campaign"
            ]
          },
          "enabled": {
            "type": "boolean"
          }
        },
        "required": [
          "id",
          "type",
          "enabled"
        ],
        "patternProperties": {
          "^(?!(?:id|type|enabled)$)[\\s\\S]*$": false
        },
        "additionalProperties": true,
        "propertyNames": {
          "type": "string",
          "enum": [
            "id",
            "type",
            "enabled"
          ]
        }
      }
    }
  },
  "required": [
    "campaign",
    "steps"
  ],
  "patternProperties": {
    "^(?!(?:campaign|steps)$)[\\s\\S]*$": false
  },
  "additionalProperties": true,
  "propertyNames": {
    "type": "string",
    "enum": [
      "campaign",
      "steps"
    ]
  },
  "$defs": {
    "ShortText": {
      "type": "string",
      "minLength": 1,
      "maxLength": 256
    },
    "UtcDateTimeEncoded": {
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{3}Z$"
    }
  }
}
```

### Underlying API operations

- `campaigns.get`: `GET /v1/workspaces/:workspaceId/campaigns/:campaignId`

