mcpField
A
Azure DevOps On-Premises

Azure DevOps On-Premises

本地服务
zwitbaum.github.io版本控制57 周前更新

关于 Azure DevOps On-Premises

Azure DevOps On-Premises 是供使用自托管 Azure DevOps Server 或 TFS 的团队使用的 MCP 服务。它支持基于域凭据的 NTLM 身份验证,也支持 PAT 和 OAuth,并提供仓库、拉取请求、工作项和 Wiki 工具。

主要功能

  1. 01支持 NTLM、PAT 和 OAuth 身份验证
  2. 02浏览仓库与提交内容
  3. 03审查拉取请求和逐行差异
  4. 04搜索与管理工作项
  5. 05读取和更新 Wiki 页面
  6. 06支持 DevOps 数据的读写操作

适用场景

  1. 01将 AI 工具连接到本地部署的 DevOps 项目
  2. 02审查拉取请求讨论和文件更改
  3. 03在项目工作中查找并更新工作项
  4. 04搜索或维护项目 Wiki 文档

MCP 相关

该 MCP 服务提供工具,用于浏览和管理本地部署的 Azure DevOps 与 TFS 仓库、拉取请求、工作项和 Wiki。它支持 NTLM、PAT 和 OAuth Bearer Token 身份验证。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"zwitbaum-mcp-devops-on-prem": {
"command": "uvx",
"args": [
"mcp-devops-onpremise"
],
"env": {
"DEVOPS_API_URL": "<DEVOPS_API_URL>",
"DEVOPS_USERNAME": "<DEVOPS_USERNAME>",
"DEVOPS_PASSWORD": "<DEVOPS_PASSWORD>",
"DEVOPS_PAT": "<DEVOPS_PAT>",
"DEVOPS_TOKEN": "<DEVOPS_TOKEN>"
}
}
}
}
启动命令uvx mcp-devops-onpremise
需要配置的环境变量
DEVOPS_API_URLFull Azure DevOps Server project URL, e.g. https://server/org/project
DEVOPS_USERNAMENTLM username, usually DOMAIN\username
DEVOPS_PASSWORD密钥NTLM password
DEVOPS_PAT密钥Personal Access Token for PAT authentication
DEVOPS_TOKEN密钥OAuth bearer token for bearer-token authentication

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
pypimcp-devops-onpremise2.1.0

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

MCP DevOps 本地部署版

面向本地部署的 Azure DevOps 的 Model Context Protocol MCP 服务,让 AI 助手能够浏览代码库、审查拉取请求、管理工作项并与 Wiki 交互。

License: MIT PyPI - Version

概述

许多组织在项目中使用 TFS 或 Azure DevOps Server 等本地部署的 DevOps 解决方案。将这些系统与现代 Agentic AI 工具和大模型集成可能比较困难。Microsoft 官方的 Azure DevOps MCP 服务不支持这些环境,而且未来也不太可能支持。

此 MCP 服务弥补了这一缺口,能够与本地部署的 DevOps 系统顺畅集成。

本项目正积极开发中,并持续添加功能以满足当前需求。我们高度重视社区需求——如果你需要的功能尚未提供,请提交 Issue。用户请求的功能会优先处理,并尽快确定优先级和添加。

主要优势

此 MCP 服务最重要的功能之一是支持 NTLM 身份验证。许多本地部署和企业环境都需要 NTLM,用户可直接使用 Windows 域凭据或通过 VPN 进行身份验证。大多数面向 Azure DevOps 的 MCP 服务仅支持基于令牌身份验证的云端 Azure DevOps Services,无法连接到这些环境。

  • 支持 NTLM 身份验证(Windows 域凭据),适用于没有其他身份验证方式可用的本地部署和 VPN 环境。
  • 可选用 PAT 和 OAuth Bearer 令牌身份验证。
  • 支持通过 GitHub Copilot、Claude Desktop、Cursor、Windsurf 等兼容 MCP 的 AI 工具安全访问本地部署的 DevOps 系统。
  • 可在受限或离线环境中运行,无需向外部服务暴露敏感数据。
  • 获取提交差异,并清晰显示添加和删除的行,类似 DevOps UI。
  • 帮助将项目文档与代码更改一同保存和跟踪。
  • 自动处理工作项管理和代码审查等常见任务。

快速开始

前提条件

需要安装 Python 3.10+ 和 uv。如果尚未安装,请参阅安装指南。

快速安装

点击下面的按钮,即可直接在 IDE 中安装。系统会提示你输入凭据:

在 VS Code 中安装 在 VS Code Insiders 中安装 在 Cursor 中安装

其他平台请参阅入门指南中的手动安装。

手动安装

MCP 服务可以手动安装到以下 AI 工具中: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 等。

分步说明请参阅入门指南中的手动安装。

配置

DEVOPS_API_URL 必须指向完整的项目 URL:

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

该服务支持三种身份验证方式。如果不确定该使用哪种方式,请先选择 NTLM,因为它在本地部署/VPN 配置中最常见。

方式说明
NTLM(用户名 + 密码)本地部署/VPN 中最常见。通常是最简单的初始配置,也是其他方式无法使用时的最佳备用方案。
PAT(个人访问令牌)在启用并允许使用 PAT 时选择。令牌可能会过期,基于令牌的身份验证也可能受到策略限制。优点:无需在配置中存储账户密码。
OAuth Bearer Token适用于 CI/CD 流水线的高级选项。需要在 DevOps Server 上配置 OAuth 2.0,并由管理员定义令牌来源。

各方式的详细设置说明请参阅入门指南中的身份验证。

使用 NTLM(用户名 + 密码)
{
  "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"
      }
    }
  }
}
使用 PAT
{
  "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"
      }
    }
  }
}

如果你使用的是永久安装,请将 "command": "uvx" 替换为 "command": "mcp-devops-onpremise",并删除 "args" 行。

更新

所有配置示例都使用 mcp-devops-onpremise@latest,这会指示 uvx 在每次运行时自动获取最新版本。

有关永久安装和发行说明,请参阅入门指南中的更新。

可用工具

拉取请求
工具描述只读
devops_pull_request_get按 ID 获取拉取请求,包括关联的工作项和用于比较差异的提交 SHA✅
devops_pull_request_write创建或更新拉取请求、更新审阅者,或投票表决你的 PR❌
devops_pull_request_list_threads返回未删除评论线程及其文本评论的分层列表✅
devops_pull_request_list_thread_comments列出特定线程中未删除的文本评论✅
devops_pull_request_create_comment创建包含初始评论的新线程(常规评论或针对文件/行的行内评论)❌
devops_pull_request_reply_comment回复现有评论线程❌
devops_pull_request_update_thread更新评论线程的状态❌
devops_pull_request_update_comment更新现有评论的文本❌
devops_pull_request_delete_comment删除拉取请求线程中的评论❌
仓库
工具描述只读
devops_repository_list列出项目中的所有仓库✅
devops_repository_get按名称或 ID 获取仓库详情✅
devops_repository_commit_changes列出特定提交中发生更改的文件✅
devops_repository_diffs_commits获取两个提交之间的差异(已更改的文件路径)✅
devops_repository_item_content获取特定提交或分支中的原始文件内容✅
devops_get_item_content_diff获取文件在两个提交之间的逐行文本差异(新增行以 + 为前缀,删除行以 - 为前缀)✅
工作项
工具描述只读
devops_work_item_get按数字 ID 获取工作项(PBI、bug、任务)。返回包含关键字段、附件(文件和行内图像)以及关联项(工作项、拉取请求、提交)的精简对象✅
devops_work_item_attachment_get按 GUID 下载工作项附件,可保存到本地或返回 Base64 编码的内容✅
devops_work_item_type_get按名称获取工作项类型的定义(例如 Bug、User Story)✅
devops_work_item_query_by_wiql执行 WIQL(工作项查询语言)查询并返回匹配的工作项✅
devops_work_item_create使用指定类型的字段创建工作项;默认格式为 Html❌
devops_work_item_update使用 JSON Patch(add / replace / remove)更新工作项字段❌
devops_work_item_delete删除工作项,默认移至回收站;使用 destroy=True 可永久删除(需要项目权限)❌
devops_work_item_undelete从回收站恢复软删除的工作项❌
devops_work_item_link_update添加或移除两个工作项之间的关联链接(父项、子项、相关项、后继项、前置项等)❌
devops_work_item_artifact_link_update在工作项上添加或移除制品链接(拉取请求、构建、提交、分支、变更集)❌
devops_work_item_comment_list列出工作项评论,可配置页面大小和格式✅
devops_work_item_comment_add向工作项添加评论❌
devops_work_item_comment_update更新工作项中的现有评论❌
devops_work_item_comment_delete删除工作项中的评论❌
搜索
工具描述只读
devops_code_search搜索源代码,可选用仓库、路径和分支进行筛选✅
devops_work_item_search搜索工作项,可选用区域、类型、状态和分配对象进行筛选✅
devops_wiki_search搜索 Wiki 页面,可选用 Wiki 进行筛选✅
Wiki
工具描述只读
devops_wiki_page_get根据 Wiki ID 和页面 ID 获取 Wiki 页面元数据及可选内容✅
devops_wiki_page_create_or_update在指定的父页面下创建或更新 Wiki 页面❌
devops_wiki_page_update根据 ID 更新现有 Wiki 页面❌
devops_wiki_page_delete根据 ID 删除现有 Wiki 页面❌

开发

# Install dev dependencies
uv sync --group dev

# Run linting
uv run ruff check src/
uv run black --check src/

# Run tests
uv run pytest tests/

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。