lipi-mcp
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@lipi-mcp search my notes for "mero""
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
lipi-mcp
MCP server for Lipi — Indic-first notes with romanized Devanagari search (mero → मेरो, namaste → नमस्ते) and Bikram Sambat dates. Connect Claude Desktop, Cursor, Codex, or any MCP host to your Lipi vault.
MCP is a thin stdio wrapper over the Lipi API — no data duplication, safe concurrent updates.
Install — npx / bunx (no global install needed)
# run directly (always latest)
npx -y lipi-mcp --help
bunx lipi-mcp --help
# or pin version
npx -y lipi-mcp@0.1.0 --api https://lipi-api.bharosilo.com --token <jwt>Related MCP server: notes-box
Quickstart
Get a token — sign up at
https://lipi.bharosilo.com, then copy the JWT from your browser (DevTools → localStorageaccessToken), or callPOST https://lipi-api.bharosilo.com/v1/auth/logindirectly.Run MCP:
# prod (default)
LIPI_ACCESS_TOKEN=<jwt> npx -y lipi-mcp
# or explicit
LIPI_API_URL=https://lipi-api.bharosilo.com LIPI_ACCESS_TOKEN=<jwt> npx -y lipi-mcp
# dev
LIPI_API_URL=http://localhost:8080 LIPI_ACCESS_TOKEN=<jwt> npx -y lipi-mcp
# or
bunx lipi-mcp --api https://lipi-api.bharosilo.com --token <jwt>Configure your MCP host —
claude_desktop_config.json(Claude Desktop) or~/.cursor/mcp.json(Cursor):
{
"mcpServers": {
"lipi": {
"command": "npx",
"args": ["-y", "lipi-mcp", "--api", "https://lipi-api.bharosilo.com"],
"env": {
"LIPI_ACCESS_TOKEN": "<paste-jwt-here>",
"LIPI_REFRESH_TOKEN": "<optional-refresh-token>"
}
}
}
}For local dev:
{
"mcpServers": {
"lipi": {
"command": "npx",
"args": ["-y", "lipi-mcp", "--api", "http://localhost:8080"],
"env": {
"LIPI_API_URL": "http://localhost:8080",
"LIPI_ACCESS_TOKEN": "<paste-jwt-here>"
}
}
}
}With bunx:
{
"mcpServers": {
"lipi": {
"command": "bunx",
"args": ["lipi-mcp", "--api", "https://lipi-api.bharosilo.com"],
"env": { "LIPI_ACCESS_TOKEN": "<jwt>" }
}
}
}Restart the host. You should see 9 tools: lipi_login, lipi_list_notes, lipi_read_note, lipi_read_note_by_name, lipi_create_note, lipi_update_note, lipi_rename_note, lipi_delete_note, lipi_search.
Tools
Tool | Maps to | Notes |
|
| Caches token for session; also verifies via |
|
| Flat |
|
| Full |
|
| Wikilink resolver |
|
| Idempotent on |
|
| Requires |
|
| 409 if path taken |
|
| 204 → |
|
| Romanized: |
Auth: Authorization: Bearer <jwt> + Cookie: lipi_refresh=<token> (auto refresh on 401 → retry once).
Env / Flags
Flag / Env | Default | Description |
|
| Lipi API base URL ( |
| — | JWT (15m) |
| — | Opaque refresh (30d), HttpOnly |
Dev
bun install
bun run build
node dist/index.js --help
# inspect with MCP Inspector
npx @modelcontextprotocol/inspector node dist/index.jsPublish
bun run build
npm publish --access public
# then users can npx -y lipi-mcp@latestAvailable Tools
9 toolslipi_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'.
Inputs: path (required), content (required).
lipi_delete_noteA
Delete a note by id. Returns 204 on success.
Inputs: id (required).
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.
Inputs: tree.
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.
Inputs: email (required), password (required), apiUrl.
lipi_read_noteA
Read a single note by id. Returns full Note with content + ETag (updatedAt).
Inputs: id (required).
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.
Inputs: name (required).
lipi_rename_noteA
Rename/move a note to a new path. Returns 409 path_taken if target path already exists.
Inputs: id (required), path (required).
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.
Inputs: q (required).
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.
Inputs: id (required), content (required), ifMatch (required).
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
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.
Maintenance
Related MCP Connectors
Notes, files, GitHub, and Drive through one MCP connection.
Notes, files, GitHub, and Drive through one MCP connection.
Notes, files, GitHub, and Drive through one MCP connection.
Agent-native notes, tasks, dev-docs, vaults, sync & handoffs. MCP + OpenAPI dual surface.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceEnables users to create, retrieve, update, delete, and list notes through an MCP server, with persistent JSON storage and atomic writes.MIT
- AlicenseNot gradedqualityCmaintenanceEnables creating, retrieving, updating, deleting, and listing notes through a simple MCP interface, with configurable note storage.MIT
- AlicenseNot gradedqualityCmaintenanceEnables managing a local notes file through add, get, update, delete, and list operations via MCP.MIT
- AlicenseNot gradedqualityCmaintenanceEnables MCP-compatible clients to create, list, search, and delete notes, read all notes as markdown, and use prompts to summarize or clean up notes.MIT