Azure DevOps On-Premises

io.github.zwitbaum由 GitHub 帳號 zwitbaum 發布v2.1.0更新於 Oct 24, 2026

MCP server for on-premises Azure DevOps Server and TFS: repos, pull requests, work items, and wiki.

已驗證STDIO僅桌面效率與工作流開發者工具

概覽

AI 產生的概覽

針對地端部署 Azure DevOps Server 與 TFS 的 MCP 伺服器,讓助理瀏覽程式碼庫、審閱提取要求、管理工作項目並編輯 Wiki。

可以做什麼
  • 列出程式碼庫、讀取指定提交或分支的檔案內容、查看提交變更與逐行差異
  • 取得、建立和更新提取要求,進行審查投票,並讀取、新增、回覆、修改或刪除討論串留言
  • 查詢、建立、更新、刪除、還原工作項目,並管理附件、留言與關聯連結
  • 依條件搜尋程式碼、工作項目和 Wiki 頁面
  • 讀取、建立、更新和刪除 Wiki 頁面
適用情境
適合團隊在地端執行 Azure DevOps Server 或 TFS、常透過 VPN 以 Windows 網域帳號登入的情況,希望助理協助程式碼審查、工作項目處理或文件維護。微軟官方伺服器僅支援雲端 Azure DevOps。
執行需求
透過 uvx 在本機執行,需要 Python 3.10+ 與 uv。必須將 DEVOPS_API_URL 設為完整專案網址,並擇一認證方式:NTLM 使用 DEVOPS_USERNAME 與 DEVOPS_PASSWORD,或使用 DEVOPS_PAT,或以 DEVOPS_TOKEN 作為 OAuth 權杖。需能連線至 DevOps 伺服器,可能需 VPN。
安裝前請注意
NTLM 方式會把 Windows 網域密碼寫入用戶端設定;改用 PAT 可避免,但權杖可能過期或被政策封鎖。多個工具會寫入或刪除資料:建立提取要求與投票、編輯和刪除留言、工作項目建立/更新/刪除(destroy 為永久刪除)、Wiki 頁面建立/更新/刪除。請只連線可信任的伺服器網址。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Azure DevOps On-Premises,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

MCP DevOps On-Premise

Model Context Protocol MCP server for on-premises Azure DevOps that lets AI assistants browse repositories, review pull requests, manage work items, and interact with wikis.

[License: MIT] [PyPI - Version]

Overview

Many organizations use on-premise DevOps solutions such as TFS or Azure DevOps Server in their projects. Integrating these systems with modern agentic AI tools and LLMs can be difficult. The official Microsoft Azure DevOps MCP server does not support these environments and is unlikely to support them in the future.

This MCP server closes that gap and enables smooth integration with on-premise DevOps systems.

This project is under active development, with features continuously added to meet current requirements. Community needs are highly valued — if you miss any features, please submit an Issue. User-requested features are fast-tracked and will be prioritized and added as soon as possible.

Key Advantages

One of the most important features of this MCP server is NTLM authentication support. NTLM is required by many on-premises and enterprise environments where users authenticate with Windows domain credentials, either directly or over VPN. Most MCP servers for Azure DevOps target only cloud-hosted Azure DevOps Services with token-based auth and cannot connect to these environments.

  • NTLM authentication (Windows domain credentials) for on-prem and VPN-based setups where no other auth method works.
  • PAT and OAuth bearer token authentication as alternatives when available.
  • Enables secure access to on-prem DevOps systems from MCP-compatible AI tools such as GitHub Copilot, Claude Desktop, Cursor, Windsurf, and others.
  • Works in restricted or offline environments without exposing sensitive data to external services.
  • Retrieves commit diffs with clear added/removed lines, similar to the DevOps UI.
  • Helps keep and track project documentation alongside code changes.
  • Automates common tasks such as work item management and code review processes.

Getting Started

Prerequisites

Python 3.10+ and uv are required. If not yet installed, see installation guide.

Quick Install

Click one of the buttons below to install directly in your IDE. You will be prompted for credentials:

[Install in VS Code] [Install in VS Code Insiders] [Install in Cursor]

For other platforms, see Manual Installation in the Getting Started guide.

Manual Installation

The MCP server can be installed manually in the following AI tools: VS Code, Visual Studio, Cursor, Goose, LM Studio, Amp, Claude Code, Claude Desktop, Codex, Gemini CLI, OpenCode, Qodo Gen, Warp, Windsurf, GitHub Copilot CLI, GitHub Copilot Coding Agent, and others.

For step-by-step instructions, see Manual Installation in the Getting Started guide.

Configuration

The DEVOPS_API_URL must point to your full project URL:

https://<your-devops-server>/<organization>/<project>

The server supports three authentication methods. If you are unsure which one to use, start with NTLM because it is the most common for on-prem/VPN setups.

MethodDescription
NTLM (username + password)Most common for on-prem/VPN. Usually the simplest first setup and best fallback if other options fail.
PAT (Personal Access Token)Use when PAT is enabled and allowed. Tokens can expire, and token-based auth may be blocked by policy. Advantage: you do not store your account password in config.
OAuth Bearer TokenAdvanced option for CI/CD pipelines. Requires OAuth 2.0 configured on your DevOps Server and a token source defined by your administrators.

For detailed setup instructions for each method, see Authentication in the Getting Started guide.

With NTLM (username + password)
json
{  "mcpServers": {    "devops-onprem": {      "command": "uvx",      "args": ["mcp-devops-onpremise@latest"],      "env": {        "DEVOPS_API_URL": "https://your-devops-server/your-organization/your-project",        "DEVOPS_USERNAME": "DOMAIN\\your-username",        "DEVOPS_PASSWORD": "your-password"      }    }  }}
With PAT
json
{  "mcpServers": {    "devops-onprem": {      "command": "uvx",      "args": ["mcp-devops-onpremise@latest"],      "env": {        "DEVOPS_API_URL": "https://your-devops-server/your-organization/your-project",        "DEVOPS_PAT": "your-personal-access-token"      }    }  }}

If you used a permanent install, replace "command": "uvx" with "command": "mcp-devops-onpremise" and remove the "args" line.

Updating

All configuration examples use mcp-devops-onpremise@latest, which instructs uvx to fetch the latest version automatically on every run.

For permanent installs and release notes, see Updating in the Getting Started guide.

Available Tools

Pull Requests

ToolDescriptionRead-only
devops_pull_request_getRetrieve a pull request by ID, including linked work items and commit SHAs for diffing✅
devops_pull_request_writeCreate or update pull requests, update reviewers, or cast your PR vote❌
devops_pull_request_list_threadsReturns a hierarchical list of non-deleted comment threads and their text comments✅
devops_pull_request_list_thread_commentsList non-deleted text comments in a specific thread✅
devops_pull_request_create_commentCreate a new thread with an initial comment (general or inline on a file/line)❌
devops_pull_request_reply_commentReply to an existing comment thread❌
devops_pull_request_update_threadUpdate the status of a comment thread❌
devops_pull_request_update_commentUpdate the text of an existing comment❌
devops_pull_request_delete_commentDelete a comment from a pull request thread❌

Repositories

ToolDescriptionRead-only
devops_repository_listList all repositories in the project✅
devops_repository_getRetrieve repository details by name or ID✅
devops_repository_commit_changesList files changed in a specific commit✅
devops_repository_diffs_commitsGet the difference between two commits (changed file paths)✅
devops_repository_item_contentGet raw file content at a specific commit or branch✅
devops_get_item_content_diffGet line-level textual diff of a file between two commits (added lines prefixed +, removed -)✅

Work Items

ToolDescriptionRead-only
devops_work_item_getRetrieve a work item (PBI, bug, task) by numeric ID. Returns a compact object with key fields, attachments (files and inline images), and linked items (work items, pull requests, commits)✅
devops_work_item_attachment_getDownload a work item attachment by its GUID, either saving locally or returning base64-encoded content✅
devops_work_item_type_getGet the definition of a work item type by name (e.g. Bug, User Story)✅
devops_work_item_query_by_wiqlExecute a WIQL (Work Item Query Language) query and return matching work items✅
devops_work_item_createCreate a new work item with typed fields; Html is the default format❌
devops_work_item_updateUpdate fields on a work item using JSON Patch (add / replace / remove)❌
devops_work_item_deleteDelete a work item, moves to Recycle Bin by default; use destroy=True for permanent deletion (requires project permission)❌
devops_work_item_undeleteRestore a soft-deleted work item from the Recycle Bin❌
devops_work_item_link_updateAdd or remove a relation link between two work items (parent, child, related, successor, predecessor, etc.)❌
devops_work_item_artifact_link_updateAdd or remove an artifact link (Pull Request, Build, Commit, Branch, Changeset) on a work item❌
devops_work_item_comment_listList comments on a work item with configurable page size and format✅
devops_work_item_comment_addAdd a comment to a work item❌
devops_work_item_comment_updateUpdate an existing comment on a work item❌
devops_work_item_comment_deleteDelete a comment from a work item❌

Search

ToolDescriptionRead-only
devops_code_searchSearch source code with optional repository, path, and branch filters✅
devops_work_item_searchSearch work items with optional area, type, state, and assigned-to filters✅
devops_wiki_searchSearch wiki pages with an optional wiki filter✅

Wiki

ToolDescriptionRead-only
devops_wiki_page_getGet wiki page metadata and optional content by wiki ID and page ID✅
devops_wiki_page_create_or_updateCreate or update a wiki page under a specified parent page❌
devops_wiki_page_updateUpdate an existing wiki page by ID❌
devops_wiki_page_deleteDelete an existing wiki page by ID❌

Development

bash
# Install dev dependenciesuv sync --group dev
# Run lintinguv run ruff check src/uv run black --check src/
# Run testsuv run pytest tests/

來源:README.md,提交 c4a145a

工具

0
SourceWeft 尚未在沙箱中啟動過該軟體包,因此其工具未知。

版本歷史

1
  1. v2.1.0最新Sep 16, 2026

評分

已滿足適用檢查項的 50%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分

    請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。

  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分