Collaboration

Missive MCP Server

Connect your account, then chat with AI to run tools.

Missive is a collaborative inbox for teams, unifying email, SMS, WhatsApp, Instagram, Messenger, and live chat in one shared workspace with internal comments, shared drafts, assignments, shared labels, tasks, and rules. Use it to read and triage conversations, send and schedule outbound messages, manage canned responses, sync contacts, subscribe to event webhooks, and pull analytics reports.

Managed
32 tools
Agent guide included

Opens MCPBundles Studio with this server selected. After sign-in, chat and run tools from the same thread.

Browse all tools

AI Skill
SKILL.md

Domain knowledge for Missive — workflow patterns, data models, and gotchas for your AI agent.

Missive

Missive is a collaborative shared inbox spanning email, SMS, WhatsApp, Instagram, Messenger, custom channels, and live chat. The data model is built around conversations; everything else (messages, drafts, posts, comments, tasks) lives inside a conversation.

Entity Hierarchy

  • Organization — top-level workspace. Most write paths require an organization id.
  • Team — a sub-grouping inside an organization, with active_members (notified) and observers (not notified). Teams own team inboxes and can own conversations.
  • User — a Missive seat. The API token owner is marked me: true.
  • Account — a connected channel (email mailbox, SMS line, WhatsApp number, Messenger page, custom-channel adapter, …). Account ids appear in messages and drafts; the catalog of accounts lives in Missive's Settings, not in a list endpoint.
  • Contact bookcontact group / contact organizationcontact. Contact books are the entry point — contact_book id is required for both contact_groups and contacts list calls.
  • Conversation — the unit of triage. Holds messages, comments, drafts, posts, and an array of tasks.
    • Message — actual incoming/outgoing communication.
    • Comment — internal team-only discussion (with @mentions and optional task shape).
    • Draft — outbound message in progress; sending it via the API is via missive_create_draft with send=true.
    • Post — integration / automation entry. Also the documented way to mutate conversation state.
  • Shared label — cross-conversation tag, optionally nested via parent.
  • Canned response — reusable email template scoped to organization or user.
  • Task — standalone, conversation subtask, or tasked-conversation.
  • Hook (webhook) — event subscription; backed by a Missive Rule under the hood.

Workflows

  • Read a mailbox: list conversations with at least one of mailbox / shared_label / team_inbox / team_closed / team_all (Missive returns HTTP 400 'You need to paginate at least one mailbox' when all are absent). For each conversation of interest, fetch messages, comments, drafts, and posts via the per-conversation sub-listings. Pull the full body of a specific message via the by-id message fetch.
  • Triage: use the post tool with action flags (close, reopen, add_to_inbox, add_to_team_inbox, add_assignees, add_shared_labels, remove_shared_labels, conversation_color, team + force_team) to mutate state — there is no PATCH endpoint on conversations, and the API does not expose an 'archive' parameter at all.
  • Reply or send: create a draft. To send immediately, set send=true. To schedule, set send_at to a Unix epoch (mutually exclusive with send=true). To reply to an existing conversation, pass conversation (preferred when you have the id) or references (when matching by email Message-ID). For correct paragraph spacing in HTML bodies, use <div>...</div><div><br></div> instead of <p>...</p>.
  • Sync contacts: list contact_books, then for each book paginate contacts (optionally with modified_since for incremental sync and include_deleted for tombstones).
  • Manage canned responses: list responses for the user, optionally filtered by organization; create/update via upsert; delete one or many via the batch delete tool.
  • Webhooks for automations: subscribe with the create-webhook tool, store the returned id, delete with the delete-webhook tool. There is no list / get for webhooks via the API — visibility lives in Missive's Rules settings UI.
  • Analytics: kick off an analytics report (organization + start + end required), then poll for it 5 seconds later and re-poll every 5 seconds until 200. Reports expire 60 seconds after completion. Plan gating applies (Productive plan for any report; Business plan for team / user / label / account filters).

Gotchas

  • Conversation listing requires a mailbox filter. mailbox, shared_label, team_inbox, team_closed, or team_all — at least one is mandatory. The API's 'junked' mailbox is what the Missive UI calls 'Spam'.
  • Contact groups need both contact_book AND kind. Either alone gives HTTP 400 'Required parameter missing'.
  • Contact updates with infos / memberships REPLACE the entire array. Missing items are deleted by Missive. Always read the contact first if you only intend to add one info entry.
  • Conversation state mutations go through posts, not through any dedicated PATCH endpoint. There is no 'archive' parameter.
  • Sent messages cannot be deleted via the REST API. Only drafts have a delete endpoint. Posts also have a delete endpoint (admin-gated for shared conversations).
  • HTML bodies need <div>+<br>, not <p>, for visible paragraph spacing in Missive's renderer.
  • Analytics reports are async and short-lived — 60-second expiry after completion; expect 404 until the report is ready.
  • Custom-channel message creation is for INCOMING messages. To send outbound mail or chat, use the draft tool with send=true; the custom-channel message endpoint simulates a message arriving from an external system, not one going out.
  • Webhook events sometimes look like rules in the Missive UI — /v1/hooks creates a Missive Rule with a webhook action; deleting via the API removes that rule.

Tools in this Server (32)

Missive Create Analytics Report

Kick off an analytics report for an organization between Unix-epoch start and end. Returns { reports: { id } }; pass that id to missive_get_analytics_...

Missive Create Custom Channel Message

Inject an INCOMING message into a Missive custom channel — this simulates a message arriving from an external system Missive does not natively integra...

Missive Create Draft

Create an outbound draft. send=true sends the draft immediately; send_at=<unix epoch> schedules a later send; omitting both leaves it as a draft for a...

Missive Create Post

Create a post in a conversation. Posts are the API's path for changing conversation state: the close, reopen, add_to_inbox, add_to_team_inbox, add_ass...

Missive Create Webhook

Subscribe a URL to a Missive event (incoming email/SMS/Facebook/WhatsApp/Twilio chat, or new comments). Returns { hooks: { id } } — store the id to de...

Missive Delete Draft

Delete a draft from a conversation. The id is the value returned by missive_create_draft (NOT the conversation id, and NOT a sent message id — sent me...

Missive Delete Post

Delete a post from a conversation. The id is the value returned by missive_create_post. For posts in conversations shared with an organization, the AP...

Missive Delete Responses

Delete one or more canned responses by id. Missive supports batch deletion via a comma-separated id path. In organizations with restricted response ma...

Missive Delete Webhook

Delete a Missive webhook subscription by id. Behind the scenes the underlying rule with the webhook action is removed.

Missive Get Analytics Report

Fetch a previously-created analytics report by id. An empty HTTP 404 means the report is not ready yet, has expired, or never existed — Missive recomm...

Missive Get Contact Books

List contact books the authenticated user has access to. Each contact book has an id (required when creating contacts or listing contact_groups / cont...

Missive Get Contact Groups

List contact groups (kind='group') or contact organizations (kind='organization') within a single contact_book. Both parameters are required by Missiv...

Missive Get Contacts

List or fetch contacts. Provide 'id' for a single contact. Otherwise list within a contact_book (required) — supports ordering by last_name (default) ...

Missive Get Conversations

List or fetch conversations. Provide 'id' for a single conversation. Otherwise list — at least one of mailbox, shared_label, team_inbox, team_closed, ...

Missive Get Message

Fetch one message (single id) or up to several messages (comma-joined ids) by id. Returns headers, full HTML body, attachments[], and the embedded con...

Missive Get Organizations

List organizations the authenticated user belongs to. Returns each organization's id and name. Organization ids are required inputs to analytics repor...

Missive Get Responses

List or fetch canned responses (reusable email templates). Omit id for a paginated list filtered by organization; provide id for the full response inc...

Missive Get Shared Labels

List shared labels visible to the authenticated user. Each label has id, name, name_with_parent_names (slash-joined path for nested labels), color, an...

Missive Get Tasks

List or fetch tasks (standalone, conversation-scoped subtasks, and tasked conversations). Provide id for one task in detail; otherwise filter by organ...

Missive Get Teams

List teams in organizations the authenticated user belongs to. Each team has id, name, organization, active_members (user ids who get team-inbox notif...

Missive Get Users

List users in organizations the authenticated user is part of. Each user has id, email, name, avatar_url, and a 'me' boolean marking the API token own...

Missive List Conversation Comments

List internal comments in a conversation (the team-only @mention thread). Returns body, author, mentions[], optional attachment, and an optional task ...

Missive List Conversation Drafts

List draft messages in a conversation. Each draft carries the same headers + attachments shape as a message plus an author field. Use missive_create_d...

Missive List Conversation Messages

List messages in a conversation (drafts excluded). Each message carries headers (from/to/cc/bcc), preview, type (email, sms, whatsapp, custom, …), del...

Missive List Conversation Posts

List integration / automation posts in a conversation. Posts are the trace left by integrations that close, reopen, assign, label, or otherwise mutate...

Missive List Messages By Email Id

Find Missive messages matching an email Message-ID header. Most senders produce one match per Message-ID as required by the email standard; non-compli...

Missive Merge Conversations

Merge source_id into target. After the merge, the source conversation is marked as replaced and all its messages, comments, drafts, and posts become p...

Missive Upsert Contact

Create or update a Missive contact. When id is omitted, POSTs to /v1/contacts (contact_book is required). When id is provided, PATCHes /v1/contacts/<i...

Missive Upsert Response

Create or update a canned response. Without id, the call POSTs /v1/responses (title plus one of organization or user is required). With id, the call P...

Missive Upsert Shared Label

Create or update a shared label. When id is omitted, POSTs to /v1/shared_labels (name and organization are required). When id is provided, PATCHes /v1...

Missive Upsert Task

Create or update a task. Omit id to create (title is required; for standalone tasks either team or assignees is required, and organization is required...

Missive Upsert Team

Create or update a Missive team. When id is omitted, POSTs to /v1/teams to create (name and organization are required). When id is provided, PATCHes /...

Frequently Asked Questions

What is the Missive MCP server?

Missive is a collaborative inbox for teams, unifying email, SMS, WhatsApp, Instagram, Messenger, and live chat in one shared workspace with internal comments, shared drafts, assignments, shared labels, tasks, and rules. Use it to read and triage conversations, send and schedule outbound messages, manage canned responses, sync contacts, subscribe to event webhooks, and pull analytics reports. It provides 32 tools that AI agents can use through the Model Context Protocol (MCP).

How do I connect Missive to my AI agent?

Add the MCPBundles server URL to your MCP client configuration (Claude Desktop, Cursor, VS Code, etc.). The URL format is: https://mcp.mcpbundles.com/bundle/missive. Authentication is handled automatically.

How many tools does Missive provide?

Missive provides 32 tools that can be called by AI agents, along with a SKILL.md that gives your AI agent domain knowledge about when and how to use them.

What authentication does Missive require?

Missive uses API Key. Missive requires credentials. Connect via MCPBundles and authentication is handled automatically.

Setup Instructions

Connect Missive to any MCP client in minutes

https://mcp.mcpbundles.com/bundle/missive

One-click install:

The link prefills the Add custom connector dialog — you still review the values and click Add, then Connect to complete OAuth.

Or add manually

  1. Open claude.ai → Settings → Connectors.
  2. Click the + button and choose Add custom connector.
  3. Set Name to Missive and paste the MCP URL into Remote MCP server URL.
  4. Click Add. Missive will appear under Not connected — select it and click Connect to complete OAuth.
Name: Missive
Remote MCP server URL: https://mcp.mcpbundles.com/bundle/missive
Authentication: OAuth

Custom connectors at claude.ai require a paid Claude plan (Pro, Max, Team, or Enterprise).

Ready to use Missive?

Sign in to connect your credentials and start running tools from the chat.

Missive MCP Server & Skill — 32 Tools