MCP服务器

MCP服务器是一个提供自定义工具集用于与IDE集成的服务,通过Model Context Protocol(MCP)实现代理与外部工具和资源的交互。

  • by Chubanova
  • JavaScript
  • 本地部署
  • 更新于
在 GitHub 查看 Chubanova/MCP

使用说明

Простой MCP-сервер

Этот проект реализует простой MCP-сервер, который предоставляет агенту набор кастомных инструментов для интеграции с IDE.

Описание

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

Принципы работы MCP

Как IDE/агент подключается к MCP-серверу

IDE/агент подключается к MCP-серверу через stdio транспорт. Сервер запускается как отдельный процесс, и IDE взаимодействует с ним через стандартные потоки ввода/вывода. При подключении агент получает список доступных инструментов от сервера.

Что такое "tool" в этом сервере

"Tool" в этом сервере - это функция, которая выполняет определенную задачу и возвращает структурированный результат. Каждый инструмент имеет:

  • Уникальное имя
  • Описание функциональности
  • Схему входных параметров
  • Возвращает структурированный результат (JSON/объект)

Инструменты

  1. Doc/Code context tool (get_documentation) - возвращает справку/выжимку/ссылки на документацию из локального источника
  2. Project helper tool (search_project) - чтение/поиск по локальным файлам проекта
  3. DevOps/tooling tool (run_command) - выполнение безопасных команд (линтеры, тесты и т.п.)

Установка

  1. Клонируйте репозиторий
  2. Установите зависимости: npm install
  3. Создайте файл .env на основе .env.example
  4. Запустите сервер: npm start

Подробные инструкции по установке Node.js и зависимостей смотрите в INSTALLATION.md.

Интеграция с IDE

Конфигурация подключения

Сервер можно подключить к различным IDE, которые поддерживают MCP-протокол, через конфигурационный файл mcp-config.json.

Как включить

  1. Убедитесь, что сервер запущен и работает
  2. В настройках вашей IDE найдите раздел MCP-серверов
  3. Добавьте конфигурацию из файла mcp-config.json
  4. Перезапустите IDE для применения изменений

Требования безопасности

  • Все команды, выполняемые через инструмент run_command, должны быть в whitelist'е ALLOWED_COMMANDS
  • Доступ к файлам ограничен директорией PROJECT_PATH
  • Секреты и ключи не коммитятся в репозиторий

Примеры тестирования

Примеры запросов и подтверждения вызовов инструментов можно найти в docs/testing-examples.md.

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

Подробная информация о реализации сервера и инструментов находится в docs/implementation-details.md.

Контракт результатов инструментов

Подробное описание формата результатов инструментов можно найти в docs/tool-contract.md.