Back to MCP directory
publicPublicdnsLocal runtime

ado-mcp

Azure DevOps MCP服务器是一个通过AI助手与Azure DevOps服务交互的工具,采用基于实体的架构组织操作,提供增强的错误处理、分页功能和详细文档。

article

README

🚀 Azure DevOps 多租户控制平面(MCP)

Azure DevOps 多租户控制平面(MCP)为 Azure DevOps 提供了强大的管理和控制能力,通过直观的架构设计和丰富的功能组件,帮助用户高效管理组织、项目、仓库等资源。

🚀 快速开始

环境变量配置

  • ADO_ORGANIZATION: Azure DevOps 组织名称(必填)
  • ADO_PROJECT: 默认项目名称(可选)
  • ADO_PAT: 个人访问令牌用于身份验证(必填)
  • ADO_API_URL: API 基 URL(可选,默认为 https://dev.azure.com)
  • ADO_API_VERSION: API 版本(可选,默认为 7.0)
  • ADO_API_MAX_RETRIES: API 调用的最大重试次数(可选,默认为 3)
  • ADO_API_DELAY_MS: 重试之间的延迟时间(以毫秒为单位)(可选,默认为 1000)
  • ADO_API_USE_KERBEROS: 是否启用 Kerberos 认证(可选,默认为 false)

配置文件示例

# 配置文件路径:config/azure-devops-mcp.properties

# Azure DevOps 组织名称
organization.name = my_organization

# 默认项目 ID
project.id = 12345678-9abc-defg-1234-56789abcdef

# API 基 URL
api.url = https://dev.azure.com

# 个人访问令牌
pat.token = your_personal_access_token_here

# 最大重试次数
max.retries = 3

# 重试延迟(毫秒)
retry.delay.ms = 1000

✨ 主要特性

  • 可视化架构:通过项目结构图和类图,清晰展示 Azure DevOps MCP 的整体架构和组件关系。
  • 多资源管理:支持对组织、项目、仓库、管道等资源的管理和操作。
  • 灵活配置:可通过环境变量和配置文件进行灵活配置。

📦 安装指南

构建项目

mvn clean install -DskipTests

运行服务器

mvn spring-boot:run

Docker 镜像构建

# 基础镜像
FROM openjdk:jdk17

# 设置工作目录
WORKDIR /app

# 复制项目文件
COPY . .

# 打包应用
RUN mvn clean install -DskipTests && \
    cp target/azure-devops-mcp.jar .

# 运行应用
CMD ["java", "-jar", "target/azure-devops-mcp.jar"]

💻 使用示例

基础用法

列出所有项目

{
    "id": "12345678-9abc-defg-1234-56789abcdef",
    "name": "MyProject",
    "description": "This is my project description.",
    "state": "active"
}

获取仓库信息

{
    "id": "repo_123",
    "name": "my_repository",
    "branches": [
        {
            "name": "main",
            "commit": {
                "sha": "abc123def456789",
                "message": "Initial commit"
            }
        }
    ],
    "pullRequests": [
        {
            "id": 1,
            "title": "Add feature X",
            "status": "open"
        }
    ]
}

📚 详细文档

项目结构图

下图展示了 Azure DevOps MCP 项目的整体架构: Azure DevOps MCP 项目结构图

类图

以下是 Azure DevOps MCP 的类图,展示了各个组件之间的关系和交互:

classDiagram

    class ADOrganization {
        string name
        string description
        void addProject()
        void removeProject()
        ProjectsList projects
    }

    class ADProject {
        string id
        string name
        string state
        Repository[] repositories
        Pipeline[] pipelines
    }

    class ProjectManager {
        ADProject currentProject
        void switchProject(string projectId)
        void createProject(ADProject project)
        void deleteProject(string projectId)
        ProjectsList listProjects()
    }

    class ADOrganization {
        <<Aggregate Root>>
        string name
        string description
        ADProject[] projects
    }

    class ADUser {
        string id
        string email
        string firstName
        string lastName
        Role role
    }

    class Repository {
        string id
        string name
        Branch[] branches
        PullRequest[] pullRequests
    }

    class Pipeline {
        string id
        string name
        string state
        Job[] jobs
    }

    class ADOrganizationRepository {
        void save(ADOrganization org)
        ADOrganization findById(string id)
        List<ADOrganization> findAll()
    }

    ProjectManager o -> ADOrganizationRepository: findCurrentOrganization()

    ProjectManager --> ADProject: CurrentProject

    ADUser --> Role: hasRole()

    ADProject --> Repository: getRepositories()

    ADProject --> Pipeline: getPipelines()

    Repository --> Branch: getBranches()

    Repository --> PullRequest: getPullRequests()

    Pipeline --> Job: getJobs()

📄 许可证

MIT 许可证

版权所有 (c) 2024 Azure DevOps MCP 开发团队。

特此免费授予任何获得本软件及相关文档文件(“软件”)副本的人,允许其无限制地处理本软件,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或出售软件副本的权利,并允许向其提供软件的人这样做,但须遵守以下条件:

上述版权声明和本许可声明应包含在所有软件副本或重要部分中。

软件按“原样”提供,不附带任何形式的明示或暗示保证,包括但不限于适销性、特定用途适用性和不侵权的保证。在任何情况下,作者或版权持有人均不对因合同、侵权或其他方式引起的任何索赔、损害或其他责任负责,无论是在与软件或软件的使用或其他交易有关的任何行动中。

⚠️ 重要提示

如需商业用途,请联系开发团队获取授权。

help

Runtime guide

cloud

Hosted runtime

Hosted servers run from a provider-managed environment. You usually connect the MCP client to the hosted endpoint or follow the provider's authorization flow, without keeping a local process alive

  1. Open provider connection page
  2. Authorize or copy endpoint
  3. Connect from your MCP client
terminal

Local runtime / other methods

Local servers run on your own machine or infrastructure. You normally copy the server_config into your MCP client, install the required package, and provide env variables from env_schema when needed

  1. Copy server_config
  2. Install required package
  3. Fill env variables and restart client