Если ты строишь MCP-сервер на TypeScript и не хочешь вручную настраивать каждый компонент — есть FastMCP. Он сидит поверх официального SDK и берёт на себя всё, что SDK оставляет тебе «на усмотрение».
Зачем, если есть официальный SDK?
Официальный SDK даёт фундаментальные блоки, но оставляет тебе:
- инициализацию и конфигурацию всех серверных компонентов
- обработку соединений, инструментов и ответов
- ресурсы, шаблоны ресурсов, промпты
- встраивание изображений, аудио и прочего контента
FastMCP закрывает эти дыры: вся инфраструктура автоматически, встроенные best practices, обработка ошибок из коробки. Сам занимаешься только логикой своего MCP.
Когда брать FastMCP: хочешь быстро запустить MCP-сервер без погружения в детали реализации. Когда брать официальный SDK: нужен максимальный контроль или специфическая архитектура.
Что умеет
- Простое определение Tools, Resources и Prompts
- Аутентификация и передача заголовков через контекст
- Отслеживание Session ID и Request ID
- Image и Audio контент
- Логирование и обработка ошибок
- HTTP Streaming с SSE-совместимостью
- HTTPS с поддержкой mutual TLS
- Кастомные HTTP-роуты (REST API, вебхуки, admin-интерфейсы)
- Edge Runtime: Cloudflare Workers, Deno Deploy и др.
- Stateless-режим для serverless-деплоев
- CORS включён по умолчанию
- Progress notifications и стриминг вывода
- Prompt argument auto-completion
- Sampling, Roots, Health-check endpoint
- CLI для тестирования и отладки
Быстрый старт
Минимальный рабочий сервер выглядит вот так:
import { FastMCP } from "fastmcp";
import { z } from "zod";
const server = new FastMCP({
name: "My Server",
version: "1.0.0",
});
server.addTool({
name: "add",
description: "Add two numbers",
parameters: z.object({
a: z.number(),
b: z.number(),
}),
execute: async (args) => {
return String(args.a + args.b);
},
});
server.start({
transportType: "stdio",
});
Проверить можно прямо в терминале:
npx fastmcp dev src/examples/addition.ts
# или через MCP Inspector:
npx fastmcp inspect src/examples/addition.ts
HTTP Streaming и HTTPS
Если нужен удалённый доступ — запускаешь сервер с транспортом httpStream:
server.start({
transportType: "httpStream",
httpStream: {
port: 8080,
},
});
Поднимается HTTP Streaming на http://localhost:8080/mcp и SSE на http://localhost:8080/sse одновременно.
Для HTTPS добавляешь SSL-опции:
server.start({
transportType: "httpStream",
httpStream: {
port: 8443,
sslCert: "./path/to/cert.pem",
sslKey: "./path/to/key.pem",
sslCa: "./path/to/ca.pem", // опционально, для mutual TLS
},
});
Есть и готовый boilerplate для быстрого старта своего MCP-сервера. Для Python-разработчиков существует отдельная реализация — FastMCP для Python. 🦆

