Model Context Protocol (MCP) server for accessing Missive conversations in Claude Desktop.
- Get Conversations: Retrieve recent conversations from your Missive inbox
- Filtered Conversations: Get conversations by mailbox (inbox, assigned, closed, flagged, etc.)
- Conversation Details: Get detailed information about specific conversations
- Conversation Messages: Retrieve messages from any conversation
- Conversation Comments: Get comments and tasks from conversations
- Create Tasks: Create standalone tasks or conversation subtasks
- Update Tasks: Modify task details, state, assignees, and due dates
- Message Details: Get full message content including attachments
- Search Messages: Find messages by email Message-ID
- Create Messages: Send messages through custom channels
- Secure Authentication: Uses your personal Missive API token
- Claude Integration: Works seamlessly with Claude Desktop
- Local Execution: Runs entirely on your machine for privacy and security
missive-mcp/
βββ local-server/
β βββ main.py # MCP server implementation
β βββ requirements.txt # Python dependencies
β βββ install.sh # Automated setup script
βββ README.md # This file
βββ LICENSE # MIT License
cd local-server
./install.shThe script will:
- Create a virtual environment
- Install dependencies
- Show you the exact configuration for Claude Desktop
-
Create virtual environment:
cd local-server python3 -m venv .venv source .venv/bin/activate # On Windows: .venv\Scripts\activate
-
Install dependencies:
pip install -r requirements.txt
-
Get your Missive API token:
- Go to Missive β Settings β API
- Create a new API token
- Copy the token (starts with
missive_pat-...)
Add this to your Claude Desktop config file:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"missive": {
"command": "/path/to/missive-mcp/local-server/.venv/bin/python",
"args": ["/path/to/missive-mcp/local-server/main.py"],
"env": {
"MISSIVE_API_TOKEN": "YOUR_MISSIVE_API_TOKEN_HERE"
}
}
}
}Important:
- Replace
/path/to/missive-mcp/with the actual path to this project - Replace
YOUR_MISSIVE_API_TOKEN_HEREwith your actual Missive API token - On Windows, use
.venv\Scripts\python.exeinstead of.venv/bin/python
- Restart Claude Desktop completely (quit and reopen)
- Test the connection by asking Claude:
- "Show me my recent email conversations"
- "What's in my Missive inbox?"
- "Get my latest conversations"
- Local execution: Runs as a local process launched by Claude Desktop
- Stdio transport: Uses standard input/output for MCP communication
- Environment variables: API token passed securely via environment
- Direct API calls: Connects directly to Missive API from your machine
- β No hardcoded tokens: You provide your own API token
- β Local processing: All data stays on your machine
- β Environment variables: Secure token storage
- β Direct API calls: No intermediary services
- β Minimal permissions: Only reads conversations
- Check paths: Ensure the paths in your Claude config are correct
- Verify token: Make sure your Missive API token is valid
- Check permissions: Ensure
main.pyis executable (chmod +x main.py) - Python path: Verify the virtual environment Python path is correct
- "spawn ENOENT": Wrong Python path in Claude config
- "nodename nor servname provided": Network connectivity issue
- "Invalid API token": Check your Missive API token
- Check the Claude Desktop logs for detailed error messages
- Test your API token with curl:
curl -H "Authorization: Bearer YOUR_TOKEN" \ "https://public.missiveapp.com/v1/conversations?inbox=true&limit=5"
cd local-server
source .venv/bin/activate
MISSIVE_API_TOKEN="your_token" python main.pyThe server uses the FastMCP framework. To add new tools:
- Add a new function decorated with
@mcp.tool - Use the Missive API documentation: https://learn.missiveapp.com/api-documentation
- Follow the existing pattern in
main.py
This server implements the following MCP tools:
get_conversations: Get recent conversations from your Missive inboxget_conversations_filtered: Get conversations with filtering (inbox, assigned, closed, flagged, etc.)get_conversation_details: Get detailed information about a specific conversationget_conversation_messages: Get messages from a specific conversationget_conversation_comments: Get comments from a specific conversation
create_task: Create a new task (standalone or conversation subtask)update_task: Update an existing task (title, description, state, assignees, due date)
get_message_details: Get full details of a specific message including body and attachmentssearch_messages_by_email_id: Find messages by email Message-ID headercreate_custom_message: Create a message in a custom channel
get_users: List users in organizations with optional filtering and pagination
Ask Claude things like:
- "Show me my flagged conversations"
- "Get details for conversation ID abc123"
- "Create a task titled 'Follow up with client' assigned to team xyz"
- "Update task abc123 to mark it as completed"
- "Get the full content of message def456"
- "Search for messages with Message-ID example@domain.com"
- "Show me all users in my organization"
- "List users for organization abc123"
Contributions welcome! This project demonstrates:
- FastMCP framework usage
- Secure API token handling
- Claude Desktop integration patterns
- Local MCP server best practices
MIT License - see LICENSE file for details.
- FastMCP - The MCP framework used
- Missive API - Official API documentation
- Model Context Protocol - MCP specification