Des serveurs MCP,
à l’échelle pico.
Donnez de vrais outils à n’importe quel LLM, en un seul fichier. Typé par votre bibliothèque de schémas, servi en stdio ou en HTTP, sur Node, Bun, Deno et l’edge.
server.ts9 lignes
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 })
- AUne seule fabrique
pico()renvoie un serveur. Enchaînez outils, ressources et prompts. Pas de classes, pas de décorateurs, pas de fichier de config. - BUn schéma, des typesZod, Valibot ou ArkType via Standard Schema. Handlers typés, JSON Schema généré, erreurs lisibles.
- CTous les transportsstdio pour les clients de bureau, Streamable HTTP pour le web. Un handler
fetchstandard pour tout le reste.
Fiche technique
FIG. 02 — ce qu’il y a dans la boîteBundle3.9 kBminifié et gzippé, types inclus
Dépendances0les types Standard Schema sont intégrés
RuntimesNode ≥ 22 · Bun · Deno · Workersaucun module Node dans le cœur
Transportsstdio · Streamable HTTPplus
server.fetch et server.handleSchémasZod · Valibot · ArkTypeou tout Standard Schema
ProtocoleMCP 2025-11-25testé avec le client du SDK officiel
Une doc pour les agents aussi
FIG. 03 — lisible par les machines
Compatible avec tous les clients MCP
- Claude
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Zed
- JetBrains
- Votre agent