{
  "markdown": "# ship-mcp\n\n**The clean TypeScript starter for building MCP servers.** Zod-validated tools, unit tests, MCP Inspector wired up, one-command dev loop. Clone it, rename two strings, ship your server.\n\n```bash\nnpx degit colossal1598/ship-MCP my-server && cd my-server && npm i && npm run dev\n```\n\n## Why this exists\n\nEvery MCP server starts with the same 90 minutes of setup: SDK wiring, stdio transport, schema validation, figuring out why `console.log` breaks the protocol (logs go to stderr — already handled here), and getting the Inspector attached. This repo is that 90 minutes, done properly, once.\n\n## What's inside\n\n- **`src/index.ts`** — server wiring: register tools, connect stdio transport. ~40 lines, no magic.\n- **`src/tools.ts`** — tool logic decoupled from wiring so it's unit-testable. Two examples: `echo` (hello-world) and `fetch_json` (real async tool with error handling).\n- **`src/tools.test.ts`** — Vitest tests that run without spawning the server.\n- **`npm run inspect`** — opens the official MCP Inspector against your dev server.\n\n## Quickstart\n\n```bash\nnpm install\nnpm run dev        # run the server (stdio)\nnpm test           # unit tests\nnpm run inspect    # poke tools in the MCP Inspector UI\nnpm run build      # compile to dist/\n```\n\n### Use it from Claude Desktop / Claude Code\n\n```json\n{\n  \"mcpServers\": {\n    \"my-server\": {\n      \"command\": \"node\",\n      \"args\": [\"/absolute/path/to/dist/index.js\"]\n    }\n  }\n}\n```\n\n## Add your own tool (30 seconds)\n\n```ts\n// src/tools.ts\nexport const greetInput = { name: z.string() };\nexport async function greet({ name }: { name: string }) {\n  return { content: [{ type: \"text\" as const, text: `Hello, ${name}!` }] };\n}\n\n// src/index.ts\nserver.registerTool(\"greet\", { description: \"Greet someone\", inputSchema: greetInput }, greet);\n```\n\n---\n\n## Want to ship a *paid* MCP server?\n\nFewer than 5% of the 11,000+ MCP servers out there make money — not because the demand isn't there, but because the billing plumbing is genuinely annoying. **[Ship MCP Pro](https://payhip.com/b/FWSlg)** is this starter plus everything the free version deliberately leaves out:\n\n- 🔑 **License-key gating** — Payhip & Gumroad license verification middleware; sell keys, server validates them\n- 📊 **Usage metering + per-key rate limits** — free tier / paid tier out of the box\n- 🌐 **Streamable HTTP transport** — deploy as a remote server (Docker + Railway/Fly guides included)\n- ✅ **CI pipeline**, expanded test suite, production error handling\n- 📣 **Launch kit** — the exact directory-submission checklist + listing templates that get servers 10x more installs\n\n*One-time $49, MIT-licensed output, free updates.* → **[Get Ship MCP Pro](https://payhip.com/b/FWSlg)**\n\n---\n\nMIT © Argo Navis\n\n> **Note on the SDK pin:** this starter pins `@modelcontextprotocol/server@2.0.0-beta.5` exactly — the v2 SDK for the 2026-07-28 spec. When the stable `2.0.0` lands, bump the pin and re-run the tests; the exact pin is there so an upstream beta change can't silently break your build.\n",
  "bytes": 3030,
  "sha": "7d02835492b9158e69cd0a101d6500a763b1fe9dd67ae319a1970430be95bbbf",
  "repo_slug": "colossal1598/ship-mcp",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_github_colossal1598_ship_mcp_696d6e81/readme"
}