{
  "markdown": "<div align=\"center\">\n\n# 🧰 mcp-suite\n\n**A collection of [Model Context Protocol](https://modelcontextprotocol.io) servers, built in TypeScript.**\n\n[![CI](https://github.com/Abhishekkumar2021/mcp-suite/actions/workflows/ci.yml/badge.svg)](https://github.com/Abhishekkumar2021/mcp-suite/actions/workflows/ci.yml)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE)\n[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg)](CONTRIBUTING.md)\n[![Node.js](https://img.shields.io/badge/node-%3E%3D18-43853d.svg)](https://nodejs.org)\n\n[![@abhishekmcp/notes](https://img.shields.io/npm/v/@abhishekmcp/notes?label=%40abhishekmcp%2Fnotes&color=cb3837&logo=npm)](https://www.npmjs.com/package/@abhishekmcp/notes)\n[![@abhishekmcp/files](https://img.shields.io/npm/v/@abhishekmcp/files?label=%40abhishekmcp%2Ffiles&color=cb3837&logo=npm)](https://www.npmjs.com/package/@abhishekmcp/files)\n[![@abhishekmcp/github](https://img.shields.io/npm/v/@abhishekmcp/github?label=%40abhishekmcp%2Fgithub&color=cb3837&logo=npm)](https://www.npmjs.com/package/@abhishekmcp/github)\n[![@abhishekmcp/git](https://img.shields.io/npm/v/@abhishekmcp/git?label=%40abhishekmcp%2Fgit&color=cb3837&logo=npm)](https://www.npmjs.com/package/@abhishekmcp/git)\n\n</div>\n\nEach server lives in its own folder under [`servers/`](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.\n\n## Table of contents\n\n- [Servers](#servers)\n- [Quickstart](#quickstart)\n- [Install](#install)\n- [Connecting to a client](#connecting-to-a-client)\n- [Architecture & conventions](#architecture--conventions)\n- [Development](#development)\n- [Adding a new server](#adding-a-new-server)\n- [Publishing](#publishing)\n- [Contributing](#contributing)\n- [License](#license)\n\n## Servers\n\n| Server | Description | Status |\n|--------|-------------|--------|\n| [`notes`](servers/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 |\n| [`files`](servers/files) | Sandboxed local filesystem: read, glob + content search, token-efficient edits, copy/move, soft-delete trash, zip, checksums, and dedup | ✅ Stable |\n| [`github`](servers/github) | GitHub: search repos/code/issues, read repos/issues/PRs/files, notifications, create issues — OAuth device flow or token | ✅ Stable |\n| [`git`](servers/git) | Git: status, log, diff, file history, branches/tags, gated stage/commit, and remote clone/fetch/pull/push — pure-JS, no git binary | ✅ Stable |\n| [`sql`](servers/sql) | SQL databases: read-only query + schema introspection over Postgres & SQLite, gated writes | ✅ Stable |\n| [`http`](servers/http) | HTTP/REST client: ad-hoc requests + saved collections/environments, env secrets, host-allowlisted + SSRF-safe | ✅ Stable |\n\n_More on the way: a Spotify controller, and others._\n\n## Quickstart\n\n```bash\ngit clone https://github.com/Abhishekkumar2021/mcp-suite.git\ncd mcp-suite\nnpm install      # installs deps for every workspace\nnpm run build    # builds every server\n```\n\n## Install\n\nEvery server ships through every common channel. For the **Claude Code plugin**, add the marketplace\nonce — `/plugin marketplace add Abhishekkumar2021/mcp-suite` — then install per the table. See each\nserver's README for full config.\n\n| Server | Claude Code plugin | npm (any client) | Claude Desktop (MCPB) | MCP registry |\n|--------|--------------------|------------------|-----------------------|--------------|\n| [`notes`](servers/notes) | `/plugin install notes` | `npx -y @abhishekmcp/notes` | drag `notes-*.mcpb` from the [latest release](https://github.com/Abhishekkumar2021/mcp-suite/releases) | `io.github.Abhishekkumar2021/notes` |\n| [`files`](servers/files) | `/plugin install files` | `npx -y @abhishekmcp/files` | drag `files-*.mcpb` | `io.github.Abhishekkumar2021/files` |\n| [`github`](servers/github) | `/plugin install github` | `npx -y @abhishekmcp/github` | drag `github-*.mcpb` | `io.github.Abhishekkumar2021/github` |\n| [`git`](servers/git) | `/plugin install git` | `npx -y @abhishekmcp/git` | drag `git-*.mcpb` | `io.github.Abhishekkumar2021/git` |\n| [`sql`](servers/sql) | `/plugin install sql` | `npx -y @abhishekmcp/sql` | drag `sql-*.mcpb` | `io.github.Abhishekkumar2021/sql` |\n| [`http`](servers/http) | `/plugin install http` | `npx -y @abhishekmcp/http` | drag `http-*.mcpb` | `io.github.Abhishekkumar2021/http` |\n\n> `notes` defaults to `~/notes`; `files` **requires** `FS_ROOTS` (the directories it may touch). MCPB\n> bundles install via Claude Desktop → Settings → Extensions.\n\n## Connecting to a client\n\nEach server's README has full configuration instructions. As an example, to use the **notes** server with Claude Code:\n\n```bash\nclaude mcp add notes --env NOTES_DIR=$HOME/notes -- node \"$(pwd)/servers/notes/dist/index.js\"\n```\n\nOr with Claude Desktop (`claude_desktop_config.json`):\n\n```json\n{\n  \"mcpServers\": {\n    \"notes\": {\n      \"command\": \"node\",\n      \"args\": [\"/absolute/path/to/mcp-suite/servers/notes/dist/index.js\"],\n      \"env\": { \"NOTES_DIR\": \"/absolute/path/to/your/notes\" }\n    }\n  }\n}\n```\n\n## Architecture & conventions\n\nA few principles hold across every server:\n\n- **Pure-JS/WASM by default; native only when genuinely required.** Servers run via `npx`/MCPB on any\n  machine, so portable pure-JS/WebAssembly is strongly preferred and a native dependency is used only when\n  genuinely required (gated + documented). In practice these servers are dependency-light: `notes` uses\n  MiniSearch + WebAssembly embeddings, `sql` uses the `sql.js` WASM SQLite engine, and `files` uses\n  `fast-glob` instead of ripgrep. `npm audit` stays clean.\n- **Sandbox-first, layered design.** Each server keeps a thin `index.ts` (tool registration only) over\n  focused modules, with a single security boundary every path must pass through (realpath-containment,\n  symlink-escape rejection, atomic writes).\n- **Token-efficient by default.** Pagination, head/tail/section reads, snippets, and compact graph refs\n  keep tool output small.\n- **Automated, hands-off releases.** A GitHub Release tagged `<server>-v<version>` publishes to **npm\n  (with provenance), the official MCP registry, and attaches an MCPB bundle** — all via OIDC, no secrets.\n- **Tested in CI.** Each server ships a committed `node:test` suite (unit + integration/security) run on\n  every push.\n\n## Development\n\nThis is an [npm workspaces](https://docs.npmjs.com/cli/using-npm/workspaces) monorepo.\n\n```bash\nnpm install                      # install all workspace dependencies (run once at the root)\nnpm run build                    # build every server\nnpm run build -w servers/notes   # build a single server\nnpm test --workspaces --if-present  # run each server's test suite\nnpm run clean                    # remove all build output\n```\n\n## Adding a new server\n\n1. Create `servers/<name>/` with its own `package.json` (unique npm `name`) and a `tsconfig.json` that `extends: \"../../tsconfig.base.json\"`.\n2. Put source in `servers/<name>/src/`.\n3. Run `npm install` at the root so the workspace picks it up.\n4. Add a row to the [Servers](#servers) table above.\n\nAll servers follow the [naming standard](NAMING.md) (`@abhishekmcp/<slug>`). See [CONTRIBUTING.md](CONTRIBUTING.md) for detailed guidelines.\n\n## Publishing\n\nReleases are automated. Cutting a GitHub Release tagged `<server>-v<version>` triggers\n[`publish.yml`](.github/workflows/publish.yml), which — authenticated entirely via GitHub OIDC (no\n`NPM_TOKEN`) — publishes the package to **npm with provenance**, registers it on the **official MCP\nregistry**, and **builds + attaches the MCPB bundle** to the release.\n\n```bash\n# bump servers/<name>/package.json, commit, then:\ngh release create <name>-v<version> --title \"<name> v<version>\" --notes \"…\"\n```\n\n## Contributing\n\nContributions are welcome! Please read [CONTRIBUTING.md](CONTRIBUTING.md) and our [Code of Conduct](CODE_OF_CONDUCT.md). Found a security issue? See [SECURITY.md](SECURITY.md).\n\n## License\n\n[MIT](LICENSE) © Abhishek\n",
  "bytes": 8179,
  "sha": "922579f034c4f7e2f89871b63c4826eff970769b30a6f6378d14605a0d29b059",
  "repo_slug": "abhishekkumar2021/mcp-suite",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_github_abhishekkumar2021_files_3c3c0ed0/readme"
}