lipi-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| LIPI_API_URL | No | Lipi API base URL. Overrides the default https://lipi-api.bharosilo.com. Use http://localhost:8080 for local development. | https://lipi-api.bharosilo.com |
| LIPI_ACCESS_TOKEN | Yes | JWT access token (15 minutes) used for authentication. Obtain from https://lipi.bharosilo.com or via POST https://lipi-api.bharosilo.com/v1/auth/login. | |
| LIPI_REFRESH_TOKEN | No | Optional opaque refresh token (30 days) used to automatically obtain a new access token when the current JWT expires. |
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 | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| lipi_loginA | Log in to Lipi with email + password. Caches accessToken + refreshToken for subsequent tools. Call this first if you have no token. Returns user + vault. |
| lipi_list_notesA | List all notes in the Lipi vault. Returns NoteMeta[] (id, path, name, size, updatedAt). Use tree=true to get a directory tree NoteTree[] for the sidebar. |
| lipi_read_noteA | Read a single note by id. Returns full Note with content + ETag (updatedAt). |
| lipi_read_note_by_nameA | Read a note by name/path basename (e.g. '2083-05-12' or 'My Note'). Uses GET /v1/notes-by-name?name=. Handy for [[wikilink]] resolution. |
| lipi_create_noteA | Create a note at path with content. Idempotent on (user_id, path) — if path exists, returns existing note with 200 instead of 201. Path example: 'daily/2083-05-12.md' or 'My Note.md'. |
| lipi_update_noteA | Update a note's content. Requires ifMatch = updatedAt from last read (RFC3339Nano, e.g. '2026-08-28T12:00:00.123456789Z' or ETag value). Returns 409 update_conflict if stale — caller should re-read and retry. |
| lipi_rename_noteA | Rename/move a note to a new path. Returns 409 path_taken if target path already exists. |
| lipi_delete_noteA | Delete a note by id. Returns 204 on success. |
| lipi_searchA | Romanized search over the vault. Type romanized Devanagari and find Devanagari hits. Example: 'mero' finds 'मेरो', 'namaste' finds 'नमस्ते'. Also matches literal English. Returns SearchHit[] with path, name, score, snippet. Empty q returns empty array. |
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 9 tools
Each tool maps to a distinct action/resource pair: create, read, update, rename, delete, list, search, and login are clearly separated. The only mild overlap is between lipi_read_note and lipi_read_note_by_name, but their id-vs-name distinction is described well enough to avoid real confusion.
All tools share the lipi_ prefix and mostly follow a verb_noun pattern like lipi_create_note and lipi_delete_note. lipi_login and lipi_search are verb-only exceptions, but the overall style remains predictable and uniform.
Nine tools is a well-scoped set for a note management server: authentication, CRUD, renaming, listing, and search are all covered without unnecessary duplication. Each tool earns its place.
The tool surface covers the full note lifecycle: create, read by id, read by name, update with optimistic concurrency, rename/move, delete, list, and search. Auth is handled via lipi_login, and no obvious dead-end operations are missing for the stated domain.