Skip to main content
Glama
Wootz

Azure DevOps On-Prem MCP Server

by Wootz

MCP-сервер для локального развёртывания Azure DevOps

npm version

Сервер Model Context Protocol (MCP) для Azure DevOps Server 2022 (локальное развёртывание). Позволяет ИИ-ассистентам взаимодействовать с вашим локальным Azure DevOps Server через 30 инструментов.

Настройка

Добавьте в файл конфигурации клиента, поддерживающего MCP:

{
  "mcpServers": {
    "azure-devops-onprem": {
      "command": "npx",
      "args": ["-y", "@wootz/ado-onprem-mcp"],
      "env": {
        "ADO_SERVER_URL": "https://tfs.company.com/DefaultCollection",
        "ADO_PAT_TOKEN": "your-pat-token-here",
        "ADO_PROJECT": "MyProject", // 可選,設定後所有工具預設操作此專案
        "NODE_TLS_REJECT_UNAUTHORIZED": "0" // 使用自簽憑證
      }
    }
  }
}

Описание переменных окружения:

  • ADO_SERVER_URL: обязательно, полный путь к коллекции (например: https://tfs.company.com/DefaultCollection)

  • ADO_PAT_TOKEN: обязательно, персональный маркер доступа

  • ADO_PROJECT: необязательно, имя проекта по умолчанию. Если задано, все инструменты автоматически используют этот проект, когда параметр project не указан; явная передача того же имени проекта выполняется корректно, а передача другого проекта будет отклонена. Если запрос WIQL не содержит условие [System.TeamProject], оно будет автоматически добавлено, чтобы избежать получения данных из других проектов

  • NODE_TLS_REJECT_UNAUTHORIZED: обязательно, установите значение "0" для поддержки самозаверяющих сертификатов (часто встречается в средах локального развёртывания)

⚠️ Предупреждение о безопасности: NODE_TLS_REJECT_UNAUTHORIZED=0 отключает проверку SSL-сертификатов и применимо только для локального развёртывания во внутренней сети. Не используйте в средах с публичным доступом.

Создание персонального маркера доступа (PAT)

  1. Перейдите на ваш Azure DevOps Server: https://your-server/DefaultCollection

  2. Нажмите на значок профиля в правом верхнем углу → Безопасность → Персональные маркеры доступа

  3. Создайте новый маркер и задайте следующие области:

    • Код: чтение и запись (для операций с Pull Request и Git)

    • Рабочие элементы: чтение и запись (для операций с рабочими элементами)

    • Проекты и команды: чтение (для информации о проектах и Sprint)

    • Сборки: чтение и выполнение (для операций Build/Pipeline)

Related MCP server: Azure DevOps MCP Server

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

  • Node.js >= 20.0.0

  • Azure DevOps Server 2022 (версия локального развёртывания)

  • Действительный персональный маркер доступа (PAT)

Доступные инструменты

Core (1 инструмент)

  • mcp_ado_core_list_projects — список всех проектов

Work Items (11 инструментов)

  • mcp_ado_work_items_get — получение подробной информации о рабочем элементе

  • mcp_ado_work_items_create — создание нового рабочего элемента

  • mcp_ado_work_items_update — обновление рабочего элемента

  • mcp_ado_work_items_delete — удаление рабочего элемента

  • mcp_ado_work_items_query_by_wiql — запрос рабочих элементов (WIQL)

  • mcp_ado_work_items_add_comment — добавление комментария

  • mcp_ado_work_items_get_comments — получение комментариев

  • mcp_ado_work_items_add_link — добавление связи рабочего элемента

  • mcp_ado_work_items_get_updates — получение истории изменений

  • mcp_ado_work_items_batch_get — пакетное получение рабочих элементов

  • mcp_ado_work_items_batch_create — пакетное создание рабочих элементов (поддерживает иерархию родитель-потомок в одном пакете)

Repositories (10 инструментов)

Pull Requests

  • mcp_ado_repos_list_pull_requests — список Pull Requests

  • mcp_ado_repos_get_pull_request — получение подробной информации о PR

  • mcp_ado_repos_create_pull_request — создание Pull Request

  • mcp_ado_repos_update_pull_request — обновление Pull Request (статус, заголовок)

  • mcp_ado_repos_get_pr_threads — получение обсуждений рецензирования PR

  • mcp_ado_repos_create_pr_thread — добавление комментария рецензирования в PR

Git

  • mcp_ado_repos_list_repositories — список всех Repository в проекте

  • mcp_ado_repos_list_branches — список всех Branch в Repository

  • mcp_ado_repos_get_item — получение содержимого файла (поддерживает указание Branch)

  • mcp_ado_repos_get_commits — получение записей Commit (фильтрация по Branch / пути / автору)

Builds (5 инструментов)

  • mcp_ado_builds_list_definitions — список Build Definitions (список Pipeline)

  • mcp_ado_builds_list — список Builds (фильтрация по статусу / результату / Branch)

  • mcp_ado_builds_get — получение сведений о конкретном Build

  • mcp_ado_builds_queue — запуск (Queue) нового Build

  • mcp_ado_builds_get_logs — получение списка журналов Build или содержимого указанного журнала

Work / Sprint (3 инструмента)

  • mcp_ado_work_list_iterations — список Sprint / Iteration (фильтрация past / current / future)

  • mcp_ado_work_get_iteration_work_items — получение всех рабочих элементов в указанном Sprint

  • mcp_ado_work_list_backlogs — список уровней Backlog (Epics / Features / Stories)

Всего: 30 инструментов

Полные определения инструментов и описание параметров см. в каталоге src/tools/ в исходном коде.

Примеры использования

Вы можете взаимодействовать с ИИ-ассистентом на естественном языке для выполнения различных операций Azure DevOps:

Просмотр проектов и рабочих элементов

  • «Перечисли все проекты»

  • «Покажи рабочий элемент #1234»

  • «Найди рабочие элементы, назначенные мне, в MyProject»

  • «Перечисли все баги со статусом "в работе"»

  • «Покажи рабочие элементы, изменённые за последние 7 дней»

Создание и обновление рабочих элементов

  • «Создай баг в MyProject с заголовком "Ошибка на странице входа"»

  • «Создай User Story с заголовком "Добавить функцию выхода" и назначь на john@company.com»

  • «Обнови рабочий элемент #5678, измени статус на "Завершено"»

  • «Установи приоритет 1 для рабочего элемента #1234»

  • «Добавь комментарий к рабочему элементу #1234: проблема воспроизведена»

  • «Создай Task с заголовком "Дополнить модульные тесты", родительский элемент — #5787»

  • «Создай сразу один Feature и 3 Task под ним»

Управление связями рабочих элементов

  • «Свяжи рабочий элемент #100 с #200, тип — Related»

  • «Прикрепи рабочий элемент #6320 к #5787»

  • «Покажи все комментарии рабочего элемента #1234»

  • «Просмотри историю изменений рабочего элемента #5678»

  • «Перечисли все связанные элементы рабочего элемента #999»

Операции с Repository и Git

  • «Перечисли все repository в MyProject»

  • «Перечисли все branch в MainRepo»

  • «Получи содержимое файла src/app.ts в ветке main»

  • «Покажи последние 10 записей commit в MainRepo»

  • «Перечисли все активные pull request в MainRepo»

  • «Покажи подробную информацию о pull request #123»

  • «Создай PR из feature/new-api в develop с заголовком "Добавить API-эндпоинт"»

  • «Обнови PR #789, измени статус на "Завершено"»

  • «Получи все обсуждения рецензирования PR #456»

  • «Добавь комментарий рецензирования в PR #123: рекомендую использовать async/await»

Операции Build / Pipeline

  • «Перечисли все определения pipeline в MyProject»

  • «Покажи последние неудачные build в MyProject»

  • «Получи подробную информацию о build #456»

  • «Запусти build с ID определения 12, используя ветку main»

  • «Покажи список журналов build #789»

Примеры полных рабочих процессов

Вы можете объединять несколько операций для выполнения полных рабочих процессов:

Сообщение об ошибке и её исправление:

  1. «Создай баг в MyProject с заголовком "Страница входа не загружается"»

  2. «Назначь этот баг на developer@company.com»

  3. «Добавь комментарий: воспроизводится в браузере Chrome, в Firefox работает нормально»

  4. «Создай pull request из bugfix/login в main для исправления этой проблемы»

  5. «Добавь описание в PR: исправлена проблема с порядком загрузки CSS»

Отслеживание разработки функции:

  1. «Создай User Story: реализовать страницу профиля пользователя»

  2. «Создай Task: спроектировать UI профиля, и свяжи с указанной выше User Story»

  3. «Создай ещё один Task: реализовать API профиля, также свяжи с той же User Story»

  4. «Когда завершено, обнови статус всех связанных рабочих элементов на "Завершено"»

Просмотр текущего состояния Sprint:

  1. «Перечисли все рабочие элементы текущего sprint в MyProject»

  2. «Покажи незавершённые task»

  3. «Покажи ID iteration следующего sprint»

Разработка

Сборка проекта

pnpm install
pnpm run build

Режим наблюдения

pnpm run watch

Запуск тестов

pnpm test

Запуск Linter

pnpm run lint

Структура проекта

src/
├── index.ts             # CLI 入口點
├── auth.ts              # PAT 認證
├── server.ts            # MCP 伺服器設定
├── tools.ts             # 工具註冊
├── tools/
│   ├── core.ts          # 專案管理 (1 個工具)
│   ├── work-items.ts    # 工作項目 (11 個工具)
│   ├── repositories.ts  # Git 與 Pull Requests (10 個工具)
│   ├── builds.ts        # Build / Pipeline (5 個工具)
│   └── work.ts          # Sprint / Backlog (3 個工具)
├── utils.ts             # 回應輔助函式
├── logger.ts            # Winston 日誌
└── version.ts           # 版本資訊

Особенности

  • Специально для локального развёртывания: разработан для Azure DevOps Server 2022

  • URL коллекции: поддержка формата https://{server}/{collection}

  • Аутентификация PAT: используется только персональный маркер доступа, Azure CLI не требуется

  • Лёгкость: минимальные зависимости, простая архитектура

  • Полная функциональность: охватывает рабочие элементы, Pull Request, Git, Build Pipeline и планирование Sprint

  • Иерархия и пакетная обработка: поддержка связей родитель-потомок, можно создать целое дерево рабочих элементов за один раз

  • Компактные ответы: автоматическое сокращение длинных объектов identity, можно указать нужные поля через fields

Лицензия

MIT License

Related MCP Connectors

Related MCP Servers