mcp-helmet
mcp-helmet
Промышленное промежуточное ПО для серверов MCP. Аутентификация, сессии, проверки работоспособности, корректное завершение работы, эргономика транспорта. Компонуемое промежуточное ПО, идейно заимствованное из
helmetдля Express.
mcp-helmet дополняет официальный @modelcontextprotocol/sdk тем, чего в нем нет: автоматическое определение транспорта, обертки контента, проверки работоспособности, корректное завершение работы, управление сессиями и промежуточное ПО для аутентификации. Один пакет. Компонуемый. Отключайте то, что вам не нужно. Переходите от «hello world» к продакшену за минуты, а не дни.
npm install mcp-helmet @modelcontextprotocol/sdk zodPeer-зависимости:
@modelcontextprotocol/sdk^1.29.0,zod^3.22.0 или ^3.25 (v4).zod-to-json-schemaявляется опциональной peer-зависимостью для пользователей Zod v3.
Быстрый старт
Самый быстрый способ — использовать генератор проектов:
npx mcp-helmet init my-server --transport http --auth bearer
cd my-server
npm install
npm run devВы получите работающий сервер MCP с healthCheck(), gracefulShutdown(), опциональной аутентификацией, многоэтапным Dockerfile и tsconfig с проверкой типов. Используйте флаги, чтобы пропустить части (--no-docker, --no-health и т. д.), или настройте их позже.
Или подключите вручную:
import { createServer } from "mcp-helmet";
import { z } from "zod";
const server = createServer({ name: "hello", version: "1.0.0" });
server.tool("greet", { name: z.string() }, async ({ name }) => {
return `Hello, ${name}!`;
});
await server.start();Вот и все. Никакой настройки транспорта, создания массивов контента или обработчиков сигналов. Запустите его:
# Local development (stdio, the default)
npx tsx src/index.ts
# Production (HTTP)
MCP_TRANSPORT=http PORT=3000 node dist/index.jsТот же код, оба режима.
Related MCP server: mcp-server-toolkit
Аутентификация в 6 строк
Проверка Bearer-токена, при этом проверенный субъект доступен внутри любого обработчика инструментов:
import { createServer, bearerAuth, getAuthContext } from "mcp-helmet";
const server = createServer({ name: "secure", version: "1.0.0" });
server.use(bearerAuth({
verify: async (token) => {
const claims = await verifyJwt(token); // your call
return { user: claims.sub, scopes: claims.scope?.split(" ") ?? [] };
},
}));
server.tool("whoami", {}, async () => {
const auth = getAuthContext();
return { user: auth?.user, scopes: auth?.scopes };
});
await server.start();Сигнатура обработчика инструментов с одним аргументом остается прежней — getAuthContext() считывает данные из AsyncLocalStorage, поэтому это работает с любой глубины асинхронной цепочки.
Почему это существует
Мы проанализировали 30 промышленных серверов MCP и 320 тикетов на GitHub в официальных SDK. Постоянно повторялись три паттерна:
Каждый сервер переписывает одни и те же 20-40 строк настройки. Выбор транспорта, обертка контента, форматирование ошибок, обработка сигналов. SDK дает вам строительные блоки; это дает вам готовый дом.
Серверы, работающие локально, ломаются в продакшене. Docker-контейнеры завершаются после одного ответа, поды Kubernetes теряют сессии, нет проверки работоспособности для балансировщиков нагрузки. 52% удаленных эндпоинтов MCP в недавнем исследовании были нерабочими.
Никто не может разобраться с аутентификацией. «Как мне получить доступ к Bearer-токену внутри моего инструмента?» — самый частый вопрос в обоих репозиториях SDK.
mcp-helmet решает эти проблемы с помощью компонуемого промежуточного ПО, которое расширяет SDK, не заменяя его.
Статус
v0.1.0-alpha — функциональность завершена. В настоящее время реализовано:
✅
createServer()с автоматической оберткой контента (строка, объект, Content[])✅ Автоматическое определение транспорта через переменную окружения
MCP_TRANSPORT✅ Шим совместимости Zod v3 + v4
✅ Система компонуемого промежуточного ПО (
server.use(mw))✅ Промежуточное ПО
healthCheck()✅ Промежуточное ПО
gracefulShutdown()✅ Промежуточное ПО
bearerAuth()иapiKeyAuth()сgetAuthContext()на основе AsyncLocalStorage✅ Промежуточное ПО
rateLimiter()(скользящее окно, на основе IP или ключа, стандартные заголовки 429)✅ CLI-генератор
npx mcp-helmet init+ шаблон Docker
Стабильная версия v0.1.0 выйдет после того, как альфа-цикл пройдет 30+ дней реального использования. v0.2 находится в ROADMAP: хранилище сессий на базе Redis, промежуточное ПО для структурированного логирования, порт для Python через плагин FastMCP.
Как это соотносится с официальным SDK
mcp-helmet — это не форк, не альтернатива и не замена. Это слой удобства.
Задача | Официальный SDK | mcp-helmet |
Реализация протокола | Да | Нет, делегирует SDK |
Классы транспорта | Да | Нет, оборачивает транспорты SDK |
Регистрация инструментов/ресурсов/промптов | Да | Да, более легкий API |
Потоки OAuth-сервера | Да (в разработке v2) | Нет, вне области видимости |
Промежуточное ПО Bearer/API-key | Привязано к Express в v2 | Агностично к транспорту, компонуемое |
Проверки работоспособности | Нет | Да, запланировано |
Внешнее хранилище сессий | Нет | Временное решение до появления SEP в апстриме |
Шаблоны Docker/развертывания | Нет | Да, запланировано |
SDK является peer-зависимостью. Вы используете свою версию. Если SDK добавляет функции, которые пересекаются, промежуточное ПО набора инструментов становится тонким прокси-слоем.
Требования
Node.js 20+
@modelcontextprotocol/sdk^1.29.0TypeScript 5.4+ (рекомендуется, не обязательно)
Zod 3.22+ или 3.25+ (v4 через подпуть
zod/v4)
Участие в разработке
PR и тикеты приветствуются. См. CONTRIBUTING.md для ознакомления с настройкой, тестированием и соглашениями по PR.
Безопасность
См. SECURITY.md для получения информации о порядке ответственного раскрытия информации.
Лицензия
MIT
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
This server cannot be deployed
Maintenance
Related MCP Connectors
An MCP server for Arcjet - the runtime security platform that ships with your AI code.
The official MCP Server for the Mux API
MCP server for mandates, delegation, policy-gated execution, credential grants, and audit.
MCP server for progressive tool usage at any scale (see https://klavis.ai)
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceA production-ready MCP server scaffold that features built-in authentication, Docker support, and a comprehensive CI/CD release pipeline. It provides a standardized template for deploying servers with multi-transport support and configurable read-only modes.MIT
- AlicenseNot gradedqualityDmaintenanceProduction-ready MCP server starter with authentication, observability, and a plugin system for building and deploying MCP servers quickly.MIT
- AlicenseAqualityDmaintenanceA production-ready foundation for building secure, observable MCP servers with built-in authentication, rate limiting, and reference tools like database-query and semantic-search.1521 npmMIT
- AlicenseNot gradedqualityBmaintenanceA production-minded MCP server kit that provides OAuth 2.1/PKCE authentication, rate limiting, scope-gated tools, and two-phase confirmation for building secure MCP servers with custom tools, identity, and storage.15 npmMIT