Skip to main content
Glama
suckerfish
by suckerfish

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
GOOGLE_KEEP_EMAILYesYour Google account email address
GOOGLE_KEEP_DEVICE_IDYesPinned device ID for consistent device identity
GOOGLE_KEEP_STATE_PATHNoOptional path to cache Keep state to disk for faster startup
GOOGLE_KEEP_MASTER_TOKENYesMaster token obtained via get_master_token.py script

Capabilities

Features and capabilities supported by this server

CapabilityDetails
tasks
{
  "list": {},
  "cancel": {},
  "requests": {
    "tools": {
      "call": {}
    },
    "prompts": {
      "get": {}
    },
    "resources": {
      "read": {}
    }
  }
}
tools
{
  "listChanged": true
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
search_notesA

Search Google Keep notes and lists.

Args: query: Text to search in title and body (supports regex). labels: Filter by label names. color: Filter by color name (e.g. "yellow", "blue"). pinned: Filter by pinned status. archived: Filter by archived status. trashed: Include trashed notes. created_after: ISO 8601 date/datetime; only notes created at or after this. created_before: ISO 8601 date/datetime; only notes created at or before this. updated_after: ISO 8601 date/datetime; only notes updated at or after this. updated_before: ISO 8601 date/datetime; only notes updated at or before this. sort_by: Sort by "created", "updated", "edited", or "title". Unsorted (arbitrary internal order) if omitted. sort_desc: Sort descending (newest/Z-first) when sort_by is set. Default True. offset: Number of results to skip (for paging through large result sets). limit: Maximum number of results to return.

get_noteA

Get a single note or list by its ID.

Args: note_id: The unique ID of the note.

get_attachment_urlA

Resolve a fetchable URL for one of a note's attachments (image/drawing/audio).

Makes a live network call to Google, so only call this for a specific attachment you actually need — not in a loop over search results.

Args: note_id: The ID of the note the attachment belongs to. attachment_id: The attachment's ID, from the note's "attachments" list.

create_noteA

Create a new text note in Google Keep.

Args: title: Note title. text: Note body text. color: Note color (e.g. "yellow", "blue", "green"). pinned: Whether to pin the note. labels: Label names to apply (created if they don't exist).

create_listA

Create a new checklist in Google Keep.

Args: title: List title. items: List items as objects with "text" and optional "checked" boolean. Example: [{"text": "Buy milk", "checked": false}, {"text": "Buy eggs"}] color: List color (e.g. "yellow", "blue"). pinned: Whether to pin the list. labels: Label names to apply (created if they don't exist).

update_noteB

Update an existing note's properties.

Args: note_id: The ID of the note to update. title: New title (omit to keep current). text: New body text (omit to keep current; only for text notes). color: New color name. pinned: New pinned status. archived: New archived status.

trash_noteC

Move a note to the trash.

Args: note_id: The ID of the note to trash.

restore_noteB

Restore a note from the trash.

Args: note_id: The ID of the note to restore.

delete_noteA

Permanently delete a note. This cannot be undone.

Args: note_id: The ID of the note to permanently delete.

bulk_update_notesA

Apply the same change(s) to multiple notes in a single sync.

Does not support permanent deletion — trash notes in bulk here, then use delete_note individually once you're sure.

Args: note_ids: IDs of the notes to update. trashed: If set, trash (True) or restore (False) all notes. archived: If set, archive (True) or unarchive (False) all notes. pinned: If set, pin (True) or unpin (False) all notes. add_label: Label name to add to all notes (created if it doesn't exist). remove_label: Label name to remove from all notes.

add_list_itemB

Add an item to an existing checklist.

Args: note_id: The ID of the list note. text: The item text. checked: Whether the item starts checked.

update_list_itemA

Update a list item's text or checked status.

Args: note_id: The ID of the list note. item_id: The ID of the item to update. text: New item text (omit to keep current). checked: New checked status (omit to keep current).

delete_list_itemA

Delete an item from a checklist.

Args: note_id: The ID of the list note. item_id: The ID of the item to delete.

list_labelsA

List all labels in Google Keep.

create_labelB

Create a new label.

Args: name: The label name.

delete_labelA

Delete a label by name. Removes it from all notes.

Args: name: The label name to delete.

add_label_to_noteB

Add a label to a note. Creates the label if it doesn't exist.

Args: note_id: The ID of the note. label_name: The label name to add.

remove_label_from_noteB

Remove a label from a note.

Args: note_id: The ID of the note. label_name: The label name to remove.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/suckerfish/google_keep_mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server