Mailbridge for Apple Mail
Enables using Apple Mail accounts to search, read, manage, draft, and send messages from Codex or Claude Code locally.
README
Mailbridge for Apple Mail
Use every account already configured in Apple Mail from Codex or Claude Code—locally, without giving another service your email password.
Mailbridge can search and read mail, manage message state, create drafts, and send attachment-free messages and replies. Direct MCP registrations are read-only by default. The bundled Codex and Claude Code plugins use prompted mode, which requires exact-content client confirmation and fails closed when the client cannot render it.
Install
Mailbridge requires macOS, a working account in Mail.app, and Node.js 22 or 24. The marketplace payload is prebuilt, so npm and a source checkout are not required.
Codex
codex plugin marketplace add pooyanmajd/pmtechdev-mcp-plugins --ref v0.4.2
codex plugin add mailbridge-mcp@pmtechdev
Claude Code
claude plugin marketplace add pooyanmajd/pmtechdev-mcp-plugins@v0.4.2
claude plugin install mailbridge-mcp@pmtechdev
Start a new Codex task after installation. In Claude Code, run /reload-plugins, then use /mcp to confirm the bundled mailbridge server is connected.
Try:
Read my latest three Inbox messages across configured accounts.
Reply to the latest message from Alex and say thanks.
Why Mailbridge
| Capability | Mailbridge for Apple Mail | Direct IMAP integration |
|---|---|---|
| Uses accounts already configured in Mail.app | Yes | Usually requires separate account setup |
| Gives the connector provider passwords or OAuth tokens | No | Usually |
| Works across Mail.app providers through one local connection | Yes | Depends on configuration |
| Read-only default for direct MCP registration | Yes | Varies |
| Exact outbound content confirmed before successful sends in bundled plugins | Yes; unsupported prompts fail closed | Varies |
| Platform support | macOS | Varies |
Mailbridge uses local STDIO and Apple Events. It does not read Mail's private database, request Full Disk Access, run a hosted relay, or include telemetry. Selected mail and tool results may still be sent to the model provider configured in the host you choose, so only connect it to a trusted Codex, Claude Code, or MCP host. Read the security model before connecting sensitive accounts.
PMTechDev MCP & Plugins
This repository is also an expandable monorepo, reusable development kit, and Codex and Claude Code marketplace for local-first Model Context Protocol servers and plugins maintained by PMTechDev.
Each integration remains independently buildable under plugins/, while shared safety primitives live under packages/. New integrations start from a tested scaffold instead of rebuilding packaging, policy, CI, and MCP boilerplate from scratch.
Available plugins
| Plugin | Purpose | Platforms | Status |
|---|---|---|---|
| Mailbridge for Apple Mail | Search, read, manage state, create drafts, and explicitly send through accounts configured in macOS Mail. | macOS | 0.4.2 |
Mailbridge remains read-only for direct registrations by default. The bundled Codex and Claude Code plugins use client-prompted sending for attachment-free new messages and replies; existing full configurations do not gain send authority.
Repository layout
pmtechdev-mcp-plugins/
├── .agents/plugins/marketplace.json # Codex marketplace catalog
├── .claude-plugin/marketplace.json # Claude Code marketplace catalog
├── packages/
│ └── mcp-kit/ # Reusable safety and queue primitives
├── plugins/
│ └── mailbridge-mcp/ # Independent MCP + Codex/Claude plugin payload
├── templates/
│ └── mcp-plugin/ # Starter copied by the scaffolder
└── scripts/
├── create-plugin.mjs # Generates and registers a plugin
└── validate-workspace.mjs # Validates catalog/package invariants
Install from a moving marketplace snapshot
The pinned release commands above are recommended. To track the current marketplace snapshot instead, use the following commands.
Codex
Install the current marketplace snapshot:
codex plugin marketplace add pooyanmajd/pmtechdev-mcp-plugins --ref main
codex plugin add mailbridge-mcp@pmtechdev
For the reviewed, immutable release, pin the marketplace to Mailbridge 0.4.2 instead:
codex plugin marketplace add pooyanmajd/pmtechdev-mcp-plugins --ref v0.4.2
codex plugin add mailbridge-mcp@pmtechdev
These commands target Codex CLI. Plugins can also be installed for Codex in the ChatGPT desktop app; they are not currently available in the Codex IDE extension. See the official Codex plugin documentation for supported surfaces. Start a new Codex task or CLI session after installing or updating a plugin so its skills and MCP tools are loaded.
Claude Code
Install the immutable release through the native Claude Code marketplace and plugin manifests:
claude plugin marketplace add pooyanmajd/pmtechdev-mcp-plugins@v0.4.2
claude plugin install mailbridge-mcp@pmtechdev
Run /reload-plugins, then use /mcp to confirm the bundled mailbridge server is connected. The Claude registration resolves dist/cli.js through CLAUDE_PLUGIN_ROOT and starts in prompted mode, which fails closed unless Claude Code can display and the user accepts the exact-content send form.
The immutable 0.4.2 release includes the plugin tarball, SHA-256 checksums, a CycloneDX SBOM, and signed GitHub provenance attestations.
Only install Mailbridge in a trusted Codex, Claude Code, or MCP host: the launching host receives macOS Automation authority for Mail. The marketplace configuration uses prompted mode and direct registrations remain read-only by default; selected mail and tool results may still be sent to the model provider configured in that host. Review the Mailbridge security model before connecting sensitive accounts.
Develop the workspace
Requirements are Node.js 22 or 24 and npm. These are the supported LTS lines tested on macOS.
git clone https://github.com/pooyanmajd/pmtechdev-mcp-plugins.git
cd pmtechdev-mcp-plugins
npm ci
npm run check
The root check enforces coverage thresholds, builds every workspace, validates all plugin and skill metadata, installs the real Mailbridge tarball in a temporary directory, performs MCP initialization plus tools/list without invoking Mail, validates committed plugin bundles, and checks marketplace consistency.
Create the next plugin
npm run create:plugin -- example-mcp
npm install
npm run check -w example-mcp
npm run validate:workspace
The scaffolder normalizes the name, copies the starter, creates valid Codex, Claude Code, and MCP manifests, adds a safe status tool and skill, and appends complete entries to both marketplace catalogs. Replace the generated placeholder scope with the real integration design before publication.
Reusable primitives are exported by @pmtechdev/mcp-kit:
- minimal subprocess environments that avoid inheriting unrelated secrets;
- UTF-8 JSON request byte bounds;
- bounded FIFO serialization for non-idempotent operations.
Add only broadly reusable, well-tested infrastructure to the kit. Integration-specific policy stays inside its plugin.
Design rules
- Local STDIO is the default transport. Remote services must be explicit and documented.
- Read-only or least-privilege behavior is the default.
- Connected content is untrusted data, not agent instructions.
- Secrets never belong in process arguments, logs, committed fixtures, or generated artifacts.
- Every search, body, attachment, subprocess, queue, and response is bounded.
- Mutations require explicit tools, clear annotations, deterministic tests, and safe retry semantics.
- Each plugin remains independently packageable and owns its runtime-specific documentation.
See Contributing, Releasing, Support, Security, Privacy, and Terms. The workspace and bundled plugins are available under the MIT License.
Copyright © 2026 PMTechDev / Pooyan Majd.
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.