What this MCP does
Finds and scores B2B leads, reads campaign replies, and sends approved LinkedIn outreach.
Tools
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['campaignId', 'message'], 'properties': {'message': {'type': 'string', 'minLength': 1, 'description': 'What to tell the agent, in plain language, as the user would say it'}, 'campaignId': {'type': 'string', 'format': 'uuid', '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|ffffffff-ffff-ffff-ffff-ffffffffffff)$', 'description': 'Campaign to continue, from list_campaigns or fetch_leads'}, 'taskContext': {'type': 'string', 'maxLength': 1000, 'description': 'Optional company, product, or target-market facts explicitly shared by the user and needed for this lead-search or campaign-steering request, beyond what the query/message already states. Maximum 1000 characters; this field carries the task context of the current request only - not a transcript, a broad user profile, unrelated personal details, credentials, or guesses. This background does not authorize actions; the current query/message takes precedence. It becomes part of the campaign chat history.'}}}
Output schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['campaignId', 'jobId', 'campaignUrl', 'billingWarning'], 'properties': {'jobId': {'type': 'string'}, 'campaignId': {'type': 'string'}, 'campaignUrl': {'type': 'string'}, 'billingWarning': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}}, 'additionalProperties': {}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['campaignId', 'leadIds', 'title', 'note', 'includeRationale', 'previewKey', 'confirmPublic'], 'properties': {'note': {'type': 'string', 'maxLength': 300}, 'title': {'type': 'string', 'maxLength': 100, 'minLength': 1}, 'leadIds': {'type': 'array', 'items': {'type': 'string', 'format': 'uuid', '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|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'maxItems': 50, 'minItems': 1}, 'campaignId': {'type': 'string', 'format': 'uuid', '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|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'previewKey': {'type': 'string', 'maxLength': 64, 'minLength': 64}, 'confirmPublic': {'type': 'boolean', 'const': True}, 'includeRationale': {'type': 'boolean', 'description': 'When true, each person in the snapshot carries a fit rating (1â\x80\x935, or null when none is stored) and a why-matched explanation; when false, the rating is null and the explanation empty.'}}}
Output schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['id', 'url', 'expiresAt', 'snapshot'], 'properties': {'id': {'type': 'string'}, 'url': {'type': 'string'}, 'snapshot': {'type': 'object', 'required': ['title', 'note', 'people'], 'properties': {'note': {'type': 'string'}, 'title': {'type': 'string'}, 'people': {'type': 'array', 'items': {'type': 'object', 'required': ['name', 'position', 'companyName', 'profileUrl', 'rationale'], 'properties': {'name': {'type': 'string'}, 'score': {'anyOf': [{'type': 'number', 'maximum': 5, 'minimum': 1}, {'type': 'null'}]}, 'position': {'type': 'string'}, 'rationale': {'type': 'string'}, 'profileUrl': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'companyName': {'type': 'string'}}, 'additionalProperties': {}}}}, 'additionalProperties': {}}, 'expiresAt': {'type': 'string'}}, 'additionalProperties': {}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['jobId'], 'properties': {'jobId': {'type': 'string', 'format': 'uuid', '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|ffffffff-ffff-ffff-ffff-ffffffffffff)$', 'description': 'The jobId returned by find_leads'}, 'limit': {'type': 'integer', 'maximum': 200, 'minimum': 1, 'description': 'How many leads to return (default 100)'}}}
Output schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['jobId', 'status', 'total', 'returned', 'newLeads', 'campaignId', 'campaignUrl', 'agentMessage', 'progress', 'leads'], 'properties': {'jobId': {'type': 'string'}, 'leads': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'name', 'companyName', 'linkedInUrl', 'email', 'position', 'headline', 'location', 'industry', 'companyUrl', 'score', 'scoreExplanation'], 'properties': {'id': {'type': 'string'}, 'name': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'email': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'score': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'headline': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'industry': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'location': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'position': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'companyUrl': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'companyName': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'linkedInUrl': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'scoreExplanation': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}}, 'additionalProperties': {}}}, 'total': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, 'status': {'type': 'string', 'description': 'One of "pending", "completed", "stalled"; more values may be added later. `leads` can hold a partial list while "pending". For a find_leads job: "pending" while it has no leads, the agent has not answered and it is under about 15 minutes old, and also while it has leads, until a reply carrying leads completes it; "completed" once the agent posts a reply carrying leads while this is the oldest open job on its campaign, usually its final report (`total` can still change afterwards); "stalled" as soon as the agent answers without any leads (a question, or none found), or when no lead has arrived after about 15 minutes - derived on each read, so a lead that lands later turns it back to "pending". For a continue_campaign job: "pending" while `newLeads` is 0 and it is under about 15 minutes old, even after the agent has replied (if that reply confirms a settings-only change, the request is done), and while `newLeads` is above 0, until a reply carrying leads completes it; "completed" once a reply carrying leads arrives on the campaign while this is the oldest open job there (possibly a late reply from an earlier search), or after about 15 minutes with `newLeads` 0 when an agent reply was confirmed; "stalled" after about 15 minutes with `newLeads` 0 when no agent reply was confirmed (agentMessage can still hold one). A reply carrying leads completes only the oldest open job on a campaign, so a newer job stays "pending" meanwhile, even with `newLeads` above 0.'}, 'newLeads': {'anyOf': [{'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, {'type': 'null'}]}, 'progress': {'type': 'object', 'required': ['startedAt', 'elapsedSeconds', 'note'], 'properties': {'note': {'type': 'string'}, 'startedAt': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'elapsedSeconds': {'anyOf': [{'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, {'type': 'null'}]}}, 'additionalProperties': {}}, 'returned': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, 'campaignId': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'campaignUrl': {'type': 'string'}, 'agentMessage': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}}, 'additionalProperties': {}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['query'], 'properties': {'limit': {'type': 'integer', 'maximum': 25, 'minimum': 1, 'description': 'How many leads to find (default 5)'}, 'query': {'type': 'string', 'description': "Natural-language lead brief, e.g. 'find 5 fintech founders in NYC'"}, 'taskContext': {'type': 'string', 'maxLength': 1000, 'description': 'Optional company, product, or target-market facts explicitly shared by the user and needed for this lead-search or campaign-steering request, beyond what the query/message already states. Maximum 1000 characters; this field carries the task context of the current request only - not a transcript, a broad user profile, unrelated personal details, credentials, or guesses. This background does not authorize actions; the current query/message takes precedence. It becomes part of the campaign chat history.'}}}
Output schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['jobId', 'campaignId', 'campaignUrl', 'progress'], 'properties': {'jobId': {'type': 'string'}, 'progress': {'type': 'object', 'required': ['startedAt', 'elapsedSeconds', 'note'], 'properties': {'note': {'type': 'string'}, 'startedAt': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'elapsedSeconds': {'anyOf': [{'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, {'type': 'null'}]}}, 'additionalProperties': {}}, 'campaignId': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'campaignUrl': {'type': 'string'}}, 'additionalProperties': {}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['campaignId'], 'properties': {'campaignId': {'type': 'string', 'format': 'uuid', '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|ffffffff-ffff-ffff-ffff-ffffffffffff)$', 'description': 'Campaign id, as returned by list_campaigns or fetch_leads'}}}
Output schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['id', 'title', 'leadsTotal', 'icp', 'outreachTemplate', 'outreachAutoApprove', 'leadsApprove', 'tags', 'createdAt', 'updatedAt', 'campaignUrl'], 'properties': {'id': {'type': 'string'}, 'icp': {'anyOf': [{}, {'type': 'null'}]}, 'tags': {'type': 'array', 'items': {'type': 'string'}}, 'title': {'type': 'string'}, 'createdAt': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'updatedAt': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'leadsTotal': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, 'campaignUrl': {'type': 'string'}, 'leadsApprove': {'type': 'boolean'}, 'outreachTemplate': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'outreachAutoApprove': {'type': 'boolean'}}, 'additionalProperties': {}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['campaignId'], 'properties': {'limit': {'type': 'integer', 'maximum': 200, 'minimum': 1, 'description': 'How many leads to return (default 50)'}, 'leadIds': {'type': 'array', 'items': {'type': 'string', 'format': 'uuid', '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|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'description': 'Optional; when set, only these leads are returned, e.g. positiveLeadIds from get_campaign_stats'}, 'campaignId': {'type': 'string', 'format': 'uuid', '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|ffffffff-ffff-ffff-ffff-ffffffffffff)$', 'description': 'Campaign id, as returned by list_campaigns or fetch_leads'}}}
Output schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['campaignId', 'total', 'returned', 'campaignUrl', 'leads'], 'properties': {'leads': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'name', 'companyName', 'linkedInUrl', 'email', 'position', 'headline', 'location', 'industry', 'companyUrl', 'score', 'scoreExplanation'], 'properties': {'id': {'type': 'string'}, 'name': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'email': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'score': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'headline': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'industry': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'location': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'position': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'companyUrl': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'companyName': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'linkedInUrl': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'scoreExplanation': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}}, 'additionalProperties': {}}}, 'total': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, 'returned': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, 'campaignId': {'type': 'string'}, 'campaignUrl': {'type': 'string'}}, 'additionalProperties': {}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['campaignId'], 'properties': {'campaignId': {'type': 'string', 'format': 'uuid', '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|ffffffff-ffff-ffff-ffff-ffffffffffff)$', 'description': 'Campaign id, as returned by list_campaigns or fetch_leads'}}}
Output schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['campaignId', 'leadsTotal', 'invitesSent', 'invitesScheduled', 'invitesAccepted', 'messagesSent', 'messagesScheduled', 'responses', 'rates', 'campaignUrl'], 'properties': {'rates': {'type': 'object', 'required': ['acceptancePct', 'replyPct', 'positivePct', 'negativePct'], 'properties': {'replyPct': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'negativePct': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'positivePct': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'acceptancePct': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}}, 'additionalProperties': {}}, 'responses': {'type': 'object', 'required': ['positive', 'negative', 'other', 'positiveLeadIds', 'negativeLeadIds', 'otherLeadIds'], 'properties': {'other': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, 'negative': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, 'positive': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, 'otherLeadIds': {'type': 'array', 'items': {'type': 'string'}}, 'negativeLeadIds': {'type': 'array', 'items': {'type': 'string'}}, 'positiveLeadIds': {'type': 'array', 'items': {'type': 'string'}}}, 'additionalProperties': {}}, 'campaignId': {'type': 'string'}, 'leadsTotal': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, 'campaignUrl': {'type': 'string'}, 'invitesSent': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, 'messagesSent': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, 'invitesAccepted': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, 'invitesScheduled': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, 'messagesScheduled': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}}, 'additionalProperties': {}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['leadId'], 'properties': {'leadId': {'type': 'string', 'format': 'uuid', '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|ffffffff-ffff-ffff-ffff-ffffffffffff)$', 'description': 'Lead to read, from any tool that returns leads'}}}
Output schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['leadId', 'name', 'companyName', 'scoreExplanation', 'memo', 'memoWrittenAt'], 'properties': {'memo': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'name': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'leadId': {'type': 'string'}, 'companyName': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'memoWrittenAt': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'scoreExplanation': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}}, 'additionalProperties': {}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'limit': {'type': 'integer', 'maximum': 200, 'minimum': 1, 'description': 'How many campaigns to return, newest first (default 50)'}}}
Output schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['total', 'returned', 'campaigns'], 'properties': {'total': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, 'returned': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, 'campaigns': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'title', 'leadsTotal', 'hasIcp', 'tags', 'createdAt', 'updatedAt', 'campaignUrl'], 'properties': {'id': {'type': 'string'}, 'tags': {'type': 'array', 'items': {'type': 'string'}}, 'title': {'type': 'string'}, 'hasIcp': {'type': 'boolean'}, 'createdAt': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'updatedAt': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'leadsTotal': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, 'campaignUrl': {'type': 'string'}}, 'additionalProperties': {}}}}, 'additionalProperties': {}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'campaignId': {'type': 'string', 'format': 'uuid', '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|ffffffff-ffff-ffff-ffff-ffffffffffff)$', 'description': 'Optional campaign to inspect; omitted for workspace guidance'}}}
Output schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['items'], 'properties': {'note': {'type': 'string'}, 'items': {'type': 'array', 'items': {'type': 'object', 'required': ['kind', 'count', 'leadIds', 'detail'], 'properties': {'kind': {'type': 'string'}, 'count': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, 'detail': {'type': 'string'}, 'leadIds': {'type': 'array', 'items': {'type': 'string'}}}, 'additionalProperties': {}}}, 'scope': {'enum': ['workspace', 'campaign'], 'type': 'string'}, 'total': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, 'returned': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, 'campaigns': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'title', 'leadsTotal', 'status', 'campaignUrl'], 'properties': {'id': {'type': 'string'}, 'title': {'type': 'string'}, 'status': {'enum': ['search_running', 'prospects_available', 'no_prospects'], 'type': 'string'}, 'leadsTotal': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, 'campaignUrl': {'type': 'string'}}, 'additionalProperties': {}}}, 'campaignId': {'type': 'string'}, 'leadsTotal': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, 'nextAction': {'type': 'object', 'required': ['kind'], 'properties': {'url': {'type': 'string'}, 'kind': {'type': 'string'}, 'tool': {'type': 'string'}, 'count': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, 'question': {'type': 'string'}, 'arguments': {'type': 'object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}, 'reuseAuthorizedBrief': {'type': 'boolean'}}, 'additionalProperties': {}}, 'campaignUrl': {'type': 'string'}, 'workspaceUrl': {'type': 'string'}, 'campaignTitle': {'type': 'string'}, 'workspaceState': {'type': 'string'}, 'searchAvailability': {'type': 'object', 'required': ['status', 'reason', 'allowance'], 'properties': {'reason': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'status': {'enum': ['available', 'blocked', 'unknown'], 'type': 'string'}, 'allowance': {'anyOf': [{'type': 'object', 'required': ['used', 'limit', 'remaining'], 'properties': {'used': {'type': 'number'}, 'limit': {'type': 'number'}, 'remaining': {'type': 'number'}}, 'additionalProperties': {}}, {'type': 'null'}]}}, 'additionalProperties': {}}}, 'additionalProperties': {}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'limit': {'type': 'integer', 'maximum': 200, 'minimum': 1, 'description': 'How many drafts to return (default 50)'}, 'campaignId': {'type': 'string', 'format': 'uuid', '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|ffffffff-ffff-ffff-ffff-ffffffffffff)$', 'description': 'One campaign to limit the list to; when omitted, the list covers every campaign the user takes part in'}}}
Output schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['total', 'returned', 'pending'], 'properties': {'total': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, 'pending': {'type': 'array', 'items': {'type': 'object', 'required': ['leadId', 'campaignId', 'name', 'companyName', 'linkedInUrl', 'score', 'scoreExplanation', 'draftText', 'draftSubject'], 'properties': {'name': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'score': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'leadId': {'type': 'string'}, 'draftText': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'campaignId': {'type': 'string'}, 'companyName': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'linkedInUrl': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'draftSubject': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'scoreExplanation': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}}, 'additionalProperties': {}}}, 'returned': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}}, 'additionalProperties': {}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['campaignId'], 'properties': {'limit': {'type': 'integer', 'maximum': 200, 'minimum': 1, 'description': 'Maximum replies to return, newest first (default 50)'}, 'campaignId': {'type': 'string', 'format': 'uuid', '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|ffffffff-ffff-ffff-ffff-ffffffffffff)$', 'description': 'Campaign to read replies from'}}}
Output schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['campaignId', 'campaignTitle', 'campaignUrl', 'total', 'returned', 'awaitingOurReplyCount', 'conversations'], 'properties': {'total': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, 'returned': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, 'campaignId': {'type': 'string'}, 'campaignUrl': {'type': 'string'}, 'campaignTitle': {'type': 'string'}, 'conversations': {'type': 'array', 'items': {'type': 'object', 'required': ['leadId', 'name', 'companyName', 'position', 'linkedInUrl', 'sentiment', 'lastReplyAt', 'daysSinceLastReply', 'awaitingOurReply', 'looksLikeBroadcast', 'turns'], 'properties': {'name': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'turns': {'type': 'array', 'items': {'type': 'object', 'required': ['role', 'text', 'at'], 'properties': {'at': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'role': {'enum': ['us', 'them'], 'type': 'string'}, 'text': {'type': 'string'}}, 'additionalProperties': {}}}, 'leadId': {'type': 'string'}, 'position': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'sentiment': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'companyName': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'lastReplyAt': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'linkedInUrl': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'awaitingOurReply': {'type': 'boolean'}, 'daysSinceLastReply': {'anyOf': [{'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, {'type': 'null'}]}, 'looksLikeBroadcast': {'type': 'boolean'}}, 'additionalProperties': {}}}, 'awaitingOurReplyCount': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}}, 'additionalProperties': {}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['campaignId', 'leadIds', 'title', 'note', 'includeRationale'], 'properties': {'note': {'type': 'string', 'maxLength': 300}, 'title': {'type': 'string', 'maxLength': 100, 'minLength': 1}, 'leadIds': {'type': 'array', 'items': {'type': 'string', 'format': 'uuid', '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|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'maxItems': 50, 'minItems': 1}, 'campaignId': {'type': 'string', 'format': 'uuid', '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|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'includeRationale': {'type': 'boolean', 'description': 'When true, each person in the snapshot carries a fit rating (1â\x80\x935, or null when none is stored) and a why-matched explanation; when false, the rating is null and the explanation empty.'}}}
Output schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['snapshot', 'previewKey'], 'properties': {'snapshot': {'type': 'object', 'required': ['title', 'note', 'people'], 'properties': {'note': {'type': 'string'}, 'title': {'type': 'string'}, 'people': {'type': 'array', 'items': {'type': 'object', 'required': ['name', 'position', 'companyName', 'profileUrl', 'rationale'], 'properties': {'name': {'type': 'string'}, 'score': {'anyOf': [{'type': 'number', 'maximum': 5, 'minimum': 1}, {'type': 'null'}]}, 'position': {'type': 'string'}, 'rationale': {'type': 'string'}, 'profileUrl': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'companyName': {'type': 'string'}}, 'additionalProperties': {}}}}, 'additionalProperties': {}}, 'previewKey': {'type': 'string'}}, 'additionalProperties': {}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['id'], 'properties': {'id': {'type': 'string', 'format': 'uuid', '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|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}}}
Output schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['revoked'], 'properties': {'revoked': {'type': 'boolean'}}, 'additionalProperties': {}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['leadId', 'text'], 'properties': {'text': {'type': 'string', 'minLength': 1, 'description': 'The full replacement message. This same string is called `draftText` when list_pending_outreach returns it, and `confirmText` when you pass it to send_outreach â\x80\x94 three names, one set of bytes.'}, 'leadId': {'type': 'string', 'format': 'uuid', '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|ffffffff-ffff-ffff-ffff-ffffffffffff)$', 'description': 'Lead whose draft to rewrite, from list_pending_outreach'}, 'subject': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'Email subject; only email delivery reads it, and send_outreach, a LinkedIn send, does not. When omitted, the stored subject stays unchanged, so a body-only edit keeps it; a string replaces it, and null clears it.'}}}
Output schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['leadId', 'updated', 'text', 'subject'], 'properties': {'text': {'type': 'string'}, 'leadId': {'type': 'string'}, 'subject': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'updated': {'type': 'boolean'}}, 'additionalProperties': {}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['leadId', 'confirmText', 'confirmName'], 'properties': {'leadId': {'type': 'string', 'format': 'uuid', '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|ffffffff-ffff-ffff-ffff-ffffffffffff)$', 'description': 'Lead to message, from list_pending_outreach'}, 'confirmName': {'type': 'string', 'minLength': 1, 'description': "The recipient's name as shown to the user, to prove you meant this person"}, 'confirmText': {'type': 'string', 'minLength': 1, 'description': 'The exact draft text you showed the user and they approved, verbatim'}}}
Output schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['leadId', 'queued', 'name'], 'properties': {'name': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'leadId': {'type': 'string'}, 'queued': {'type': 'boolean'}}, 'additionalProperties': {}}
Recent tool changes
Similar MCP servers
neuron
Operates AI chatbots and messaging workflows across WhatsApp and social channels, including contacts, campaigns, conversations, p…
Meta Council
Provides governed workflows for consulting, outreach, sales deals, invoices, marketing campaigns, content approvals, accounting a…
Rahul D Sarker: Marketing & RevOps Tools
Provides marketing, revenue operations, sales, advertising, SaaS, and conversion calculators, along with article search and consu…
Emailchaser
Manages cold-email campaigns, leads, sender mailboxes, sequences, outreach automation, deliverability, prospect sourcing, webhook…
LinkedIn MCP Server (Salesbot)
Supports LinkedIn lead discovery, contact enrichment, CRM pipelines, campaign sequencing, message approval and human-reviewed out…
send16-mcp
Provides email marketing and transactional messaging tools for contacts, audiences, campaigns, templates, automations, analytics,…
GrowthKit Revenue Intelligence
Supports B2B revenue operations with lead campaigns, ICP and company enrichment, CRM records and activities, outreach drafting, t…
Nevent MCP
Enables management and analysis of live-event marketing campaigns, audiences, email and messaging templates, paid ads, tracking l…