API ВЕГА

Redmine MCP Server

Сервер Model Context Protocol на основе stdio, который взаимодействует с экземпляром Redmine через REST API (конечные точки *.json). Сервер запускается как отдельный процесс Node.js; вносить изменения в приложение Redmine на Rails не требуется.

Требования

  • Node.js 20+

  • Учётная запись Redmine с ключом доступа к API (My account → Show API access key)

  • Сетевой доступ этого процесса к REDMINE_BASE_URL вашего экземпляра Redmine

Установка

Для обычного использования установка не требуется: агенты для работы с кодом запускают сервер по запросу через npx:

npx -y redmine-mcp-connector

Точные инструкции по настройке Claude Desktop, Claude Code, Cursor, Windsurf, Cline, VS Code, Zed и других MCP-клиентов, а также варианты локальной сборки и использования Docker приведены в CONNECTING.md.

Чтобы работать над самим сервером, сначала клонируйте этот репозиторий:

npm install
npm run build

Настройка

Переменные окружения (см. .env.example):

ПеременнаяОбязательнаяОписание
REDMINE_BASE_URLдаБазовый URL, например https://redmine.example.com (без завершающего слеша)
REDMINE_API_KEYдаЗначение заголовка X-Redmine-API-Key
REDMINE_IMPERSONATE_USERнетЗадаёт заголовок X-Redmine-Switch-User (в Redmine доступно только администраторам)
REDMINE_READONLYнетЕсли задано значение true или 1, блокирует все HTTP-методы, изменяющие данные
REDMINE_ALLOW_RAW_REQUESTнетЕсли задано значение true или 1, регистрирует инструмент обходного доступа redmine_request
REDMINE_HTTP_TIMEOUT_MSнетЗначение по умолчанию — 15000
REDMINE_MAX_PAGESнетМаксимальное число страниц при использовании fetch_all в инструментах для работы со списками (по умолчанию — 20)
REDMINE_MAX_DOWNLOAD_BYTESнетОграничение для redmine_attachment_download (по умолчанию — 5 MiB)

Запуск

REDMINE_BASE_URL=https://your-redmine.example.com REDMINE_API_KEY=secret npm start
# or during development:
REDMINE_BASE_URL=... REDMINE_API_KEY=... npm run dev

Подключение к агенту для работы с кодом

Полные инструкции по настройке для Claude Desktop, Claude Code, Cursor, Windsurf, Cline, VS Code, Zed и универсальных MCP-клиентов приведены в CONNECTING.md. Ниже — краткий пример конфигурации, подходящий для Claude Desktop, Cursor и Windsurf:

{
  "mcpServers": {
    "redmine": {
      "command": "npx",
      "args": ["-y", "redmine-mcp-connector"],
      "env": {
        "REDMINE_BASE_URL": "https://redmine.example.com",
        "REDMINE_API_KEY": "your_api_key_here"
      }
    }
  }
}

Ресурсы MCP (только для чтения)

URIОписание
redmine://projectsGET /projects.json (первые 100 записей)
redmine://meGET /users/current.json
redmine://me/issuesGET /issues.json?assigned_to_id=me (лимит — 100 записей)
redmine://projects/{id}GET /projects/:id.json

Обзор инструментов

Префикс имён: redmine__.

Задачи: redmine_issues_list, redmine_issue_get, redmine_issue_create, redmine_issue_update, redmine_issue_add_comment, redmine_issue_delete (требуется confirm: true), добавление и удаление наблюдателей, просмотр, добавление и удаление связей.

Проекты: redmine_projects_list, redmine_project_get, создание, обновление, архивация, восстановление из архива и удаление (для удаления требуется confirm).

Пользователи: redmine_current_user, redmine_users_list, redmine_user_get, создание, обновление и удаление (для удаления требуется confirm).

Записи о затраченном времени: просмотр списка, получение, создание, обновление и удаление (для удаления требуется confirm).

Новости: просмотр списка, получение, создание, обновление и удаление (для удаления требуется confirm).

Wiki: просмотр списка страниц, получение страницы, создание и обновление (PUT), удаление (требуется confirm).

Версии и категории: CRUD-операции с версиями (для удаления требуется confirm) и категориями задач (для удаления требуется confirm).

Запросы и метаданные: redmine_queries_list, redmine_enumerations_list, redmine_trackers_list, redmine_issue_statuses_list, redmine_roles_list, redmine_role_get, redmine_custom_fields_list.

Группы (только для чтения): redmine_groups_list, redmine_group_get.

Участие в проектах: просмотр списка, создание, обновление и удаление (для удаления требуется confirm).

Вложения и поиск: redmine_search, получение, обновление, удаление, загрузка и скачивание вложений (скачивание возвращает данные в формате base64 и ограничено по размеру).

Репозиторий (ограниченные возможности REST в стандартном Redmine): redmine_repository_revision_link_issue, redmine_repository_revision_unlink_issue (требуется confirm). В стандартном Redmine просмотр репозиториев и ревизий через JSON не поддерживается. Включите redmine_request или используйте плагины.

Обходной инструмент: redmine_request — доступен, только если задано REDMINE_ALLOW_RAW_REQUEST=true; для метода DELETE требуется confirm: true.

Безопасность

  • Для деструктивных операций требуется явно задать confirm: true, если это указано выше.

  • Для развёртываний с доступом только на чтение установите REDMINE_READONLY=true.

  • Сервер никогда не записывает ключи API в журналы.

Docker

Соберите локальный образ:

docker build -t redmine-mcp-server:local .

Запустите сервер (MCP-сервер на stdio):

docker run --rm -i   -e REDMINE_BASE_URL="https://redmine.example.com"   -e REDMINE_API_KEY="your_api_key_here"   redmine-mcp-server:local

Используйте этот образ в конфигурации MCP:

{
  "mcpServers": {
    "redmine": {
      "command": "docker",
      "args": [
        "run", "--rm", "-i",
        "-e", "REDMINE_BASE_URL",
        "-e", "REDMINE_API_KEY",
        "docker.io/<docker-user>/redmine-mcp-server:latest"
      ],
      "env": {
        "REDMINE_BASE_URL": "https://redmine.example.com",
        "REDMINE_API_KEY": "your_api_key_here"
      }
    }
  }
}

Публикация в Docker Hub Catalog

  • Войдите в систему:
docker login
  • Создайте и выберите сборщик buildx (однократная настройка):
docker buildx create --name redmine-mcp-builder --use --bootstrap
  • Соберите и отправьте многоархитектурный образ:
export IMAGE=docker.io/<docker-user>/redmine-mcp-server
export TAG=1.0.0

docker buildx build   --platform linux/amd64,linux/arm64   -t $IMAGE:$TAG   -t $IMAGE:latest   --push .
  • В Docker Hub укажите в описании репозитория текст из этого README и сделайте репозиторий общедоступным, чтобы его можно было найти в каталоге.

Разработка

npm run lint
npm test

Участие в разработке

Мы рады вашему вкладу.

  • Подробные инструкции по настройке клиентов приведены в CONNECTING.md.

  • Информация о локальной настройке, требованиях к коду и процессе отправки PR приведена в CONTRIBUTING.md.

  • Соблюдайте правила уважительного и открытого взаимодействия, изложенные в CODE_OF_CONDUCT.md.

  • В SUPPORT.md описаны каналы получения помощи и сведения, которые следует предоставить.

  • О конфиденциальном сообщении об уязвимостях читайте в SECURITY.md.

  • Шаблоны для публичного распространения через Docker и каталоги MCP см. в REGISTRY_PUBLISHING.md.

Лицензия

GPL-2.0-or-later (из той же группы лицензий, что и Redmine).