Skip to main content
Glama
README.md•4.14 kB
# MCP Apple Mail Desktop Extension A desktop extension for Claude that provides seamless Apple Mail integration through the Model Context Protocol (MCP) using JXA (JavaScript for Automation). ## Features ✨ **No String Parsing** - Uses JXA to return native JavaScript objects šŸŽÆ **Type-Safe** - Full TypeScript support with interfaces šŸ“§ **Complete Mail Support** - Read, search, send, manage emails šŸ” **Account-Specific Sending** - Send from any configured account šŸ“ **Hierarchical Mailboxes** - Full mailbox tree structure support ## Installation ### As a Desktop Extension (Recommended) 1. Download the `apple-mail.mcpb` extension package 2. Double-click to install in Claude Desktop 3. Configure your preferences in the Claude Desktop settings ### Manual Installation For development or manual setup: ```bash # Clone the repository git clone https://github.com/LionSR/mcp-apple-mail cd mcp-apple-mail # Install dependencies npm install # Build the extension npm run build # Create the MCPB package npm run pack ``` Then add to your Claude Desktop configuration (`~/Library/Application Support/Claude/claude_desktop_config.json`): ```json { "mcpServers": { "apple-mail": { "command": "node", "args": ["/path/to/mcp-apple/dist/index.js"], "env": { "MAIL_ENABLED_ACCOUNTS": "${user_config.enabled_accounts}", "MAIL_DISABLED_ACCOUNTS": "${user_config.disabled_accounts}", "MAIL_SEARCH_DEFAULT_LIMIT": "${user_config.search_limit}", "MAIL_PRIORITY_MAILBOXES": "${user_config.priority_mailboxes}", "MAIL_JXA_TIMEOUT": "${user_config.jxa_timeout}", "MAIL_MAX_MAILBOXES_CHECK": "${user_config.max_mailboxes_check}", "MAIL_MESSAGES_PER_MAILBOX": "${user_config.messages_per_mailbox}" } } } } ``` ## Configuration When installed as a desktop extension, you can configure the following settings through the Claude Desktop UI: | Setting | Description | Default | |---------|-------------|---------| | **Enabled Accounts** | Comma-separated list of account names to enable | All accounts | | **Disabled Accounts** | Comma-separated list of account names to disable | None | | **Search Limit** | Default number of results for search operations | 20 | | **Priority Mailboxes** | Comma-separated list of priority mailbox names | INBOX, Sent Messages, Sent, Drafts | | **JXA Timeout** | Timeout for JXA operations (ms) | 30000 | | **Max Mailboxes** | Maximum mailboxes to check in operations | 10 | | **Messages per Mailbox** | Messages to check per mailbox | 50 | **Note:** If both `MAIL_ENABLED_ACCOUNTS` and `MAIL_DISABLED_ACCOUNTS` are specified, only accounts in the enabled list will be active. ## Available Tools ### `mail_get_accounts` Get all configured email accounts. ### `mail_get_mailboxes` Get mailbox hierarchy for a specific account. ### `mail_get_unread` Get unread emails (with configurable limit). ### `mail_search` Search emails by text content. ### `mail_get_latest` Get latest emails from a specific account. ### `mail_send` Send email from a specific account. ### `mail_mark_read` Mark emails as read by ID. ### `mail_delete` Delete emails by ID. ## Technical Details ### JXA Implementation This implementation uses JavaScript for Automation (JXA) instead of traditional AppleScript, which provides: - Direct JavaScript object returns (no parsing!) - Clean error handling - Type safety with TypeScript - ISO date formats - Proper arrays and nested structures ### Example Response ```javascript // getAccounts() returns: [ { name: "Work", emailAddresses: ["user@company.com"], enabled: true, id: "ABC-123-DEF" }, // ... ] // No string parsing needed! ``` ## Development ```bash # Run in development mode npm run dev # Run tests npm run test # Build for production npm run build # Create MCPB package npm run pack ``` ## Requirements - macOS (for Apple Mail access) - Node.js 16+ and npm - Apple Mail configured with at least one account ## License MIT ## Credits Clean implementation without string parsing, built with JXA for maximum reliability and performance.

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/LionSR/mcp-apple'

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