К содержанию
Trialix
Начать

MCP-сервер на Node.js

Шаблон на официальном TypeScript SDK MCP (@modelcontextprotocol/sdk 1.32.2, McpServer и StreamableHTTPServerTransport). Общие вопросы (публикация, белый список IP, подключение в Trialix, шлюз во внутреннюю сеть) описаны в README выше.

ФайлЧто в нём
src/server.tsсервер, три инструмента, проверка токена
package.json, package-lock.jsonточные версии зависимостей
tsconfig.jsonнастройки TypeScript
Dockerfileсборка и образ на node:24.21.0-trixie-slim, запуск не от root

Запуск в Docker

docker build -t mcp-orders .
export MCP_TOKEN="$(openssl rand -hex 32)"
docker run --rm -p 127.0.0.1:8000:8000 -e MCP_TOKEN="$MCP_TOKEN" mcp-orders

Запуск без Docker

Нужен Node.js 24, как в образе.

npm ci
npm run build
export MCP_TOKEN="$(openssl rand -hex 32)"
npm start

Сервер слушает http://0.0.0.0:8000/mcp. HTTP-сервер - встроенный node:http, других фреймворков нет.

Переменные окружения

ПеременнаяПо умолчаниюЧто задаёт
MCP_TOKENнет, обязательнатокен доступа, не короче 32 символов
MCP_HOST0.0.0.0адрес, на котором слушает сервер
MCP_PORT8000порт

Где менять код

  • Данные. Класс OrderStore: методы search, get, create. Методы уже асинхронные: замените тела запросами к своей БД (например, pg) или API (fetch), в комментариях есть примеры. Если оставить сигнатуры, инструменты менять не придётся.
  • Инструменты. Вызовы server.registerTool в buildServer(). Описание для модели - description, описания параметров - .describe() у схем zod в inputSchema. Схема ответа outputSchema необязательна, но помогает модели понять, что вернётся.
  • Чтение или запись. annotations.readOnlyHint: true для инструментов, которые ничего не меняют, false для остальных. Вызов инструмента записи Trialix выполняет только после подтверждения сотрудника.
  • Ошибки. return fail('понятный текст'): ответ с isError: true, модель увидит текст и сможет исправить запрос.
  • Описание сервера для модели. instructions во втором аргументе new McpServer(...).

Сервер работает без сессий: на каждый запрос создаются свой McpServer и транспорт, поэтому подключения к БД и клиенты API создавайте один раз при старте, а не внутри buildServer().

Обновление SDK

Поднимите версию @modelcontextprotocol/sdk в package.json, выполните npm install, соберите образ и проверьте tools/list и tools/call запросами из README выше.

Источник: docs/developers/mcp-templates/node/README.md в репозитории Trialix