Skip to main content
Glama
674,607 tools. Updated 2026-10-18 21:26

"MCP server for notes" matching MCP tools:

  • Revert a note's body to an earlier revision (find the seq via notes-history). This does NOT erase history — it appends a NEW revision whose body equals the chosen earlier one, attributed to you, so the revert can itself be undone. Use only when the user explicitly asks to undo a change. Optional expected_lock_version (from notes-get) rejects the revert if the note changed since you read it, instead of clobbering that change. Required: id (integer), seq (integer).
    Connector
    Destructive
    OAuth
  • Update a note: edit its content, move it to a different folder (set container_id, or null for the inbox), archive/favorite it, or change its tags. This is the tool for moving notes between folders; there is no separate move tool. Required: id (integer). Optional content (exactly one body-mutation mode at a time): title, body (full replace), append_body (appends to existing body), insert_after + insert_body (insert text immediately after a unique anchor snippet from the existing body), insert_before + insert_body (insert before a unique anchor), replace_find (+ optional replace_with) (replace a unique snippet; omit replace_with entirely to delete the snippet). Markdown-structure ops (heading/section/checklist aware — safer than eyeballing a unique snippet on long notes): replace_section + section_body (replace everything UNDER a heading, keeping the heading line); append_to_section + section_body (add content at the END of a section — the safe 'insert under heading' when you don't know its last line); rename_heading + new_heading (rename a heading in place, preserving its level unless new_heading carries its own '#'); check_item / uncheck_item (tick/untick a checklist item by its text, e.g. '- [ ] ship it'). Headings and checklist items must each match exactly one line. Anchor and find snippets must match exactly once; include enough surrounding context to disambiguate. Also optional: summary, source_url. Freshness: verified (boolean — pass true to mark the note re-confirmed as still true right now; only send this after the user has actually confirmed it), review_after (ISO 8601 datetime to time-box the note, or null to clear it). Organization: container_id (move note), archived (boolean — works on your own personal notes and on team notes where you have the editor role; notes in shared containers are owner-only), favorited (boolean). Tags: tag_list (full replace, comma-separated), add_tags, remove_tags. tag_list takes precedence over add_tags/remove_tags. Concurrent edit safety: pass expected_lock_version (the lock_version you saw when you last read the note via notes-get / notes-list / search) whenever you want a stale-write guard. If it doesn't match the current version, the update is rejected with the current state included so you can re-read and re-apply (append_body-only calls are exempt; see expected_lock_version). Surgical edits (append_body / insert_after / insert_before / replace_find) are anchor-based and so don't *need* expected_lock_version for their body change — but if you also change title / summary / container_id alongside, those fields can still silently overwrite a newer save unless you supply expected_lock_version. Examples: insert under a heading {id: 42, append_to_section: 'Open Questions', section_body: '- Should we ship Friday?'}; replace a section {id: 42, replace_section: '## Status', section_body: 'Shipped 🎉'}; rename a heading {id: 42, rename_heading: 'TODO', new_heading: 'Done'}; tick a checklist item {id: 42, check_item: 'ship it'}; fix a typo {id: 42, replace_find: 'recieved', replace_with: 'received'}; safe full rewrite {id: 42, body: '...', expected_lock_version: 5}. Every edit is recorded as a named, revertable revision attributed to you — use notes-history to see who changed what, and notes-revert to undo a change.
    Connector
    Destructive
    OAuth
  • Discover what is available to filter the user's Contextli notes by. Returns the user's contexts (also called modes: a named style like 'Email', 'Journaling', or 'Product Logs' with its id, prompt, icon, and color), plus filter facets: the total number of notes, which context ids actually appear on notes, and the earliest and latest note dates. Call this FIRST when the user asks to filter notes by a context or by date, so you use valid ids and a valid date range. Note: many notes are not tagged with a context, so prefer text search and dates as the primary filters.
    ConnectorOAuth
  • List and browse the user's saved notes — their stored knowledge and memories (preferences, workflows, projects, meeting notes, references, and the rest) — with optional filtering, sorting, and pagination. Use search instead when hunting for a topic or keyword; use this to enumerate a folder, tag, or scope. Returns paginated results as a JSON array, followed by a line stating how many notes matched in total and whether more pages remain — read it to know if you have the whole folder before acting on it. Optional: team_id (integer) to list team notes, scope ('active'|'archived'|'inbox'|'favorited'|'trashed'), container_id (integer) with include_nested (boolean), tags (array of strings, AND logic), tag_ids (array of integers, AND logic), summary_stale (boolean, filter to notes with outdated summaries), stale (boolean, filter to notes whose freshness is stale — past their review_after date or unverified for a while), sort ('recent'|'oldest'|'title'), page (integer, default 1), per_page (integer, max 100, default 25), include_body (boolean, default false — include each note's full body, so a scoped/paginated listing can retrieve complete contents without a notes-get call per note; withheld for trashed notes, same as notes-get), include_instructions (boolean, defaults to include_body — include each note's inherited_instructions, the same chain notes-get returns, so a full-body listing also carries the rules governing those notes; withheld for trashed notes). container_id can be combined with team_id to list a specific team container. Example: list ruby-tagged notes in a container: {container_id: 5, tags: ['ruby']}. If the list is empty because the user hasn't saved anything yet, do not just report that: call `me` and follow onboarding.next_action to run their 60-second setup.
    ConnectorOAuth
  • Add a new note to a trading day — any day, traded or not; `date` is YYYY-MM-DD in the journal timezone. Days hold any number of notes, so this never overwrites: to change an existing note use journal_update_note, and for a note about one specific trade use journal_update_trade's `notes`. Returns the note with its id. Day notes in the LuxAlgo journal: https://docs.luxalgo.com/platform/workspaces/journal/notes Requires signing in with a LuxAlgo account (OAuth).
    ConnectorNo auth
  • Read the Explanatory Notes for a UK Act — plain-language commentary written by the government department responsible, explaining what a section is meant to do and why. NOT part of the law and not endorsed by Parliament — use for context on intent, never as the text of the law itself (use get_legislation_section for that). Pass section to get the commentary for just that section; omit it for an overview plus the notes' own table of contents. Not every Act has notes (Appropriation, Consolidated Fund, Finance and Consolidation Acts never get them) and not every section gets its own paragraph — some are grouped or unremarked. Notes are written for the Act AS ENACTED and are not updated for later amendments. Source: legislation.gov.uk (HTML only — there is no XML/data feed for notes).
    ConnectorNo auth

Matching MCP Servers

Matching MCP Connectors

  • Listen Notes MCP.

  • Markdown notes in folders, with files, that your AI assistant can read, write and organise.

  • Add a free-form note (markdown supported) to a goal — decisions taken, dead ends hit, context worth carrying into the next session. Notes are NOT evidence: they hang off the goal rather than an acceptance criterion and never count toward AC coverage or closing a Grove goal — use goal-attach-evidence for proof. Notes are visible in the goal detail panel and returned by goal-get under notes[].
    ConnectorNo auth
  • Add a free-form note (markdown supported) to a goal — decisions taken, dead ends hit, context worth carrying into the next session. Notes are NOT evidence: they hang off the goal rather than an acceptance criterion and never count toward AC coverage or closing a Grove goal — use goal-attach-evidence for proof. Notes are visible in the goal detail panel and returned by goal-get under notes[].
    ConnectorNo auth
  • Use this when the user wants release notes from two branches of a connected provider repository. After authorization, this state-changing action compares base_branch with compare_branch, consumes AI credits, creates a generation, and can save it to a Space.
    ConnectorOAuth
  • Replace the notes on a finished Load Test's Test Report — the only writable thing on a Load Test. Ask the user before writing: notes belong to the user, and advising on a test never requires writing them. The text sent becomes the report's entire notes, so first read the current notes with get_load_test_report and preserve the user's content in what you send.
    Connector
    Destructive
    OAuth
  • Pull the user's newest Granola notes into their brain right away instead of waiting for the six-hourly sync. Queues the sync and returns; notes appear over the next minute or two. Say it was queued, not that it finished.
    ConnectorNo auth
  • Search your personal knowledge base. Finds relevant notes using semantic search. Searches across ALL your vaults by default; pass vault_id to limit to one. Omit query to list the most recently updated notes instead. Pass similar_to with a note path, instead of query, to find notes like that one. Use when the user asks about their notes, vault, knowledge, or memory.
    ConnectorOAuth
  • Used only by the Hjarni note panel UI to reload, preview and save the note it shows. Assistants should not call this: read with notes-get and edit with notes-update. Actions: 'get' (id; known_lock_version answers status 'unchanged' when the note has not moved), 'search' (query: the panel's note picker, with a short preview per note; with id, only the notes that note can link to), 'browse' (place: one level of the folder tree, its folders and notes), 'preview' (id, body: renders Markdown without saving), 'save' (id, lock_version, title and/or body and/or add_tags/remove_tags; a lock_version that is no longer current saves nothing and answers status 'conflict' with the saved version and a line diff; resolve 'merge_hunks' with hunks {index: 'saved'|'draft'} applies a per-hunk choice), 'create_note' (place, title, body, add_tags), 'create_folder' (place, name), 'update_folder' (place folder:<id>; name, description, llm_instructions, negative_space), 'instructions' (place personal: brain, personal; place team:<id>: team), 'folder_options' (id: where that note can move), 'move' (id, place), 'trash' (id), 'restore' (id), 'favorite' (id, favorited), 'archive' (id, archived), 'history' (id; with seq, that version and its changes), 'revert' (id, seq, lock_version), 'verify' (id), 'keep_summary' (id, lock_version: clears summary_stale and leaves the summary as it is; a lock_version that is no longer current answers status 'stale'), 'file_description' (id, file_id, description), 'save_to_personal' (id of a team note), 'purge' (id of a trashed note: delete for good), 'folder_archive' (place folder:<id>, archived), 'folder_delete' (place), 'folder_restore' (id), 'folder_purge' (id), 'folder_parents' (place), 'folder_move' (place, to), 'folder_reorder' (place, direction up|down), 'tag' (place tag:<id>, op rename|merge|delete, name), 'share' (id, or place folder:<id>; op status|enable|disable|editing_on|editing_off), 'bulk' (ids, op move|archive|unarchive|trash, place for move), 'toggle' (id, lock_version, index, checked: ticks one task checkbox; a lock_version that is no longer current ticks nothing and answers status 'stale' with the saved version).
    Connector
    Destructive
    OAuth
  • Saves durable notes for future agents (including yourself in a later session, with no memory of this one). Use it to record what is NOT obvious from the code: where the data comes from and how to refresh it (queries, API calls, file paths), definitions ("MRR excludes one-off invoices"), and user preferences ("Kev wants EUR, weekly granularity"). Notes attach to a view, a dataset, or the whole workspace, and are shown in get_workspace / get_view. Replaces the previous notes for that target, so include what should be kept.
    Connector
    Destructive
    OAuth
  • Delete one of the user's notes, for good: there is no undo, so confirm with the user before calling this. Give the note's id from list_notes (or from the note create_note returned). Only the authenticated user's own notes are found; a note that has already been deleted comes back not found.
    Connector
    Destructive
    API key
  • Move a note to Trash within the connected user's personal Hjarni account or an authorized team workspace. This is RECOVERABLE — the note (with its body, attachments, and history) is restorable with notes-restore until its purge date (default 30 days); it is not an immediate permanent erase. Deleting the wrong note can be undone with notes-restore. Works on your own personal notes and on team notes where you have the editor role. You cannot delete notes in a shared container (only the owner can). Required: id (integer).
    Connector
    Destructive
    OAuth
  • Open a note in the Hjarni note panel beside the conversation, where the user can read it, edit the title and body, and save. Use it when the user asks to open, show or work on a specific note; find the id with search first. Returns the same data as notes-get (including body and lock_version), plus space (personal, team or shared), can_edit and uri. Clients without panels get just that data. Without an id the panel opens on a note picker. The user may edit the note in the panel: before changing it with notes-update, pass expected_lock_version from your latest read. Optional: id (integer).
    ConnectorOAuth
  • Search the user's Contextli voice notes and transcriptions by keyword or phrase. Use this when the user is looking for notes about a topic, person, or phrase they remember saying. Performs a case-insensitive match across the note text and returns matching notes newest first, each with a short snippet around the match. Optionally narrow by date range, by a context id (get valid ids from contextli_list_contexts), or by labels (user-assigned tags on notes; matches notes carrying ANY of the given labels, case-insensitive). Supports pagination via limit and offset. For browsing without a keyword, use contextli_get_notes.
    ConnectorOAuth
  • Search the public board for notes from other and earlier agents, newest first: all words must match the topic or text; filter by tag or author handle. Expired and hidden notes are left out. Notes are written by agents and unverified. Example: {"query": "rate limit", "tag": "api"}.
    ConnectorNo auth
  • Create a note in the connected user's personal Hjarni account, an authorized shared folder, or a team workspace they belong to. The server enforces write access. Approaching or reaching a note quota may email an account-limit notification to the account or team owner; sent emails cannot be recalled. Required: title (string). Always include a 2-3 sentence summary too (required by convention, even though the schema only enforces title) so the note is useful to future LLM sessions. Optional: body (Markdown with [[id:Note Title]] wiki-links), summary, source_url, container_id, tag_list (comma-separated), team_id (to create in a team), review_after (ISO 8601 datetime, only set this for time-boxed notes that should flag themselves stale after a date). A new note starts verified (status 'active'). Search for an existing note on the topic first and update that instead when there is one. Example: {title: 'Meeting Notes', body: '## Agenda\n...', container_id: 5, tag_list: 'meetings, q4'}.
    Connector
    Destructive
    OAuth
  • Get all notes for your account. Notes are automatically decrypted and returned in reverse chronological order. Use them internally for tool chaining but present only human-readable information (titles, content, dates). # fetch_notes ## When to use Get all notes for your account. Notes are automatically decrypted and returned in reverse chronological order. Use them internally for tool chaining but present only human-readable information (titles, content, dates).
    ConnectorNo auth