https://github.com/evg4b/apple-notes-mcp
Read and write Apple Notes from any MCP-compatible AI client. ⚡ Single binary | 🚫 No runtime dependencies | 🌐 No HTTP server
https://github.com/evg4b/apple-notes-mcp
ai ai-tools apple apple-notes apple-silicon mcp rust
Last synced: 26 days ago
JSON representation
Read and write Apple Notes from any MCP-compatible AI client. ⚡ Single binary | 🚫 No runtime dependencies | 🌐 No HTTP server
- Host: GitHub
- URL: https://github.com/evg4b/apple-notes-mcp
- Owner: evg4b
- License: mit
- Created: 2026-04-12T04:20:38.000Z (2 months ago)
- Default Branch: main
- Last Pushed: 2026-04-19T23:50:37.000Z (2 months ago)
- Last Synced: 2026-04-20T01:33:03.122Z (2 months ago)
- Topics: ai, ai-tools, apple, apple-notes, apple-silicon, mcp, rust
- Language: Rust
- Homepage:
- Size: 6.51 MB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
Apple Notes MCP Server
Read and write Apple Notes from any MCP-compatible AI client.
⚡ Single binary |
🚫 No runtime dependencies |
🌐 No HTTP server
## Overview
`apple-notes-mcp` is a [Model Context Protocol](https://modelcontextprotocol.io) server that
exposes Apple Notes to AI assistants via the stdio transport. It talks directly to Notes.app
through [ScriptingBridge](https://developer.apple.com/documentation/scriptingbridge) — no cloud
API, no osascript, no spawned child processes, no background daemon.
> [!WARNING]
> This tool uses the ScriptingBridge API, which Apple does not officially support.
> It's a low-level interface that may change in future macOS releases.
> **Use at your own risk**.
> [!IMPORTANT]
> ScriptingBridge performs best on small to medium libraries. Reading every note in a
> very large library may be slow. Avoid using Apple Notes as a long-term memory store for models.
## Installation
### Using Homebrew
```shell
brew install evg4b/tap/apple-notes-mcp
```
### Using Stew
```shell
stew install evg4b/apple-notes-mcp
```
### Pre-built binaries
Download the binary for your architecture from the
[latest release](https://github.com/evg4b/apple-notes-mcp/releases/latest), verify the
checksum with the bundled `SHA256SUMS.txt`, then install:
```sh
# Apple Silicon
curl -Lo apple-notes-mcp https://github.com/evg4b/apple-notes-mcp/releases/latest/download/apple-notes-mcp-aarch64-apple-darwin
chmod +x apple-notes-mcp
sudo mv apple-notes-mcp /usr/local/bin/
# Intel
curl -Lo apple-notes-mcp https://github.com/evg4b/apple-notes-mcp/releases/latest/download/apple-notes-mcp-x86_64-apple-darwin
chmod +x apple-notes-mcp
sudo mv apple-notes-mcp /usr/local/bin/
```
### Build from source
```sh
git clone https://github.com/evg4b/apple-notes-mcp
cd apple-notes-mcp
cargo build --release
cp target/release/apple-notes-mcp /usr/local/bin/
```
## Setup
### Claude Desktop
Add to `~/Library/Application Support/Claude/claude_desktop_config.json`:
```json
{
"mcpServers": {
"apple-notes": {
"command": "/usr/local/bin/apple-notes-mcp",
"args": [
"--scopes",
"read,write,delete"
]
}
}
}
```
Restart Claude Desktop. On the first tool call macOS will show an **Automation permission**
dialog — click OK. If you miss it, go to
**System Settings → Privacy & Security → Automation** and enable Notes for your client.
### Other MCP clients
The server uses the stdio transport (newline-delimited JSON on stdin/stdout).
Point `command` at the binary path and pass `--scopes` as needed.
## CLI reference
```
apple-notes-mcp [OPTIONS]
Options:
--scopes Comma-separated list of scopes to enable.
Valid values: read, write, delete.
[default: read]
--log-file Path to the log file.
[default: ~/Library/Logs/apple-notes-mcp/apple-notes-mcp.log]
--log-level Log verbosity level.
Valid values: error, warn, info, debug, trace.
[default: error]
-h, --help Print help
-V, --version Print version
```
### Scopes
| Scope | Tools enabled |
|----------|---------------------------------------------------------------------------------------------------------------------------------------------|
| `read` | `list_notes`, `get_note`, `get_all_notes`, `get_notes_in_folder`, `get_notes_in_account`, `list_folders`, `get_subfolders`, `list_accounts` |
| `write` | `create_note`, `update_note` |
| `delete` | `delete_note` |
`read` is always enabled by default. Combine scopes as needed:
```sh
# Read-only (default)
apple-notes-mcp
# Read + write
apple-notes-mcp --scopes read,write
# Full access
apple-notes-mcp --scopes read,write,delete
```
## Documentation
- [Tools reference](docs/tools.md) — all 11 tools with parameters, return shapes, and data-type schemas
- [Logging & troubleshooting](docs/logging.md) — log file location, log levels, common errors