MCP Boilerplate

MIT License
1
2

Integrations

  • Allows loading environment variables from a .env file for server configuration, including port, API key, and host settings.

  • Provides development mode with automatic server restarting for a smoother development experience.

  • Enables production deployment with process management capabilities for improved stability and monitoring.

Шаблон MCP: сервер контекстного протокола модели

Этот сервер реализует Model Context Protocol (MCP) для глобального использования в качестве шаблона. Он обеспечивает стандартизированный способ подключения моделей ИИ к различным источникам данных и инструментам с использованием Model Context Protocol.

Функции

  • Реализует транспорт MCP Server-Sent Events (SSE)
  • Обеспечивает надежную структуру для создания пользовательских серверов MCP
  • Включает примеры инструментов с правильными определениями типов.
  • Безопасная аутентификация с помощью ключа API
  • Возможности ведения журнала с различными уровнями серьезности
  • Управление сеансами для нескольких клиентских подключений
  • Мягкая обработка завершения работы сигналов SIGINT и SIGTERM

Инструменты

В настоящее время сервер включает в себя следующий пример инструмента:

  • calculator : выполняет основные арифметические операции (сложение, вычитание, умножение, деление)

Информацию о том, как добавлять собственные инструменты, можно найти в разделе «Расширение шаблона» .

Конфигурация

Конфигурация сервера централизована в src/config.ts . Это позволяет легко настраивать параметры без изменения нескольких файлов.

// Essential configuration options export const config = { server: { name: "mcp-boilerplate", version: "1.0.0", port: parseInt(process.env.PORT || "4005"), host: process.env.HOST || "localhost", apiKey: process.env.API_KEY || "dev_key", }, sse: { // How often to send keepalive messages (in milliseconds) keepaliveInterval: 30000, // Whether to send ping events in addition to comments usePingEvents: true, // Initial connection message sendConnectedEvent: true, }, tools: { // Number of retries for failed tool executions maxRetries: 3, // Delay between retries (in milliseconds) retryDelay: 1000, // Whether to send notifications about tool execution status sendNotifications: true, }, logging: { // Default log level defaultLevel: "debug", // How often to send log messages (in milliseconds) logMessageInterval: 10000, }, };

Устранение неполадок с тайм-аутами SSE

Если вы столкнулись с ошибкой «Body timeout error» при подключении MCP:

  1. Уменьшите keepaliveInterval , чтобы отправлять более частые сообщения keepalive (например, 15000 мс)
  2. Убедитесь, что usePingEvents включен для дополнительной стабильности соединения.
  3. Проверьте наличие тайм-аутов прокси-сервера, если вы используете прокси-сервер.

Настраивать

  1. Установить зависимости:
npm install
  1. Создайте файл .env со следующими переменными:
PORT=4005 API_KEY=your_api_key
  1. Создайте проект:
npm run build
  1. Запустите сервер:
npm run start:sse

Разработка

# Start in development mode with hot reloading npm run start # Start with PM2 for production npm run start:pm2 # Development mode with nodemon npm run dev

Конечные точки API

  • /health : Конечная точка проверки работоспособности, которая возвращает статус и версию сервера.
  • /sse : конечная точка SSE для установления соединений MCP (требуется ключ API)
  • /messages : Конечная точка обработки сообщений для клиент-серверного взаимодействия

Конфигурация МКП

Чтобы подключить MCP к этому серверу, добавьте следующую конфигурацию:

{ "mcpServers": { "mcp-server": { "url": "http://localhost:4005/sse?API_KEY={{your_api_key_here}}" } } }

Расширение шаблона

Добавление пользовательских инструментов

Чтобы добавить новый инструмент на сервер MCP, выполните следующие действия:

  1. Создайте свой обработчик инструментов :
    • Добавьте новый обработчик инструментов в файл src/tools.ts или создайте новый файл в каталоге src/tools
    • Инструмент должен соответствовать интерфейсу ToolHandler
  2. Настройте свой инструмент :
    • Добавьте конфигурацию вашего инструмента в массив toolConfigs в src/tools.ts
    • Определите имя, описание, схему ввода и обработчик для вашего инструмента.
  3. Экспортируйте и зарегистрируйте свой инструмент :
    • Если вы создали отдельный файл, экспортируйте свой обработчик и импортируйте его в src/tools.ts
    • Убедитесь, что ваш инструмент правильно зарегистрирован в массиве toolConfigs

Пример:

// In src/tools.ts (adding directly to the toolConfigs array) { name: "myTool", description: "My tool description", inputSchema: { type: "object" as const, properties: {}, required: [], }, handler: async () => { return createSuccessResult({ result: "Tool result" }); }, }

Обработка ошибок

На сервере реализована комплексная обработка ошибок:

  • Все операции заключены в блоки try/catch.
  • Правильная проверка параметров и входных данных
  • Соответствующие сообщения об ошибках для лучшей отладки
  • Вспомогательные функции для создания стандартизированных ответов об ошибках и успешном выполнении

Соображения безопасности

  • Аутентификация API-ключа для всех подключений
  • Проверка типа для всех параметров
  • Отсутствие жестко запрограммированной конфиденциальной информации
  • Правильная обработка ошибок для предотвращения утечки информации
  • Управление транспортом на основе сеансов

Особенности протокола MCP

Этот шаблон поддерживает основные функции MCP:

  • Инструменты: список и вызов инструментов с надлежащей проверкой параметров.
  • Ведение журнала: различные уровни серьезности (отладка, информация, уведомление, предупреждение, ошибка, критическое, оповещение, аварийное состояние)
  • Конфигурация сервера: имя, версия и возможности

Управление сеансом

Сервер управляет клиентскими сеансами посредством:

  • Уникальные идентификаторы сеансов для каждого клиентского соединения
  • Отслеживание активных транспортов по идентификатору сеанса
  • Автоматическая очистка отключенных сеансов
  • Отслеживание статуса соединения

Дополнительные ресурсы

Лицензия

Данный проект лицензирован по лицензии MIT — подробности см. в файле LICENSE .

-
security - not tested
A
license - permissive license
-
quality - not tested

Сервер, реализующий протокол контекста модели, предоставляющий стандартизированный способ подключения моделей ИИ к различным источникам данных и инструментам.

  1. Функции
    1. Инструменты
      1. Конфигурация
        1. Устранение неполадок с тайм-аутами SSE
      2. Настраивать
        1. Разработка
          1. Конечные точки API
            1. Конфигурация МКП
              1. Расширение шаблона
                1. Добавление пользовательских инструментов
              2. Обработка ошибок
                1. Соображения безопасности
                  1. Особенности протокола MCP
                    1. Управление сеансом
                      1. Дополнительные ресурсы
                        1. Лицензия

                          Related MCP Servers

                          • A
                            security
                            F
                            license
                            A
                            quality
                            A Model Context Protocol server that enables AI models to interact with SourceSync.ai's knowledge management platform for managing documents, ingesting content from various sources, and performing semantic searches.
                            Last updated -
                            25
                            14
                            • Apple
                            • Linux
                          • -
                            security
                            F
                            license
                            -
                            quality
                            A server that enables AI systems to browse, retrieve content from, and interact with web pages through the Model Context Protocol.
                            Last updated -
                          • A
                            security
                            F
                            license
                            A
                            quality
                            A Model Context Protocol server implementation that provides structured, AI-friendly access to eRegulations data, making it easier for AI models to answer user questions about administrative procedures.
                            Last updated -
                            4
                            28
                            TypeScript
                            • Linux
                            • Apple
                          • -
                            security
                            A
                            license
                            -
                            quality
                            A Model Context Protocol server that provides a standardized interface for AI models to access, query, and modify content in Notion workspaces.
                            Last updated -
                            275
                            2
                            TypeScript
                            MIT License
                            • Apple

                          View all related MCP servers

                          ID: hvby5vclw6