upnote-lens-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| UPNOTE_LENS_DB | No | Path to the UpNote SQLite database file. Default: ~/Library/Containers/com.getupnote.desktop/Data/Library/Application Support/UpNote/upnote.sqlite3 |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| search_notesA | Search notes by title/body (case-insensitive substring match). Returns matching notes with id, title, last-updated time, and a text snippet around the match — actual content, read from the local DB. |
| get_noteA | Return a single note's full title and body text by its id. Set include_html=true to also get the raw HTML body. |
| list_recentC | List the most recently updated notes (id, title, updated time). |
| list_notebooksA | List all notebooks with their note counts and parent id. |
| list_notes_in_notebookC | List notes inside a notebook (resolved via the notebook's note list). |
| list_tagsA | List all tags with their note counts. |
| list_notes_by_tagC | List notes carrying a given tag, matched by tag title. |
| create_noteB | Create a new note in UpNote via the URL scheme. content is treated as Markdown by default. notebook matches by name. Tags cannot be set via the URL scheme — tag the note manually in the app. Returns the launched upnote:// URL. |
| open_noteC | Open an existing note in the UpNote app by its id. |
| open_notebookB | Open a notebook in the UpNote app by its id. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 10 tools
Each tool targets a distinct resource and action: creation, retrieval by id, listing by various criteria (notebooks, tags, recent), searching, and opening in the app. There is no ambiguity because the operations are clearly separated by resource type (note, notebook, tag) and action verb.
All tool names follow a consistent verb_noun pattern (e.g., create_note, get_note, list_notebooks, search_notes). The naming uses lowercase and underscores uniformly, making it predictable and easy for an agent to infer function from the name.
With 10 tools, the server provides a well-scoped set for note management. Each tool has a clear purpose and none feel redundant. This count is within the ideal range (3-15) and balances coverage without overwhelming the agent.
The server covers creation, reading, listing, searching, and opening notes/notebooks, but lacks update and delete operations. Additionally, there is no tool to manage tags (add/remove). These are notable gaps that may limit an agent's ability to perform full lifecycle management.