Skip to main content
Glama
Wootz

Azure DevOps On-Prem MCP Server

by Wootz

MCP-Server für die lokale Bereitstellung von Azure DevOps

npm version

Ein Model Context Protocol (MCP)-Server für Azure DevOps Server 2022 (lokale Bereitstellung). Ermöglicht KI-Assistenten die Interaktion mit deinem lokalen Azure DevOps Server über 30 Tools.

Einrichtung

Füge Folgendes zur Konfigurationsdatei eines MCP-fähigen Clients hinzu:

{
  "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" // 使用自簽憑證
      }
    }
  }
}

Beschreibung der Umgebungsvariablen:

  • ADO_SERVER_URL: Erforderlich, vollständiger Collection-Pfad (z. B. https://tfs.company.com/DefaultCollection)

  • ADO_PAT_TOKEN: Erforderlich, persönliches Zugriffstoken

  • ADO_PROJECT: Optional, Standard-Projektname. Wenn gesetzt, verwenden alle Tools dieses Projekt automatisch, wenn kein project-Parameter angegeben wird; Die explizite Angabe desselben Projektnamens funktioniert normal, die Angabe eines anderen Projekts wird blockiert. Wenn eine WIQL-Abfrage keine Bedingung [System.TeamProject] enthält, wird diese Bedingung automatisch eingefügt, um projektübergreifende Datenabfragen zu vermeiden.

  • NODE_TLS_REJECT_UNAUTHORIZED: Erforderlich, auf "0" setzen, um selbstsignierte Zertifikate zu unterstützen (häufig in lokalen Bereitstellungsumgebungen)

⚠️ Sicherheitshinweis: NODE_TLS_REJECT_UNAUTHORIZED=0 umgeht die SSL-Zertifikatsprüfung und ist nur für lokale Bereitstellungsumgebungen im internen Netzwerk geeignet. Nicht in öffentlichen Netzwerken verwenden.

Persönliches Zugriffstoken (PAT) erstellen

  1. Gehe zu deinem Azure DevOps Server: https://your-server/DefaultCollection

  2. Klicke oben rechts auf das Profilsymbol → Sicherheit → Persönliche Zugriffstoken

  3. Erstelle ein neues Token und lege folgende Bereiche fest:

    • Code: Lesen und Schreiben (für Pull Requests und Git-Operationen)

    • Arbeitselemente: Lesen und Schreiben (für Arbeitselement-Operationen)

    • Projekte und Teams: Lesen (für Projekt- und Sprint-Informationen)

    • Build: Lesen und Ausführen (für Build-/Pipeline-Operationen)

Related MCP server: Azure DevOps MCP Server

Systemanforderungen

  • Node.js >= 20.0.0

  • Azure DevOps Server 2022 (lokale Bereitstellungsversion)

  • Gültiges persönliches Zugriffstoken (PAT)

Verfügbare Tools

Core (1 Tool)

  • mcp_ado_core_list_projects – Alle Projekte auflisten

Arbeitselemente (11 Tools)

  • mcp_ado_work_items_get – Detaillierte Informationen zu einem Arbeitselement abrufen

  • mcp_ado_work_items_create – Neues Arbeitselement erstellen

  • mcp_ado_work_items_update – Arbeitselement aktualisieren

  • mcp_ado_work_items_delete – Arbeitselement löschen

  • mcp_ado_work_items_query_by_wiql – Arbeitselemente abfragen (WIQL)

  • mcp_ado_work_items_add_comment – Kommentar hinzufügen

  • mcp_ado_work_items_get_comments – Kommentare abrufen

  • mcp_ado_work_items_add_link – Arbeitselement-Verknüpfung hinzufügen

  • mcp_ado_work_items_get_updates – Revisionsverlauf abrufen

  • mcp_ado_work_items_batch_get – Arbeitselemente in Stapeln abrufen

  • mcp_ado_work_items_batch_create – Arbeitselemente in Stapeln erstellen (unterstützt Eltern-Kind-Hierarchien im selben Stapel)

Repositorys (10 Tools)

Pull Requests

  • mcp_ado_repos_list_pull_requests – Pull Requests auflisten

  • mcp_ado_repos_get_pull_request – PR-Details abrufen

  • mcp_ado_repos_create_pull_request – Pull Request erstellen

  • mcp_ado_repos_update_pull_request – Pull Request aktualisieren (Status, Titel)

  • mcp_ado_repos_get_pr_threads – PR-Review-Diskussionen abrufen

  • mcp_ado_repos_create_pr_thread – Review-Kommentar zu einem PR hinzufügen

Git

  • mcp_ado_repos_list_repositories – Alle Repositorys unter einem Projekt auflisten

  • mcp_ado_repos_list_branches – Alle Branches eines Repositorys auflisten

  • mcp_ado_repos_get_item – Dateiinhalt abrufen (unterstützt angegebenen Branch)

  • mcp_ado_repos_get_commits – Commit-Verlauf abrufen (filterbar nach Branch / Pfad / Autor)

Builds (5 Tools)

  • mcp_ado_builds_list_definitions – Build-Definitionen auflisten (Pipeline-Liste)

  • mcp_ado_builds_list – Builds auflisten (unterstützt Status / Ergebnis / Branch-Filter)

  • mcp_ado_builds_get – Details zu einem bestimmten Build abrufen

  • mcp_ado_builds_queue – Neuen Build auslösen (Queue)

  • mcp_ado_builds_get_logs – Build-Log-Liste oder Inhalt eines bestimmten Logs abrufen

Arbeit / Sprint (3 Tools)

  • mcp_ado_work_list_iterations – Sprints / Iterationen auflisten (unterstützt Filter für past / current / future)

  • mcp_ado_work_get_iteration_work_items – Alle Arbeitselemente in einem bestimmten Sprint abrufen

  • mcp_ado_work_list_backlogs – Backlog-Ebenen auflisten (Epics / Features / Stories)

Gesamt: 30 Tools

Die vollständigen Tool-Definitionen und Parameterbeschreibungen findest du im Verzeichnis src/tools/ im Quellcode.

Verwendungsbeispiele

Du kannst über natürliche Sprache mit dem KI-Assistenten interagieren, um verschiedene Azure DevOps-Operationen auszuführen:

Projekte und Arbeitselemente anzeigen

  • „Alle Projekte auflisten"

  • „Arbeitselement #1234 anzeigen"

  • „Mir zugewiesene Arbeitselemente in MyProject abfragen"

  • „Alle Bugs mit Status 'In Bearbeitung' auflisten"

  • „In den letzten 7 Tagen geänderte Arbeitselemente anzeigen"

Arbeitselemente erstellen und aktualisieren

  • „In MyProject einen Bug mit dem Titel 'Fehler auf der Anmeldeseite' erstellen"

  • „Eine User Story mit dem Titel 'Abmeldefunktion hinzufügen' erstellen und john@company.com zuweisen"

  • „Arbeitselement #5678 aktualisieren und den Status auf 'Abgeschlossen' ändern"

  • „Die Priorität von Arbeitselement #1234 auf 1 setzen"

  • „Zu Arbeitselement #1234 einen Kommentar hinzufügen: Problem konnte reproduziert werden"

  • „Eine Task mit dem Titel 'Unit-Tests ergänzen' erstellen, übergeordnetes Element ist #5787"

  • „Ein Feature und die 3 darunterliegenden Tasks in einem Schritt erstellen"

Arbeitselement-Verknüpfungen verwalten

  • „Arbeitselement #100 mit #200 verknüpfen, Typ Related"

  • „Arbeitselement #6320 unter #5787 einhängen"

  • „Alle Kommentare zu Arbeitselement #1234 anzeigen"

  • „Den Änderungsverlauf von Arbeitselement #5678 anzeigen"

  • „Alle verknüpften Elemente von Arbeitselement #999 auflisten"

Repository- und Git-Operationen

  • „Alle Repositorys unter MyProject auflisten"

  • „Alle Branches von MainRepo auflisten"

  • „Den Dateiinhalt von src/app.ts im main-Branch abrufen"

  • „Die letzten 10 Commits von MainRepo anzeigen"

  • „Alle aktiven Pull Requests in MainRepo auflisten"

  • „Die Details von Pull Request #123 anzeigen"

  • „Einen PR von feature/new-api nach develop mit dem Titel 'Neuen API-Endpunkt hinzufügen' erstellen"

  • „PR #789 aktualisieren und den Status auf 'Abgeschlossen' ändern"

  • „Alle Review-Diskussionen von PR #456 abrufen"

  • „Zu PR #123 einen Review-Kommentar hinzufügen: Empfehlung, async/await zu verwenden"

Build-/Pipeline-Operationen

  • „Alle Pipeline-Definitionen von MyProject auflisten"

  • „Die zuletzt fehlgeschlagenen Builds von MyProject anzeigen"

  • „Die Details von Build #456 abrufen"

  • „Einen Build mit Definition ID 12 unter Verwendung des main-Branches auslösen"

  • „Die Log-Liste von Build #789 anzeigen"

Beispiele für vollständige Arbeitsabläufe

Du kannst mehrere Operationen verketten, um vollständige Arbeitsabläufe auszuführen:

Bug melden und beheben:

  1. „In MyProject einen Bug mit dem Titel 'Anmeldeseite kann nicht geladen werden' erstellen"

  2. „Diesen Bug developer@company.com zuweisen"

  3. „Kommentar hinzufügen: Tritt im Chrome-Browser auf, in Firefox funktioniert es"

  4. „Einen Pull Request von bugfix/login nach main erstellen, um dieses Problem zu beheben"

  5. „Dem PR eine Beschreibung hinzufügen: Problem mit der CSS-Ladereihenfolge behoben"

Feature-Entwicklung verfolgen:

  1. „Eine User Story erstellen: Benutzerprofilseite implementieren"

  2. „Eine Task erstellen: Profil-UI entwerfen und mit der obigen User Story verknüpfen"

  3. „Eine weitere Task erstellen: Profil-API implementieren, ebenfalls mit derselben User Story verknüpfen"

  4. „Wenn abgeschlossen, den Status aller zugehörigen Arbeitselemente auf 'Abgeschlossen' aktualisieren"

Aktuellen Sprint-Status anzeigen:

  1. „Alle Arbeitselemente des aktuellen Sprints von MyProject auflisten"

  2. „Noch nicht abgeschlossene Tasks anzeigen"

  3. „Die Iteration ID des nächsten Sprints anzeigen"

Entwicklung

Projekt erstellen

pnpm install
pnpm run build

Watch-Modus

pnpm run watch

Tests ausführen

pnpm test

Linter ausführen

pnpm run lint

Projektstruktur

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           # 版本資訊

Besondere Funktionen

  • Speziell für lokale Bereitstellung: Entwickelt für Azure DevOps Server 2022

  • Collection-basierte URL: Unterstützt das Format https://{server}/{collection}

  • PAT-Authentifizierung: Verwendet ausschließlich persönliche Zugriffstoken, keine Azure CLI erforderlich

  • Leichtgewichtig: Minimale Abhängigkeiten, klare Architektur

  • Vollständige Funktionalität: Umfasst Arbeitselemente, Pull Requests, Git, Build-Pipelines und Sprint-Planung

  • Hierarchie und Stapelverarbeitung: Unterstützt Eltern-Kind-Beziehungen, kann einen gesamten Arbeitselementbaum in einem Schritt erstellen

  • Kompakte Antworten: Schneidet lange Identity-Objekte automatisch zu, gewünschte Felder können über fields angegeben werden

Lizenz

MIT License

Related MCP Connectors

Related MCP Servers