Azure DevOps 协议服务器

一个提供标准化接口访问Azure DevOps资源和工具的服务,支持工作项管理、代码仓库操作、构建管道查询等功能。

  • by Kshitijijari09
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 kshitijijari09/azure-devops-mcp-server

使用说明

Azure DevOps MCP服务器

这是一个模型上下文协议(MCP)服务器,通过标准化的接口提供对Azure DevOps资源和工具的访问。

特性

服务器提供以下Azure DevOps工具:

  • get_workitems -使用WIQL查询检索工作项
  • 获取存储 -列出Git存储库
  • get_pullrequests -从存储库获取拉取请求
  • get_builds -检索构建管道信息
  • get_commits -从仓库获取Git提交
  • 创建工作项 -创建新的工作项(bug、功能、任务等)

先决条件

  1. Azure DevOps帐户:您需要访问Azure DevOps组织
  2. 个人访问令牌:生成具有以下范围的PAT:
    • 工作项(读写)
    • 代码(读取)
    • 构建(读取)
    • 发布(阅读)

安装说明

1.配置环境变量

编辑 .env 在项目根目录中创建文件并替换占位符值:

# Your Azure DevOps organization name (e.g., "mycompany" for dev.azure.com/mycompany)
AZURE_DEVOPS_ORG=your-actual-organization

# Your Azure DevOps project name
AZURE_DEVOPS_PROJECT=your-actual-project

# Your Azure DevOps Personal Access Token
AZURE_DEVOPS_TOKEN=your-actual-personal-access-token

2.生成个人访问令牌

  1. 转到您的Azure DevOps组织: https://dev.azure.com/{your-org}/_usersSettings/tokens
  2. 点击“新建令牌”
  3. 设置以下范围:
    • 工作项:读写
    • 代码:阅读
    • 构建:阅读
    • 发布:阅读
  4. 复制生成的令牌并将其添加到您的 .env 文件

3.测试服务器

运行服务器以测试您的配置:

# Activate virtual environment
source azure-mcp-venv/bin/activate

# Run the server
python main.py

如果成功,您应该看到: 🚀 Azure DevOps MCP Server running...

运行MCP服务器

选项1:终端交互客户端(建议用于VPN环境)

如果您使用VPN或无法通过VS Code连接,您可以直接从终端使用交互式MCP客户端:

# Navigate to the project directory
cd /Users/kshitijijari/Desktop/MySpace/MCP/azure-devops-mcp-server

# Activate the virtual environment
source azure-mcp-venv/bin/activate

# Run the interactive MCP client
python mcp_client.py

这将启动一个包含以下选项的交互式菜单:

  1. 列出可用工具 -查看所有可用的Azure DevOps工具
  2. 获取工作项 -运行自定义WIQL查询
  3. 获取存储库 -列出Git存储库
  4. 获取构建 -查看构建管道信息
  5. 获取pull请求 -查看存储库中的PR
  6. 获取提交 -查看Git提交
  7. 创建工作项 -创建新工作项
  8. 退出

选项2:直接MCP服务器

直接运行MCP服务器(用于MCP客户端):

# Navigate to the project directory
cd /Users/kshitijijari/Desktop/MySpace/MCP/azure-devops-mcp-server

# Activate the virtual environment
source azure-mcp-venv/bin/activate

# Run the MCP server
python main.py

选项3:使用启动脚本

# Make the script executable
chmod +x start_mcp_server.sh

# Run the startup script
./start_mcp_server.sh

添加到MCP客户端(VS代码/光标)

选项1:使用提供的配置

复制 mcp_config.json 将文件保存到MCP客户端配置目录并更新环境变量:

{
  "mcpServers": {
    "azure-devops": {
      "command": "python",
      "args": [
        "/Users/kshitijijari/Desktop/MySpace/MCP/azure-devops-mcp-server/main.py"
      ],
      "env": {
        "AZURE_DEVOPS_ORG": "your-actual-organization",
        "AZURE_DEVOPS_PROJECT": "your-actual-project",
        "AZURE_DEVOPS_TOKEN": "your-actual-personal-access-token"
      }
    }
  }
}

选项2:手动配置

将此添加到MCP客户端配置中:

{
  "mcpServers": {
    "azure-devops": {
      "command": "python",
      "args": ["/absolute/path/to/your/azure-devops-mcp-server/main.py"],
      "env": {
        "AZURE_DEVOPS_ORG": "your-organization",
        "AZURE_DEVOPS_PROJECT": "your-project",
        "AZURE_DEVOPS_TOKEN": "your-personal-access-token"
      }
    }
  }
}

选项3:使用启动脚本

您还可以使用提供的启动脚本:

{
  "mcpServers": {
    "azure-devops": {
      "command": "/Users/kshitijijari/Desktop/MySpace/MCP/azure-devops-mcp-server/start_mcp_server.sh",
      "env": {
        "AZURE_DEVOPS_ORG": "your-organization",
        "AZURE_DEVOPS_PROJECT": "your-project",
        "AZURE_DEVOPS_TOKEN": "your-personal-access-token"
      }
    }
  }
}

使用示例

终端交互客户端示例

使用交互式MCP客户端时(python mcp_client.py),您可以:

使用自定义查询获取工作项:

  • 输入WIQL查询,如下所示: SELECT [System.Id], [System.Title], [System.State] FROM WorkItems WHERE [System.AssignedTo] = 'John Doe'
  • 或者对最近的工作项使用默认查询

获取存储库:

  • 可选择按存储库名称筛选
  • 查看所有可用的Git存储库

获取构建:

  • 按构建定义ID筛选
  • 按状态筛选(正在进行、已完成、全部)
  • 设置自定义限制

创建工作项:

  • 选择工作项类型(Bug、功能、任务、用户故事、Epic)
  • 设置标题、描述、受让人、区域路径和迭代路径

MCP客户端集成示例

配置后,您可以在MCP客户端中使用Azure DevOps工具:

获取工作项

{
  "name": "get_workitems",
  "arguments": {
    "query": "SELECT [System.Id], [System.Title], [System.State] FROM WorkItems WHERE [System.TeamProject] = @project",
    "limit": 10
  }
}

获取存储库

{
  "name": "get_repositories",
  "arguments": {}
}

创建工作项

{
  "name": "create_workitem",
  "arguments": {
    "work_item_type": "Bug",
    "title": "New bug report",
    "description": "Description of the bug",
    "assigned_to": "user@example.com"
  }
}

故障排除

常见问题

  1. 认证错误:验证您的个人访问令牌是否正确,是否具有所需的范围
  2. 未找到组织/项目:检查您的组织和项目名称拼写是否正确
  3. 权限不足:确保您的PAT具有您尝试执行的操作所需的权限

调试模式

要启用调试日志记录,请在中修改日志记录级别 main.py:

logging.basicConfig(level=logging.DEBUG)

安全说明

  • 永远不要承诺你的 .env 文件或个人访问令牌到版本控制
  • 在生产中使用环境变量或安全配置管理
  • 定期轮换您的个人访问令牌
  • 设置令牌范围时使用最小特权原则

支持

对于问题或疑问:

  1. 查看Azure DevOps API文档
  2. 验证您的令牌权限
  3. 直接使用Azure DevOps REST API测试您的连接