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 |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| 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
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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