Skip to main content

MCP server for Azure DevOps / TFS integration

Project description

Azure DevOps MCP Server

一个用于连接 Azure DevOps / TFS 的 MCP (Model Context Protocol) 服务,支持查询和创建工作项。

功能特性

  • 查询工作项: 通过 ID、WIQL 查询语句或文本搜索获取工作项
  • 创建工作项: 支持 Bug、Task、User Story 等多种工作项类型
  • 获取项目列表: 列出组织中的所有项目
  • 获取工作项类型: 查看项目中可用的工工作项类型

安装

1. 克隆或下载此项目

cd azure-devops-mcp

2. 安装依赖

pip install -r requirements.txt

或使用 pip (开发模式):

pip install -e .

配置

方式一: 使用配置文件 (推荐)

编辑 config.yaml 文件:

organization:
  url: "https://dev.azure.com/your-organization"
  project: "your-project-name"

auth:
  method: "oauth"
  oauth:
    client_id: "your-client-id"
    client_secret: "your-client-secret"
    tenant_id: "your-tenant-id"

方式二: 使用环境变量

复制 .env.example.env:

cp .env.example .env

然后编辑 .env 文件:

AZURE_DEVOPS_ORG_URL=https://dev.azure.com/your-organization
AZURE_DEVOPS_PROJECT=your-project-name

AZURE_CLIENT_ID=your-client-id
AZURE_CLIENT_SECRET=your-client-secret
AZURE_TENANT_ID=your-tenant-id

Azure AD 应用注册配置

要使用 OAuth 2.0 / Service Principal 认证,需要先在 Azure AD 中注册应用:

1. 注册 Azure AD 应用

  1. 访问 Azure Portal
  2. 导航到 Azure Active Directory > App registrations
  3. 点击 New registration
  4. 输入应用名称 (如 "Azure DevOps MCP")
  5. 选择支持的账户类型
  6. 点击 Register

2. 获取认证信息

在应用注册页面:

  1. 记录 Application (client) IDAZURE_CLIENT_ID
  2. 记录 Directory (tenant) IDAZURE_TENANT_ID
  3. 导航到 Certificates & secrets > Client secrets
  4. 点击 New client secret
  5. 输入描述并选择过期时间
  6. 记录生成的 ValueAZURE_CLIENT_SECRET

3. 配置 API 权限

  1. 在应用注册页面,导航到 API permissions
  2. 点击 Add a permission
  3. 选择 APIs my organization uses
  4. 搜索并选择 Azure DevOps
  5. 选择权限:
    • vso.work (读取和管理工作项)
    • vso.work_write (创建和修改工作项)
  6. 点击 Add permissions
  7. 点击 Grant admin consent for your organization

使用方法

在 Claude Desktop 中配置

编辑 Claude Desktop 配置文件:

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json Windows: %APPDATA%/Claude/claude_desktop_config.json

添加以下配置:

{
  "mcpServers": {
    "azure-devops": {
      "command": "python",
      "args": [
        "/path/to/azure-devops-mcp/src/server.py"
      ],
      "env": {
        "AZURE_DEVOPS_ORG_URL": "https://dev.azure.com/your-organization",
        "AZURE_DEVOPS_PROJECT": "your-project-name",
        "AZURE_CLIENT_ID": "your-client-id",
        "AZURE_CLIENT_SECRET": "your-client-secret",
        "AZURE_TENANT_ID": "your-tenant-id"
      }
    }
  }
}

重启 Claude Desktop

配置完成后,重启 Claude Desktop 以加载 MCP 服务。

可用工具

1. get_work_item

获取单个工作项详情

输入: work_item_id (必需), project (可选)

2. get_work_items

批量获取多个工作项

输入: work_item_ids (必需), fields (可选), project (可选)

3. query_work_items

使用 WIQL 查询工作项

输入: wiql (必需), project (可选)

示例 WIQL:
SELECT [System.Id] FROM WorkItems
WHERE [System.TeamProject] = @project
AND [System.State] = 'Active'

4. create_work_item

创建新工作项

输入: work_item_type (必需), title (必需),
      description (可选), assigned_to (可选),
      fields (可选), project (可选)

5. search_work_items

搜索工作项

输入: search_text (必需), project (可选), top (可选)

6. get_projects

获取所有项目列表

7. get_work_item_types

获取可用的工工作项类型

输入: project (可选)

使用示例

查询工作项

帮我查询 ID 为 12345 的工作项详情

搜索工作项

搜索标题中包含 "登录" 的工作项

创建工作项

创建一个 Bug:
标题: 用户登录时出现错误
描述: 在用户登录页面输入密码后点击登录按钮,系统返回 500 错误
指派给: zhangsan@example.com
优先级: 1

WIQL 查询

使用 WIQL 查询所有分配给我的高优先级 Bug

故障排除

认证失败

  • 确认 Client Secret 没有过期
  • 确认已授予 API 权限并执行了 Admin Consent
  • 检查 Tenant ID、Client ID 是否正确

401 Unauthorized

  • 检查 API 权限是否正确配置
  • 确认已授予 Admin Consent
  • 确认应用有权访问指定的 Azure DevOps 组织

找不到项目

  • 确认项目名称拼写正确
  • 确认你的账户有访问该项目的权限
  • 尝试使用 get_projects 工具列出所有可用项目

开发

项目结构

azure-devops-mcp/
├── src/
│   ├── __init__.py
│   ├── server.py              # MCP 服务器主文件
│   └── azure_devops_client.py # Azure DevOps API 客户端
├── config.yaml                # 配置文件
├── .env.example              # 环境变量示例
├── requirements.txt          # Python 依赖
├── pyproject.toml           # 项目配置
└── README.md                # 本文件

运行测试

python src/server.py

许可证

MIT License

贡献

欢迎提交 Issue 和 Pull Request!

相关链接

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

azure_devops_mcp-0.1.0.tar.gz (10.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

azure_devops_mcp-0.1.0-py3-none-any.whl (10.7 kB view details)

Uploaded Python 3

File details

Details for the file azure_devops_mcp-0.1.0.tar.gz.

File metadata

  • Download URL: azure_devops_mcp-0.1.0.tar.gz
  • Upload date:
  • Size: 10.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.2

File hashes

Hashes for azure_devops_mcp-0.1.0.tar.gz
Algorithm Hash digest
SHA256 3d992185bd8ab5744f929f62df986b501e1e7a0e80a453954b3c07c644b08c17
MD5 e5acb0f497b38ab381f73b2dce6bcc61
BLAKE2b-256 ed6141b86051cfb58b2d14a34615aaf3a8d261fed07e49d199e69f8d5d8cb8db

See more details on using hashes here.

File details

Details for the file azure_devops_mcp-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for azure_devops_mcp-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 5f7035ba0614c48c67400a07ec9eb7c7f5d05c234a36939035fc0d80aefbb1ba
MD5 8ecfa77647115dc948c5d050cb0a8101
BLAKE2b-256 dd4f1d13158b13db68f86eefe68435dd119052e1c5994af26fd93aaf538eba2d

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page