{"_id":"@abhishekmcp/notes","_rev":"6-9e70ed402142efe8ad64b8c2f50958ef","name":"@abhishekmcp/notes","dist-tags":{"latest":"0.4.1"},"versions":{"0.1.0":{"name":"@abhishekmcp/notes","version":"0.1.0","keywords":["mcp","modelcontextprotocol","notes","markdown","claude"],"author":{"url":"https://github.com/Abhishekkumar2021","name":"Abhishek"},"license":"MIT","_id":"@abhishekmcp/notes@0.1.0","maintainers":[{"name":"abhishek.opensource","email":"abhishek.opensource.dev@gmail.com"}],"homepage":"https://github.com/Abhishekkumar2021/mcp-suite/tree/main/servers/notes#readme","bugs":{"url":"https://github.com/Abhishekkumar2021/mcp-suite/issues"},"bin":{"mcp-notes":"dist/index.js"},"dist":{"shasum":"4c8e88ef61b0b383eebf5410333bc4207946c3ea","tarball":"https://registry.npmjs.org/@abhishekmcp/notes/-/notes-0.1.0.tgz","fileCount":9,"integrity":"sha512-yH6EfzTk2r0kRqF6hgncWIlSriuLStGH8EZUTmPyIMuemzhjhz6YpDbwD9aNWXW4FOJKccmlmV+tuPxpGFyY4w==","signatures":[{"sig":"MEYCIQDAfTiGNOKRFQFyDBy7HJioazRRlc0ZbzMnLEJoEJEV7QIhAILU4VENUs0Z/Zp2LD20CgWdPQpteQNUTnkw3o2qt/xl","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":27249},"type":"module","engines":{"node":">=18"},"gitHead":"0244582023eb22c45c4b06f1cbd658717c70a0dd","scripts":{"dev":"tsc && node dist/index.js","build":"tsc","start":"node dist/index.js","watch":"tsc --watch","prepublishOnly":"npm run build"},"_npmUser":{"name":"abhishek.opensource","email":"abhishek.opensource.dev@gmail.com"},"repository":{"url":"git+https://github.com/Abhishekkumar2021/mcp-suite.git","type":"git","directory":"servers/notes"},"_npmVersion":"11.17.0","description":"MCP server for local markdown notes — search, create, link, and read notes from any MCP client.","directories":{},"_nodeVersion":"24.13.0","dependencies":{"zod":"^3.23.8","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.6.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/notes_0.1.0_1782568450516_0.16652374970088712","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@abhishekmcp/notes","version":"0.1.1","keywords":["mcp","modelcontextprotocol","notes","markdown","claude"],"author":{"url":"https://github.com/Abhishekkumar2021","name":"Abhishek"},"license":"MIT","_id":"@abhishekmcp/notes@0.1.1","maintainers":[{"name":"abhishek.opensource","email":"abhishek.opensource.dev@gmail.com"}],"homepage":"https://github.com/Abhishekkumar2021/mcp-suite/tree/main/servers/notes#readme","bugs":{"url":"https://github.com/Abhishekkumar2021/mcp-suite/issues"},"bin":{"mcp-notes":"dist/index.js"},"dist":{"shasum":"58381cc86681bb0ad2b6908b0b55860f6f550ecf","tarball":"https://registry.npmjs.org/@abhishekmcp/notes/-/notes-0.1.1.tgz","fileCount":9,"integrity":"sha512-H/USyJP/lyp1P6K0S4P5bCtJHvDaM4wVucy9yxbcUwKdw5/sOPJYuPuDeVGhtl+pd2vqCJh9e0fi4aI/eXtH4A==","signatures":[{"sig":"MEYCIQDmpr15GcUOeYdMrMCsy4WglbGd5mZ8plv0nAMiknnobQIhAIHaxuhfYNUTkR1ZIeIFJ4fPBt0HCcK6MDOvvG/L57ql","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@abhishekmcp%2fnotes@0.1.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":27249},"type":"module","engines":{"node":">=18"},"gitHead":"890ce8237bb0bc44ca1467c155794b794d1f208e","scripts":{"dev":"tsc && node dist/index.js","build":"tsc","start":"node dist/index.js","watch":"tsc --watch","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0df2e228-96ef-49e0-aa4d-572c90cca667"}},"repository":{"url":"git+https://github.com/Abhishekkumar2021/mcp-suite.git","type":"git","directory":"servers/notes"},"_npmVersion":"11.17.0","description":"MCP server for local markdown notes — search, create, link, and read notes from any MCP client.","directories":{},"_nodeVersion":"22.23.0","dependencies":{"zod":"^3.23.8","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.6.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/notes_0.1.1_1782580809144_0.7055373077889167","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@abhishekmcp/notes","version":"0.2.0","keywords":["mcp","modelcontextprotocol","notes","markdown","claude"],"author":{"url":"https://github.com/Abhishekkumar2021","name":"Abhishek"},"license":"MIT","_id":"@abhishekmcp/notes@0.2.0","maintainers":[{"name":"abhishek.opensource","email":"abhishek.opensource.dev@gmail.com"}],"homepage":"https://github.com/Abhishekkumar2021/mcp-suite/tree/main/servers/notes#readme","bugs":{"url":"https://github.com/Abhishekkumar2021/mcp-suite/issues"},"bin":{"mcp-notes":"dist/index.js"},"dist":{"shasum":"0cd49381715113c4229c53e6f476a85f45fb5c6c","tarball":"https://registry.npmjs.org/@abhishekmcp/notes/-/notes-0.2.0.tgz","fileCount":21,"integrity":"sha512-pxienoVRG96RxO1KfF3o+0cNRFIzHEey9Ka7giCagPiMtatC0giVM9WSNPUhloZDE6NuUmjrq4CV0udfyb0FmQ==","signatures":[{"sig":"MEQCIFHNw6GqmaEOgRUpmZpSvv91WfN796E2GhQf/Dq36dNqAiAp9+BRzzQ1J540dLi2UUax/B8+4vmtvB+fLtNgEn/V4A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@abhishekmcp%2fnotes@0.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":108934},"type":"module","engines":{"node":">=18"},"gitHead":"45b4feb1cf5422dbcb30299c0e34e5d89080ca5f","scripts":{"dev":"tsc && node dist/index.js","build":"tsc","start":"node dist/index.js","watch":"tsc --watch","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0df2e228-96ef-49e0-aa4d-572c90cca667"}},"repository":{"url":"git+https://github.com/Abhishekkumar2021/mcp-suite.git","type":"git","directory":"servers/notes"},"_npmVersion":"11.17.0","description":"MCP server for local markdown notes — ranked search, tags, todos, and a wiki-link knowledge graph, from any MCP client.","directories":{},"_nodeVersion":"22.23.0","dependencies":{"zod":"^3.23.8","minisearch":"^7.1.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.6.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/notes_0.2.0_1782595460150_0.8125617746267064","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@abhishekmcp/notes","version":"0.3.0","keywords":["mcp","modelcontextprotocol","notes","markdown","claude"],"author":{"url":"https://github.com/Abhishekkumar2021","name":"Abhishek"},"license":"MIT","_id":"@abhishekmcp/notes@0.3.0","maintainers":[{"name":"abhishek.opensource","email":"abhishek.opensource.dev@gmail.com"}],"homepage":"https://github.com/Abhishekkumar2021/mcp-suite/tree/main/servers/notes#readme","bugs":{"url":"https://github.com/Abhishekkumar2021/mcp-suite/issues"},"bin":{"mcp-notes":"dist/index.js"},"dist":{"shasum":"179538ba653b1ca622ea175b2a48daa0a5c541e1","tarball":"https://registry.npmjs.org/@abhishekmcp/notes/-/notes-0.3.0.tgz","fileCount":30,"integrity":"sha512-NX74Rsp17MdI+zUFc317uaFGC2sPiud+EqMvvx5K5fR+N8jHwKD74fdiKTUQ6ztJFknYjBsfwsyasw6jRwCYYA==","signatures":[{"sig":"MEYCIQDw9eenMLoZc8cj1W6fhRzKTQ0dOFXHluzZIk3m2pfgnwIhANVwDIZMiBA8+PRUfhFmqz+dCTr9mzUn1oNFuuJ4eq0N","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@abhishekmcp%2fnotes@0.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":153344},"type":"module","engines":{"node":">=18"},"gitHead":"d817998fb73627ca431adcf21d508ed116116bd2","scripts":{"dev":"tsc && node dist/index.js","build":"tsc","start":"node dist/index.js","watch":"tsc --watch","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0df2e228-96ef-49e0-aa4d-572c90cca667"}},"repository":{"url":"git+https://github.com/Abhishekkumar2021/mcp-suite.git","type":"git","directory":"servers/notes"},"_npmVersion":"11.17.0","description":"MCP server for local markdown notes — ranked search, tags, todos, and a wiki-link knowledge graph, from any MCP client.","directories":{},"_nodeVersion":"22.23.0","dependencies":{"zod":"^3.23.8","minisearch":"^7.1.0","onnxruntime-web":"^1.27.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.6.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/notes_0.3.0_1782603203487_0.7460152741954609","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@abhishekmcp/notes","version":"0.4.0","keywords":["mcp","modelcontextprotocol","notes","markdown","claude"],"author":{"url":"https://github.com/Abhishekkumar2021","name":"Abhishek"},"license":"MIT","_id":"@abhishekmcp/notes@0.4.0","maintainers":[{"name":"abhishek.opensource","email":"abhishek.opensource.dev@gmail.com"}],"homepage":"https://github.com/Abhishekkumar2021/mcp-suite/tree/main/servers/notes#readme","bugs":{"url":"https://github.com/Abhishekkumar2021/mcp-suite/issues"},"bin":{"mcp-notes":"dist/index.js"},"dist":{"shasum":"e2e425397208e795476d60dd78bb6cd58cf9e723","tarball":"https://registry.npmjs.org/@abhishekmcp/notes/-/notes-0.4.0.tgz","fileCount":36,"integrity":"sha512-fNDVNZ1OG42DfRL8JyAgWuTVadGuFuE0bph5jvI1IcMHKHMkk8Dk9kSVH5Uz1zjcEU89C1U7zvq/EJRmi/WhMw==","signatures":[{"sig":"MEQCIFxvL68Z4dZ2Xgo1BIJNVyzjc0ap5jJqrshzhcMIz67cAiAC/2yB/GmJ1IDAyJZBo8XvRr9233v6Z70Pn1uxqimY8A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@abhishekmcp%2fnotes@0.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":185454},"type":"module","engines":{"node":">=18"},"gitHead":"79cdc34959a096699eaa3f9e046ba9f09c55bac9","scripts":{"dev":"tsc && node dist/index.js","build":"tsc","start":"node dist/index.js","watch":"tsc --watch","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0df2e228-96ef-49e0-aa4d-572c90cca667"}},"repository":{"url":"git+https://github.com/Abhishekkumar2021/mcp-suite.git","type":"git","directory":"servers/notes"},"_npmVersion":"11.17.0","description":"MCP server for local markdown notes — ranked search, tags, todos, and a wiki-link knowledge graph, from any MCP client.","directories":{},"_nodeVersion":"22.23.0","dependencies":{"zod":"^3.23.8","minisearch":"^7.1.0","onnxruntime-web":"^1.27.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.6.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/notes_0.4.0_1782606932417_0.99141086270498","host":"s3://npm-registry-packages-npm-production"}},"0.4.1":{"name":"@abhishekmcp/notes","version":"0.4.1","description":"MCP server for local markdown notes — ranked search, tags, todos, and a wiki-link knowledge graph, from any MCP client.","mcpName":"io.github.Abhishekkumar2021/notes","type":"module","bin":{"mcp-notes":"dist/index.js"},"publishConfig":{"access":"public","provenance":true},"scripts":{"build":"tsc","watch":"tsc --watch","start":"node dist/index.js","dev":"tsc && node dist/index.js","build:mcpb":"node scripts/build-mcpb.mjs","prepublishOnly":"npm run build"},"keywords":["mcp","modelcontextprotocol","notes","markdown","claude"],"author":{"name":"Abhishek","url":"https://github.com/Abhishekkumar2021"},"license":"MIT","homepage":"https://github.com/Abhishekkumar2021/mcp-suite/tree/main/servers/notes#readme","repository":{"type":"git","url":"git+https://github.com/Abhishekkumar2021/mcp-suite.git","directory":"servers/notes"},"bugs":{"url":"https://github.com/Abhishekkumar2021/mcp-suite/issues"},"engines":{"node":">=18"},"dependencies":{"@modelcontextprotocol/sdk":"^1.29.0","minisearch":"^7.1.0","onnxruntime-web":"^1.27.0","zod":"^3.23.8"},"devDependencies":{"@types/node":"^22.0.0","typescript":"^5.6.0"},"gitHead":"a149f233d4cc59f570823c7bbf3a70197e4e343d","_id":"@abhishekmcp/notes@0.4.1","_nodeVersion":"22.23.0","_npmVersion":"11.17.0","dist":{"integrity":"sha512-bztva+p+9hURLgD/mctB+PGHSh23QXZy8LpY81LzerqBWKqHEMb2SodXX2cKpKo7kwUrFlB6hSOJreEqu9/Rbw==","shasum":"b298ec13e2fb4e28457d6020d2a0919eae5e6b0c","tarball":"https://registry.npmjs.org/@abhishekmcp/notes/-/notes-0.4.1.tgz","fileCount":36,"unpackedSize":186116,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@abhishekmcp%2fnotes@0.4.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCHlatik3555svEdipS5i635csem+Nx9FPlhRFx2zuqdwIhAJKBijr7h7ZN5cABNZQLNiyCSWc5RZH9Y/DEl/pJZweZ"}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0df2e228-96ef-49e0-aa4d-572c90cca667"}},"directories":{},"maintainers":[{"name":"abhishek.opensource","email":"abhishek.opensource.dev@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/notes_0.4.1_1782626958488_0.9782668953039844"},"_hasShrinkwrap":false}},"time":{"created":"2026-06-27T13:54:10.352Z","modified":"2026-06-28T06:09:18.891Z","0.1.0":"2026-06-27T13:54:10.654Z","0.1.1":"2026-06-27T17:20:09.281Z","0.2.0":"2026-06-27T21:24:20.289Z","0.3.0":"2026-06-27T23:33:23.651Z","0.4.0":"2026-06-28T00:35:32.538Z","0.4.1":"2026-06-28T06:09:18.648Z"},"bugs":{"url":"https://github.com/Abhishekkumar2021/mcp-suite/issues"},"author":{"name":"Abhishek","url":"https://github.com/Abhishekkumar2021"},"license":"MIT","homepage":"https://github.com/Abhishekkumar2021/mcp-suite/tree/main/servers/notes#readme","keywords":["mcp","modelcontextprotocol","notes","markdown","claude"],"repository":{"type":"git","url":"git+https://github.com/Abhishekkumar2021/mcp-suite.git","directory":"servers/notes"},"description":"MCP server for local markdown notes — ranked search, tags, todos, and a wiki-link knowledge graph, from any MCP client.","maintainers":[{"name":"abhishek.opensource","email":"abhishek.opensource.dev@gmail.com"}],"readme":"# @abhishekmcp/notes\n\nAn [MCP](https://modelcontextprotocol.io) server for managing local markdown notes. Lets any MCP client (Claude Desktop, Claude Code, Cursor, …) search, link, and organize the notes in a folder on your machine — with ranked full-text search, tags, todos, and a wiki-link knowledge graph.\n\nPure JavaScript, no native dependencies, no API keys — everything runs locally.\n\n## Features\n\n### Notes (token-efficient I/O)\n- `list_notes` — list notes (newest first) with pagination (`offset`/`limit`) and an optional `tag` filter\n- `read_note` — read a note; optionally just one heading's `section`, or a character window (`offset`/`limit`) with a truncation flag\n- `get_outline` — return only a note's heading tree (grasp a big note in a few tokens)\n- `create_note` — create a new note (optional `overwrite`)\n- `append_note` — append to a note, creating it if missing (great for journals/logs)\n- `delete_note` — delete a note\n- `move_note` — rename/move a note **and rewrite every `[[wiki-link]]`** across the vault that points at it\n\n### Search & discovery\n- `search_notes` — ranked full-text search ([MiniSearch](https://github.com/lucaong/minisearch)); supports `fuzzy` and `prefix` matching, a `field` filter (`title`/`tag`/`body`/`path`), and returns ranked snippets with surrounding context\n- `semantic_search` — **meaning-based** search using local embeddings; finds related notes even with no shared keywords (e.g. \"puppy\" matches a note about \"canine companions\"). Optional `hybrid` mode fuses semantic + keyword ranking\n- `list_tags` — every tag across the vault with note counts\n- `list_todos` — aggregate `- [ ]` / `- [x]` checkboxes across all notes\n\n### Knowledge graph\n- `get_backlinks` — notes linking to a note via `[[wiki-link]]` syntax\n- `get_neighbors` — notes within N hops over the (undirected) link graph (depth/limit capped)\n- `find_path` — shortest wiki-link chain between two notes\n- `related_notes` — notes ranked by shared links + shared tags\n- `graph_overview` — aggregate health: note/link/tag counts, top hubs, orphans, broken-link count\n- `broken_links` — wiki-links that point at notes which don't exist\n\n### Organization & daily workflow\n- `daily_note` — open today's daily note (creating it if needed) and append a timestamped entry\n- `list_templates` / `create_from_template` — instantiate a note from a template, substituting `{{date}}`/`{{time}}`/`{{title}}` plus your own vars\n- `rename_tag` — rename a tag across the whole vault (frontmatter + inline `#hashtags`)\n- `unlinked_mentions` — find notes that mention a note's title as plain text but don't yet `[[link]]` to it\n\n### Prompts (slash-command workflows)\nExposed via the MCP Prompts primitive — your client surfaces these as slash commands:\n- `weekly_review` — summarize the last 7 days of notes + open todos\n- `summarize_note` — summarize one note (with note-name autocomplete)\n- `daily_standup` — draft a standup from yesterday/today's daily notes + open todos\n\n### Resources\n- Every note is exposed as a `notes://<name>` resource.\n\n### Frontmatter & tags\nNotes may start with a YAML frontmatter block; `title` and `tags` (a list or comma-separated string) are recognized. Inline `#hashtags` in the body are also collected as tags.\n\n```markdown\n---\ntitle: My Note\ntags: [project, ideas]\n---\n# My Note\nLinks to [[another-note]]. Some inline #tag too.\n```\n\n## Configuration\n\nAll via environment variables:\n\n| Variable | Default | Effect |\n|----------|---------|--------|\n| `NOTES_DIR` | `~/notes` | Directory where notes live (a leading `~` is expanded). |\n| `NOTES_READONLY` | _unset_ | Set to `1` to disable all mutating tools (`create`/`append`/`delete`/`move` are not even registered) — safe for sharing a vault. |\n| `NOTES_NO_CACHE` | _unset_ | Set to `1` to skip the on-disk index cache and rebuild in memory each start. |\n| `NOTES_MODEL_DIR` | `~/.cache/mcp-notes/models` | Where the semantic-search embedding model is cached. |\n| `NOTES_DAILY_DIR` | `daily` | Subdirectory (within the vault) for daily notes. |\n| `NOTES_TEMPLATE_DIR` | `templates` | Subdirectory (within the vault) holding note templates. |\n\n### Semantic search & the embedding model\n`semantic_search` runs the [all-MiniLM-L6-v2](https://huggingface.co/Xenova/all-MiniLM-L6-v2) model **locally** via WebAssembly ([onnxruntime-web](https://github.com/microsoft/onnxruntime)) — no API keys, no native dependencies, no data leaves your machine. The quantized model (~23 MB) is downloaded **once** on first use into `NOTES_MODEL_DIR` and cached; embeddings are stored in `<NOTES_DIR>/.notes-embeddings.json` and incrementally updated as notes change. The first `semantic_search` call needs network access for the download and embeds the whole vault; everything after that is offline and fast. Keyword search and all other tools work without ever triggering this.\n\n### Index cache\nFor fast warm starts the server persists its search index to `<NOTES_DIR>/.notes-index.json` and, on startup, incrementally re-parses only the notes that changed (by mtime/size) since last run. The cache is rebuilt automatically if it's missing, unreadable, or from an older index version. Files on disk are always the source of truth.\n\n## Security\n\nAll filesystem access is sandboxed to the notes directory:\n- Path traversal (`../`) and absolute paths are rejected.\n- Symlinks inside the vault that resolve outside it are rejected (realpath containment).\n- Single files above a size limit are refused (DoS / context guard).\n- Writes are atomic (temp file + rename), so a crash can't leave a torn note.\n\n## Usage\n\n### Claude Code — plugin (easiest)\n\n```\n/plugin marketplace add Abhishekkumar2021/mcp-suite\n/plugin install notes\n```\n\n### Claude Code — manual\n\n```bash\nclaude mcp add notes --env NOTES_DIR=$HOME/notes -- npx -y @abhishekmcp/notes\n```\n\n### Claude Desktop — MCPB (one-click, no Node required)\n\nDownload `notes-<version>.mcpb` from the [latest release](https://github.com/Abhishekkumar2021/mcp-suite/releases) and drag it onto Claude Desktop → Settings → Extensions. A folder picker lets you choose your notes directory.\n\n### Claude Desktop\n\nAdd to `claude_desktop_config.json`:\n\n```json\n{\n  \"mcpServers\": {\n    \"notes\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@abhishekmcp/notes\"],\n      \"env\": { \"NOTES_DIR\": \"/absolute/path/to/your/notes\" }\n    }\n  }\n}\n```\n\nTo share a vault read-only, add `\"NOTES_READONLY\": \"1\"` to `env`.\n\n## Develop from source\n\n```bash\nnpm install                      # from the repo root\nnpm run build -w servers/notes\nnode servers/notes/dist/index.js # NOTES_DIR=... to point at a vault\n```\n\n## Publishing to npm\n\nPublishes automatically via GitHub Actions (Trusted Publishing / OIDC) when a release tagged `notes-v<version>` is created. See the repo root for the CD workflow.\n\n## License\n\nMIT\n","readmeFilename":"README.md"}