Zero Mcp
zero-mcp
Zero-boilerplate, lightweight and fast MCP server toolkit. Skip the weight of `@modelcontextprotocol/sdk` and start shipping MCP servers in minutes...
0 downloads
v0.2.2
Capabilities
tools
Installation
Quick Install
Install using the MCPSearch CLI (recommended)
mcp install zero-mcpDon't have the CLI? Install it first
Run with npx
Run directly without installing
npx -y zero-mcpManual Configuration
Add to your MCP client configuration file
CClaude Code / Claude Desktop
Add to ~/.claude/claude_desktop_config.json
{
"mcpServers": {
"zero-mcp": {
"command": "npx",
"args": [
"-y",
"zero-mcp"
]
}
}
}CuCursor
Add to ~/.cursor/mcp.json
{
"mcp": {
"servers": {
"zero-mcp": {
"command": "npx",
"args": [
"-y",
"zero-mcp"
]
}
}
}
}VSVS Code / Continue.dev
Add to .vscode/mcp.json or Continue settings
{
"mcpServers": {
"zero-mcp": {
"command": "npx",
"args": [
"-y",
"zero-mcp"
]
}
}
}About
# Zero MCP
> Zero-boilerplate HTTP MCP server toolkit. Skip the weight of `@modelcontextprotocol/sdk` and start shipping MCP tools in minutes.
## Why Zero MCP instead of the official SDK?
The official `@modelcontextprotocol/sdk` ships with **significant overhead**—both in dependencies and performance—while implementing features most developers never use and missing critical conveniences. Zero MCP takes the opposite approach: minimal dependencies, faster cold starts, and ergonomics that get you shipping in minutes.
**What's wrong with the official SDK?**
- **Dependency bloat** – Bundles 12+ packages (Express, CORS middleware, rate limiting, EventSource polyfills, PKCE utilities) even for simple tool servers
- **Performance overhead** – Express-based transport stack adds latency and memory footprint versus native `node:http`
- **Boilerplate hell** – Requires manual Express app setup, transport wiring, session management, and schema registration for every server
- **Missing conveniences** – No Zod integration, no built-in lifecycle hooks, no automatic JSON Schema generation
- **Feature bloat** – Ships stdio transports, SSE streaming, client implementations, and auth flows that 80% of tool servers never touch
**What Zero MCP delivers instead:**
- **2 dependencies total** – Just `zod` and `zod-to-json-schema`; nothing else pollutes your `node_modules`
- **Native performance** – Built-in `node:http` server with zero middleware overhead; ideal for serverless and edge runtimes
- **Instant start** – Instantiate `McpServer`, register tools, call `start()`—no Express config or transport plumbing
- **Zod-first schemas** – Define tool inputs with Zod; JSON Schema generation happens automatically
- **Built-in observability** – Lifecycle hooks for connections, tool calls, and errors work out of the box
- **Production-ready CORS** – Spec-aligned origin validation included for browser MCP clients
- **Focused scope** – Does one thing well: MCP tools over HTTP
Choose the official SDK if you need the full MCP spec (stdio transports, prompts API, auth flows). Choose Zero MCP when you want a fast, lean tool server without the baggage.
## Installation
```bash
npm install zero-mcp zod
```
`zero-mcp` re-exports `z`, but keeping an explicit `zod` dependency avoids bundler surprises.
## Minimal server example
```typescript
import { McpServer, type ToolDefinition, z } from 'zero-mcp';
const server = new McpServer({
name: 'calculator',
version: '1.0.0',
});
server.tool({
name: 'add',
description: 'Simple addition tool.',
schema: z.object({
a: z.number().describe('First addend'),
b: z.number().describe('Second addend'),
}),
handler: async ({ a, b }) => {
return [
{
type: 'text',
text: `The sum of ${a} and ${b} is ${a + b}.`,
},
];
},
});
await server.start({
host: '127.0.0.1',
port: 3000,
path: '/mcp',
});
console.log('Ready on http://127.0.0.1:3000/mcp');
// Later: await server.stop();
```
The server spins up a native HTTP listener and responds to MCP JSON-RPC calls at `/mcp`.
## CORS controls
Zero MCP validates the `Origin` header and emits CORS headers recommended by the MCP HTTP transport guidance. By default, `allowedOrigins` is set to `'*'`, which is convenient for local tooling. For production, pass an explicit allow-list:
```typescript
await server.start({
allowedOrigins: ['https://my-mcp-console.example'],
});
```
## Hooks for diagnostics and analytics
Instrument behaviour by providing hooks either at construction time or when starting the server:
```typescript
const server = new McpServer({
name: 'instrumented',
version: '1.2.0',
hooks: {
onClientConnected(name, version, protocolVersion) {
console.log(`[connect] ${name}@${version} via ${protocolVersion}`);
},
onToolRegistered(toolName) {
console.log(`[register] ${toolName}`);
},
onToolCallStarted(toolName, input) {
console.log(`[call:start] ${toolName}`, input);
},
onToolCallFinished(toolName, input, result, elapsedMs) {
console.log(`[call:finish] ${toolName} in ${elapsedMs.toFixed(1)}ms`);
},
onToolCallError(toolName, input, error) {
console.error(`[call:error] ${toolName}`, error);
},
onToolsListRequested() {
console.log('[tools] list requested');
},
onServerError(error) {
console.error('[server:error]', error);
},
},
});
```
## Example project
A runnable weather server lives in [`example/`](https://github.com/SNIKO/zero-mcp/tree/main/example). Run it locally with:
```bash
npm run example
```
This builds the library, compiles the example, and starts listening on `http://localhost:3005/mcp`.
## License
MIT © Sergii Vashchyshchuk
Reviews
No reviews yet. Be the first to review this package!
Quick Install
Install using the MCPSearch CLI (recommended)
mcp install zero-mcpDon't have the CLI? Install it first
Run with npx
Run directly without installing
npx -y zero-mcpManual Configuration
Add to your MCP client configuration file
CClaude Code / Claude Desktop
Add to ~/.claude/claude_desktop_config.json
{
"mcpServers": {
"zero-mcp": {
"command": "npx",
"args": [
"-y",
"zero-mcp"
]
}
}
}CuCursor
Add to ~/.cursor/mcp.json
{
"mcp": {
"servers": {
"zero-mcp": {
"command": "npx",
"args": [
"-y",
"zero-mcp"
]
}
}
}
}VSVS Code / Continue.dev
Add to .vscode/mcp.json or Continue settings
{
"mcpServers": {
"zero-mcp": {
"command": "npx",
"args": [
"-y",
"zero-mcp"
]
}
}
}Compatible With
Claude CodeCursorWindsurfContinue.dev
Details
- Version
- 0.2.2
- License
- MIT
- Category
- ai
- MCP Version
- 1.0
- Published
- 10/6/2025
- Updated
- 12/3/2025