# Missive — how to use (mcp.ai)

Connect your Missive account and use 40 tools for email straight from your AI agent. Connect with your own API key. Missive is a collaborative email and chat application designed to streamline team communication and task management.

## Option A — via MCP (recommended)
Remote MCP endpoint (HTTP, streamable): `https://api.mcp.ai/p_missive?ms=1787293380000`
Add it as a custom/remote MCP connector in your client (Claude, Cursor, VS Code…), then authenticate when prompted. Once connected, ask the agent to use the server's tools (e.g. `missive_create_analytics_report`).

## Option B — via direct REST API
Base URL: `https://api.mcp.ai/api/missive`
Auth: `Authorization: Bearer sk_live_…` — create a workspace API key at https://mcp.ai/settings/api-keys
Discover endpoints: `GET https://api.mcp.ai/api/missive/_endpoints`

### Endpoints
- `POST https://api.mcp.ai/api/missive/create/analytics/report` — Tool to create an analytics report. Use when you need to generate a report over a specific time range with optional filters. Returns a report ID for later retrieval.
  - body: { reports: object }
- `POST https://api.mcp.ai/api/missive/create/contacts` — Tool to create one or more contacts in a Missive contact book. Use when you need to add new contacts with detailed information including name, email, phone, addresses, and organization memberships.
  - body: { contacts: object[] }
- `POST https://api.mcp.ai/api/missive/create/draft` — Tool to create a new draft in Missive. Use after preparing message details to save a draft (email, SMS, WhatsApp, or Live Chat) for later editing or scheduling.
  - body: { body: string, send?: boolean, team?: string, close?: boolean, account?: string, send_at?: integer, subject?: string, add_users?: string[], cc_fields?: object[], to_fields: object[], bcc_fields?: object[], force_team?: boolean, from_field: object, references?: string[], attachments?: object[], add_to_inbox?: boolean, conversation?: string, organization?: string, add_assignees?: string[], auto_followup?: boolean, add_shared_labels?: string[], add_to_team_inbox?: boolean, conversation_color?: string, conversation_subject?: string, external_response_id?: string, remove_shared_labels?: string[], quote_previous_message?: boolean, external_response_variables?: object }
- `POST https://api.mcp.ai/api/missive/create/post` — Tool to create a post in a Missive conversation. Posts can add comments, close conversations, assign users, apply labels, and trigger other actions. Recommended approach for managing conversations fro
  - body: { text?: string, close?: boolean, reopen?: boolean, snooze?: integer, markdown?: string, add_to_inbox?: boolean, conversation: string, notification: object, organization?: string, add_assignees?: string[], remove_assignees?: string[], add_shared_labels?: string[], remove_shared_labels?: string[] }
- `POST https://api.mcp.ai/api/missive/create/response` — Tool to create one or more canned responses (templates) in Missive. Use when you need to save reusable message templates for the organization or user.
  - body: { responses: object[] }
- `POST https://api.mcp.ai/api/missive/create/shared/label` — Tool to create one or more shared labels at the organization level. Use when you need to create new labels that can be shared across the organization.
  - body: { shared_labels: object[] }
- `POST https://api.mcp.ai/api/missive/create/task` — Tool to create a task in Missive. Use when you need to create standalone tasks, conversation-linked subtasks, or team tasks. You can find or create parent conversations using message references (like 
  - body: { team?: string, state?: string, title: string, due_at?: integer, subject?: string, subtask?: boolean, add_users?: string[], assignees?: string[], references?: string[], description?: string, conversation?: string, organization: string }
- `POST https://api.mcp.ai/api/missive/create/team` — Tool to create a new team in an organization. Use when you need to set up a new team with active members and optional observers. The API token must belong to an organization admin.
  - body: { teams: object[] }
- `POST https://api.mcp.ai/api/missive/create/webhook` — Tool to create a webhook subscription. Use after choosing event type and target URL.
  - body: { url: string, type: string, author?: string, from_eq?: string, is_task?: boolean, mention?: string, organization?: string, content_contains?: string, subject_contains?: string, content_ends_with?: string, content_starts_with?: string }
- `POST https://api.mcp.ai/api/missive/delete/draft` — Tool to delete a draft from a conversation by draft ID. Use after confirming the draft ID; this operation cannot be undone.
  - body: { id: string }
- `POST https://api.mcp.ai/api/missive/delete/post` — Tool to delete a post from a conversation by post ID. Use when you need to remove a specific post; this operation cannot be undone.
  - body: { id: string }
- `POST https://api.mcp.ai/api/missive/delete/responses` — Tool to delete one or more saved responses by ID. For organization responses, the API token must belong to an admin. Use after confirming the response ID(s); this operation cannot be undone.
  - body: { id: string }
- `POST https://api.mcp.ai/api/missive/delete/webhook` — Tool to delete a webhook subscription by webhook ID. Use after confirming the webhook ID; this operation cannot be undone.
  - body: { webhook_id: string }
- `POST https://api.mcp.ai/api/missive/get/analytics/report` — Tool to fetch a completed analytics report using its ID. Use when you need to retrieve analytics data after creating a report. Reports typically complete within 2-3 seconds but may take up to 30 secon
  - body: { id: string }
- `POST https://api.mcp.ai/api/missive/get/contact` — Tool to fetch a specific contact using the contact ID. Use when you need detailed contact information including names, contact info, and organizational memberships. Returns 404 for deleted contacts.
  - body: { id: string }
- `POST https://api.mcp.ai/api/missive/get/conversation` — Tool to fetch full conversation metadata (assignees/users/labels/team/org) for a specific conversation ID. Use when you need conversation-level details for assignment, labeling, or workflow purposes.
  - body: { id: string }
- `POST https://api.mcp.ai/api/missive/get/conversation/messages` — Tool to list messages belonging to a Missive conversation (newest first). Use when you need to retrieve message metadata including participants and attachments references for a specific conversation.
  - body: { id: string, limit?: integer, until?: integer }
- `POST https://api.mcp.ai/api/missive/get/message` — Tool to fetch full message details including headers, HTML body, and attachments. Use when you need complete message content with download URLs for attachments.
  - body: { id: string }
- `POST https://api.mcp.ai/api/missive/get/response` — Tool to fetch a specific saved response using the response ID. Use when you need to retrieve the full content and metadata of a saved response template.
  - body: { id: string }
- `POST https://api.mcp.ai/api/missive/get/task` — Tool to get a single task by ID with full details including assignees, team, and conversation info. Use when you need to retrieve complete information about a specific task.
  - body: { id: string }
- `POST https://api.mcp.ai/api/missive/list/contact/books` — Tool to list contact books the authenticated user has access to. Use when you need contact book IDs for creating contacts programmatically.
  - body: { limit?: integer, offset?: integer }
- `POST https://api.mcp.ai/api/missive/list/contact/groups` — Tool to list contact groups or organizations linked to a contact book. Use when you need to retrieve groups for organizing contacts or organizations for linking contacts to businesses.
  - body: { kind: string, limit?: integer, offset?: integer, contact_book: string }
- `POST https://api.mcp.ai/api/missive/list/contacts` — Tool to list contacts from a contact book. Use when syncing Missive contacts to another service or finding contacts based on search terms. Supports pagination via offset and filtering by modification 
  - body: { limit?: integer, order?: string, offset?: integer, search?: string, contact_book: string, modified_since?: integer, include_deleted?: boolean }
- `POST https://api.mcp.ai/api/missive/list/conversation/comments` — Tool to list comments in a Missive conversation ordered from newest to oldest. Use when you need to retrieve comments with author info, attachments, and task data for a specific conversation.
  - body: { id: string, limit?: integer, until?: integer }
- `POST https://api.mcp.ai/api/missive/list/conversation/drafts` — Tool to list draft messages in a Missive conversation (newest first). Use when you need to retrieve unsent drafts for a specific conversation including author and recipient details.
  - body: { id: string, limit?: integer, until?: integer }
- `POST https://api.mcp.ai/api/missive/list/conversation/posts` — Tool to list posts in a Missive conversation ordered by newest first. Use when you need to view automation traces or post history for a specific conversation. Posts are the recommended approach for au
  - body: { id: string, limit?: integer, until?: integer }
- `POST https://api.mcp.ai/api/missive/list/conversations` — Tool to list conversations visible to the authenticated user ordered by newest activity first. Use when you need to retrieve inbox, all, assigned, closed, or other mailbox conversations. Must filter b
  - body: { all?: boolean, email?: string, inbox?: boolean, limit?: integer, until?: integer, closed?: boolean, domain?: string, drafts?: boolean, junked?: boolean, flagged?: boolean, snoozed?: boolean, trashed?: boolean, assigned?: boolean, team_all?: string, team_inbox?: string, team_closed?: string, organization?: string, shared_label?: string }
- `POST https://api.mcp.ai/api/missive/list/messages` — Tool to fetch messages matching an email Message-ID header. Use when you need to find a specific message by its Message-ID. Most of the time, only one message matches a given Message-ID.
  - body: { email_message_id: string }
- `POST https://api.mcp.ai/api/missive/list/organizations` — Tool to list organizations the authenticated user is part of. Use when you need to retrieve all organizations accessible to the current user.
  - body: { limit?: integer, offset?: integer }
- `POST https://api.mcp.ai/api/missive/list/responses` — Tool to list saved responses (canned responses/templates) for the authenticated user. Use when you need to retrieve available response templates for composing messages.
  - body: { limit?: integer, offset?: integer }
- `POST https://api.mcp.ai/api/missive/list/shared/labels` — Tool to list shared labels (organization-level labels) available to the authenticated user. Use when you need to retrieve labels for filtering conversations or understanding label structure.
  - body: { limit?: integer, offset?: integer, organization?: string }
- `POST https://api.mcp.ai/api/missive/list/tasks` — Tool to list tasks accessible to the authenticated user. Use when you need to retrieve tasks by state, organization, or team. Tasks can be standalone, conversation-linked, or team tasks.
  - body: { team?: string, limit?: integer, state?: string, offset?: integer, organization?: string }
- `POST https://api.mcp.ai/api/missive/list/teams` — Tool to list all teams. Use when you need to retrieve and enumerate all teams available in Missive. Returns an empty array for accounts with no teams configured; this is a valid response, not an error
  - body: { limit?: integer, offset?: integer }
- `POST https://api.mcp.ai/api/missive/list/users` — Tool to list all users. Use after authentication when you need to retrieve all users in the organization.
  - body: { limit?: integer, offset?: integer }
- `POST https://api.mcp.ai/api/missive/merge/conversations` — Tool to merge multiple conversations into one. Combines messages, posts, and other content from the source conversation into the target conversation. Use when you need to consolidate related conversat
  - body: { id: string, target: string }
- `POST https://api.mcp.ai/api/missive/update/contact` — Tool to update one or more contacts in Missive. Use when you need to modify contact attributes. Only pass fields you want to update. CRITICAL: infos and memberships arrays must include ALL items when 
  - body: { contacts: object[] }
- `POST https://api.mcp.ai/api/missive/update/response` — Tool to update one or more saved responses in Missive. Use when you need to modify existing response templates by changing title, body, subject, or other attributes. Returns the updated responses.
  - body: { id: string, responses: object[] }
- `POST https://api.mcp.ai/api/missive/update/shared/labels` — Tool to update one or more shared labels in Missive. Use when you need to modify label names or colors. Returns the updated shared labels.
  - body: { id: string, shared_labels: object[] }
- `POST https://api.mcp.ai/api/missive/update/task` — Tool to update an existing task's attributes in Missive. Use when you need to modify a task's description, change its state, update the due date, or reassign it to different users.
  - body: { id: string, tasks: object }
- `POST https://api.mcp.ai/api/missive/update/team` — Tool to update one or more teams in Missive. Use when you need to modify team attributes like name, color, or initials. The API token must belong to an organization admin.
  - body: { id: string, teams: object[] }

## Example prompts
- "What can I do in Missive?"
- "Show me a summary of my Missive account"

## More
- Page: https://mcp.ai/missive
- Agent spec (llms.txt): https://mcp.ai/missive/llms.txt
- Postman collection: https://mcp.ai/missive/postman.json
