search_notesLABSCO SUMMARY
Reads return real text; writes go through the app.
The split is deliberate and worth knowing before you wire it up: reading is a read-only query against the local database, so summarising works on the words you actually wrote, while creating a note goes through the URL scheme so this server never writes to the database. One gap follows from that — UpNote's note/new URL has no tag parameter and hashtags in the body stay plain text, so tags go on in the app afterwards.
What it is
A Python server with two halves. Reads query the local UpNote SQLite database read-only and return the actual note text, so an assistant can summarise and answer from it. Writes go through UpNote's upnote:// URL scheme and never touch the database.
What you get
- Substring search across note titles and bodies, returning id, title, update time and a snippet —
search_notes - The full title and body of a note, optionally as raw HTML —
get_note - The most recently updated notes —
list_recent - Notebooks with their note counts and parent, and the notes inside one —
list_notebooks,list_notes_in_notebook - Tags with note counts, and the notes carrying a tag —
list_tags,list_notes_by_tag - A new note created from the chat, Markdown by default, filed into a notebook matched by name —
create_note - An existing note or notebook opened in the app —
open_note,open_notebook
Requirements
UpNote desktop installed, plus Python 3.10+ or uv. macOS is fully supported and verified; Windows is best-effort and its default database path under %APPDATA%\UpNote\ is unverified — point UPNOTE_LENS_DB at the SQLite file if reads fail. Install with uvx upnote-lens-mcp, pip install upnote-lens-mcp, or straight from the repository with uv. The package is upnote-lens-mcp 0.1.2.
Setup effort
One command — pip install upnote-lens-mcp
USE CASES
Answering a question from notes you barely remember writing
Search on a keyword, then pull the full text of the hits so the answer comes from the note rather than a snippet.
Summarising a month of scattered notes
List the most recent notes and read the relevant ones back in full for a summary.
Working through one notebook at a time
List the notebooks with their counts, then walk the notes inside the one you care about.
Capturing a standup from the conversation
Create the note with Markdown content and a notebook name, then open it in the app to add tags.
10 tools
Listed in project docs. Your client may show a different list.
get_notelist_recentlist_notebookslist_notes_in_notebooklist_tagslist_notes_by_tagcreate_noteopen_noteopen_notebookBEFORE YOU INSTALL
What to know first
Tools you get
10 tools named in the project's documentation.
Requires
- uvx on PATH
- Python 3.10+
Where it runs
Both documented clients run the server on your machine.
INSTALLATION
Connect your client
Server setup
pip install upnote-lens-mcpMCP Clients
Claude Code
claude mcp add upnote-lens -- uvx upnote-lens-mcpClaude Desktop
{
"mcpServers": {
"upnote-lens": {
"command": "uvx",
"args": [
"upnote-lens-mcp"
]
}
}
}