A repository that has no database gains nothing from a database tool sitting in its context on every turn, and this is packaged so it does not have to. The defaults lean the right way — read-only until you ask otherwise, an allowlist on the shell, credentials from the environment rather than the config file. If you end up wanting something the set does not cover, the authoring helper is the actual product: the shape of a tool here is small enough that adding one is not a project.
A toolkit rather than a single server: each capability ships as its own standalone CLI that you install and register independently, plus a helper for writing your own. The premise is that an agent asked "where do we handle Stripe webhooks?" should query a tool instead of reading the repository until the context window fills.
- Semantic and keyword search across a codebase, backed by vector embeddings rather than an external search cluster — `mcp-code-search`
- Natural-language querying of PostgreSQL, MySQL and SQLite, read-only unless you opt out — `mcp-database`
- A documentation server that indexes local Markdown, a Notion workspace or any URL — `mcp-docs`
- OpenAPI introspection, loading a spec so the agent can browse and call the endpoints it describes — `mcp-openapi`
- Git history as a queryable surface: commits, diffs, blame and branches — `mcp-git`
- Sandboxed shell execution governed by an allowlist config rather than arbitrary command execution — `mcp-shell`
- Persistent project memory for the decisions, patterns and constraints that otherwise get re-explained every session — `mcp-memory`
- An interactive setup command that asks which servers you want, takes your credentials, and prints a ready-to-paste client config block
- A server-authoring helper so a new tool is a name, a description, a schema and a function — and a scaffolding command that generates the project around it
Node.js 18+ or Python 3.10+. Install paths exist for all three of npx, a global npm install and pip, each followed by the init command. Credentials come from environment variables or your existing `.env` — the code-search server reads `OPENAI_API_KEY` for embeddings and the database server reads `DATABASE_URL`; the docs server takes a source path and needs neither. Every server is read-only by default and write access requires an explicit `--writable` flag; the shell server takes its allowlist from its own config file. Each is independently installable, so you can register one or all of them.
One command plus a key — mcp-code-search --root ., then supply credentials
