apple-mcp
MCP server for macOS Apple apps. Enables read/write access to Notes, Reminders, Calendar, Contacts, and Safari using SQLite and JXA, all running locally.
README
apple-mcp
MCP server for macOS Apple apps. Provides 28 read/write tools across Notes, Reminders, Calendar, Contacts, and Safari -- all running locally on your Mac via SQLite and JXA (JavaScript for Automation).
Install
Claude Code
claude mcp add apple -- npx @roebot0/apple-mcp
Claude Desktop
Add to ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"apple": {
"command": "npx",
"args": ["@roebot0/apple-mcp"]
}
}
}
Tools
Notes (8 tools)
| Tool | Description |
|---|---|
apple_notes_list |
List notes with title, snippet, folder, and dates (paginated) |
apple_notes_search |
Search notes by keyword in title and snippet |
apple_notes_get |
Get full plaintext body of a note by exact title |
apple_notes_folders |
List all folders with note counts |
apple_notes_recent |
Get N most recently modified notes |
apple_notes_by_folder |
Get all notes in a specific folder |
apple_notes_create |
Create a new note in a specified folder |
apple_notes_stats |
Aggregate stats: total notes, per-folder counts, date range |
Reminders (6 tools)
| Tool | Description |
|---|---|
apple_reminders_lists |
List all reminder lists with counts |
apple_reminders_list |
Get reminders in a specific list |
apple_reminders_due |
Get reminders due today, this week, or overdue |
apple_reminders_search |
Search reminders by keyword across all lists |
apple_reminders_create |
Create a new reminder with optional due date and priority |
apple_reminders_complete |
Mark a reminder as complete by name |
Calendar (5 tools)
| Tool | Description |
|---|---|
apple_calendar_today |
Get today's events across all calendars |
apple_calendar_range |
Get events in a date range |
apple_calendar_calendars |
List all calendars |
apple_calendar_search |
Search events by title |
apple_calendar_upcoming |
Get next N upcoming events |
Contacts (5 tools)
| Tool | Description |
|---|---|
apple_contacts_search |
Search contacts by name, email, or company |
apple_contacts_get |
Get full contact details by ID (emails, phones, etc.) |
apple_contacts_recent |
Get recently modified contacts |
apple_contacts_company |
List contacts at a specific company |
apple_contacts_stats |
Contact count and top companies |
Safari (4 tools)
| Tool | Description |
|---|---|
apple_safari_history |
Get recent browsing history |
apple_safari_search_history |
Search history by URL or page title |
apple_safari_bookmarks |
List bookmarks, optionally filtered by folder |
apple_safari_reading_list |
Get all Reading List items |
Requirements
- macOS (uses native SQLite databases and JXA automation)
- Node.js >= 18
- Full Disk Access required for Safari history -- grant it to your terminal app in System Settings > Privacy & Security > Full Disk Access
- Notes, Reminders, Calendar, and Contacts work without Full Disk Access
How it works
- Notes, Calendar, Contacts, Safari history: Read directly from local SQLite databases (read-only)
- Notes create, Reminders (all), Notes get: Use JXA (
osascript -l JavaScript) to interact with the native apps - Safari bookmarks/reading list: Parse the Bookmarks.plist file
No network requests. No API keys. Everything stays on your Mac.
Development
git clone https://github.com/AaronRoeF/apple-mcp.git
cd apple-mcp
npm install
npm run build
To test locally with Claude Code:
claude mcp add apple -- node /path/to/apple-mcp/start-mcp-server.js
License
MIT
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
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.
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.