Labsco
MCP SERVER

Simplenote MCP Server

by docdyhr

Read, write and reorganise Simplenote notes from the conversation — boolean search, tag renames across the whole account, rollback to an earlier version.

Note-Taking & Personal Knowledge BasesVerified
Summary
A Simplenote account as an agent's working memory, with the editing tools that keep it from overwriting what you wrote.

The interesting part is not reading notes, it is how carefully it writes them: appending rather than replacing, swapping one Markdown section, finding-or-creating by title so a running log stays a single note. Deletion is staged behind Trash and the irreversible calls demand an explicit confirmation. Two things to know before you wire it up — it wants your Simplenote email and password rather than a token, and Simplenote holds note bodies unencrypted unless you turn Vault on.

What it is

A Python server over a Simplenote account that keeps the notes in an in-memory cache and syncs it in the background. Notes can be searched with boolean queries, appended to, section-edited, tagged, rolled back to a previous version and exported.

What you get
  • search_notes takes AND, OR and NOT, quoted phrases, tag: and from:/to: filters, fuzzy matching, sorting and pagination; list_notes returns the recent ones and list_tags every tag with its note count
  • Writes that do not clobber: add_text appends or prepends, replace_section swaps a single Markdown section and leaves the rest alone, get_or_create_note finds by title or creates it, append_to_daily_note stamps an entry onto today's note
  • Tag housekeeping across the whole account — add_tags, remove_tags, replace_tags, bulk_tag over many notes at once, rename_tag atomically everywhere, and find_untagged_notes to see what was never filed
  • get_note_versions lists a note's recent history and restore_version rolls it back
  • delete_note moves a note to Trash and restore_note brings it back; permanent_delete_note requires confirm=true, and empty_trash previews by default and needs both dry_run=false and confirm=true
  • find_and_merge_duplicates runs with a dry run and a similarity threshold before it merges anything, and export_notes writes Markdown or JSON
  • Vault encrypts note bodies client-side before they reach Simplenote's API, and vault_status reports whether the key is available this session and how many notes are encrypted
Requirements

SIMPLENOTE_EMAIL and SIMPLENOTE_PASSWORD — the account credentials themselves, not a token. Python 3.10 or newer, or the published docdyhr/simplenote-mcp-server container. It speaks stdio by default; MCP_TRANSPORT=http switches to HTTP, and on any non-loopback MCP_HTTP_HOST the server refuses to start unless MCP_HTTP_AUTH_TOKEN is set. Set CACHE_MAX_SIZE at or above your note count — the default is 10000 — and SYNC_INTERVAL_SECONDS decides how often the cache refreshes, every 120 seconds by default.

Setup effort

One command plus a key — pip install simplenote-mcp-server, then supply credentials