MCP Server — Available Tools Reference (30 tools)
The WarmySender MCP server exposes 30 tools organized into four categories: read-only, email-campaign writes, LinkedIn + warmup writes (safety-gated), and meta. Every tool enforces workspace scoping from your API key — you can only see and touch data in your own workspace.
READ-ONLY (safe to grant freely) — 13 tools:
Campaigns & Prospects:
- list_campaigns — List email campaigns, filter by status (draft/running/paused/completed), cursor-paginated. Requires campaigns:read.
- get_campaign — Full campaign details including steps and live counters (sent, delivered, opened, clicked, replied, bounced). Requires campaigns:read.
- list_prospects — Search and filter prospects by global status, free-text search, cursor-paginated. Requires prospects:read.
- get_prospect — Full prospect detail including custom fields, list memberships, and enrollment summary. Requires prospects:read.
Mailboxes & Warmup:
- list_mailboxes — All connected mailboxes with status, warmup state, and top-level health. Never returns credentials. Requires mailboxes:read.
- get_mailbox_health — Detailed deliverability health for one mailbox: connection errors, auth errors, spam rate, health issues with fix suggestions. Requires mailboxes:read.
- get_warmup_stats — Workspace-level aggregate or per-mailbox detail: sent_today, limit_today, ramp progress, inbox rate, health score. Requires warmup:read.
LinkedIn:
- list_linkedin_accounts — Connected LinkedIn accounts with strategy, ramp week, and current daily/weekly usage against caps. Requires linkedin:read.
- get_linkedin_account_health — Per-account health metrics: acceptance rate, reply rate, restriction count, API budget headroom. Requires linkedin:read.
- list_linkedin_campaigns — LinkedIn campaigns by status with top-level counters (enrolled, sent, accepted, replied). Requires linkedin:read.
- get_linkedin_campaign_stats — Campaign health: invites/messages/replies, acceptance rate, variant stats for A/B tests, enrollment breakdown. Requires linkedin:read.
Other:
- list_suppressions — Workspace suppression list (emails + domains). Requires suppressions:read.
- get_job_status — Poll async job progress (e.g., bulk warmup updates, connection tests). Requires jobs:read.
EMAIL WRITES — 11 tools (all idempotent with optional idempotency_key):
Prospects:
- create_prospect — Single prospect with email, name, company, role, phone, linkedinUrl, customFields. Duplicate email returns 409 with existing_id. Requires prospects:write.
- update_prospect — Partial update of any field including global_status (active/bounced/unsubscribed/etc.). Requires prospects:write.
- bulk_create_prospects — Up to 500 prospects per call with skip_duplicates flag. Returns per-row status. Requires prospects:write. Rate-limit category: bulk (5/min).
Campaigns:
- create_campaign — Draft-status campaign with name, steps, mailboxes, sending window, daily limits, tracking, stop-on-reply/bounce/unsubscribe. Requires campaigns:write.
- update_campaign — Partial update, only allowed on draft or paused campaigns. Requires campaigns:write.
- start_campaign — Transition draft → running (or scheduled if startDate is future). Checks: has steps, has mailboxes, subscription active. Requires campaigns:write.
- pause_campaign — Running → paused. Marked destructive so clients prompt to confirm. Requires campaigns:write.
- resume_campaign — Paused → running with re-scheduling of pending enrollments. Requires campaigns:write.
Enrollments & Suppressions:
- enroll_prospects — Add prospects to an email campaign by prospect_ids, list_ids, or emails (pass at least one, max 500 items total). Suppressed prospects auto-skipped. Requires enrollments:write.
- unenroll_prospects — Soft-cancel enrollments (preserves audit trail). Max 500 items. Marked destructive. Requires enrollments:write.
- add_to_suppression_list — Add emails (max 500) and/or domains (max 200) to the workspace suppression list. Requires suppressions:write.
LINKEDIN + WARMUP WRITES — 5 tools (stricter rate limits, safety-gated):
- pause_linkedin_campaign — Pause a running LinkedIn campaign. No Unipile calls — pure status flip. In-flight sends already queued may complete. Marked destructive. Rate: linkedin_write (10/min).
- resume_linkedin_campaign — Paused → running. Pre-flight checks: associated LinkedIn account is connected and healthy; returns 422 account_not_ready if not. Rate: linkedin_write.
- enroll_in_linkedin_campaign — Queue prospects (by prospect_ids, audience_id, or linkedin_urls; max 500 total) into a LinkedIn campaign. Only stages work — the scheduler gates actual invites/messages against ramp week and per-account daily/weekly caps. Rate: linkedin_write.
- update_warmup_settings — Change warmup enabled/mode/target_daily_volume for one mailbox. Rate: write.
- bulk_update_warmup — Apply the same warmup settings to up to 500 mailboxes asynchronously. Returns job_id for polling via get_job_status. Rate: bulk.
META — 1 tool:
- get_workspace_info — Returns your workspace id, name, subscription tier, scopes on the current API key, and MCP server version. Useful for testing the connection. No scopes required (authenticated key is enough).
Not Exposed (by design):
No delete operations (no delete_campaign, delete_mailbox, delete_account — soft-cancel via pause/archive only). No direct LinkedIn send tools (no sendInvite, sendMessage, viewProfile, commentOnPost, reactToPost — scheduler-only path). No account connect/disconnect tools (seat drain prevention). No warmup ref-tag modification (inbox filtering integrity).
Full schemas and live curl examples: warmysender.com/mcp