SQL

Read-only SQL querying + schema introspection over Postgres & SQLite, with a gated write mode.

DatabasesTypeScriptv0.1.0

🧰 mcp-suite

A collection of Model Context Protocol servers, built in TypeScript.

CI License: MIT PRs Welcome Node.js

@abhishekmcp/notes @abhishekmcp/files @abhishekmcp/github @abhishekmcp/git

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

ServerDescriptionStatus
notesLocal markdown notes: ranked full-text and semantic search, tags, todos, a [[wiki-link]] knowledge graph, daily notes + templates, and slash-command workflows (prompts)βœ… Stable
filesSandboxed local filesystem: read, glob + content search, token-efficient edits, copy/move, soft-delete trash, zip, checksums, and dedupβœ… Stable
githubGitHub: search repos/code/issues, read repos/issues/PRs/files, notifications, create issues β€” OAuth device flow or tokenβœ… Stable
gitGit: status, log, diff, file history, branches/tags, gated stage/commit, and remote clone/fetch/pull/push β€” pure-JS, no git binaryβœ… Stable
sqlSQL databases: read-only query + schema introspection over Postgres & SQLite, gated writesβœ… Stable
httpHTTP/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.

ServerClaude Code pluginnpm (any client)Claude Desktop (MCPB)MCP registry
notes/plugin install notesnpx -y @abhishekmcp/notesdrag notes-*.mcpb from the latest releaseio.github.Abhishekkumar2021/notes
files/plugin install filesnpx -y @abhishekmcp/filesdrag files-*.mcpbio.github.Abhishekkumar2021/files
github/plugin install githubnpx -y @abhishekmcp/githubdrag github-*.mcpbio.github.Abhishekkumar2021/github
git/plugin install gitnpx -y @abhishekmcp/gitdrag git-*.mcpbio.github.Abhishekkumar2021/git
sql/plugin install sqlnpx -y @abhishekmcp/sqldrag sql-*.mcpbio.github.Abhishekkumar2021/sql
http/plugin install httpnpx -y @abhishekmcp/httpdrag http-*.mcpbio.github.Abhishekkumar2021/http

notes defaults to ~/notes; files requires FS_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: notes uses MiniSearch + WebAssembly embeddings, sql uses the sql.js WASM SQLite engine, and files uses fast-glob instead of ripgrep. npm audit stays 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:test suite (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

  1. Create servers/<name>/ with its own package.json (unique npm name) and a tsconfig.json that extends: "../../tsconfig.base.json".
  2. Put source in servers/<name>/src/.
  3. Run npm install at the root so the workspace picks it up.
  4. 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

Installation

Source-derived launch command. Check the maintainer’s required arguments and credentials before running:

bash
npx -y @abhishekmcp/sql

Set up in your AI client

Merge this template into ~/Library/Application Support/Claude/claude_desktop_config.json. Keep existing servers. Add any arguments, credentials, and permissions required by the maintainer; this template has not been install-tested.

json
{
  "mcpServers": {
    "io-github-abhishekkumar2021-sql": {
      "command": "npx",
      "args": [
        "-y",
        "@abhishekmcp/sql"
      ]
    }
  }
}

Restart Claude Desktop completely for changes to take effect. Confirm the server appears connected in the client’s tool list, then try a read-only example from its documentation.

Claude Desktop setup reference

Package

@abhishekmcp/sqlnpm

Compatible MCP Clients

SQL works with any MCP-compatible client. Copy the config snippet from the Configuration section above and add it to the file shown for your client, then restart the application.

  • Claude Desktop~/Library/Application Support/Claude/claude_desktop_config.jsonRestart Claude Desktop completely for changes to take effect.
  • Cursor~/.cursor/mcp.jsonRestart Cursor for changes to take effect.
  • VS Code.vscode/mcp.jsonReload VS Code window for changes to take effect.
  • Windsurf~/.codeium/windsurf/mcp_config.jsonRestart Windsurf for changes to take effect.
  • Claude Code.mcp.jsonSave at the project root, then start Claude Code in that project and review the MCP server approval prompt. Keep real credentials out of shared files.

Learn More