Главная · Скиллы · typescript-mcp-server-generator

typescript-mcp-server-generatorOfficialгенератор MCP-сервера TypeScript GitHub Copilot

github/awesome-copilot

Генератор MCP-сервера на TypeScript.

Установка

npx -y skills add github/awesome-copilot --skill typescript-mcp-server-generator --agent claude-code

Генерация MCP-сервера на TypeScript

Создайте полноценный сервер Model Context Protocol (MCP) на TypeScript по следующим спецификациям:

Требования

  1. Структура проекта: создайте новый TypeScript/Node.js-проект с правильной структурой каталогов
  2. NPM-пакеты: включите @modelcontextprotocol/sdk, zod@3 и либо express (для HTTP), либо поддержку stdio
  3. Конфигурация TypeScript: корректный tsconfig.json с поддержкой ES-модулей
  4. Тип сервера: выберите между HTTP (с транспортом Streamable HTTP) или stdio-сервером
  5. Инструменты: создайте хотя бы один полезный инструмент с валидацией схемы
  6. Обработка ошибок: включите всестороннюю обработку ошибок и валидацию

Детали реализации

Настройка проекта

  • Инициализируйте через npm init и создайте package.json
  • Установите зависимости: @modelcontextprotocol/sdk, zod@3 и пакеты под транспорт
  • Настройте TypeScript с ES-модулями: "type": "module" в package.json
  • Добавьте dev-зависимости: tsx или ts-node для разработки
  • Создайте корректный .gitignore

Конфигурация сервера

  • Используйте класс McpServer для высокоуровневой реализации
  • Задайте имя и версию сервера
  • Выберите подходящий транспорт (StreamableHTTPServerTransport или StdioServerTransport)
  • Для HTTP: настройте Express с middleware и обработкой ошибок
  • Для stdio: используйте StdioServerTransport напрямую

Реализация инструментов

  • Используйте метод registerTool() с описательными именами
  • Определяйте схемы через zod для валидации ввода и вывода
  • Указывайте ясные поля title и description
  • Возвращайте и content, и structuredContent в результатах
  • Реализуйте обработку ошибок через try-catch
  • Поддерживайте асинхронные операции, где уместно

Настройка Resource/Prompt (опционально)

  • Добавляйте ресурсы через registerResource() с ResourceTemplate для динамических URI
  • Добавляйте промпты через registerPrompt() со схемами аргументов
  • Рассмотрите поддержку автодополнения для лучшего UX

Качество кода

  • Используйте TypeScript для типобезопасности
  • Последовательно следуйте паттернам async/await
  • Реализуйте корректную очистку на событиях закрытия транспорта
  • Используйте переменные окружения для конфигурации
  • Добавляйте инлайн-комментарии для сложной логики
  • Структурируйте код с ясным разделением ответственности

Типы инструментов для рассмотрения

  • Обработка и преобразование данных
  • Интеграции с внешними API
  • Файловые операции (чтение, поиск, анализ)
  • Запросы к базам данных
  • Анализ текста или суммаризация (с sampling)
  • Получение системной информации

Опции конфигурации

Для HTTP-серверов: конфигурация порта через переменные окружения; настройка CORS для браузерных клиентов; управление сессиями (stateless vs stateful); защита от DNS rebinding для локальных серверов.

Для stdio-серверов: корректная работа со stdin/stdout; конфигурация на основе окружения; управление жизненным циклом процесса.

Руководство по тестированию

  • Объясните, как запускать сервер (npm start или npx tsx server.ts)
  • Дайте команду MCP Inspector: npx @modelcontextprotocol/inspector
  • Для HTTP-серверов укажите URL подключения: http://localhost:PORT/mcp
  • Включите примеры вызовов инструментов
  • Добавьте советы по устранению частых проблем

Дополнительные возможности

  • Поддержка sampling для инструментов на базе LLM
  • Запрос ввода пользователя (elicitation) для интерактивных процессов
  • Динамическая регистрация инструментов с включением/отключением
  • Дебаунс уведомлений при массовых обновлениях
  • Resource links для эффективных ссылок на данные

Сгенерируйте полноценный готовый к продакшену MCP-сервер с исчерпывающей документацией, типобезопасностью и обработкой ошибок.

Из того же репозитория