picomcpv0.1.2
Меню · Введение
Начало работы

Введение

Что такое picomcp, чем он не является, и десять строк, которые всё объясняют.

Открыть .md Редактировать на GitHub

Это перевод. Эталоном считается английская версия.

picomcp — это TypeScript-фреймворк для создания серверов Model Context Protocol. MCP-сервер даёт ИИ-приложению (Claude, Cursor, VS Code, вашему собственному агенту) инструменты, которые оно может вызывать, ресурсы, которые оно может читать, и промпты, которые оно может предложить пользователю.

ts
import { pico } from "picomcp";
import { z } from "zod";

pico({ name: "weather" })
  .tool("forecast", {
    description: "Get the forecast for a city.",
    input: z.object({ city: z.string() }),
    run: ({ city }) => getForecast(city),
  })
  .serve();

Это полноценный сервер. Запустите его командой node server.ts и подключите к любому MCP-клиенту.

Почему picomcp#

  • Маленький. Около 4 кБ после gzip, ноль зависимостей. Всю библиотеку можно держать в голове и проверить за одно ревью.
  • Типы из вашей схемы. Передайте схему Zod, Valibot или ArkType. Обработчик получает типизированные аргументы, клиент получает JSON Schema, а некорректные вызовы получают понятную ошибку.
  • Работает везде. Node 22+, Bun, Deno, Cloudflare Workers и любая среда с fetch. В ядре нет встроенных модулей Node.
  • Два транспорта, один сервер. stdio для десктопных клиентов, Streamable HTTP для удалённых серверов. Переключение — одна опция.
  • Тестируется без клиента. server.call("forecast", { city: "Lyon" }) вызывает инструмент прямо в процессе, с полной типизацией.
  • Проверен официальным SDK. Тесты управляют picomcp через @modelcontextprotocol/sdk на обоих транспортах.

Чем picomcp не является#

picomcp реализует серверную часть MCP, и только её. В нём нет клиента, цикла агента или SDK для LLM. Он ориентирован на ту часть протокола, что работает без состояния, по схеме «запрос — ответ»: именно она нужна большинству серверов. Возможности, которые инициирует сервер, например sampling и elicitation, пока не поддерживаются. Точный список — в разделе Покрытие протокола.

Что дальше#