MCP Server

missive

io.usefulapi/missive
Communication Productivity Public & reachable MCP 2026-07-28

What this MCP does

Reads and manages Missive email and chat conversations, contacts, teams, labels, assignments, drafts, comments, and outgoing messages.

missive_create_contact
Create contact
Create a contact in the given contact book. Missive: POST /contacts.
Destructive
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['contact_book'], 'properties': {'infos': {'type': 'array', 'items': {'type': 'object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}, 'description': 'Contact info entries (email/phone/etc. objects).'}, 'starred': {'type': 'boolean', 'description': 'Whether the contact is starred.'}, 'last_name': {'type': 'string', 'description': 'Last name.'}, 'first_name': {'type': 'string', 'description': 'First name.'}, 'memberships': {'type': 'array', 'items': {'type': 'object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}, 'description': 'Group/organization membership objects.'}, 'contact_book': {'type': 'string', 'description': 'The contact book id to create the contact in (required).'}}}
missive_create_draft
Create draft
Create a draft email/message. WARNING: setting send=true SENDS a real email immediately (send_at schedules it) instead of saving a draft. Attach to an existing thread with `conversation`. Missive: POST /drafts.
Destructive
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['body'], 'properties': {'body': {'type': 'string', 'description': 'The message body (HTML) — required.'}, 'send': {'type': 'boolean', 'description': 'If true, SEND the email immediately instead of saving a draft.'}, 'send_at': {'type': 'number', 'description': 'Unix timestamp to schedule the send.'}, 'subject': {'type': 'string', 'description': 'The subject line.'}, 'cc_fields': {'type': 'array', 'items': {'type': 'object', 'required': ['address'], 'properties': {'name': {'type': 'string', 'description': 'Display name.'}, 'address': {'type': 'string', 'description': 'Email address.'}}, 'description': 'An email participant ({address, name?}).'}, 'description': 'Cc recipients.'}, 'to_fields': {'type': 'array', 'items': {'type': 'object', 'required': ['address'], 'properties': {'name': {'type': 'string', 'description': 'Display name.'}, 'address': {'type': 'string', 'description': 'Email address.'}}, 'description': 'An email participant ({address, name?}).'}, 'description': 'Recipients ({address, name?}).'}, 'bcc_fields': {'type': 'array', 'items': {'type': 'object', 'required': ['address'], 'properties': {'name': {'type': 'string', 'description': 'Display name.'}, 'address': {'type': 'string', 'description': 'Email address.'}}, 'description': 'An email participant ({address, name?}).'}, 'description': 'Bcc recipients.'}, 'from_field': {'type': 'object', 'required': ['address'], 'properties': {'name': {'type': 'string', 'description': 'Display name.'}, 'address': {'type': 'string', 'description': 'Email address.'}}, 'description': 'The sender ({address, name?}).'}, 'references': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Message-ID references (for threading).'}, 'conversation': {'type': 'string', 'description': 'Attach the draft to an existing conversation id.'}, 'organization': {'type': 'string', 'description': 'Organization id to send from.'}, 'add_assignees': {'type': 'array', 'items': {'type': 'string'}, 'description': 'User ids to assign to the conversation.'}, 'add_shared_labels': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Shared label ids to apply.'}}}
missive_get_contact
Get contact
Get a single contact by id. Missive: GET /contacts/{id}.
Read only
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'The resource id (a UUID-like string).'}}}
missive_get_conversation
Get conversation
Get a single conversation by id. Missive: GET /conversations/{id}.
Read only
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'The resource id (a UUID-like string).'}}}
missive_get_message
Get message
Get a single message, including the full body. Missive: GET /conversations/{conversation_id}/messages/{id}.
Read only
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['conversation_id', 'id'], 'properties': {'id': {'type': 'string', 'description': 'The message id.'}, 'conversation_id': {'type': 'string', 'description': 'The conversation id the message belongs to.'}}}
missive_list_contact_books
List contact books
List contact books (address books). Missive: GET /contact_books.
Read only
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'limit': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991, 'description': 'Max contact books to return (default 50, max 200).'}, 'offset': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991, 'description': 'Number of records to skip (offset pagination).'}}}
missive_list_contact_groups
List contact groups
List contact groups or organizations within a contact book. Missive: GET /contact_groups.
Read only
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['contact_book', 'kind'], 'properties': {'kind': {'enum': ['group', 'organization'], 'type': 'string', 'description': 'Which kind to list: "group" or "organization".'}, 'limit': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991, 'description': 'Max records to return.'}, 'offset': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991, 'description': 'Number of records to skip (offset pagination).'}, 'contact_book': {'type': 'string', 'description': 'The contact book id (required).'}}}
missive_list_contacts
List contacts
List contacts in a contact book. Missive: GET /contacts.
Read only
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['contact_book'], 'properties': {'limit': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991, 'description': 'Max contacts to return (default 50, max 200).'}, 'order': {'type': 'string', 'description': 'Sort order (default "last_name").'}, 'offset': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991, 'description': 'Number of records to skip (offset pagination).'}, 'search': {'type': 'string', 'description': 'Free-text search over contacts.'}, 'contact_book': {'type': 'string', 'description': 'The contact book id to list contacts from (required).'}, 'modified_since': {'type': 'number', 'description': 'Unix timestamp — only contacts modified since.'}, 'include_deleted': {'type': 'boolean', 'description': 'Include deleted contacts.'}}}
missive_list_conversation_comments
List conversation comments
List internal comments (team chat) on a conversation. Missive: GET /conversations/{id}/comments.
Read only
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'The resource id (a UUID-like string).'}, 'limit': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991, 'description': 'Max records to return.'}, 'until': {'type': 'number', 'description': 'Unix timestamp cursor — return records older than this (offset-less pagination).'}}}
missive_list_conversation_drafts
List conversation drafts
List draft messages on a conversation. Missive: GET /conversations/{id}/drafts.
Read only
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'The resource id (a UUID-like string).'}, 'limit': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991, 'description': 'Max records to return.'}, 'until': {'type': 'number', 'description': 'Unix timestamp cursor — return records older than this (offset-less pagination).'}}}
missive_list_conversation_messages
List conversation messages
List the messages (emails) in a conversation. Missive: GET /conversations/{id}/messages.
Read only
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'The resource id (a UUID-like string).'}, 'limit': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991, 'description': 'Max messages to return (default 10, max 10).'}, 'until': {'type': 'number', 'description': 'Unix timestamp cursor — return records older than this (offset-less pagination).'}}}
missive_list_conversation_posts
List conversation posts
List posts (integration/app-generated items) on a conversation. Missive: GET /conversations/{id}/posts.
Read only
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'The resource id (a UUID-like string).'}, 'limit': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991, 'description': 'Max records to return.'}, 'until': {'type': 'number', 'description': 'Unix timestamp cursor — return records older than this (offset-less pagination).'}}}
missive_list_conversations
List conversations
List conversations (email/chat threads). Missive requires EXACTLY ONE mailbox-type filter — one of inbox / assigned / closed / flagged / snoozed / trashed / all / shared_label / team_inbox / team_all / organization. Missive: GET /conversations.
Read only
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'all': {'type': 'boolean', 'description': 'All conversations.'}, 'email': {'type': 'string', 'description': 'Filter to conversations involving this email address.'}, 'inbox': {'type': 'boolean', 'description': 'Conversations in your inbox.'}, 'limit': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991, 'description': 'Max conversations to return (default 25, max 50).'}, 'until': {'type': 'number', 'description': 'Unix timestamp cursor — return records older than this (offset-less pagination).'}, 'closed': {'type': 'boolean', 'description': 'Closed conversations.'}, 'flagged': {'type': 'boolean', 'description': 'Flagged conversations.'}, 'snoozed': {'type': 'boolean', 'description': 'Snoozed conversations.'}, 'trashed': {'type': 'boolean', 'description': 'Trashed conversations.'}, 'assigned': {'type': 'boolean', 'description': 'Conversations assigned to you.'}, 'team_all': {'type': 'string', 'description': "All of a team's conversations (team id)."}, 'team_inbox': {'type': 'string', 'description': "Conversations in a team's inbox (team id)."}, 'organization': {'type': 'string', 'description': 'Filter to an organization id.'}, 'shared_label': {'type': 'string', 'description': 'Conversations under a shared label id.'}, 'contact_organization': {'type': 'string', 'description': 'Filter to a contact organization id.'}}}
missive_list_organizations
List organizations
List organizations you belong to. Missive: GET /organizations.
Read only
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'limit': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991, 'description': 'Max records to return.'}, 'offset': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991, 'description': 'Number of records to skip (offset pagination).'}}}
missive_list_responses
List responses
List canned responses / templates. Missive: GET /responses.
Read only
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'limit': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991, 'description': 'Max records to return.'}, 'offset': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991, 'description': 'Number of records to skip (offset pagination).'}, 'organization': {'type': 'string', 'description': 'Filter to an organization id.'}}}
missive_list_shared_labels
List shared labels
List shared labels (team-shared folders/tags). Missive: GET /shared_labels.
Read only
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'limit': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991, 'description': 'Max records to return.'}, 'offset': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991, 'description': 'Number of records to skip (offset pagination).'}, 'organization': {'type': 'string', 'description': 'Filter to an organization id.'}}}
missive_list_teams
List teams
List teams in the organization(s). Missive: GET /teams.
Read only
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'limit': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991, 'description': 'Max records to return.'}, 'offset': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991, 'description': 'Number of records to skip (offset pagination).'}, 'organization': {'type': 'string', 'description': 'Filter to an organization id.'}}}
missive_list_users
List users
List users (team members). Missive: GET /users.
Read only
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'limit': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991, 'description': 'Max records to return.'}, 'offset': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991, 'description': 'Number of records to skip (offset pagination).'}, 'organization': {'type': 'string', 'description': 'Filter to an organization id.'}}}
missive_update_conversation
Update conversation
Update a conversation — assign/unassign users, add/remove shared labels, close/reopen, move to inbox, or set subject/color/team. Missive: PATCH /conversations/{id}.
Destructive
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'The resource id (a UUID-like string).'}, 'team': {'type': 'string', 'description': 'Team id to move the conversation to.'}, 'close': {'type': 'boolean', 'description': 'Close (archive) the conversation.'}, 'color': {'type': 'string', 'description': 'Set the conversation color.'}, 'reopen': {'type': 'boolean', 'description': 'Reopen the conversation.'}, 'subject': {'type': 'string', 'description': 'Set the conversation subject.'}, 'add_to_inbox': {'type': 'boolean', 'description': 'Move the conversation back to the inbox.'}, 'organization': {'type': 'string', 'description': 'Organization id (context for the update).'}, 'add_assignees': {'type': 'array', 'items': {'type': 'string'}, 'description': 'User ids to assign.'}, 'remove_assignees': {'type': 'array', 'items': {'type': 'string'}, 'description': 'User ids to unassign.'}, 'add_shared_labels': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Shared label ids to add.'}, 'remove_shared_labels': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Shared label ids to remove.'}}}
Changed
missive_create_contact
Oct. 1, 2026, 2:43 a.m.
Changed
missive_update_conversation
Oct. 1, 2026, 2:43 a.m.
Changed
missive_create_draft
Oct. 1, 2026, 2:43 a.m.
Changed
missive_list_responses
Oct. 1, 2026, 2:43 a.m.
Changed
missive_list_organizations
Oct. 1, 2026, 2:43 a.m.
Changed
missive_list_shared_labels
Oct. 1, 2026, 2:43 a.m.
Changed
missive_list_users
Oct. 1, 2026, 2:43 a.m.
Changed
missive_list_teams
Oct. 1, 2026, 2:43 a.m.
Changed
missive_list_contact_groups
Oct. 1, 2026, 2:43 a.m.
Changed
missive_list_contact_books
Oct. 1, 2026, 2:43 a.m.
Changed
missive_get_contact
Oct. 1, 2026, 2:43 a.m.
Changed
missive_list_contacts
Oct. 1, 2026, 2:43 a.m.
Changed
missive_list_conversation_posts
Oct. 1, 2026, 2:43 a.m.
Changed
missive_list_conversation_drafts
Oct. 1, 2026, 2:43 a.m.
Changed
missive_list_conversation_comments
Oct. 1, 2026, 2:43 a.m.
Changed
missive_get_message
Oct. 1, 2026, 2:43 a.m.
Changed
missive_list_conversation_messages
Oct. 1, 2026, 2:43 a.m.
Changed
missive_get_conversation
Oct. 1, 2026, 2:43 a.m.
Changed
missive_list_conversations
Oct. 1, 2026, 2:43 a.m.
Added
missive_create_contact
Sept. 21, 2026, 2:44 a.m.
Added
missive_update_conversation
Sept. 21, 2026, 2:44 a.m.
Added
missive_create_draft
Sept. 21, 2026, 2:44 a.m.
Added
missive_list_responses
Sept. 21, 2026, 2:44 a.m.
Added
missive_list_organizations
Sept. 21, 2026, 2:44 a.m.
Added
missive_list_shared_labels
Sept. 21, 2026, 2:44 a.m.
Added
missive_list_users
Sept. 21, 2026, 2:44 a.m.
Added
missive_list_teams
Sept. 21, 2026, 2:44 a.m.
Added
missive_list_contact_groups
Sept. 21, 2026, 2:44 a.m.
Added
missive_list_contact_books
Sept. 21, 2026, 2:44 a.m.
Added
missive_get_contact
Sept. 21, 2026, 2:44 a.m.