👋 Introduction
Search, create, and manage your Google Keep notes directly from Claude, Cursor, or any MCP-compatible AI assistant.
mcp-google-keep gives your AI assistant full read/write access to your Google Keep notes — list, search, create, label, and organise, all from a natural-language prompt.
Google Keep has no official API for personal accounts. This server uses gkeepapi — a battle-tested Python library that speaks Keep's private sync protocol — so your assistant can reach notes that the public Workspace API can't.
Your credentials never touch disk: the master token is stored in the macOS Keychain.
✨ Features
- List & search notes by text, label, colour, or state (pinned, archived, trashed).
- Create text notes and checklist notes.
- Manage list items — add, sort, indent/dedent, or replace all items.
- Full label support — list, create, rename, delete, assign, and remove labels.
- Colour filters — find all your red, blue, or yellow notes.
- Collaborators — share notes with other users by email.
- Credentials in macOS Keychain — nothing written to disk.
- Destructive actions require an explicit
confirm: true. - 18 tools total — covering the full gkeepapi surface.
🚀 Quick start
1. Install
uv tool install git+https://github.com/kud/mcp-google-keepOr clone if you prefer:
git clone https://github.com/kud/mcp-google-keep.git
cd mcp-google-keep && uv sync2. Authorise
mcp-google-keep-setupThe setup script walks you through a browser-based flow and saves your credentials to the macOS Keychain. Ready in about two minutes. See Authentication for the full walkthrough.
3. Add to Claude Code
claude mcp add google-keep mcp-google-keep4. Ask Claude anything
"Search my Keep notes for 'grocery list'" "Create a shopping list with milk, eggs, and bread" "Pin my Ideas note and colour it yellow" "Show me all my red notes"
💡 Example conversations
| Prompt | What happens |
|---|---|
| "Show me all my notes" | Lists all non-trashed notes |
| "Search my notes for 'recipe'" | Finds notes containing "recipe" |
| "Show me my pinned yellow notes" | list_notes(pinned=True, colors=["YELLOW"]) |
| "Create a shopping list: milk, eggs, bread" | Creates a checklist note with three items |
| "Add 'butter' to my shopping list" | Calls add_list_item on the existing note |
| "Check off 'milk'" | update_list_items with updated checked states |
| "Label my Ideas note with 'work'" | update_note(add_labels=["work"]) |
| "What labels do I have?" | list_labels() |
| "Archive all my travel notes" | Finds travel notes, calls update_note(archived=True) |
| "Delete note abc123" | delete_note(confirm=True) after you confirm |
📝 Next steps
- Installation — set up the server in Claude Code, Claude Desktop, Cursor, Windsurf, or VSCode.
- Authentication — the one-time Google credential flow.
- Tools — the full 18-tool reference.
- Troubleshooting — fixes for common issues.