mcp-shipkit
v1.0.0
Published
Production-ready MCP server starter kit — scaffold, test, and publish MCP servers in minutes
Maintainers
Readme
mcp-shipkit
Production-ready MCP server starter kit. Scaffold, test, and publish MCP servers in minutes.
Features
- 3 Templates: Basic server, REST API wrapper, Database connector
- TypeScript: Full type safety with MCP SDK integration
- Zero Config: Templates compile and run out of the box
- Validation: Check your MCP server before publishing
- Publish: Build + publish to npm in one command
Install
npm install -g mcp-shipkitQuick Start
# Create a new MCP server
mcp-shipkit create my-server
# Pick a template:
# basic — Minimal MCP server with one example tool
# api-wrapper — REST API wrapper with HTTP client
# database — SQLite database connector
cd my-server
npm install
npm run build
npm startTemplates
basic
A minimal MCP server with a single "hello" tool. Start here if you're new to MCP.
my-server/
src/
index.ts — Server setup + transport
tools/example.ts — Example "hello" tool
package.json
tsconfig.json
README.mdapi-wrapper
Wraps any REST API as MCP tools. Includes a configurable HTTP client with auth support.
my-server/
src/
index.ts — Server setup
tools/api-tool.ts — list_items + get_item tools
lib/api-client.ts — Fetch-based REST client
package.json
tsconfig.json
README.mddatabase
Connects to a SQLite database via better-sqlite3. Provides read-only query and table listing tools.
my-server/
src/
index.ts — Server setup
tools/query.ts — query + list_tables tools
lib/db.ts — Database connection wrapper
package.json
tsconfig.json
README.mdCommands
mcp-shipkit create <name>
Scaffold a new MCP server project.
| Flag | Description |
|------|-------------|
| -t, --template <type> | Template: basic, api-wrapper, database (default: interactive) |
| -d, --description <desc> | Project description |
| -a, --author <name> | Author name |
| --no-install | Skip npm install after scaffolding |
mcp-shipkit test [path]
Validate an MCP server project.
Checks:
package.jsonexists and has@modelcontextprotocol/sdkdependencysrc/index.tsexists- TypeScript compiles (
tsc --noEmit) - Build script is defined
| Flag | Description |
|------|-------------|
| --strict | Fail on warnings too |
mcp-shipkit publish [path]
Build and publish your MCP server to npm.
| Flag | Description |
|------|-------------|
| --dry-run | Run npm publish --dry-run |
| --tag <tag> | npm publish tag (default: latest) |
Adding Tools
After scaffolding, add new tools by creating files in src/tools/:
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
import { z } from "zod";
export function registerMyTool(server: McpServer) {
server.tool(
"my-tool",
"Description of what the tool does",
{
input: z.string().describe("Input parameter"),
},
async ({ input }) => ({
content: [{ type: "text", text: `Result: ${input}` }],
})
);
}Then register it in src/index.ts:
import { registerMyTool } from "./tools/my-tool.js";
registerMyTool(server);Testing with Claude Desktop
Add your server to claude_desktop_config.json:
{
"mcpServers": {
"my-server": {
"command": "node",
"args": ["/path/to/my-server/dist/index.js"]
}
}
}License
MIT
