Apple Notes, Reminders, and Contacts for AI assistants. BERT semantic search. macOS.
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent β or use 1-click editor setup below.
π‘ Paste the JSON block into your client's configuration file under mcpServers, then restart the application.
An MCP server that gives AI assistants access to your Apple Notes, Reminders, and Contacts β with optional BERT-powered semantic search.
All tools run locally via macOS-native APIs (AppleScript, EventKit, Contacts framework). No data leaves your Mac. No API keys required.
New to MCP? Check out the FAQ for answers to common questions about what this is, whether it works with your setup, and how your data stays private.
![]() | Apple Notes & Semantic Search β Connect your AI to Apple Notes with BERT-powered semantic search |
![]() | Apple Contacts β Search, create, and manage contacts from your AI assistant |
![]() | Apple Reminders β Full CRUD for reminders and lists via any MCP client |
![]() | Access Control β Configure exactly which data your AI can access |
| Category | Tools | Description |
|---|---|---|
| Notes | search_notes, list_notes, get_note, open_note, notes_tags, notes_search_by_tag, notes_index | Search, browse, and read Apple Notes |
| Notes (Semantic) | notes_semantic_search, notes_smart_search, notes_rebuild_index, notes_index_stats | BERT-powered semantic search across all your notes |
| Reminders | list_reminder_lists, search_reminders, list_reminders, get_reminder, create_reminder, create_reminders_batch, complete_reminder, delete_reminder, edit_reminder, edit_reminders_batch, open_reminders, create_reminder_list, delete_reminder_list | Full CRUD for Apple Reminders |
| Contacts | list_contact_groups, search_contacts, list_contacts, get_contact, create_contact, edit_contact, delete_contact | Search and manage Apple Contacts |
| Files | file_search, read_file, write_file | Search and read/write files in granted folders |
This installs everything β binary, Swift helpers, FFmpeg, and the BERT model. No compilation required.
The build script handles everything automatically:
Build without semantic search (skips FFmpeg and BERT):
Requirements: macOS 12+ (Monterey or later). Xcode Command Line Tools will be prompted if not installed.
The binary and helpers are in target/release/. Use the full path when configuring your MCP client.
Two shortcuts enable linking Reminders to file artifacts:
This opens each shortcut in Shortcuts.app for you to approve.
If you installed via Homebrew, the command is just psyxe-mcp (it's in your PATH). If you built from source, use the full path: /Users/yourname/src/psyxe-mcp/target/release/psyxe-mcp.
Or edit ~/.claude/claude_mcp_config.json:
Edit ~/Library/Application Support/Claude/claude_desktop_config.json:
Open Settings β MCP Servers β Add new server:
Edit ~/.codeium/windsurf/mcp_config.json:
Edit ~/.codex/config.toml:
Note: If you built from source instead of using Homebrew, replace
psyxe-mcpwith the full path to the binary (e.g.,/Users/yourname/src/psyxe-mcp/target/release/psyxe-mcp).
By default, the MCP server has full access to all your Notes, Reminders, Contacts, and files. To restrict what your AI can see, use the built-in access control CLI to create and manage ~/.psyxe/access.toml.
No manual file editing is needed β the CLI creates the file with secure permissions (owner-only read/write) on first use.
Once any rule is set for a category, only explicitly granted resources are accessible β everything else in that category is denied.
Access rules are stored in ~/.psyxe/access.toml with owner-only permissions (chmod 600). The server refuses to load the config if it is group- or world-readable, preventing other processes from tampering with access rights.
When built with the memvid feature (enabled by default), the server includes BERT-powered semantic search for Apple Notes. This uses memvid-rs to encode your notes into a searchable vector index.
The first time you (or your AI assistant) run a semantic search, the server will build an index of all your notes. This takes a few minutes depending on how many notes you have. Subsequent searches are instant.
We've included sample notes designed to showcase semantic search:
See examples/sample-notes.md for the full list of demo queries.
The default model (sentence-transformers/all-MiniLM-L6-v2, 384 dimensions) balances speed and quality. You can swap in any HuggingFace BERT-family sentence-transformer model.
Via environment variable:
Via config file β create memvid_config.toml in the repo root or next to the binary:
After changing models, rebuild the index (ask your AI assistant or run warmup again).
Popular alternatives:
| Model | Dimensions | Trade-off |
|---|---|---|
sentence-transformers/all-MiniLM-L6-v2 | 384 | Default. Fast, good quality |
BAAI/bge-small-en-v1.5 | 384 | Retrieval-optimized, slightly better for search |
sentence-transformers/all-mpnet-base-v2 | 768 | Higher quality, ~2x slower |
BAAI/bge-base-en-v1.5 | 768 | Best retrieval quality, needs query prefix |
For instruction-tuned models (like BGE), add query/document prefixes:
Use any OpenAI-compatible embedding endpoint instead of local BERT:
Then set the endpoint via environment variables:
Works with OpenAI, Ollama, vLLM, LM Studio, or any OpenAI-compatible endpoint.
Build without memvid to skip the FFmpeg/BERT dependency entirely (no brew install needed):
No reviews yet β be the first to share how this listing worked for you.
Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/psyxe-mcp-server)<a href="https://allmcps.com/mcp/psyxe-mcp-server"><img src="https://allmcps.com/api/badge/psyxe-mcp-server?style=directory" alt="PsyXe MCP Server on AllMCPs" /></a>