A hybrid MCP server that lets your AI assistant work with your UpNote notes:
🔍 Find & search notes by keyword across titles and bodies.
📖 Read & summarize — it returns the actual note text, so the AI can
summarize, analyze, or answer questions about what you've written.
✍️ Create new notes from the chat.
Read, search, and summarize your UpNote notes — and create new ones.
2026-11-08
Stars
—
Tools
—
Uptime
—
Under the hood: reads come from the local UpNote SQLite database (read-only),
so real content comes back as text; writes go through the upnote:// URL scheme
(x-callback-url) and never touch the database.
Once it's registered, just talk to your AI assistant in plain language — it
picks the right tool for you. No commands or syntax to memorize. For example:
"Summarize my UpNote notes about the Q3 roadmap."
"Find notes where I mentioned Postgres tuning and pull out the key points."
"What did I write about onboarding last month?"
"Show me my 5 most recent notes."
"Create a note titled 'Standup 6/4' with today's three priorities."
Reading, searching, summarizing, and creating all happen through natural
conversation.
Requirements
macOS — fully supported and verified.
Windows — best-effort. URLs launch through the registered scheme handler,
and the default DB path is guessed under %APPDATA%\UpNote\. This path is
not verified by the author — if reads fail, set UPNOTE_LENS_DB (see below).
Requires uv installed once
(brew install uv, or curl -LsSf https://astral.sh/uv/install.sh | sh).
After that there's no package install step — uvx downloads, caches, and
runs upnote-lens-mcp on demand.
Create a note. content is Markdown by default. notebook matches by name. Tags can't be set (see below)
open_note(note_id, new_window=False)
Open an existing note in the app
open_notebook(notebook_id)
Open a notebook in the app
Tag limitation: UpNote's note/new URL scheme has no tag parameter, and
hashtags placed in the body stay as plain text rather than becoming real tags
(they only convert to tags when typed in the editor). If you need tags, add
them manually in the app after the note is created.
Override the DB path
If the database isn't in the default location (or you're on Windows), point at it
with an environment variable: