Honeycrisp
MCP servers for your Mac's real data — Mail, Calendar, files — with safety rails you can audit. Local-first, no accounts, no cloud, with dry-run defaults and human approval gates.
README
Honeycrisp 🍎
MCP servers for your Mac's real data — Mail, Calendar, files — with safety rails you can audit. Every tool ships governed: dry-run by default, human approval required for anything that sends, moves, or deletes, an audit log of every action, and undo where the platform allows it. Local-first: no accounts, no credentials, no cloud — your data stays on your Mac.
Why this exists
Most MCP servers for personal data are thin wrappers around AppleScript:
delete_email, send_message, executed the moment a model calls them. That's
a hard thing to trust with an inbox. Honeycrisp inverts the default — a tool
call previews what it would do unless you've opted into live mode, and even
then every consequential action waits for your explicit approval through a
channel the model can't touch. The framework enforcing this is a small library
with a test suite proving each guarantee can't be bypassed, and every tool in
the suite is built on it.
Install
From npm (recommended):
npm install -g @honeycrisp/mail @honeycrisp/context @honeycrisp/setup
honeycrisp setup
Or from a clone of this repo:
npm install && npm run build
node packages/setup/dist/cli.js setup
The setup wizard walks you through everything, one yes/no question at a time
(the default answer is always No — nothing proceeds unless you say so): it
registers the servers with Claude Code / Claude Desktop, triggers the macOS
permission prompts while you're watching (instead of mid-conversation later),
explains the optional Full Disk Access tier for full-text mail search, and can
set up the iCloud Agents/ folder and capture schedules. Nothing happens
silently; every step it performs is written to the same audit DB the tools use.
What's in the box
| Package | What it does |
|---|---|
@honeycrisp/governed |
The framework: dry-run defaults, approval gates, audit trail, provenance, undo, injection fencing. Build your own governed tools on it. |
@honeycrisp/mail |
Apple Mail over MCP: read, search (two tiers), thread view, drafts. Draft-first by design — no send tool exists; marking and moving messages are gated with native undo. |
@honeycrisp/folders |
Folder-as-API: drop a file into a watched iCloud folder from any device and a declared local pipeline runs; results land beside the drop. |
@honeycrisp/context |
A local context layer: captures mail/calendar metadata (pointers, never message bodies), serves briefings and person lookups over MCP, learns from your corrections. |
@honeycrisp/setup |
The onboarding wizard above. |
@honeycrisp/remote |
Gateway serving the suite over MCP streamable HTTP — loopback-only, bearer tokens (read/write scopes), audit rows that name who asked. Share the port over your own private network (e.g. Tailscale) to reach it from your other devices. |
How approvals work
Reads are free. Writes that leave your review loop (send, delete, move) are gated: with live mode off (the default), they preview instead of executing; with live mode on, each action individually asks a human through one of:
- a native macOS dialog (default — you're at the Mac),
- a file in an iCloud folder — the request appears on every device you
own; move it into
ApproveorDenyin the Files app. Works from a stock iPhone, no extra apps; - an MCP elicitation card in clients that support it (opt-in).
No decision, a deleted file, or any ambiguity = denied. Every outcome — executed, denied, dry-run, errored — is a row in a local SQLite audit DB, so you can always answer "what did my tools actually do?"
Privacy model
- No accounts, no credentials, no cloud. Mail access goes through Mail.app, which already has your accounts. iCloud Drive is just a folder; Apple's own sync does the transport. Permissions are macOS's own TCC prompts.
- Pointers, not copies. The context layer stores headers and metadata that reference messages by ID — message bodies are never stored. Delete a message in Mail and the context layer's pointer dangles and gets pruned.
- Content is data, not instructions. Everything read from your mail or files is returned inside a tamper-resistant fence with a standing notice, so text inside an email can't steer the model into acting on it.
- Model use is opt-in and declared. The context layer works fully deterministically with no model configured. If you configure one, its network egress is declared in config and recorded in the audit log on every run.
Design docs
The docs/ directory has one design doc per component, including the framework
contract (01), and the remote-access design (05) for reaching these servers
from phone/web clients. NOTES.md is the running engineering log: decisions
with dates, open questions, and field-test findings.
License
MIT. See LICENSE.
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.
Neon Database
MCP server for interacting with Neon Management API and databases
E2B
Using MCP to run code via e2b.
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.