Skip to main content
Glama
Wootz

Azure DevOps On-Prem MCP Server

by Wootz

Azure DevOps 地端部署 MCP 伺服器

npm version

適用於 Azure DevOps Server 2022(地端部署) 的 Model Context Protocol (MCP) 伺服器。讓 AI 助手能夠透過 30 個工具與你的地端 Azure DevOps Server 互動。

設定

在支援 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 - 列出 Repository 的所有 Branch

  • 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 Log 列表或指定 Log 內容

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/ 目錄。

使用範例

你可以用自然語言與 AI 助手互動,執行各種 Azure DevOps 操作:

查看專案和工作項目

  • "列出所有專案"

  • "顯示工作項目 #1234"

  • "查詢 MyProject 中分配給我的工作項目"

  • "列出所有狀態為進行中的 bug"

  • "顯示最近 7 天修改過的工作項目"

建立和更新工作項目

  • "在 MyProject 中建立一個 bug,標題為「登入頁面錯誤」"

  • "建立一個 User Story,標題為「新增登出功能」,分配給 john@company.com"

  • "更新工作項目 #5678,將狀態改為已完成"

  • "將工作項目 #1234 的優先順序設為 1"

  • "對工作項目 #1234 新增註解:已確認重現問題"

  • "建立一個 Task,標題為「補單元測試」,父項為 #5787"

  • "一次建立一個 Feature 和它底下的 3 個 Task"

管理工作項目關聯

  • "將工作項目 #100 連結到 #200,類型為 Related"

  • "把工作項目 #6320 掛到 #5787 底下"

  • "顯示工作項目 #1234 的所有註解"

  • "查看工作項目 #5678 的修改歷史"

  • "列出工作項目 #999 的所有關聯項目"

Repository 與 Git 操作

  • "列出 MyProject 下所有的 repository"

  • "列出 MainRepo 的所有 branch"

  • "取得 main branch 上 src/app.ts 的檔案內容"

  • "顯示 MainRepo 最近 10 筆 commit 記錄"

  • "列出 MainRepo 中所有活動的 pull request"

  • "顯示 pull request #123 的詳細資訊"

  • "建立一個從 feature/new-api 到 develop 的 PR,標題為「新增 API 端點」"

  • "更新 PR #789,將狀態改為已完成"

  • "取得 PR #456 的所有審查討論"

  • "在 PR #123 上新增審查評論:建議改用 async/await"

Build / Pipeline 操作

  • "列出 MyProject 的所有 pipeline 定義"

  • "顯示 MyProject 最近失敗的 build"

  • "取得 build #456 的詳細資訊"

  • "觸發 definition ID 為 12 的 build,使用 main branch"

  • "顯示 build #789 的 log 列表"

完整工作流程範例

你可以串連多個操作來完成完整的工作流程:

回報和修復 Bug

  1. "在 MyProject 中建立一個 bug,標題為「登入頁面無法載入」"

  2. "將這個 bug 分配給 developer@company.com"

  3. "新增註解:發生在 Chrome 瀏覽器,Firefox 正常"

  4. "建立一個從 bugfix/login 到 main 的 pull request 來修復這個問題"

  5. "在 PR 上新增說明:修正了 CSS 載入順序問題"

追蹤功能開發

  1. "建立一個 User Story:實作使用者個人檔案頁面"

  2. "建立一個 Task:設計個人檔案 UI,並連結到上面的 User Story"

  3. "建立另一個 Task:實作個人檔案 API,也連結到同一個 User Story"

  4. "當完成時,更新所有相關工作項目的狀態為已完成"

查看目前 Sprint 狀態

  1. "列出 MyProject 目前 sprint 的所有工作項目"

  2. "顯示尚未完成的 task"

  3. "顯示下一個 sprint 的 iteration ID"

開發

建置專案

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