icloud-notes-connector
# icloud-notes-connector
A Model Context Protocol (MCP) server that connects Claude Desktop to iCloud Notes on macOS. It allows Claude to search, read, list, create, update, move and delete notes directly from your iCloud Notes library.
---
## Requirements
- macOS
- [Claude Desktop](https://claude.ai/download)
- [Node.js](https://nodejs.org) v18 or later
- iCloud Notes enabled on your Mac
---
## Installation
1. Clone this repository:
```bash
git clone https://github.com/tdavis10002/icloud-notes-connector.git
cd icloud-notes-connector
```
2. Install dependencies:
```bash
npm install
```
3. Add the server to your Claude Desktop configuration file at:
```
~/Library/Application Support/Claude/claude_desktop_config.json
```
Add the following entry under `mcpServers`:
```json
{
"mcpServers": {
"icloud-notes-connector": {
"command": "node",
"args": ["/path/to/icloud-notes-connector/index.js"]
}
}
}
```
Replace `/path/to/icloud-notes-connector` with the actual path where you cloned the repository.
4. Restart Claude Desktop.
---
## Permissions
The first time Claude uses the connector, macOS will display an Automation permission prompt asking to allow the app to control Notes. Click OK to approve it.
If the prompt does not appear, go to System Settings > Privacy & Security > Automation and enable Notes access for the app running the connector (typically Terminal or Node).
---
## Tools
| Tool | Description |
|---|---|
| list_accounts | Lists Notes accounts configured on this Mac |
| list_folders | Lists folders within a given account |
| list_notes | Lists note titles and IDs in an account or folder |
| search_notes | Case-insensitive search across note titles and bodies |
| read_note | Reads the full body of a note by exact title |
| create_note | Creates a new note with a title and body |
| update_note | Updates the body and optionally the title of a note |
| move_note | Moves a note to a different folder |
| delete_note | Deletes a note by exact title |
---
## Notes
- All tools default to the iCloud account. Pass the `account` parameter to target a different account.
- search_notes returns results in the Notes app default sort order - most recently modified first.
- search_notes checks every note in the account and may be slow on very large libraries.
- delete_note cannot be undone.
- If multiple notes share the same title, tools that target a single note will act on the first match. Use list_notes to retrieve the note ID to disambiguate if needed.
---
## License
MIT
TDQS
Scored across 9 tools
Each tool targets a distinct operation (create, move, update, search, read, delete, list accounts, list folders, list notes). Despite multiple tools using exact title matching, their purposes are clearly differentiated and descriptions specify the action (e.g., move folder vs update body). No ambiguity.
All tool names follow a consistent verb_noun pattern using snake_case (e.g., create_note, list_folders). The verbs clearly indicate the action, and nouns represent the resource. No mixing of conventions or vague names.
9 tools is appropriate for a note-taking server. It covers core operations (CRUD, search, move, listing of accounts/folders/notes) without being excessive. Each tool serves a clear purpose.
Basic note lifecycle is covered, but there is no way to create a note in a specific folder (must move after) and no folder management tools (create, rename, delete). These are minor gaps; core workflows are functional.