Skip to main content
Glama
grncdr

Missive MCP Server

by grncdr

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
PORTNoHTTP port (default 3000)
BASE_URLNoPublic URL of the server
DATA_DIRNoDirectory for storage files (default ./data)
ENCRYPTION_KEYNo32-byte hex string for AES-256-GCM PAT encryption
MISSIVE_API_TOKENNoMissive API token for stdio mode

Capabilities

Features and capabilities supported by this server

CapabilityDetails
tools
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
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:

  • inbox=true: Shows inbox conversations

  • assigned=true: Shows assigned conversations

  • closed=true: Shows closed conversations

  • email="user@example.com": Search by exact email address

  • domain="example.com": Search by email domain

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:

  • full: Returns complete body (may be large for HTML emails)

  • truncated: Truncates body to max_body_length (default)

  • preview: Returns first 500 characters only

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:

  • Subject: Adds "Re: " prefix to original subject

  • To: Uses the original sender's address

  • Conversation: Links to the original conversation

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:

  • Confirm recipient addresses are correct

  • Verify message content is appropriate

  • Never send to addresses not explicitly provided by the user

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:

  • Close a conversation: set close=true

  • Add labels: set add_shared_labels=[label_ids]

  • Remove labels: set remove_shared_labels=[label_ids]

  • Assign users: set add_assignees=[user_ids]

  • Move to team: set team=team_id (use force_team=true to override existing team)

  • Add a visible note: set text="your message"

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

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

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