Missive MCP server
42 operations0 webhooks
Team inbox integration for conversations, contacts, drafts, messages, tasks, teams, and analytics reports.
Try Missive with your agent
Connect Missive, then paste this into Claude, ChatGPT or Cursor. For ideas from other apps, see the use cases.
Using Corsair, show me what you can do in Missive on my account, then run one read-only example and show me the result.
Missive tools and triggers
Tools are what your agent can do in Missive through Corsair's MCP server. Triggers are the Missive events a routine can start from.
Conversations
- GetRead-only
Fetch a conversation by id; a merged old id answers with the current conversation
conversations.get
- ListRead-only
List conversations of one mailbox, shared label, or team, newest activity first
conversations.list
- List CommentsRead-only
List the internal comments of a conversation, newest first
conversations.listComments
- List DraftsRead-only
List the draft messages of a conversation, newest first
conversations.listDrafts
- List MessagesRead-only
List the messages of a conversation, newest first; drafts are excluded
conversations.listMessages
- List PostsRead-only
List the posts of a conversation, newest first
conversations.listPosts
- MergeDestructive
Merge a conversation into a target conversation; the source is marked as replaced
conversations.merge
- UpdateWrite
Silently close, reopen, move, assign, label, recolor, or rename one or more conversations without adding a post
conversations.update
Responses
- CreateWrite
Create one or more saved response templates
responses.create
- DeleteDestructive
Delete one or more saved response templates
responses.delete
- GetRead-only
Fetch a saved response by id
responses.get
- ListRead-only
List saved responses (canned replies) for the authenticated user
responses.list
- UpdateWrite
Update one or more saved responses; attachments replace the current ones when passed
responses.update
Contacts
- CreateWrite
Create one or more contacts in a contact book
contacts.create
- GetRead-only
Fetch a contact by id; deleted contacts answer 404
contacts.get
- ListRead-only
List or search the contacts of a contact book, ordered by last name unless order is last_modified
contacts.list
- UpdateWrite
Update one or more contacts; infos and memberships replace the current ones when passed
contacts.update
Tasks
- CreateWrite
Create a standalone task, tasked conversation, or conversation subtask
tasks.create
- GetRead-only
Fetch a task with full assignee and team details by id
tasks.get
- ListRead-only
List tasks the token owner has access to, filtered by organization, team, assignee, state, type, or due window
tasks.list
- UpdateWrite
Update a task title, description, state, assignees, team, or due date
tasks.update
Messages
- CreateWrite
Create an incoming message in a custom channel to ingest an external conversation event
messages.create
- GetRead-only
Fetch one or more messages with headers, body, and attachments by message id
messages.get
- ListRead-only
Fetch the messages matching an email Message-ID header, latest first
messages.list
Shared Labels
- CreateWrite
Create one or more shared labels in an organization
sharedLabels.create
- ListRead-only
List shared labels in organizations the authenticated user has access to
sharedLabels.list
- UpdateWrite
Update one or more shared labels; visibility and sharing are admin-only fields
sharedLabels.update
Teams
- CreateWrite
Create a team in an organization; the token owner must be an admin or owner
teams.create
- ListRead-only
List teams in organizations the authenticated user has access to
teams.list
- UpdateWrite
Update one or more teams; the token owner must be an admin or owner
teams.update
Analytics
- Create ReportWrite
Queue an analytics report for a period and optional team, user, label, and account filters, and get the report id to poll
analytics.createReport
- Get ReportRead-only
Fetch a queued analytics report by id; an empty 404 means it is still generating or already expired
analytics.getReport
Drafts
- CreateWrite
Create an email, SMS, WhatsApp, or live chat draft in a new or existing conversation; send true delivers it to the real recipients at once and send_at schedules it, and a delivered message cannot be recalled
drafts.create
- DeleteDestructive
Delete a draft from its conversation
drafts.delete
Hooks
- CreateWrite
Create a webhook subscription for incoming-message or new-comment events, backed by a Missive rule
hooks.create
- DeleteDestructive
Delete a webhook subscription and its backing rule
hooks.delete
Posts
- CreateWrite
Create a post in a new or existing conversation to inject content and close, reopen, assign, or label the conversation with a visible trace; every teammate with access sees the post and gets its notification
posts.create
- DeleteDestructive
Delete a post from its conversation
posts.delete
Contact Books
- ListRead-only
List contact books the authenticated user has access to; a book id is required to create contacts
contactBooks.list
Contact Groups
- ListRead-only
List the groups or organizations linked to a contact book
contactGroups.list
Organizations
- ListRead-only
List organizations the authenticated user is part of
organizations.list
Users
- ListRead-only
List users in organizations the authenticated user is part of; user status is not exposed by the API
users.list
Connect Missive to Claude, ChatGPT or Cursor
- 1
Connect Missive in Corsair
Add your Missive API key once in Corsair. Corsair stores the credential encrypted and makes the Missive API calls for your agent, so it never goes into a prompt or a config file. Connect Missive
If your link lets the agent add apps, you can skip this: it gives you a sign-in link the first time it needs Missive. On a ChatGPT personal plan, connect Missive here first.
- 2
Add Corsair's MCP server to your agent
Every client uses the same address:
https://mcp.corsair.dev/mcpOpen Customize → Connectors → Add custom connector, paste the address, then select Connect.Add a custom MCP server with the address and choose OAuth. Personal plans get read tools only.Add to CursorOr add this to~/.cursor/mcp.json. Cursor opens Corsair to sign in the first time it connects.{ "mcpServers": { "corsair": { "url": "https://mcp.corsair.dev/mcp" } } }Run this, then run/mcpin Claude Code to sign in.claude mcp add --transport http corsair https://mcp.corsair.dev/mcpCodex, Gemini CLI, VS Code, Zed and other clients with OAuth sign-in work the same way. Clients without it, such as GitHub Copilot's coding agent, use a link's own address and an API key. Setup for every client
- 3
Sign in and choose what needs your approval
Your client opens Corsair to sign in. Pick a link: the apps your agent can use and a mode that decides what it may do without asking. In the default Cautious mode, Missive's read and write operations run right away and its 5 destructive operations wait for your approval. Strict mode asks before every write and refuses destructive operations, and Read mode allows reads only.
FAQ
Install corsair and @corsair-dev/missive, add the Missive plugin, and connect with an API key. Then call methods like corsair.missive.api.analytics.createReport() from your app. Corsair keeps each tenant isolated.
Yes. Missive requires an API key from your Missive account or developer dashboard. Create credentials with access that matches what you automate, then paste them into Corsair or connect through managed auth in Hub.
Yes. One Corsair client can hit Missive, GitHub, Notion, Stripe, and the rest. Trigger Missive from a webhook, push updates to Slack, or chain actions across plugins. Same tenant context across integrations, plain TypeScript.
Teams use Corsair for team inbox integration for conversations, contacts, drafts, messages, tasks, teams, and analytics reports. Common builds include sync jobs, admin tooling, and agents that call Missive APIs from your backend.
The SDK is open source. Self-host and you pay Corsair nothing for the integration layer. Hub bills for hosted auth and execution, not per Missive API call. Hub has a generous free tier. For hobby projects you can probably run the whole thing on free. Paid plans start to matter with more tenants or heavier traffic.
We maintain @corsair-dev/missive in the open repo. When Missive ships API changes, upgrade the package. Your call sites stay typed. You should not need to rewrite the integration layer each time.
No. Corsair does not read your Missive data or hold individual access credentials. Credentials stay in your database. API calls run on your instance. We do not store Missive data on your behalf.
Yes. Add https://mcp.corsair.dev/mcp as a custom connector or MCP server in Claude, ChatGPT, Cursor, VS Code, Claude Code, Codex or any client that supports remote MCP servers with OAuth sign-in, then sign in to Corsair. On ChatGPT personal plans, custom servers currently get read tools only.
Yes. Put Missive on a link in Strict mode and every write waits for your approval, while destructive actions are refused. The default Cautious mode asks only before the 5 destructive Missive operations. You can change a link's mode at hub.corsair.dev/me.