Notes
Local markdown notes: ranked + semantic search, tags, todos, and a wiki-link knowledge graph.
Install
Add this to your client's MCP configuration (Claude Desktop: claude_desktop_config.json; Cursor: .cursor/mcp.json; VS Code and others use the same "mcpServers" shape).
@abhishekmcp/notesclaude mcp add notes -e 'NOTES_DIR=<NOTES_DIR>' -e 'NOTES_READONLY=<NOTES_READONLY>' -e 'NOTES_MODEL_DIR=<NOTES_MODEL_DIR>' -- npx -y @abhishekmcp/notes@0.4.1
{
"mcpServers": {
"notes": {
"command": "npx",
"args": [
"-y",
"@abhishekmcp/notes@0.4.1"
],
"env": {
"NOTES_DIR": "<NOTES_DIR>",
"NOTES_READONLY": "<NOTES_READONLY>",
"NOTES_MODEL_DIR": "<NOTES_MODEL_DIR>"
}
}
}
}
Environment variables
NOTES_DIRDirectory containing your markdown notes (defaults to ~/notes).NOTES_READONLYSet to 1 or true to disable all note-modifying tools.NOTES_MODEL_DIRWhere the semantic-search embedding model is cached.
Documentation
From the project's README on GitHub, refreshed weekly. Links open on GitHub.
Contents
🧰 mcp-suite
A collection of Model Context Protocol servers, built in TypeScript.
Each server lives in its own folder under servers/ and publishes to npm as an independent package, while sharing tooling through an npm workspace. Connect them to any MCP client — Claude Desktop, Claude Code, Cursor, and more.
Table of contents
- Servers
- Quickstart
- Install
- Connecting to a client
- Architecture & conventions
- Development
- Adding a new server
- Publishing
- Contributing
- License
Servers
| Server | Description | Status |
|---|---|---|
notes | Local markdown notes: ranked full-text and semantic search, tags, todos, a [[wiki-link]] knowledge graph, daily notes + templates, and slash-command workflows (prompts) | ✅ Stable |
files | Sandboxed local filesystem: read, glob + content search, token-efficient edits, copy/move, soft-delete trash, zip, checksums, and dedup | ✅ Stable |
github | GitHub: search repos/code/issues, read repos/issues/PRs/files, notifications, create issues — OAuth device flow or token | ✅ Stable |
git | Git: status, log, diff, file history, branches/tags, gated stage/commit, and remote clone/fetch/pull/push — pure-JS, no git binary | ✅ Stable |
sql | SQL databases: read-only query + schema introspection over Postgres & SQLite, gated writes | ✅ Stable |
http | HTTP/REST client: ad-hoc requests + saved collections/environments, env secrets, host-allowlisted + SSRF-safe | ✅ Stable |
More on the way: a Spotify controller, and others.
Quickstart
git clone https://github.com/Abhishekkumar2021/mcp-suite.git
cd mcp-suite
npm install # installs deps for every workspace
npm run build # builds every server
Install
Every server ships through every common channel. For the Claude Code plugin, add the marketplace
once — /plugin marketplace add Abhishekkumar2021/mcp-suite — then install per the table. See each
server's README for full config.
| Server | Claude Code plugin | npm (any client) | Claude Desktop (MCPB) | MCP registry |
|---|---|---|---|---|
notes | /plugin install notes | npx -y @abhishekmcp/notes | drag notes-*.mcpb from the latest release | io.github.Abhishekkumar2021/notes |
files | /plugin install files | npx -y @abhishekmcp/files | drag files-*.mcpb | io.github.Abhishekkumar2021/files |
github | /plugin install github | npx -y @abhishekmcp/github | drag github-*.mcpb | io.github.Abhishekkumar2021/github |
git | /plugin install git | npx -y @abhishekmcp/git | drag git-*.mcpb | io.github.Abhishekkumar2021/git |
sql | /plugin install sql | npx -y @abhishekmcp/sql | drag sql-*.mcpb | io.github.Abhishekkumar2021/sql |
http | /plugin install http | npx -y @abhishekmcp/http | drag http-*.mcpb | io.github.Abhishekkumar2021/http |
notesdefaults to~/notes;filesrequiresFS_ROOTS(the directories it may touch). MCPB bundles install via Claude Desktop → Settings → Extensions.
Connecting to a client
Each server's README has full configuration instructions. As an example, to use the notes server with Claude Code:
claude mcp add notes --env NOTES_DIR=$HOME/notes -- node "$(pwd)/servers/notes/dist/index.js"
Or with Claude Desktop (claude_desktop_config.json):
{
"mcpServers": {
"notes": {
"command": "node",
"args": ["/absolute/path/to/mcp-suite/servers/notes/dist/index.js"],
"env": { "NOTES_DIR": "/absolute/path/to/your/notes" }
}
}
}
Architecture & conventions
A few principles hold across every server:
- Pure-JS/WASM by default; native only when genuinely required. Servers run via
npx/MCPB on any machine, so portable pure-JS/WebAssembly is strongly preferred and a native dependency is used only when genuinely required (gated + documented). In practice these servers are dependency-light:notesuses MiniSearch + WebAssembly embeddings,sqluses thesql.jsWASM SQLite engine, andfilesusesfast-globinstead of ripgrep.npm auditstays clean. - Sandbox-first, layered design. Each server keeps a thin
index.ts(tool registration only) over focused modules, with a single security boundary every path must pass through (realpath-containment, symlink-escape rejection, atomic writes). - Token-efficient by default. Pagination, head/tail/section reads, snippets, and compact graph refs keep tool output small.
- Automated, hands-off releases. A GitHub Release tagged
<server>-v<version>publishes to npm (with provenance), the official MCP registry, and attaches an MCPB bundle — all via OIDC, no secrets. - Tested in CI. Each server ships a committed
node:testsuite (unit + integration/security) run on every push.
Development
This is an npm workspaces monorepo.
npm install # install all workspace dependencies (run once at the root)
npm run build # build every server
npm run build -w servers/notes # build a single server
npm test --workspaces --if-present # run each server's test suite
npm run clean # remove all build output
Adding a new server
- Create
servers/<name>/with its ownpackage.json(unique npmname) and atsconfig.jsonthatextends: "../../tsconfig.base.json". - Put source in
servers/<name>/src/. - Run
npm installat the root so the workspace picks it up. - Add a row to the Servers table above.
All servers follow the naming standard (@abhishekmcp/<slug>). See CONTRIBUTING.md for detailed guidelines.
Publishing
Releases are automated. Cutting a GitHub Release tagged <server>-v<version> triggers
publish.yml, which — authenticated entirely via GitHub OIDC (no
NPM_TOKEN) — publishes the package to npm with provenance, registers it on the official MCP
registry, and builds + attaches the MCPB bundle to the release.
# bump servers/<name>/package.json, commit, then:
gh release create <name>-v<version> --title "<name> v<version>" --notes "…"
Contributing
Contributions are welcome! Please read CONTRIBUTING.md and our Code of Conduct. Found a security issue? See SECURITY.md.
License
MIT © Abhishek
Frequently asked questions
What is Notes?
Local markdown notes: ranked + semantic search, tags, todos, and a wiki-link knowledge graph.
How do I install Notes?
It runs on your machine. In Claude Code: claude mcp add notes -e 'NOTES_DIR=<NOTES_DIR>' -e 'NOTES_READONLY=<NOTES_READONLY>' -e 'NOTES_MODEL_DIR=<NOTES_MODEL_DIR>' -- npx -y @abhishekmcp/notes@0.4.1. For other clients, paste the JSON configuration from this page into their MCP settings.
Does Notes need an API key?
Its registry entry lists no required key or secret. Some features may still need an account with the service it connects to.
Is Notes open source?
Yes. Its code is on GitHub under the MIT license.
Who maintains Notes?
It is published by Abhishekkumar2021. AI.tn lists it but does not maintain or endorse it.
From the official MCP Registry. Listing is not an endorsement: review a server's code and permissions before giving it access to your data.