Integrations
Provides a module for NestJS to create an MCP (Model Context Protocol) server with Server-Sent Events (SSE) transport, allowing services to be exposed as tools that clients can discover and execute.
Enables sending continuous progress updates from tools to clients, allowing for tracking of long-running operations with percentage completion indicators.
Integrates Zod schema validation for tool requests, enabling type-safe parameter validation for tools exposed through the MCP server.
Модуль сервера NestJS MCP
Модуль NestJS для легкого предоставления инструментов, ресурсов и подсказок для ИИ из ваших приложений NestJS с использованием протокола контекста модели (MCP) .
с помощью @rekog/mcp-nest
вы определяете инструменты, ресурсы и подсказки способом, привычным в NestJS, и используете всю мощь внедрения зависимостей, чтобы использовать существующую кодовую базу для создания сложных корпоративных серверов MCP.
Функции
- 🚀 Поддержка всех типов транспорта:
- Потоковое HTTP
- HTTP+SSE
- СТДИО
- 🔍 Автоматическое обнаружение и регистрация
tool
,resource
иprompt
- 💯 Проверка вызова инструмента на основе Zod
- 📊 Уведомления о ходе выполнения
- 🔒 Аутентификация на основе Guard
Установка
Быстрый старт
1. Модуль импорта
2. Определите инструменты и ресурсы
Готово!
Быстрый старт для STDIO
Главное отличие заключается в том, что при импорте модуля необходимо указать опцию transport
.
Остальное то же самое, вы можете определить инструменты, ресурсы и подсказки как обычно. Пример автономного приложения NestJS, использующего транспорт STDIO, следующий:
Далее вы можете использовать сервер MCP с клиентом MCP Stdio ( см. пример ) или после сборки проекта вы можете использовать его со следующей конфигурацией клиента MCP:
Конечные точки API
Транспорт HTTP+SSE предоставляет две конечные точки:
GET /sse
: конечная точка соединения SSE (защищена защитой, если настроена)POST /messages
: Конечная точка выполнения инструмента (защищена защитой, если настроена)
Потоковый HTTP-транспорт предоставляет следующие конечные точки:
POST /mcp
: Основная конечная точка для всех операций MCP (выполнение инструмента, доступ к ресурсам и т. д.). В режиме с сохранением состояния создает и поддерживает сеансы.GET /mcp
: Устанавливает потоки Server-Sent Events (SSE) для обновлений в реальном времени и уведомлений о ходе выполнения. Доступно только в режиме с отслеживанием состояния.DELETE /mcp
: Завершает сеансы MCP. Доступно только в режиме с отслеживанием состояния.
Советы
Можно использовать модуль с глобальным префиксом, но рекомендуется исключить эти конечные точки с помощью:
Аутентификация
Вы можете защитить свои конечные точки MCP с помощью стандартных средств защиты NestJS.
1. Создайте стражу
Реализуйте интерфейс CanActivate
. Guard должен обрабатывать проверку запроса (например, проверку JWT, ключей API) и опционально прикреплять информацию о пользователе к объекту запроса.
Ничего особенного, более подробную информацию можно найти в документации NestJS.
2. Применить защиту
Передайте ваши защитные меры в конфигурацию McpModule.forRoot
. Защитные меры будут применены к обеим конечным точкам /sse
и /messages
.
Вот и все! Остальное то же самое, что и у NestJS Guards.
Детская площадка
Каталог playground
содержит примеры для быстрого тестирования функций MCP и @rekog/mcp-nest
. Более подробную информацию см. в playground/README.md
.
Конфигурация
Метод McpModule.forRoot()
принимает объект McpOptions
для настройки сервера. Вот доступные параметры:
Вариант | Описание | По умолчанию |
---|---|---|
name | Обязательно. Имя вашего MCP-сервера. | - |
version | Обязательно. Версия вашего сервера MCP. | - |
capabilities | Дополнительные возможности сервера MCP для рекламы. См. @modelcontextprotocol/sdk . | undefined |
instructions | Дополнительные инструкции для клиента по взаимодействию с сервером. | undefined |
transport | Указывает тип(ы) транспорта, которые необходимо включить. | [McpTransportType.SSE, McpTransportType.STREAMABLE_HTTP, McpTransportType.STDIO] |
sseEndpoint | Путь конечной точки для соединения SSE (используется с транспортом SSE ). | 'sse' |
messagesEndpoint | Конечный путь для отправки сообщений (используется с транспортом SSE ). | 'messages' |
mcpEndpoint | Базовый путь конечной точки для операций MCP (используется с транспортом STREAMABLE_HTTP ). | 'mcp' |
globalApiPrefix | Глобальный префикс для всех конечных точек MCP. Полезно при интеграции в существующее приложение. | '' |
guards | Массив NestJS Guards для применения к конечным точкам MCP для аутентификации/авторизации. | [] |
decorators | Массив декораторов классов NestJS для применения к сгенерированным контроллерам MCP. | [] |
sse | Конфигурация, специфичная для транспорта SSE . | { pingEnabled: true, pingIntervalMs: 30000 } |
sse.pingEnabled | Следует ли включать периодические сообщения SSE ping для поддержания соединения. | true |
sse.pingIntervalMs | Интервал (в миллисекундах) отправки сообщений SSE ping. | 30000 |
streamableHttp | Конфигурация, специфичная для транспорта STREAMABLE_HTTP . | { enableJsonResponse: true, sessionIdGenerator: undefined, statelessMode: true } |
streamableHttp.enableJsonResponse | Если true , позволяет конечной точке /mcp возвращать ответы JSON для непотоковых запросов (например, listTools ). | true |
streamableHttp.sessionIdGenerator | Функция для генерации уникальных идентификаторов сеансов при работе в режиме с сохранением состояния. Требуется, если statelessMode имеет значение false . | undefined |
streamableHttp.statelessMode | Если true , транспорт STREAMABLE_HTTP работает без сохранения состояния (без сессий). Если false , он работает с сохранением состояния, требуя sessionIdGenerator . | true |
This server cannot be installed
remote-capable server
The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.
Модуль NestJS, который позволяет отображать службы как сервер MCP с транспортом событий, отправленных сервером, что упрощает обнаружение и выполнение инструментов клиентами.
- Функции
- Установка
- Быстрый старт
- Быстрый старт для STDIO
- Конечные точки API
- Аутентификация
- Детская площадка
- Конфигурация
Related Resources
Related MCP Servers
- AsecurityFlicenseAqualityAn MCP server implementation that enables interaction with the Unstructured API, providing tools to list, create, update, and manage sources, destinations, and workflows.Last updated -3926
- -securityFlicense-qualityA server that connects MCP clients (Claude, Cursor, Windsurf, etc.) to EventCatalog instances, allowing users to ask questions about their event-driven architecture and get insights about domains, services, and message schemas directly within their development tools.Last updated -2113TypeScript
- -securityFlicense-qualityA TypeScript framework for building Model Context Protocol (MCP) servers with automatic discovery and loading of tools, resources, and prompts.Last updated -67TypeScript
- -securityFlicense-qualityA Node.js module that provides an MCP Server connecting to MCP Bone online service, allowing users to register other MCP Servers, obtain function calling tools in JSON or XML format, and parse completion text into tool calls.Last updated -46JavaScript