Labsco
naveenayalla1-CS50 logo

mcp-server-toolkit

β˜… 2

from naveenayalla1-CS50

uild plug-and-play MCP servers for code search, docs, databases, and more. Integrates with Claude Code, Cursor, and Windsurf.

πŸ”₯πŸ”₯Account requiredNeeds API keys
<div align="center">

πŸ”Œ MCP Server Toolkit

Build plug-and-play MCP servers for any dev workflow β€” code search, docs, databases, and more.

npm version MCP License: MIT TypeScript Works with Claude Code Works with Cursor Works with Windsurf PRs Welcome Stars

Give any AI coding agent a direct line into your codebase, docs, or database β€” in under 60 seconds.

Quick Start Β· Servers Β· Build Your Own Β· Discord Β· Changelog


Demo: Claude Code querying a codebase via MCP Server Toolkit

</div>

Why this exists

When you ask Claude Code "where do we handle Stripe webhooks?" it has two bad options:

  • Option A β€” Read every file in the repo. Slow, expensive, blows the context window on any real codebase.
  • Option B β€” Guess based on the first few files it sees. Wrong half the time.

MCP Server Toolkit gives agents a third option: ask the right tool directly. Semantic code search, live database queries, doc lookups, API introspection β€” all surfaced through the Model Context Protocol standard, so any MCP-compatible client can use them without any changes to your existing code.


✨ Features

  • πŸ” Semantic code search β€” Find the right function, file, or pattern across your entire repo in milliseconds. Powered by vector embeddings, no Elasticsearch required.
  • πŸ“š Docs server β€” Give your agent instant access to any documentation site, local Markdown files, or Notion workspace.
  • πŸ—„οΈ Database server β€” Natural language β†’ SQL for PostgreSQL, MySQL, and SQLite. Read-only by default, writable with an explicit flag.
  • 🌐 API introspection server β€” Load any OpenAPI/Swagger spec and let your agent browse and call endpoints with type safety.
  • ⚑ One-command setup β€” Every server ships as a standalone CLI. npx and pip install paths included.
  • πŸ”’ Zero-config secrets β€” Reads from your existing .env file or environment variables. Nothing new to learn.
  • 🧩 Works everywhere β€” Claude Code, Cursor, Windsurf, Cline, VS Code Copilot, Codex CLI, Gemini CLI, and every other MCP-compatible client.
  • πŸ› οΈ Extensible β€” The createServer() helper reduces a new tool to ~15 lines of TypeScript. Scaffold a custom server in 30 seconds.

πŸ“¦ Included Servers

ServerInstallWhat it does
mcp-code-searchnpx mcp-code-searchSemantic + keyword search across your codebase
mcp-databasenpx mcp-databaseNatural language queries for Postgres, MySQL, SQLite
mcp-docsnpx mcp-docsIndex and query local Markdown, Notion, or any URL
mcp-openapinpx mcp-openapiBrowse and call endpoints from any OpenAPI spec
mcp-gitnpx mcp-gitQuery commits, diffs, blame, and branches
mcp-shellnpx mcp-shellSandboxed shell execution with allowlist controls

All servers are independently installable β€” use one or all of them.


πŸ”§ Build Your Own Server

Scaffold a new server in 30 seconds:

mcp new my-server --template typescript

This generates:

my-server/
β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ index.ts        # Entry point β€” register your tools here
β”‚   └── tools/
β”‚       └── example.ts  # Your first tool
β”œβ”€β”€ package.json
└── README.md

A minimal tool looks like this:

import { createServer, tool, z } from 'mcp-server-toolkit';

const server = createServer({ name: 'my-server', version: '1.0.0' });

server.addTool(
  tool({
    name: 'get_weather',
    description: 'Get current weather for a city',
    input: z.object({ city: z.string() }),
    run: async ({ city }) => {
      const data = await fetchWeather(city);
      return { content: `${city}: ${data.temp}Β°C, ${data.condition}` };
    },
  })
);

server.start();

That's the whole thing. Ship it.


πŸ“ Project Structure

mcp-server-toolkit/
β”œβ”€β”€ packages/
β”‚   β”œβ”€β”€ core/           # createServer(), tool(), z helpers
β”‚   β”œβ”€β”€ code-search/    # Semantic codebase search server
β”‚   β”œβ”€β”€ database/       # Natural language DB query server
β”‚   β”œβ”€β”€ docs/           # Documentation indexing server
β”‚   β”œβ”€β”€ openapi/        # OpenAPI spec introspection server
β”‚   β”œβ”€β”€ git/            # Git history and diff server
β”‚   └── shell/          # Sandboxed shell server
β”œβ”€β”€ examples/
β”‚   β”œβ”€β”€ claude-code/    # Drop-in config for Claude Code
β”‚   β”œβ”€β”€ cursor/         # Drop-in config for Cursor
β”‚   └── custom-server/  # Starter template for custom tools
β”œβ”€β”€ docs/               # Full documentation
└── CONTRIBUTING.md

πŸ—ΊοΈ Roadmap

  • Code search (semantic + keyword)
  • PostgreSQL / MySQL / SQLite server
  • Docs server (Markdown + URL crawl)
  • OpenAPI introspection server
  • Notion server
  • Linear / Jira server
  • Supabase + PlanetScale managed DB support
  • Web UI for browsing registered tools
  • Auto-generated tool descriptions from schema

Want something on this list prioritised? Open an issue and add a πŸ‘.


🀝 Contributing

Contributions are what make this project worth starring. Here's how to get involved:

First time?

  1. Look for issues labelled good first issue β€” these are scoped small on purpose.
  2. Comment on the issue to claim it before starting.
  3. Fork the repo, make your changes, open a PR.

Adding a new server

The fastest path to a merged PR:

# Clone and install deps
git clone https://github.com/naveenayalla1-CS50/mcp-server-toolkit
cd mcp-server-toolkit
npm install

# Scaffold your server
npm run new-server -- --name my-awesome-server

# Run tests
npm test

# Submit your PR

Each new server needs:

  • A README.md explaining what it does and the one-line install command
  • At least one test in __tests__/
  • An example config block for Claude Code / Cursor

Guidelines

  • Keep each tool focused on doing one thing well β€” resist scope creep.
  • Never store credentials in code β€” always read from env vars.
  • Add your server to the table in the main README and to the packages/ list.

Code of Conduct

Be excellent to each other. See CODE_OF_CONDUCT.md.


πŸ” Security

  • All servers are read-only by default. Write access requires an explicit --writable flag.
  • Credentials are read from environment variables only β€” never hardcoded or logged.
  • The shell server uses an allowlist (mcp-shell.config.json) β€” no arbitrary command execution.
  • Found a vulnerability? Please email security@naveenayalla1-CS50.dev instead of opening a public issue.

πŸ“„ License

MIT Β© 2026 naveenayalla1-CS50

You're free to use this in personal projects, commercial products, and anything in between. Attribution appreciated but not required.


<div align="center">

Share on Twitter Β· Open an issue

Built with ❀️ for the agent era.

</div>