Skip to main content
Glama
kanjidoc
by kanjidoc

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
MISSIVE_API_TOKENYesYour Missive personal access token (starts with missive_pat-...)
MISSIVE_DEFAULT_TEAMNoDefault team ID for drafts/tasks/posts/messages
MISSIVE_DEFAULT_ACCOUNTNoDefault custom-channel account for missive_create_message
MISSIVE_DEFAULT_FROM_NAMENoDisplay name paired with the default from address
MISSIVE_DEFAULT_CONTACT_BOOKNoDefault contact book ID for contact tools
MISSIVE_DEFAULT_FROM_ADDRESSNoDefault 'from' address for drafts (must be one of your Missive aliases)
MISSIVE_DEFAULT_ORGANIZATIONNoDefault organization ID for org-scoped tools

Capabilities

Features and capabilities supported by this server

CapabilityDetails
tools
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
missive_list_contactsA

List contacts in a contact book. Requires contact_book (or MISSIVE_DEFAULT_CONTACT_BOOK). Supports search, order, limit (max 200), offset, modified_since, and include_deleted. Read-only.

missive_get_contactA

Fetch a single contact by its UUID. A deleted contact returns 404. Read-only.

missive_create_contactsA

Create one or more contacts. Body shape { contacts: [...] }. Each contact's contact_book falls back to MISSIVE_DEFAULT_CONTACT_BOOK. Supports names, starred, gender, infos[] (emails/phones/socials/addresses/custom), and memberships[] (organizations/groups).

missive_update_contactsA

Update one or more contacts by UUID (PATCH /contacts/:id1,:id2,...). Each object in contacts[] must include its id; only the attributes you supply are changed. WARNING: passing infos or memberships REPLACES the whole array — omitted items are deleted, so read-merge before writing. Idempotent.

missive_list_contact_booksA

Lists the contact books the API token owner can access (id, name, user, organization, sharing flags, description, and import status). Use this to find the contact_book id required when creating contacts. Read-only.

missive_list_contact_groupsA

Lists the contact groups or organizations linked to a contact book (GET /contact_groups). Provide kind = 'group' (labels for unrelated contacts) or 'organization' (related contacts such as a business). contact_book is required (or set MISSIVE_DEFAULT_CONTACT_BOOK). Read-only.

missive_list_conversationsA

Lists conversations visible to the API-token user (GET /conversations), newest activity first. REQUIRES at least one mailbox filter: a boolean (inbox, all, assigned, closed, snoozed, flagged, trashed, junked, drafts) or an ID filter (shared_label, team_inbox, team_closed, team_all). organization is an optional filter (falls back to MISSIVE_DEFAULT_ORGANIZATION, omitted otherwise). email/domain/contact_organization are mutually exclusive. Paginate with until = last_activity_at of the oldest conversation from the previous page. Read-only. Conversations where you are only a guest return just id and last_activity_at.

missive_get_conversationA

Fetches a single conversation by ID (GET /conversations/:id). If the conversation was merged, the current (merged) conversation is returned and its id may differ from the one passed. Read-only. Conversations where you are only a guest return just id and last_activity_at.

missive_update_conversationsA

Updates conversation state WITHOUT creating a post or sending anything (PATCH /conversations/:ids) — close/reopen, move to inbox/team, assign/unassign, add/remove shared labels, recolor, or rename. Pass ids (the conversation IDs to update) and conversations with exactly one object per id, each carrying its matching id. organization is required on any item that uses add_users, add_assignees, remove_assignees, or add_shared_labels. Idempotent. Missive's API has no archive action — close is the closest, and add_to_inbox un-archives.

missive_merge_conversationsA

Merges one conversation INTO another (POST /conversations/:source/merge). The source_conversation_id is merged into target_conversation_id: the source conversation is replaced and all its messages, comments, and entries move to the target. IRREVERSIBLE — it CANNOT be un-merged through this server. Missive may swap the two conversations, so the returned conversation id may differ from either input. Optionally pass subject to rename the merged conversation.

missive_list_conversation_messagesA

Lists messages in a conversation (GET /conversations/:id/messages), newest first; draft messages are excluded. Paginate with until = delivered_at of the oldest message from the previous page. Read-only.

missive_list_conversation_commentsA

Lists comments in a conversation (GET /conversations/:id/comments), newest first. Paginate with until = created_at of the oldest comment from the previous page. Read-only.

missive_list_conversation_draftsA

Lists draft messages in a conversation (GET /conversations/:id/drafts), newest first. Paginate with until = delivered_at of the oldest draft from the previous page. Read-only.

missive_list_conversation_postsA

Lists posts in a conversation (GET /conversations/:id/posts), newest first. Paginate with until = created_at of the oldest post from the previous page. Read-only.

missive_get_messageA

Fetch one or more Missive messages (headers, body, attachments, and parent conversation) by message id. Pass one id for a single message or several ids to batch-fetch them in one call. Read-only.

missive_list_messagesA

Fetch messages matching an email Message-ID (the RFC 5322 Message-ID header value). Normally returns a single message; non-compliant senders may produce up to the latest 10 matches. Read-only.

missive_create_messageA

ADVANCED — custom channels only. Creates an INCOMING message record (a simulated inbound message) inside a Missive custom channel; it NEVER transmits anything externally and is NOT an email send. To actually send an email, use the Drafts endpoint with send (not exposed by this server). from_field is required; account (the custom-channel account ID) falls back to MISSIVE_DEFAULT_ACCOUNT.

missive_create_draftA

Creates a draft saved in Missive for manual review/sending — it does NOT send. Builds a draft email/SMS/WhatsApp/custom-channel message (in a new conversation, or appended to an existing one via conversation or references) that a human reviews and sends from the Missive app. The send-related parameters (send, send_at, auto_followup) are intentionally NOT available, so this tool can never transmit a message.

missive_create_postA

Creates a post in a Missive conversation (POST /posts). A post is the recommended way for an automation to inject content and manage conversation state (close/reopen, move to inbox, assign users, add labels, set color) while leaving a visible trace. WARNING: the post is PERMANENT and VISIBLE to everyone with access to the conversation, creating it can send NOTIFICATIONS to those people, and it CANNOT be undone through this server (no delete tool is exposed). At least one of text, markdown, or attachments is required. If no conversation or matching references is given, a new conversation is created.

missive_list_shared_labelsA

Lists shared labels (the folder-like, team-shared conversation tags) in the organizations you can access. organization is an optional filter; pagination via limit/offset.

missive_create_shared_labelsA

Creates one or more shared labels (folder-like, team-shared conversation tags). Each label requires a name and an organization (organization falls back to MISSIVE_DEFAULT_ORGANIZATION). Optionally set color, a parent label, and sharing options.

missive_update_shared_labelsA

Updates one or more existing shared labels. Provide one object per label, each with its id; only the attributes you include (name, color, parent, sharing options, visibility) are changed.

missive_list_teamsA

Lists teams in the organizations the API token owner belongs to and has access to (id, name, organization, members, observers, behaviors). organization is an optional filter; when omitted (and no default is set) teams from all accessible organizations are returned. Read-only.

missive_create_teamsA

Creates one or more teams in an organization. The API token must belong to an admin or owner of the organization. Each team requires name and organization (organization falls back to MISSIVE_DEFAULT_ORGANIZATION). Body shape: { teams: [...] }.

missive_update_teamsA

Updates one or more existing teams. The API token must belong to an admin or owner of the organization. Pass ids (comma-joined into the URL path) and a teams array with one object per id, each carrying its own matching id plus only the attributes to change. Body shape: { teams: [...] }.

missive_list_usersA

Lists users across the organizations the API token owner belongs to (id, name, email, avatar_url, and me for the token owner). organization is an optional filter; when omitted (and no default is set) users from all accessible organizations are returned. Read-only.

missive_list_organizationsA

Lists the organizations the API token owner is part of (id, name). Use this to find the organization id used as a filter or default by other tools. Read-only.

missive_list_responsesA

Lists responses (reusable canned reply / email templates) for the authenticated user. organization is an optional filter; pagination via limit/offset.

missive_get_responseA

Fetches a single response (canned reply template) by its ID.

missive_create_responsesA

Creates one or more responses (reusable canned reply / email templates). Body shape { responses: [...] }. Each response must be scoped to EITHER an organization (shared) OR a user (personal) — exactly one, never both; organization falls back to MISSIVE_DEFAULT_ORGANIZATION only when no user is given. Title is optional. Provide body, subject, default recipients, attachments, and external sync IDs as needed.

missive_update_responsesA

Updates one or more existing responses (canned reply templates). Provide one object per response, each with its id; only the attributes you include (title, body, subject, recipients, shared_labels, attachments, external IDs) are changed. Passing attachments replaces the whole set — omitted attachments are removed. Responses created by external integrations (e.g. WhatsApp templates) cannot be updated.

missive_list_tasksA

Lists tasks you can access, ordered by last activity (most recent first). organization is an optional filter. Filter by state, type, team, assignee, parent conversation, or due-date range. Paginate with until (cursor on last_activity_at) — there is no offset.

missive_get_taskA

Gets a single task by ID, with full details including expanded assignee and team objects.

missive_create_taskA

Creates a task in Missive (standalone task, tasked conversation, or a subtask inside a conversation). Tasks created via the API appear in the Tasks view, not the Inbox. title is required; organization is required when using team, assignees, or add_users (defaults to MISSIVE_DEFAULT_ORGANIZATION); a subtask requires conversation or references.

missive_update_taskA

Updates a single task's attributes (title, description, state, assignees, team, due date). Only the fields you include are changed.

missive_helpA

Returns embedded documentation about this Missive MCP server — overview, architecture, the full tool inventory, authentication, safety guarantees (it cannot send email or delete records), conventions, how to add tools, troubleshooting, and the installed version. Call this to understand the project or answer 'what version do I have?'.

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/kanjidoc/missive-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server