azure-devops-mcp

Integrations

  • The server provides tools for interacting with Git repositories in Azure DevOps, including listing repositories, branches, commits, creating pull requests, and more.

  • Node.js is listed as a prerequisite for running the server, but it's not what the server integrates with.

  • The MCP server is built with TypeScript, but it doesn't integrate with TypeScript as a service.

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

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

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

Обзор

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

Демо

Функции

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

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

  • Список рабочих элементов с использованием запросов 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 DevOpsAzure DevOps-сервер
Формат URL-адресаhttps://dev.azure.com/orghttps://сервер/tfs
КоллекцияНе требуетсяНеобходимый
Методы аутентификацииPAT, идентификатор Entra (DefaultAzureCredential)PAT, NTLM, Базовый
Версия APIПоследняя (автоматическая)Может потребоваться спецификация
СвязьВсегда интернетМожет быть с воздушным зазором
Entra Аутентификация

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

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

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

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

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

ПеременнаяОписаниеНеобходимыйПо умолчанию
AZURE_DEVOPS_ORG_URLURL вашей организации или сервера 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. Открыть запрос на извлечение

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

You must be authenticated.

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

remote-capable server

The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.

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

  1. История Звезды
    1. Обзор
    2. Демо
    3. Функции
    4. Установка
    5. Конфигурация
    6. Использование
    7. Архитектура
    8. Регистрация инструмента
    9. Поиск неисправностей
    10. Внося вклад

Related MCP Servers

  • A
    security
    A
    license
    A
    quality
    A Model Context Protocol server that enables AI assistants to interact with Azure DevOps resources including projects, work items, repositories, pull requests, branches, and pipelines through a standardized protocol.
    Last updated -
    15
    602
    131
    TypeScript
    MIT License
    • Linux
    • Apple
  • -
    security
    A
    license
    -
    quality
    Enables connections to Azure AI Agents within any MCP client, allowing users to leverage Azure AI Foundry's models and knowledge tools like Azure AI Search and Bing Web Grounding through a conversational interface.
    Last updated -
    111
    JavaScript
    MIT License
    • Linux
    • Apple
  • -
    security
    F
    license
    -
    quality
    A reference server implementation for the Model Context Protocol that enables AI assistants to interact with Azure DevOps resources and perform operations such as project management, work item tracking, repository operations, and code search programmatically.
    Last updated -
    3
    TypeScript
  • A
    security
    A
    license
    A
    quality
    A Model Context Protocol server that enables AI assistants to interact with Azure DevOps services, allowing users to query work items with plans to support creating/updating items, managing pipelines, handling pull requests, and administering sprints and branch policies.
    Last updated -
    9
    16
    Python
    MIT License
    • Linux
    • Apple

View all related MCP servers

ID: z7mxfcinp8