MCP server for Google Keep — connect Claude, Copilot & ChatGPT to Google Keep
Project description
🗒️ Google Keep MCP Server
Connect any AI assistant directly to your Google Keep — create, search, organize, export notes, set reminders, and more.
✨ What It Does
| Feature | Description | |
|---|---|---|
| 📝 | Notes | Create, read, update, delete, archive notes |
| 🔍 | Search | Find notes by keyword instantly |
| 📌 | Organize | Pin notes, change colors, add labels |
| 🏷️ | Labels | Create, apply, remove labels — with auto-labeling |
| ⏰ | Reminders | Set reminders via Google Tasks integration |
| 👥 | Collaborate | Add or remove collaborators by email |
| 📤 | Export | Export any note as PDF, Word (DOCX), or Markdown |
| 📊 | Analytics | Get stats — total notes, labels, oldest, newest |
| 📅 | Digest | Daily/weekly digest of pinned and recent notes |
| 📋 | Templates | Pre-built templates: meeting, journal, project, shopping, ideas |
📦 Installation
pip install google-keep-notes-mcp
uv add google-keep-notes-mcp
Or run directly without installing (recommended for MCP clients):
uvx google-keep-notes-mcp
Requires Python 3.10+
🔐 Authentication
This package uses a master token obtained from your Google account session. It's a one-time setup.
⚠️ Use a dedicated/dummy Google account for safety.
First-Time Setup
Step 1 — Run the setup command:
google-keep-mcp setup
This will open accounts.google.com/EmbeddedSetup in your browser automatically and guide you step by step.
Step 2 — In the browser:
- Sign in with your Google account
- Click "I Agree"
- Press
F12to open DevTools - Go to Application → Cookies → accounts.google.com
- Find the
oauth_tokenrow → click it - At the bottom, triple-click the Cookie Value →
Ctrl+Cto copy
⚡ Do this quickly — the token expires fast. Have your terminal ready before copying.
Step 3 — Back in terminal:
Paste your email and the copied oauth_token value when prompted. Your master token is generated and saved automatically to:
~/.google_keep_mcp/config.env
You won't need to do this again unless your token expires.
⏰ Reminders Setup (Optional)
Reminders use the Google Tasks API. One-time setup required:
- Go to console.cloud.google.com → Create a new project
- Enable Google Tasks API
- Go to OAuth Consent Screen → Add your Google account as a test user
- Create OAuth 2.0 Credentials → Desktop App type → Download
credentials.json - Place it at:
~/.google_keep_mcp/credentials.json
First time you set a reminder, a browser window opens to authorize. After that it's fully automatic.
🖥️ Client Setup
Claude Desktop
Edit your claude_desktop_config.json:
- Windows:
%APPDATA%\Claude\claude_desktop_config.json - macOS:
~/Library/Application Support/Claude/claude_desktop_config.json
{
"mcpServers": {
"google-keep": {
"command": "uvx",
"args": ["google-keep-notes-mcp"]
}
}
}
Cursor
Open Cursor Settings → MCP → Add new server → paste:
{
"mcpServers": {
"google-keep": {
"command": "uvx",
"args": ["google-keep-notes-mcp"]
}
}
}
VS Code — GitHub Copilot
Create or edit:
- Windows:
%APPDATA%\Code\User\mcp.json - macOS/Linux:
~/.config/Code/User/mcp.json
{
"servers": {
"google-keep": {
"type": "stdio",
"command": "uvx",
"args": ["google-keep-notes-mcp"]
}
}
}
Windsurf
Open Windsurf Settings → MCP → Add server:
{
"mcpServers": {
"google-keep": {
"command": "uvx",
"args": ["google-keep-notes-mcp"]
}
}
}
🛠️ Tools Reference
Notes
| Tool | Description |
|---|---|
keep_create_note |
Create a new note with title and content |
keep_list_notes |
List all active notes |
keep_get_note |
Get a specific note by ID |
keep_update_note |
Update title or content of a note |
keep_delete_note |
Delete (trash) a note |
keep_archive_note |
Archive a note |
keep_search_notes |
Search notes by keyword |
Organization
| Tool | Description |
|---|---|
keep_pin_note |
Pin or unpin a note |
keep_change_color |
Change note color (red, blue, green, yellow, teal, pink, purple, gray, brown, white) |
Labels
| Tool | Description |
|---|---|
keep_create_label |
Create a new label |
keep_add_label |
Add a label to a note |
keep_remove_label |
Remove a label from a note |
keep_list_labels |
List all labels |
keep_auto_label_note |
Auto-detect and apply labels to a single note |
keep_auto_label_all |
Auto-label all unlabeled notes |
Reminders & Collaboration
| Tool | Description |
|---|---|
keep_set_reminder |
Set a reminder via Google Tasks (YYYY-MM-DD HH:MM) |
keep_add_collaborator |
Add a collaborator by email |
keep_remove_collaborator |
Remove a collaborator by email |
Export
| Tool | Description |
|---|---|
keep_export_note |
Export note as PDF, DOCX, or Markdown — saved to ~/Desktop/KeepExports/ |
Insights
| Tool | Description |
|---|---|
keep_get_analytics |
Full stats — total notes, label usage, oldest/newest, colors |
keep_get_weekly_digest |
Smart digest — pinned, recently updated, notes by label |
Templates
| Tool | Description |
|---|---|
keep_list_templates |
List all available templates |
keep_create_from_template |
Create a note from a pre-built template |
Available templates: meeting · journal · project · shopping · ideas
💬 Example Prompts
Create a note titled "Weekend Plans" with a list of things to do
Search my notes for anything about Python
Set a reminder for my "Internship Application" note for tomorrow at 9am
Export my "MCP Concepts" note as a PDF
Auto-label all my notes
Give me a weekly digest of my Google Keep notes
Show me analytics about my notes
Create a meeting note for today's standup
Add collaborator friend@gmail.com to my "Project Plan" note
❌ Known Limitations
- Image attachment — Attaching images inside notes is not supported (Google's private upload endpoint is unavailable via this library)
- Native reminder bell — Keep's built-in reminder bell cannot be set via this method; reminders are created in Google Tasks instead (fully functional with notifications)
📄 License
MIT © Muhammad Abubakar
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file google_keep_notes_mcp-0.2.0.tar.gz.
File metadata
- Download URL: google_keep_notes_mcp-0.2.0.tar.gz
- Upload date:
- Size: 12.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2f6dd425054472a458863016e07b2373a4c3d8b7e89ebcd49c666ac7439b92d3
|
|
| MD5 |
4df415527aa97e693a85caa2e9e491d0
|
|
| BLAKE2b-256 |
782ceac9c919e812311dbd5cc050fa683ee7db2a53b8ed57137c8f9c9075ff68
|
File details
Details for the file google_keep_notes_mcp-0.2.0-py3-none-any.whl.
File metadata
- Download URL: google_keep_notes_mcp-0.2.0-py3-none-any.whl
- Upload date:
- Size: 14.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e0c41a786b706f52255b8e812ed5fb2b4f62e4721b92ad2ce9d00064e1d9e3af
|
|
| MD5 |
6015ec879d3e1bd718b88017c3bb529e
|
|
| BLAKE2b-256 |
39ca696eaa06391ab53b0b6606b1b5d290d96fc63cf92c9026e4f3c80e8006cc
|