Honeycrisp

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.

Category
Visit Server

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 Approve or Deny in 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

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.

Official
Featured
TypeScript
Magic Component Platform (MCP)

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.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

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.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

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.

Official
Featured
TypeScript
Kagi MCP Server

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.

Official
Featured
Python
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Exa Search

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.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured