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

## add_heyreach_leads

Push up to 100 leads into a HeyReach campaign (optionally pinned to a sender) or a HeyReach list, and report how many were added, updated, or failed.

Use to enroll the leads a person chose into LinkedIn outreach. The server derives the replay key from the chosen leads and returns the first result on retry.

Enrolling leads starts real LinkedIn actions and is refused on a frozen subscription. A reused key with DIFFERENT leads is a conflict, and a key whose first attempt never got an answer from HeyReach stays a conflict — check the campaign's leads before choosing a new key, because a blind retry could enroll everyone twice.

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: integration:update, campaign:launch

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

### Input schema (personal API key)

```json
{
  "type": "object",
  "anyOf": [
    {
      "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"
        },
        "target": {
          "type": "string",
          "enum": [
            "campaign"
          ]
        },
        "campaignId": {
          "$ref": "#/$defs/HeyReachId"
        },
        "campaignLeads": {
          "$ref": "#/$defs/AddHeyReachCampaignLeadsInput"
        }
      },
      "required": [
        "workspaceId",
        "target",
        "campaignId",
        "campaignLeads"
      ],
      "patternProperties": {
        "^(?!(?:workspaceId|target|campaignId|campaignLeads)$)[\\s\\S]*$": false
      },
      "additionalProperties": true,
      "propertyNames": {
        "type": "string",
        "enum": [
          "workspaceId",
          "target",
          "campaignId",
          "campaignLeads"
        ]
      }
    },
    {
      "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"
        },
        "target": {
          "type": "string",
          "enum": [
            "list"
          ]
        },
        "listId": {
          "$ref": "#/$defs/HeyReachId"
        },
        "listLeads": {
          "$ref": "#/$defs/AddHeyReachListLeadsInput"
        }
      },
      "required": [
        "workspaceId",
        "target",
        "listId",
        "listLeads"
      ],
      "patternProperties": {
        "^(?!(?:workspaceId|target|listId|listLeads)$)[\\s\\S]*$": false
      },
      "additionalProperties": true,
      "propertyNames": {
        "type": "string",
        "enum": [
          "workspaceId",
          "target",
          "listId",
          "listLeads"
        ]
      }
    }
  ],
  "$defs": {
    "HeyReachId": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "LinkedInProfileUrl": {
      "type": "string",
      "minLength": 1,
      "maxLength": 2048
    },
    "EmailAddress": {
      "type": "string",
      "minLength": 3,
      "maxLength": 320,
      "pattern": "^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$"
    },
    "HeyReachLeadInput": {
      "type": "object",
      "properties": {
        "profileUrl": {
          "$ref": "#/$defs/LinkedInProfileUrl"
        },
        "firstName": {
          "type": "string",
          "minLength": 1,
          "maxLength": 200
        },
        "lastName": {
          "type": "string",
          "minLength": 1,
          "maxLength": 200
        },
        "emailAddress": {
          "$ref": "#/$defs/EmailAddress"
        },
        "companyName": {
          "type": "string",
          "minLength": 0,
          "maxLength": 500
        },
        "position": {
          "type": "string",
          "minLength": 0,
          "maxLength": 500
        },
        "location": {
          "type": "string",
          "minLength": 0,
          "maxLength": 500
        },
        "summary": {
          "type": "string",
          "minLength": 0,
          "maxLength": 10000
        },
        "about": {
          "type": "string",
          "minLength": 0,
          "maxLength": 10000
        },
        "customUserFields": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "name": {
                "type": "string",
                "pattern": "^[A-Za-z0-9_]+$",
                "maxLength": 100
              },
              "value": {
                "type": "string",
                "minLength": 0,
                "maxLength": 10000
              }
            },
            "required": [
              "name",
              "value"
            ],
            "patternProperties": {
              "^(?!(?:name|value)$)[\\s\\S]*$": false
            },
            "additionalProperties": true,
            "propertyNames": {
              "type": "string",
              "enum": [
                "name",
                "value"
              ]
            }
          },
          "maxItems": 100
        }
      },
      "required": [
        "profileUrl",
        "firstName",
        "lastName"
      ],
      "patternProperties": {
        "^(?!(?:profileUrl|firstName|lastName|emailAddress|companyName|position|location|summary|about|customUserFields)$)[\\s\\S]*$": false
      },
      "additionalProperties": true,
      "propertyNames": {
        "type": "string",
        "enum": [
          "profileUrl",
          "firstName",
          "lastName",
          "emailAddress",
          "companyName",
          "position",
          "location",
          "summary",
          "about",
          "customUserFields"
        ]
      }
    },
    "AddHeyReachCampaignLeadsInput": {
      "type": "object",
      "properties": {
        "accountLeadPairs": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "linkedInAccountId": {
                "$ref": "#/$defs/HeyReachId"
              },
              "lead": {
                "$ref": "#/$defs/HeyReachLeadInput"
              }
            },
            "required": [
              "lead"
            ],
            "patternProperties": {
              "^(?!(?:linkedInAccountId|lead)$)[\\s\\S]*$": false
            },
            "additionalProperties": true,
            "propertyNames": {
              "type": "string",
              "enum": [
                "linkedInAccountId",
                "lead"
              ]
            }
          },
          "minItems": 1,
          "maxItems": 100
        },
        "resumeFinishedCampaign": {
          "type": "boolean"
        },
        "resumePausedCampaign": {
          "type": "boolean"
        }
      },
      "required": [
        "accountLeadPairs"
      ],
      "patternProperties": {
        "^(?!(?:accountLeadPairs|resumeFinishedCampaign|resumePausedCampaign)$)[\\s\\S]*$": false
      },
      "additionalProperties": true,
      "propertyNames": {
        "type": "string",
        "enum": [
          "accountLeadPairs",
          "resumeFinishedCampaign",
          "resumePausedCampaign"
        ]
      }
    },
    "AddHeyReachListLeadsInput": {
      "type": "object",
      "properties": {
        "leads": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/HeyReachLeadInput"
          },
          "minItems": 1,
          "maxItems": 100
        }
      },
      "required": [
        "leads"
      ],
      "patternProperties": {
        "^(?!(?:leads)$)[\\s\\S]*$": false
      },
      "additionalProperties": true,
      "propertyNames": {
        "anyOf": [
          {
            "type": "string",
            "enum": [
              "leads"
            ]
          }
        ]
      }
    }
  }
}
```

### Input schema (OAuth / delegated agent)

```json
{
  "type": "object",
  "properties": {
    "workspaceId": {
      "type": "string",
      "format": "uuid",
      "description": "Target Workspace UUID. Call list_workspaces to enumerate the Workspaces this credential may access, then pass the chosen id here."
    }
  },
  "required": [
    "workspaceId"
  ],
  "anyOf": [
    {
      "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"
        },
        "target": {
          "type": "string",
          "enum": [
            "campaign"
          ]
        },
        "campaignId": {
          "$ref": "#/$defs/HeyReachId"
        },
        "campaignLeads": {
          "$ref": "#/$defs/AddHeyReachCampaignLeadsInput"
        }
      },
      "required": [
        "workspaceId",
        "target",
        "campaignId",
        "campaignLeads"
      ],
      "patternProperties": {
        "^(?!(?:workspaceId)$)[\\s\\S]*?(?:^(?!(?:workspaceId|target|campaignId|campaignLeads)$)[\\s\\S]*$)": false
      },
      "additionalProperties": true,
      "propertyNames": {
        "anyOf": [
          {
            "type": "string",
            "enum": [
              "workspaceId",
              "target",
              "campaignId",
              "campaignLeads"
            ]
          },
          {
            "enum": [
              "workspaceId"
            ]
          }
        ]
      }
    },
    {
      "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"
        },
        "target": {
          "type": "string",
          "enum": [
            "list"
          ]
        },
        "listId": {
          "$ref": "#/$defs/HeyReachId"
        },
        "listLeads": {
          "$ref": "#/$defs/AddHeyReachListLeadsInput"
        }
      },
      "required": [
        "workspaceId",
        "target",
        "listId",
        "listLeads"
      ],
      "patternProperties": {
        "^(?!(?:workspaceId)$)[\\s\\S]*?(?:^(?!(?:workspaceId|target|listId|listLeads)$)[\\s\\S]*$)": false
      },
      "additionalProperties": true,
      "propertyNames": {
        "anyOf": [
          {
            "type": "string",
            "enum": [
              "workspaceId",
              "target",
              "listId",
              "listLeads"
            ]
          },
          {
            "enum": [
              "workspaceId"
            ]
          }
        ]
      }
    }
  ],
  "$defs": {
    "HeyReachId": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "LinkedInProfileUrl": {
      "type": "string",
      "minLength": 1,
      "maxLength": 2048
    },
    "EmailAddress": {
      "type": "string",
      "minLength": 3,
      "maxLength": 320,
      "pattern": "^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$"
    },
    "HeyReachLeadInput": {
      "type": "object",
      "properties": {
        "profileUrl": {
          "$ref": "#/$defs/LinkedInProfileUrl"
        },
        "firstName": {
          "type": "string",
          "minLength": 1,
          "maxLength": 200
        },
        "lastName": {
          "type": "string",
          "minLength": 1,
          "maxLength": 200
        },
        "emailAddress": {
          "$ref": "#/$defs/EmailAddress"
        },
        "companyName": {
          "type": "string",
          "minLength": 0,
          "maxLength": 500
        },
        "position": {
          "type": "string",
          "minLength": 0,
          "maxLength": 500
        },
        "location": {
          "type": "string",
          "minLength": 0,
          "maxLength": 500
        },
        "summary": {
          "type": "string",
          "minLength": 0,
          "maxLength": 10000
        },
        "about": {
          "type": "string",
          "minLength": 0,
          "maxLength": 10000
        },
        "customUserFields": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "name": {
                "type": "string",
                "pattern": "^[A-Za-z0-9_]+$",
                "maxLength": 100
              },
              "value": {
                "type": "string",
                "minLength": 0,
                "maxLength": 10000
              }
            },
            "required": [
              "name",
              "value"
            ],
            "patternProperties": {
              "^(?!(?:name|value)$)[\\s\\S]*$": false
            },
            "additionalProperties": true,
            "propertyNames": {
              "type": "string",
              "enum": [
                "name",
                "value"
              ]
            }
          },
          "maxItems": 100
        }
      },
      "required": [
        "profileUrl",
        "firstName",
        "lastName"
      ],
      "patternProperties": {
        "^(?!(?:profileUrl|firstName|lastName|emailAddress|companyName|position|location|summary|about|customUserFields)$)[\\s\\S]*$": false
      },
      "additionalProperties": true,
      "propertyNames": {
        "type": "string",
        "enum": [
          "profileUrl",
          "firstName",
          "lastName",
          "emailAddress",
          "companyName",
          "position",
          "location",
          "summary",
          "about",
          "customUserFields"
        ]
      }
    },
    "AddHeyReachCampaignLeadsInput": {
      "type": "object",
      "properties": {
        "accountLeadPairs": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "linkedInAccountId": {
                "$ref": "#/$defs/HeyReachId"
              },
              "lead": {
                "$ref": "#/$defs/HeyReachLeadInput"
              }
            },
            "required": [
              "lead"
            ],
            "patternProperties": {
              "^(?!(?:linkedInAccountId|lead)$)[\\s\\S]*$": false
            },
            "additionalProperties": true,
            "propertyNames": {
              "type": "string",
              "enum": [
                "linkedInAccountId",
                "lead"
              ]
            }
          },
          "minItems": 1,
          "maxItems": 100
        },
        "resumeFinishedCampaign": {
          "type": "boolean"
        },
        "resumePausedCampaign": {
          "type": "boolean"
        }
      },
      "required": [
        "accountLeadPairs"
      ],
      "patternProperties": {
        "^(?!(?:accountLeadPairs|resumeFinishedCampaign|resumePausedCampaign)$)[\\s\\S]*$": false
      },
      "additionalProperties": true,
      "propertyNames": {
        "type": "string",
        "enum": [
          "accountLeadPairs",
          "resumeFinishedCampaign",
          "resumePausedCampaign"
        ]
      }
    },
    "AddHeyReachListLeadsInput": {
      "type": "object",
      "properties": {
        "leads": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/HeyReachLeadInput"
          },
          "minItems": 1,
          "maxItems": 100
        }
      },
      "required": [
        "leads"
      ],
      "patternProperties": {
        "^(?!(?:leads)$)[\\s\\S]*$": false
      },
      "additionalProperties": true,
      "propertyNames": {
        "anyOf": [
          {
            "type": "string",
            "enum": [
              "leads"
            ]
          }
        ]
      }
    }
  }
}
```

### Output schema (structuredContent)

```json
{
  "$defs": {
    "HeyReachLeadCounts": {
      "type": "object",
      "properties": {
        "addedLeadsCount": {
          "type": "integer",
          "minimum": 0,
          "maximum": 9007199254740991
        },
        "updatedLeadsCount": {
          "type": "integer",
          "minimum": 0,
          "maximum": 9007199254740991
        },
        "failedLeadsCount": {
          "type": "integer",
          "minimum": 0,
          "maximum": 9007199254740991
        }
      },
      "required": [
        "addedLeadsCount",
        "updatedLeadsCount",
        "failedLeadsCount"
      ],
      "patternProperties": {
        "^(?!(?:addedLeadsCount|updatedLeadsCount|failedLeadsCount)$)[\\s\\S]*$": false
      },
      "additionalProperties": true,
      "propertyNames": {
        "type": "string",
        "enum": [
          "addedLeadsCount",
          "updatedLeadsCount",
          "failedLeadsCount"
        ]
      }
    }
  },
  "type": "object",
  "anyOf": [
    {
      "allOf": [
        {
          "$ref": "#/$defs/HeyReachLeadCounts"
        },
        {
          "type": "object"
        }
      ]
    },
    {
      "type": "object",
      "properties": {
        "data": {
          "allOf": [
            {
              "$ref": "#/$defs/HeyReachLeadCounts"
            },
            {
              "not": {
                "type": "object"
              }
            }
          ]
        }
      },
      "required": [
        "data"
      ],
      "additionalProperties": false
    }
  ]
}
```

### Underlying API operations

- `heyreachCampaigns.addLeads`: `POST /v1/workspaces/:workspaceId/integrations/heyreach/campaigns/:campaignId/leads`
- `heyreachLists.addLeads`: `POST /v1/workspaces/:workspaceId/integrations/heyreach/lists/:listId/leads`

