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-Integration

Sternengeschichte

Eine leistungsstarke Integration für Azure DevOps, die nahtlosen Zugriff auf Arbeitselemente, Repositorys, Projekte, Boards und Sprints über den Model Context Protocol (MCP)-Server bietet.

Überblick

Dieser Server bietet eine praktische API für die Interaktion mit Azure DevOps-Diensten und ermöglicht KI-Assistenten und anderen Tools die Verwaltung von Arbeitselementen, Code-Repositorys, Boards, Sprints und mehr. Erstellt mit dem Model Context Protocol bietet er eine standardisierte Schnittstelle für die Kommunikation mit Azure DevOps.

Demo

Merkmale

Die Integration ist in acht Haupttoolkategorien unterteilt:

Arbeitselementtools

  • Auflisten von Arbeitselementen mithilfe von WIQL-Abfragen
  • Abrufen von Arbeitselementdetails nach ID
  • Suchen nach Arbeitselementen
  • Abrufen kürzlich aktualisierter Arbeitselemente
  • Abrufen der Ihnen zugewiesenen Arbeitselemente
  • Neue Arbeitselemente erstellen
  • Vorhandene Arbeitselemente aktualisieren
  • Hinzufügen von Kommentaren zu Arbeitselementen
  • Aktualisieren des Arbeitselementstatus
  • Arbeitselemente zuweisen
  • Erstellen von Links zwischen Arbeitselementen
  • Massenerstellung/-aktualisierung von Arbeitselementen

Boards & Sprints-Tools

  • Holen Sie sich Team-Boards
  • Boardspalten abrufen
  • Boardelemente abrufen
  • Karten auf den Brettern verschieben
  • Sprints erhalten
  • Aktuellen Sprint abrufen
  • Abrufen von Sprint-Arbeitselementen
  • Holen Sie sich Sprintkapazität
  • Teammitglieder holen

Projekt-Tools

  • Projekte auflisten
  • Projektdetails abrufen
  • Neue Projekte erstellen
  • Bereiche abrufen
  • Iterationen abrufen
  • Bereiche erstellen
  • Erstellen von Iterationen
  • Prozessvorlagen abrufen
  • Abrufen von Arbeitselementtypen
  • Abrufen von Arbeitselementtypfeldern

Git-Tools

  • Repositorys auflisten
  • Repository-Details abrufen
  • Erstellen von Repositorys
  • Filialen auflisten
  • Suchcode
  • Durchsuchen Sie Repositories
  • Dateiinhalt abrufen
  • Commit-Verlauf abrufen
  • Auflisten von Pull-Anfragen
  • Erstellen von Pull Requests
  • Abrufen von Pull-Request-Details
  • Pull Request-Kommentare abrufen
  • Pull Requests genehmigen
  • Pull Requests zusammenführen

Tools zum Testen von Fähigkeiten

  • Führen Sie automatisierte Tests durch
  • Abrufen des Status der Testautomatisierung
  • Konfigurieren von Test-Agents
  • Erstellen Sie Testdatengeneratoren
  • Testumgebungen verwalten
  • Holen Sie sich eine Test-Flakiness-Analyse
  • Testlückenanalyse abrufen
  • Führen Sie eine Testauswirkungsanalyse durch
  • Testintegritäts-Dashboard abrufen
  • Testoptimierung ausführen
  • Erstellen Sie Erkundungssitzungen
  • Ergebnisse explorativer Tests aufzeichnen
  • Konvertieren von Ergebnissen in Arbeitselemente
  • Erhalten Sie explorative Teststatistiken

DevSecOps-Tools

  • Führen Sie Sicherheitsscans durch
  • Abrufen der Ergebnisse des Sicherheitsscans
  • Verfolgen Sie Sicherheitslücken
  • Generieren von Sicherheits-Compliance-Berichten
  • SARIF-Ergebnisse integrieren
  • Führen Sie Compliance-Prüfungen durch
  • Abrufen des Compliance-Status
  • Erstellen von Compliance-Berichten
  • Verwalten von Sicherheitsrichtlinien
  • Verfolgen Sie das Sicherheitsbewusstsein
  • Geheimnisse rotieren
  • Überwachen der Verwendung geheimer Geheimnisse
  • Konfigurieren der Tresorintegration

Tools zur Artefaktverwaltung

  • Auflisten von Artefakt-Feeds
  • Paketversionen abrufen
  • Veröffentlichen von Paketen
  • Werbepakete
  • Paketversionen löschen
  • Auflisten von Container-Images
  • Abrufen von Container-Image-Tags
  • Container-Images scannen
  • Verwalten von Containerrichtlinien
  • Verwalten universeller Pakete
  • Erstellen von Paketdownloadberichten
  • Überprüfen Sie die Paketabhängigkeiten

KI-gestützte Entwicklungstools

  • Erhalten Sie KI-gestützte Code-Überprüfungen
  • Codeoptimierungen vorschlagen
  • Code Smells erkennen
  • Erhalten Sie eine prädiktive Fehleranalyse
  • Erhalten Sie Kennzahlen zur Entwicklerproduktivität
  • Erhalten Sie prädiktive Aufwandsschätzungen
  • Trends zur Codequalität abrufen
  • Vorschläge zur Verbesserung von Arbeitselementen
  • Schlagen Sie Automatisierungsmöglichkeiten vor
  • Erstellen Sie intelligente Warnmeldungen
  • Build-Fehler vorhersagen
  • Testauswahl optimieren

Installation

Installation über Smithery

So installieren Sie azuredevops-mcp für Claude Desktop automatisch über Smithery :

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

Voraussetzungen

  • Node.js (v16 oder höher)
  • TypeScript (v4 oder höher)
  • Ein Azure DevOps-Konto mit einem persönlichen Zugriffstoken (PAT) oder entsprechenden lokalen Anmeldeinformationen

Aufstellen

  1. Klonen Sie das Repository:
    git clone <repository-url> cd AzureDevOps
  2. Installieren Sie Abhängigkeiten:
    npm install
  3. Konfigurieren Sie Umgebungsvariablen (erstellen Sie eine .env Datei oder legen Sie sie direkt fest):Für Azure DevOps Services (Cloud):
    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
    Für Azure DevOps Server (lokal):
    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. Erstellen Sie das Projekt:
    npm run build
    Wenn TypeScript-Fehler auftreten, Sie aber trotzdem fortfahren möchten:
    npm run build:ignore-errors
  5. Starten Sie den Server:
    npm run start

Konfiguration

Persönlicher Zugriffstoken (PAT)

Für Azure DevOps Services (Cloud) müssen Sie ein persönliches Zugriffstoken mit entsprechenden Berechtigungen erstellen:

  1. Gehen Sie zu Ihrer Azure DevOps-Organisation
  2. Klicken Sie oben rechts auf Ihr Profilsymbol
  3. Wählen Sie „Persönliche Zugriffstoken“
  4. Klicken Sie auf „Neues Token“
  5. Geben Sie ihm einen Namen und wählen Sie die entsprechenden Bereiche aus:
    • Arbeitselemente: Lesen und Schreiben
    • Code: Lesen und Schreiben
    • Projekt und Team: Lesen & Schreiben
    • Build: Lesen
    • Veröffentlichung: Lesen

Für Azure DevOps Server (lokal) stehen Ihnen drei Authentifizierungsoptionen zur Verfügung:

  1. Persönlicher Zugriffstoken (PAT):
    • Ähnlich wie bei der Cloud-Einrichtung, aber erstellen Sie das PAT in Ihrer lokalen Instanz
    • Legen Sie AZURE_DEVOPS_AUTH_TYPE=pat
  2. NTLM-Authentifizierung:
    • Verwenden Sie Ihre Windows-Domänenanmeldeinformationen
    • Legen Sie AZURE_DEVOPS_AUTH_TYPE=ntlm
    • Geben Sie Benutzernamen, Passwort und Domäne ein
  3. Grundlegende Authentifizierung:
    • Verwenden Sie Ihre lokalen Anmeldeinformationen
    • Legen Sie AZURE_DEVOPS_AUTH_TYPE=basic
    • Geben Sie Benutzernamen und Passwort ein

Azure DevOps Services vs. Azure DevOps Server

Diese Integration unterstützt sowohl in der Cloud gehostete Azure DevOps Services als auch lokale Azure DevOps Server:

Azure DevOps-Dienste (Cloud)
  • Einfache Einrichtung mit Organisations-URL und PAT
  • Die Standardkonfiguration erwartet das Format: https://dev.azure.com/your-organization
  • Verwendet immer die PAT-Authentifizierung
  • Beispielkonfigurationsdateien in .env.cloud.example
Azure DevOps Server (vor Ort)
  • Erfordert zusätzliche Konfiguration für Server-URL, Sammlung und Authentifizierung
  • Das URL-Format variiert je nach Server-Setup: https://your-server/tfs
  • Erfordert die Angabe eines Sammlungsnamens
  • Unterstützt mehrere Authentifizierungsmethoden (PAT, NTLM, Basic)
  • Für ältere Serverversionen ist möglicherweise eine API-Versionsspezifikation erforderlich
  • Beispielkonfigurationsdateien in .env.on-premises.example
Hauptunterschiede
BesonderheitAzure DevOps-DiensteAzure DevOps Server
URL-Formathttps://dev.azure.com/orghttps://server/tfs
SammlungNicht erforderlichErforderlich
AuthentifizierungsmethodenPAT, Entra-ID (DefaultAzureCredential)PAT, NTLM, Basic
API-VersionNeueste (automatisch)Möglicherweise ist eine Spezifikation erforderlich
VerbindungImmer InternetKann mit einem Luftspalt versehen werden
Entra-Auth

Stellen Sie sicher, dass Sie „az cli“ installiert und authentifiziert haben. Die Module „azd“ und „AZ Powershell“ sollten ebenfalls funktionieren, solange Sie authentifiziert sind.

Beispielkonfiguration

Kopieren Sie entweder .env.cloud.example oder .env.on-premises.example nach .env und aktualisieren Sie die Werte nach Bedarf.

Umgebungsvariablen

Der Server kann mit den folgenden Umgebungsvariablen konfiguriert werden:

VariableBeschreibungErforderlichStandard
AZURE_DEVOPS_ORG_URLURL Ihrer Azure DevOps-Organisation oder Ihres Azure DevOps-ServersJa-
AZURE_DEVOPS_PROJECTZu verwendendes StandardprojektJa-
AZURE_DEVOPS_IST_ON_PREMISESOb Sie Azure DevOps Server verwendenNEINFALSCH
AZURE_DEVOPS_COLLECTIONSammlungsname für lokale AnwendungenNEIN*-
AZURE_DEVOPS_API_VERSIONAPI-Version für lokale AnwendungenNEIN-
AZURE_DEVOPS_AUTH_TYPEAuthentifizierungstyp (pat/ntlm/basic/entra)NEINklopfen
AZURE_DEVOPS_PERSONAL_ACCESS_TOKENPersönlicher Zugriffstoken (für „Pat“-Authentifizierung)NEIN**-
AZURE_DEVOPS_USERNAMEBenutzername für NTLM/BasisauthentifizierungNEIN**-
AZURE_DEVOPS_PASSWORDPasswort für NTLM/Basic-AuthentifizierungNEIN**-
AZURE_DEVOPS_DOMAINDomäne für NTLM-AuthentifizierungNEIN-
ERLAUBTE_WERKZEUGEDurch Kommas getrennte Liste der zu aktivierenden ToolmethodenNEINAlle Werkzeuge

* Erforderlich, wenn AZURE_DEVOPS_IS_ON_PREMISES=true ** Erforderlich basierend auf dem gewählten Authentifizierungstyp

Werkzeugfilterung mit ALLOWED_TOOLS

Mit der Umgebungsvariable ALLOWED_TOOLS können Sie die verfügbaren Werkzeugmethoden einschränken. Dies ist völlig optional. Wenn Sie keine Variable angeben, werden alle Werkzeuge aktiviert.

Format: Durch Kommas getrennte Liste von Methodennamen ohne Leerzeichen.

Beispiel:

ALLOWED_TOOLS=listWorkItems,getWorkItemById,searchWorkItems,createWorkItem

Dadurch werden nur die angegebenen Arbeitselementmethoden aktiviert und alle anderen deaktiviert.

Verwendung

Sobald der Server läuft, können Sie über das MCP-Protokoll mit ihm interagieren. Der Server stellt verschiedene Tools für verschiedene Azure DevOps-Funktionen bereit.

Verfügbare Tools

Hinweis: Standardmäßig ist nur eine Teilmenge der Tools in der Datei index.ts registriert, um die anfängliche Implementierung einfach zu halten. Informationen zur Registrierung zusätzlicher Tools finden Sie im Abschnitt „Tool-Registrierung“ .

Beispiel: Arbeitselemente auflisten

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

Beispiel: Erstellen eines Arbeitselements

{ "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" } }

Beispiel: Repositorys auflisten

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

Beispiel: Erstellen einer Pull-Anforderung

{ "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" } }

Architektur

Das Projekt ist wie folgt strukturiert:

  • src/
    • Interfaces/ : Typdefinitionen für Parameter und Antworten
    • Services/ : Serviceklassen für die Interaktion mit Azure DevOps-APIs
    • Tools/ : Tool-Implementierungen, die Clients Funktionalität zur Verfügung stellen
    • index.ts : Haupteinstiegspunkt, der Tools registriert und den Server startet
    • config.ts : Konfigurationsverwaltung

Service-Schicht

Die Dienstschicht übernimmt die direkte Kommunikation mit der Azure DevOps-API:

  • WorkItemService : Arbeitselementvorgänge
  • BoardsSprintsService : Boards- und Sprint-Operationen
  • ProjectService : Projektmanagement-Operationen
  • GitService : Git-Repository-Operationen
  • TestingCapabilitiesService : Testen von Kapazitätsvorgängen
  • DevSecOpsService : DevSecOps-Operationen
  • ArtifactManagementService : Artefaktverwaltungsvorgänge
  • AIAssistedDevelopmentService : KI-gestützte Entwicklungsvorgänge

Werkzeugebene

Die Tool-Schicht umschließt die Dienste und bietet eine konsistente Schnittstelle für das MCP-Protokoll:

  • WorkItemTools : Tools für Arbeitselementvorgänge
  • BoardsSprintsTools : Tools für Board- und Sprint-Operationen
  • ProjectTools : Tools für Projektmanagementvorgänge
  • GitTools : Tools für Git-Operationen
  • TestingCapabilitiesTools : Tools zum Testen von Kapazitätsvorgängen
  • DevSecOpsTools : Tools für DevSecOps-Operationen
  • ArtifactManagementTools : Tools für Artefaktverwaltungsvorgänge
  • AIAssistedDevelopmentTools : Tools für KI-gestützte Entwicklungsvorgänge

Werkzeugregistrierung

Der MCP-Server erfordert die explizite Registrierung von Tools in der Datei index.ts . Standardmäßig ist nur eine Teilmenge aller möglichen Tools registriert, um die anfängliche Implementierung überschaubar zu halten.

So registrieren Sie weitere Tools:

  1. Öffnen Sie die Datei src/index.ts
  2. Fügen Sie neue Tool-Registrierungen nach dem Muster vorhandener Tools hinzu
  3. Erstellen und Neustarten des Servers

Eine umfassende Anleitung zur Tool-Registrierung ist in der Datei TOOL_REGISTRATION.md im Repository verfügbar.

Hinweis: Achten Sie beim Registrieren von Tools darauf, die richtigen Parametertypen zu verwenden, insbesondere für Enumerationswerte. Die Typdefinitionen im Interfaces Verzeichnis definieren die erwarteten Typen für jeden Parameter. Die Verwendung des falschen Typs (z. z.string() anstelle von z.enum() für Enumerationswerte) führt beim Build zu TypeScript-Fehlern.

Beispiel für die Registrierung eines neuen Tools:

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 }; } );

Fehlerbehebung

Häufige Probleme

Authentifizierungsfehler
  • Stellen Sie sicher, dass Ihr persönlicher Zugriffstoken gültig ist und über die erforderlichen Berechtigungen verfügt
  • Überprüfen Sie, ob die Organisations-URL korrekt ist
TypeScript-Fehler während des Builds
  • Verwenden Sie npm run build:ignore-errors um TypeScript-Fehler zu umgehen
  • Prüfen Sie auf fehlende oder falsche Typdefinitionen
Laufzeitfehler
  • Überprüfen Sie, ob das angegebene Azure DevOps-Projekt vorhanden und zugänglich ist.

Beitragen

Beiträge sind willkommen! So können Sie mitmachen:

  1. Forken Sie das Repository
  2. Erstellen Sie einen Feature-Zweig ( git checkout -b feature/amazing-feature )
  3. Übernehmen Sie Ihre Änderungen ( git commit -m 'Add some amazing feature' )
  4. Pushen zum Zweig ( git push origin feature/amazing-feature )
  5. Öffnen einer Pull-Anfrage

Bitte stellen Sie sicher, dass Ihr Code die Lint-Prüfung besteht und entsprechende Tests enthält.

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.

Dieser Server bietet eine praktische API für die Interaktion mit Azure DevOps-Diensten und ermöglicht KI-Assistenten und anderen Tools die Verwaltung von Arbeitselementen, Code-Repositories, Boards, Sprints und mehr. Erstellt mit dem Model Context Protocol bietet er eine standardisierte Schnittstelle für die Kommunikation mit Azure DevOps.

  1. Sternengeschichte
    1. Überblick
    2. Demo
    3. Merkmale
    4. Installation
    5. Konfiguration
    6. Verwendung
    7. Architektur
    8. Werkzeugregistrierung
    9. Fehlerbehebung
    10. Beitragen

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