Skip to main content
Glama

Интеграция Azure DevOps MCP

История Звезды

Звездная история диаграммы

значок кузнеца

Мощная интеграция для Azure DevOps, которая обеспечивает бесперебойный доступ к рабочим элементам, репозиториям, проектам, доскам и спринтам через сервер Model Context Protocol (MCP).

Обзор

Этот сервер предоставляет удобный API для взаимодействия со службами Azure DevOps, позволяя помощникам ИИ и другим инструментам управлять рабочими элементами, репозиториями кода, досками, спринтами и т. д. Созданный с использованием Model Context Protocol, он предоставляет стандартизированный интерфейс для взаимодействия с Azure DevOps.

Related MCP server: Azure DevOps MCP Server

Демо

Демонстрация Azure DevOps MCP

Функции

Интеграция организована по восьми основным категориям инструментов:

Инструменты рабочего элемента

  • Список рабочих элементов с использованием запросов WIQL

  • Получить сведения о рабочем элементе по идентификатору

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

  • Получить недавно обновленные рабочие элементы

  • Получите назначенные вам рабочие элементы

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

  • Обновите существующие рабочие элементы

  • Добавить комментарии к рабочим элементам

  • Обновить состояние рабочего элемента

  • Назначить рабочие элементы

  • Создавайте связи между рабочими элементами

  • Массовое создание/обновление рабочих элементов

Инструменты для досок и спринтов

  • Получить доски команд

  • Получить колонки доски

  • Получить предметы доски

  • Перемещайте карты на игровых полях.

  • Получить спринты

  • Получить текущий спринт

  • Получить элементы работы спринта

  • Получить пропускную способность спринта

  • Получить членов команды

Инструменты проекта

  • Список проектов

  • Получить детали проекта

  • Создавайте новые проекты

  • Получить области

  • Получить итерации

  • Создать области

  • Создать итерации

  • Получить шаблоны процессов

  • Получить типы рабочих элементов

  • Получить поля типа рабочего элемента

Git-инструменты

  • Список репозиториев

  • Получить данные репозитория

  • Создать репозитории

  • Список филиалов

  • Поиск кода

  • Просмотреть репозитории

  • Получить содержимое файла

  • Получить историю коммитов

  • Список запросов на извлечение

  • Создание запросов на извлечение

  • Получить детали запроса на включение

  • Получить комментарии по запросу на извлечение

  • Утверждение запросов на извлечение

  • Объединение запросов на извлечение

Тестирование Возможностей Инструментов

  • Запуск автоматизированных тестов

  • Получить статус автоматизации тестирования

  • Настройте тестовые агенты

  • Создание генераторов тестовых данных

  • Управление тестовыми средами

  • Получите тестовый анализ лещадности

  • Получите анализ пробелов в тестировании

  • Анализ воздействия теста запуска

  • Получить панель мониторинга работоспособности теста

  • Оптимизация запуска теста

  • Создавайте исследовательские сессии

  • Запись результатов исследовательских испытаний

  • Преобразуйте выводы в рабочие элементы

  • Получить статистику исследовательского теста

Инструменты DevSecOps

  • Запустите сканирование безопасности

  • Получите результаты сканирования безопасности

  • Отслеживайте уязвимости безопасности

  • Создание отчетов о соответствии требованиям безопасности

  • Интеграция результатов SARIF

  • Проведение проверок соответствия

  • Получить статус соответствия

  • Создавайте отчеты о соответствии

  • Управление политиками безопасности

  • Отслеживание осведомленности о безопасности

  • Повернуть секреты

  • Аудит секретного использования

  • Настроить интеграцию хранилища

Инструменты управления артефактами

  • Список артефактных каналов

  • Получить версии пакета

  • Опубликовать пакеты

  • Продвигать пакеты

  • Удалить версии пакета

  • Список изображений контейнеров

  • Получить теги изображения контейнера

  • Сканирование изображений контейнеров

  • Управление политиками контейнеров

  • Управление универсальными пакетами

  • Создание отчетов о загрузке пакетов

  • Проверьте зависимости пакетов

Инструменты разработки с использованием искусственного интеллекта

  • Получите обзоры кода с использованием искусственного интеллекта

  • Предложить оптимизацию кода

  • Определите запахи кода

  • Получите прогнозный анализ ошибок

  • Получите показатели производительности разработчиков

  • Получите прогнозные оценки усилий

  • Получите тенденции качества кода

  • Предложить уточнения рабочего элемента

  • Предложить возможности автоматизации

  • Создавайте интеллектуальные оповещения

  • Прогнозирование сбоев сборки

  • Оптимизировать выбор теста

Установка

Установка через Smithery

Чтобы автоматически установить azuredevops-mcp для Claude Desktop через Smithery :

npx -y @smithery/cli install @RyanCardin15/azuredevops-mcp --client claude

Предпосылки

  • Node.js (v16 или более поздняя версия)

  • TypeScript (v4 или более поздняя версия)

  • Учетная запись Azure DevOps с персональным токеном доступа (PAT) или соответствующие локальные учетные данные

Настраивать

  1. Клонируйте репозиторий:

    git clone <repository-url> cd AzureDevOps
  2. Установить зависимости:

    npm install
  3. Настройте переменные среды (создайте файл .env или задайте их напрямую):

    Для служб Azure DevOps (облако):

    AZURE_DEVOPS_ORG_URL=https://dev.azure.com/your-organization AZURE_DEVOPS_PROJECT=your-default-project AZURE_DEVOPS_IS_ON_PREMISES=false AZURE_DEVOPS_AUTH_TYPE=pat # or 'entra' AZURE_DEVOPS_PERSONAL_ACCESS_TOKEN=your-personal-access-token

    Для Azure DevOps Server (локально):

    AZURE_DEVOPS_ORG_URL=https://your-server/tfs AZURE_DEVOPS_PROJECT=your-default-project AZURE_DEVOPS_IS_ON_PREMISES=true AZURE_DEVOPS_COLLECTION=your-collection AZURE_DEVOPS_API_VERSION=6.0 # Adjust based on your server version # Authentication (choose one): # For PAT authentication: AZURE_DEVOPS_AUTH_TYPE=pat AZURE_DEVOPS_PERSONAL_ACCESS_TOKEN=your-personal-access-token # For NTLM authentication: AZURE_DEVOPS_AUTH_TYPE=ntlm AZURE_DEVOPS_USERNAME=your-username AZURE_DEVOPS_PASSWORD=your-password AZURE_DEVOPS_DOMAIN=your-domain # For Basic authentication: AZURE_DEVOPS_AUTH_TYPE=basic AZURE_DEVOPS_USERNAME=your-username AZURE_DEVOPS_PASSWORD=your-password
  4. Создайте проект:

    npm run build

    Если вы столкнулись с ошибками TypeScript, но все равно хотите продолжить:

    npm run build:ignore-errors
  5. Запустите сервер:

    npm run start

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

Персональный токен доступа (PAT)

Для Azure DevOps Services (облако) вам потребуется создать персональный токен доступа с соответствующими разрешениями:

  1. Перейдите в свою организацию Azure DevOps.

  2. Нажмите на значок вашего профиля в правом верхнем углу.

  3. Выберите «Персональные токены доступа»

  4. Нажмите «Новый токен».

  5. Дайте ему имя и выберите соответствующие области действия:

    • Рабочие элементы: чтение и письмо

    • Код: Чтение и запись

    • Проект и команда: чтение и письмо

    • Сборка: Читать

    • Выпуск: Читать

Для Azure DevOps Server (локально) доступны три варианта аутентификации:

  1. Персональный токен доступа (PAT):

    • Аналогично настройке в облаке, но создайте PAT в локальном экземпляре

    • Установить AZURE_DEVOPS_AUTH_TYPE=pat

  2. Аутентификация NTLM:

    • Используйте учетные данные вашего домена Windows

    • Установить AZURE_DEVOPS_AUTH_TYPE=ntlm

    • Укажите имя пользователя, пароль и домен

  3. Базовая аутентификация:

    • Используйте ваши местные учетные данные

    • Установить AZURE_DEVOPS_AUTH_TYPE=basic

    • Введите имя пользователя и пароль

Azure DevOps Services и Azure DevOps Server

Эта интеграция поддерживает как размещенные в облаке службы Azure DevOps, так и локальный сервер Azure DevOps:

Службы Azure DevOps (облако)

  • Простая настройка с URL-адресом организации и PAT

  • Конфигурация по умолчанию предполагает формат: https://dev.azure.com/your-organization

  • Всегда использует аутентификацию PAT

  • Примеры файлов конфигурации приведены в .env.cloud.example

Сервер Azure DevOps (локальный)

  • Требуется дополнительная настройка URL-адреса сервера, сбора данных и аутентификации.

  • Формат URL-адреса зависит от настроек вашего сервера: https://your-server/tfs

  • Требуется указать название коллекции

  • Поддерживает несколько методов аутентификации (PAT, NTLM, Basic)

  • Для старых версий сервера может потребоваться спецификация версии API

  • Примеры файлов конфигурации приведены в .env.on-premises.example

Ключевые различия

Особенность

Службы Azure DevOps

Azure DevOps-сервер

Формат URL-адреса

https://dev.azure.com/org

https://сервер/tfs

Коллекция

Не требуется

Необходимый

Методы аутентификации

PAT, идентификатор Entra (DefaultAzureCredential)

PAT, NTLM, Базовый

Версия API

Последняя (автоматическая)

Может потребоваться спецификация

Связь

Всегда интернет

Может быть с воздушным зазором

Entra Аутентификация

Убедитесь, что у вас установлен az cli и он аутентифицирован. Модули azd и AZ Powershell также должны работать, если вы аутентифицированы.

Пример конфигурации

Скопируйте .env.cloud.example или .env.on-premises.example в .env и обновите значения по мере необходимости.

Переменные среды

Сервер можно настроить с помощью следующих переменных среды:

Переменная

Описание

Необходимый

По умолчанию

AZURE_DEVOPS_ORG_URL

URL вашей организации или сервера Azure DevOps

Да

-

AZURE_DEVOPS_PROJECT

Проект по умолчанию для использования

Да

-

AZURE_DEVOPS_IS_ON_PREMISES

Используете ли вы Azure DevOps Server

Нет

ЛОЖЬ

AZURE_DEVOPS_COLLECTION

Название коллекции для локального использования

Нет*

-

AZURE_DEVOPS_API_VERSION

Версия API для локальной установки

Нет

-

AZURE_DEVOPS_AUTH_TYPE

Тип аутентификации (pat/ntlm/basic/entra)

Нет

похлопать

AZURE_DEVOPS_ПЕРСОНАЛЬНЫЙ_АККЕСС_ТОКЕН

Персональный токен доступа (для аутентификации «pat»)

Нет**

-

AZURE_DEVOPS_ИМЯ_ПОЛЬЗОВАТЕЛЯ

Имя пользователя для NTLM/Basic аутентификации

Нет**

-

AZURE_DEVOPS_ПАРОЛЬ

Пароль для NTLM/Basic аутентификации

Нет**

-

AZURE_DEVOPS_ДОМЕН

Домен для аутентификации NTLM

Нет

-

РАЗРЕШЕННЫЕ_ИНСТРУМЕНТЫ

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

Нет

Все инструменты

* Требуется, если AZURE_DEVOPS_IS_ON_PREMISES=true ** Требуется в зависимости от выбранного типа аутентификации

Фильтрация инструментов с помощью ALLOWED_TOOLS

Переменная среды ALLOWED_TOOLS позволяет вам ограничить доступные методы инструментов. Это совершенно необязательно — если не указано, будут включены все инструменты.

Формат: список имен методов, разделенных запятыми, без пробелов.

Пример:

ALLOWED_TOOLS=listWorkItems,getWorkItemById,searchWorkItems,createWorkItem

Это позволит включить только указанные методы рабочего элемента, отключив все остальные.

Использование

После запуска сервера вы можете взаимодействовать с ним с помощью протокола MCP. Сервер предоставляет несколько инструментов для различных функций Azure DevOps.

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

Примечание: По умолчанию в файле index.ts регистрируется только подмножество инструментов, чтобы упростить начальную реализацию. Информацию о регистрации дополнительных инструментов см. в разделе Регистрация инструментов .

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

{ "tool": "listWorkItems", "params": { "query": "SELECT [System.Id], [System.Title], [System.State] FROM WorkItems WHERE [System.State] = 'Active' ORDER BY [System.CreatedDate] DESC" } }

Пример: создание рабочего элемента

{ "tool": "createWorkItem", "params": { "workItemType": "User Story", "title": "Implement new feature", "description": "As a user, I want to be able to export reports to PDF.", "assignedTo": "john@example.com" } }

Пример: Список репозиториев

{ "tool": "listRepositories", "params": { "projectId": "MyProject" } }

Пример: создание запроса на извлечение

{ "tool": "createPullRequest", "params": { "repositoryId": "repo-guid", "sourceRefName": "refs/heads/feature-branch", "targetRefName": "refs/heads/main", "title": "Add new feature", "description": "This PR adds the export to PDF feature" } }

Архитектура

Проект структурирован следующим образом:

  • src/

    • Interfaces/ : Определения типов для параметров и ответов

    • Services/ : Классы служб для взаимодействия с API Azure DevOps

    • Tools/ : Реализации инструментов, которые предоставляют функциональность клиентам

    • index.ts : Основная точка входа, которая регистрирует инструменты и запускает сервер.

    • config.ts : Обработка конфигурации

Уровень обслуживания

Уровень сервиса обеспечивает прямую связь с API Azure DevOps:

  • WorkItemService : Операции с рабочими элементами

  • BoardsSprintsService : Операции с досками и спринтами

  • ProjectService : Операции по управлению проектами

  • GitService : Операции с репозиторием Git

  • TestingCapabilitiesService : Тестирование возможностей операций

  • DevSecOpsService : Операции DevSecOps

  • ArtifactManagementService : Операции по управлению артефактами

  • AIAssistedDevelopmentService : операции по развитию с использованием искусственного интеллекта

Слой инструментов

Уровень инструментов охватывает службы и обеспечивает согласованный интерфейс для протокола MCP:

  • WorkItemTools : Инструменты для операций с рабочими элементами

  • BoardsSprintsTools : Инструменты для работы досок и спринтов

  • ProjectTools : Инструменты для операций по управлению проектами

  • GitTools : инструменты для операций Git

  • TestingCapabilitiesTools : Инструменты для тестирования возможностей операций

  • DevSecOpsTools : Инструменты для операций DevSecOps

  • ArtifactManagementTools : Инструменты для операций по управлению артефактами

  • AIAssistedDevelopmentTools : Инструменты для операций по разработке с использованием ИИ

Регистрация инструмента

Сервер MCP требует, чтобы инструменты были явно зарегистрированы в файле index.ts . По умолчанию регистрируется только подмножество всех возможных инструментов, чтобы сохранить начальную реализацию управляемой.

Чтобы зарегистрировать больше инструментов:

  1. Откройте файл src/index.ts

  2. Добавляйте новые регистрации инструментов по образцу существующих инструментов.

  3. Соберите и перезапустите сервер.

Подробное руководство по регистрации инструментов доступно в файле TOOL_REGISTRATION.md в репозитории.

Примечание: При регистрации инструментов будьте осторожны и используйте правильные типы параметров, особенно для значений enum. Определения типов в каталоге Interfaces определяют ожидаемые типы для каждого параметра. Использование неправильного типа (например, использование z.string() вместо z.enum() для перечисляемых значений) приведет к ошибкам TypeScript во время сборки.

Пример регистрации нового инструмента:

server.tool("searchCode", "Search for code in repositories", { searchText: z.string().describe("Text to search for"), repositoryId: z.string().optional().describe("ID of the repository") }, async (params, extra) => { const result = await gitTools.searchCode(params); return { content: result.content, rawData: result.rawData, isError: result.isError }; } );

Поиск неисправностей

Общие проблемы

Ошибки аутентификации

  • Убедитесь, что ваш персональный токен доступа действителен и имеет необходимые разрешения.

  • Проверьте правильность URL-адреса организации.

Ошибки TypeScript во время сборки

  • Используйте npm run build:ignore-errors для обхода ошибок TypeScript

  • Проверьте наличие отсутствующих или неверных определений типов.

Ошибки во время выполнения

  • Убедитесь, что указанный проект Azure DevOps существует и доступен.

Внося вклад

Вклады приветствуются! Вот как вы можете внести свой вклад:

  1. Форк репозитория

  2. Создайте ветку функций ( git checkout -b feature/amazing-feature )

  3. Зафиксируйте свои изменения ( git commit -m 'Add some amazing feature' )

  4. Отправить в ветку ( git push origin feature/amazing-feature )

  5. Открыть запрос на извлечение

Убедитесь, что ваш код проходит линтинг и включает соответствующие тесты.

One-click Deploy
A
security – no known vulnerabilities
A
license - permissive license
A
quality - confirmed to work

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/RyanCardin15/AzureDevOps-MCP'

If you have feedback or need assistance with the MCP directory API, please join our Discord server