Missive MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| PORT | No | HTTP port (default 3000) | |
| BASE_URL | No | Public URL of the server | |
| DATA_DIR | No | Directory for storage files (default ./data) | |
| ENCRYPTION_KEY | No | 32-byte hex string for AES-256-GCM PAT encryption | |
| MISSIVE_API_TOKEN | No | Missive API token for stdio mode |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_organizationsA | Lists all organizations the authenticated user belongs to. Organizations are the top-level entity in Missive. |
| list_teamsB | Lists all teams the authenticated user has access to. Filter by organization if needed. |
| list_usersA | Lists all users in organizations the authenticated user belongs to. Use this to find user IDs for assignments. |
| list_contact_booksA | Lists all contact books the authenticated user has access to. Required before creating contacts. |
| list_shared_labelsA | Lists all shared labels available for tagging conversations. Use label IDs to filter conversations or apply labels. |
| list_conversationsA | Lists conversations visible to the authenticated user. Supports multiple filters and search by email/domain. Common filter combinations:
Note: email and domain are mutually exclusive. |
| get_conversationA | Gets a single conversation by ID. Returns conversation details including assignees, labels, and metadata. |
| get_messageA | Gets a single message by ID with full body content. Supports body processing options to manage size. Body format options:
Use strip_html=true (default) to convert HTML to plain text. |
| get_conversation_timelineA | Returns all messages, posts, and comments in a conversation as a unified chronological timeline. This matches how Missive displays conversations - emails, internal notes, state changes, and team comments interleaved by time. Each item has a "type" field ("message", "post", or "comment") to identify what it is. Uses smart caching: stops fetching when hitting cached data. To paginate backwards: pass older_than with the oldest_timestamp from the previous response. Use get_message with a specific message ID if you need the full body content. |
| list_draftsA | Lists drafts in a conversation. Use this to see drafts before sending or to review unsent messages. |
| create_draftA | Creates a draft message that is NOT sent. Use this when the user wants to compose a message and review it before sending. The draft will be saved and can be viewed in Missive or sent later using send_message. For replies, provide the conversation ID and the from/to addresses. For new messages, omit the conversation ID and use any from/to addresses specified by the user. |
| draft_replyA | Creates a draft reply to an existing message. Automatically sets:
Use reply_all=true to include original CC recipients. Only the body content is required. The draft can be reviewed in Missive or sent with send_message. |
| send_messageA | Sends an email message. WARNING: This action is IRREVERSIBLE. The email will be delivered immediately. Before calling:
Rate limited to 10 sends/minute, 100 sends/hour. For replies, provide the conversation ID. For new messages, omit it. |
| delete_draftA | Deletes an unsent draft or scheduled message. This action cannot be undone. |
| list_contactsC | Lists contacts in a contact book. Use the search parameter to find contacts by name or email. |
| get_contactB | Gets a single contact by ID with all details. |
| create_contactA | Creates a new contact in a contact book. At least one name field (first_name or last_name) is required. Use list_contact_books first to get the contact_book ID. |
| update_contactA | Updates an existing contact. Only provided fields will be updated. WARNING: When updating infos array, you must include ALL items you want to keep. Missing items will be deleted. |
| create_postA | Adds a post to a conversation and optionally changes its state. This tool can:
Posts leave a visible trace showing what triggered the action. Required: conversation and organization IDs. Use list_organizations to get org ID, list_users for user IDs, list_shared_labels for label IDs. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/grncdr/missive-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server