MCP server for Google Keep 1. Add the MCP server to your MCP servers: 2. Add your credentials: GOOGLEEMAIL: Your Google account email address GOOGLEMASTERTOKEN: Your Google account master token Check https://gkeepapi.readthedocs.io/en/latest/obtaining-a-master-token and https://github.com/simon-weber/gpsoauth?tab=readme-ov-filealternative-flow for more information. find: Search notes with optional
Add this skill
npx mdskills install feuerdev/keep-mcpComprehensive Google Keep integration with extensive tool coverage and excellent safety model
MCP server for Google Keep
"mcpServers": {
"keep-mcp-pipx": {
"command": "pipx",
"args": [
"run",
"keep-mcp"
],
"env": {
"GOOGLE_EMAIL": "Your Google Email",
"GOOGLE_MASTER_TOKEN": "Your Google Master Token - see README.md"
}
}
}
GOOGLE_EMAIL: Your Google account email addressGOOGLE_MASTER_TOKEN: Your Google account master tokenCheck https://gkeepapi.readthedocs.io/en/latest/#obtaining-a-master-token and https://github.com/simon-weber/gpsoauth?tab=readme-ov-file#alternative-flow for more information.
find: Search notes with optional filters for labels, colors, pinned, archived, and trashedget_note: Get a single note by IDcreate_note: Create a new note with title and text (automatically adds keep-mcp label)create_list: Create a checklist noteupdate_note: Update a note's title and textadd_list_item: Add an item to a checklist noteupdate_list_item: Update checklist item text and checked statedelete_list_item: Delete a checklist itemset_note_color: Set a note color (valid values: DEFAULT, RED, ORANGE, YELLOW, GREEN, TEAL, BLUE, CERULEAN, PURPLE, PINK, BROWN, GRAY)pin_note: Pin or unpin a notearchive_note: Archive or unarchive a notetrash_note: Move a note to trashrestore_note: Restore a trashed/deleted notedelete_note: Mark a note for deletionlist_labels: List labelscreate_label: Create a labeldelete_label: Delete a labeladd_label_to_note: Add a label to a noteremove_label_from_note: Remove a label from a notelist_note_collaborators: List collaborator emails for a noteadd_note_collaborator: Add a collaborator email to a noteremove_note_collaborator: Remove a collaborator email from a notelist_note_media: List media blobs for a note (with media links)By default, all destructive and modification operations are restricted to notes that have were created by the MCP server (i.e. have the keep-mcp label). Set UNSAFE_MODE to true to bypass this restriction.
"env": {
...
"UNSAFE_MODE": "true"
}
If you prefer a JS-style workflow (npm i, npm start), use the included Makefile:
make install # like npm i
make start # like npm start
make test
make lint
Run the real-account smoke test with credentials:
GOOGLE_EMAIL="you@example.com" \
GOOGLE_MASTER_TOKEN="..." \
make smoke
Equivalent direct uv commands (without make):
UV_CACHE_DIR=/tmp/uv-cache uv venv --python 3.11 .venv
UV_CACHE_DIR=/tmp/uv-cache uv pip install --python .venv/bin/python -e .
UV_CACHE_DIR=/tmp/uv-cache uv run --no-sync --python .venv/bin/python -m server
The project includes a lightweight unit test suite under tests/.
It validates:
keep-mcp label requirement and UNSAFE_MODE=true override)src/server/cli.py using mocked Keep client objects (tool happy paths and key error paths)Run locally:
make test
For additional confidence, run a basic lifecycle smoke test against a dedicated test account:
GOOGLE_EMAIL="you@example.com" \
GOOGLE_MASTER_TOKEN="..." \
make smoke
What it does:
This script is intended for manual verification and is not run in CI.
GitHub Actions runs on every pull request and executes:
ruff check .)pytest -q --cov=src/server --cov-report=term-missing --cov-fail-under=70)python -m compileall src)main (GitHub Actions)This repo includes a release workflow at .github/workflows/release.yml that runs on every push to main (including merged PRs).
It will:
vX.Y.Z)dist/*v with generated notesVersion bump rules:
! (example: feat!: or fix(api)!:) or commit body containing BREAKING CHANGEfeat:fix:, perf:, revert:docs:, chore:, ci:, test:, refactor: (unless the commit is marked as breaking)Required repository secret:
PYPI_API_TOKEN: a PyPI API token (recommended scope: this project only)To publish manually to PyPI:
pyproject.tomlpipx run build
pipx run twine upload --repository pypi dist/*
This is useful when you want a client to run this server from your local checkout instead of PyPI.
cd /ABSOLUTE/PATH/TO/keep-mcp
make install
config.toml clients (Codex, Goose, etc.)[mcp_servers.keep_mcp]
command = "make"
args = ["-C", "/ABSOLUTE/PATH/TO/keep-mcp", "start"]
[mcp_servers.keep_mcp.env]
GOOGLE_EMAIL = "you@example.com"
GOOGLE_MASTER_TOKEN = "your-master-token"
UNSAFE_MODE = "false"
mcpServers clients (Claude Desktop, Cursor, Cline, etc.){
"mcpServers": {
"keep-mcp-local": {
"command": "make",
"args": ["-C", "/ABSOLUTE/PATH/TO/keep-mcp", "start"],
"env": {
"GOOGLE_EMAIL": "you@example.com",
"GOOGLE_MASTER_TOKEN": "your-master-token",
"UNSAFE_MODE": "false"
}
}
}
}
Alternative (without make):
[mcp_servers.keep_mcp]
command = "uv"
args = [
"--directory", "/ABSOLUTE/PATH/TO/keep-mcp",
"run", "--no-sync", "--python", ".venv/bin/python",
"-m", "server"
]
Notes:
make install once before starting from an MCP client./.venv/bin/python path).make and uv are in your PATH.UNSAFE_MODE is optional; keep it "false" unless you explicitly want to modify non-keep-mcp notes.Install via CLI
npx mdskills install feuerdev/keep-mcpKeep MCP is a free, open-source AI agent skill. MCP server for Google Keep 1. Add the MCP server to your MCP servers: 2. Add your credentials: GOOGLEEMAIL: Your Google account email address GOOGLEMASTERTOKEN: Your Google account master token Check https://gkeepapi.readthedocs.io/en/latest/obtaining-a-master-token and https://github.com/simon-weber/gpsoauth?tab=readme-ov-filealternative-flow for more information. find: Search notes with optional
Install Keep MCP with a single command:
npx mdskills install feuerdev/keep-mcpThis downloads the skill files into your project and your AI agent picks them up automatically.
Keep MCP works with Claude Code, Claude Desktop, Cursor, Vscode Copilot, Windsurf, Continue Dev, Gemini Cli, Amp, Roo Code, Goose. Skills use the open SKILL.md format which is compatible with any AI coding agent that reads markdown instructions.