picomcpv0.1.2
FIG. 01 — Model Context Protocolv0.1.2 · MIT

MCP servers,
at pico scale.

Give any LLM real tools in one file. Typed with your schema library, served over stdio or HTTP, running on Node, Bun, Deno and the edge.

Read the docs →
server.ts9 lines
import { pico } from "picomcp";
import { z } from "zod";

pico({ name: "weather" })
  .tool("forecast", {
    input: z.object({ city: z.string() }),
    run: ({ city }) => getForecast(city),
  })
  .serve(); // stdio — or .serve({ http: 3000 })
  1. A
    One factorypico() returns a server. Chain tools, resources and prompts. No classes, no decorators, no config file.
  2. B
    Schema in, types outZod, Valibot or ArkType through Standard Schema. Typed handlers, generated JSON Schema, readable errors.
  3. C
    Any transportstdio for desktop clients, Streamable HTTP for the web. A Web-standard fetch handler for everything else.

Spec sheet

FIG. 02 — what ships in the box
Bundle3.9 kBminified and gzipped, types included
Dependencies0Standard Schema types are inlined
RuntimesNode ≥ 22 · Bun · Deno · Workersno Node built-ins in the core
Transportsstdio · Streamable HTTPplus server.fetch and server.handle
SchemasZod · Valibot · ArkTypeor any Standard Schema
ProtocolMCP 2025-11-25tested against the official SDK client
Plugs into any MCP client
  • Claude
  • Claude Code
  • Cursor
  • GitHub Copilot
  • Windsurf
  • Zed
  • JetBrains
  • Your agent

Ship a server
before lunch.

★ Star on GitHub →