Jenkins MCP服务器

基于Python的Jenkins MCP服务器,通过Model Context Protocol Python SDK与Jenkins CI/CD系统集成,提供AI驱动的洞察、构建管理和调试功能。

  • by Anil-appari007
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 Anil-appari007/jenkins-mcp-langchain

使用说明

Jenkins MCP 服务器

一个基于Python的Jenkins MCP(模型上下文协议)服务器,使用了Model Context Protocol Python SDK。该服务器与Jenkins CI/CD系统集成,提供AI驱动的洞察、构建管理和调试功能。

注: 这台服务器遵循 模型上下文协议(MCP)使得人工智能助手能够直接与Jenkins系统进行交互。

安装

选项1:作为Python包安装(推荐)

安装和运行此服务器的最简单方法是将其作为Python包来使用:

# Install from PyPI
pip install jenkins-mcp-server==0.1.6

# Or install with uv
uv pip install jenkins-mcp-server==0.1.6

# Run the server
jenkins-mcp-server --verbose

选项2:克隆并运行

# Clone the repository
git clone https://github.com/yourusername/jenkins-mcp-server.git
cd jenkins-mcp-server

# Create a virtual environment and install dependencies
uv venv
uv pip install -e .

# Run the server
python -m jenkins_mcp_server

VS Code 集成

为VS Code进行配置

为了快速安装,请使用以下其中一个一键安装按钮:

对于手动安装:

  1. 为 VS Code 安装模型上下文协议 (MCP) 扩展
  2. 创建一个 .vscode/mcp.json 在您的工作区中创建一个文件,配置如下:
{
  "servers": {
    "jenkins-mcp-server": {
      "type": "stdio",
      "command": "jenkins-mcp-server",
      "args": ["--verbose"],
      "env": {
        "JENKINS_URL": "http://your-jenkins-server:8080",
        "JENKINS_USERNAME": "your-username",
        "JENKINS_TOKEN": "your-api-token"
        // Or use JENKINS_PASSWORD instead of JENKINS_TOKEN if using password authentication
      }
    }
  }
}
  1. 配置您的认证方法:

    • 推荐通过设置使用API令牌认证 JENKINS_TOKEN
    • 或者:通过设置使用密码认证 JENKINS_PASSWORD
  2. 将任何支持MCP(如GitHub Copilot)的AI助手连接到您的Jenkins环境中

组件

资源

服务器将Jenkins作业作为资源提供访问权限:

  • 自定义 jenkins:// URI 方案以访问单个作业
  • 每个作业资源都包含有关作业及其构建的详细信息,以JSON格式呈现
  • 作业状态体现在资源描述中

提示

服务器提供Jenkins数据分析的提示:

  1. 分析作业状态创建对所有Jenkins作业的分析

    • 可选的“detail_level”参数用于控制分析深度(简要/详细)
    • 分析工作状态,识别潜在问题,并提出改进建议
  2. 分析构建日志分析特定作业的构建日志

    • 需要指定“job_name”参数以确定要分析哪个作业
    • 可选的“build_number”参数(默认为最新构建)
    • 检查构建日志以识别问题、错误、警告,并提出修复建议

工具

服务器为Jenkins操作提供了以下工具:

  1. 触发构建触发Jenkins作业构建

    • 需要提供“job_name”参数来指定要构建哪个作业
    • 可选的“parameters”对象,包含作业参数
    • 返回构建队列信息
  2. 停止建设停止正在运行的 Jenkins 构建

    • 必需的参数“job_name”和“build_number”
    • 停止正在进行的构建执行
  3. 获取工作详情获取特定作业的详细信息

    • 需要“job_name”参数
    • 返回包含最近构建的全面工作信息
  4. **列出任务(或作业)**列出所有Jenkins作业

    • 返回一个包含所有Jenkins作业及其状态的列表
  5. 获取构建信息获取特定构建的信息

    • 需要“job_name”和“build_number”参数
    • 返回构建状态、持续时间和其他详细信息
  6. 获取构建控制台从构建中获取控制台输出

    • 必需的参数为“job_name”和“build_number”
    • 返回特定构建的控制台日志输出
  7. 获取队列信息获取有关Jenkins构建队列的信息

    • 返回队列中待处理构建的信息
  8. 获取节点信息获取有关Jenkins节点/代理的信息

    • 必需的“node_name”参数
    • 返回节点状态和配置详情
  9. 列出节点列出所有 Jenkins 节点/代理

    • 返回所有Jenkins节点/代理及其状态的列表

配置

选项1:VS Code 设置(推荐)

在VS Code设置中配置您的Jenkins连接:

  1. 打开 VS Code 设置(按 Cmd+, 在Mac上或 Ctrl+, (在Windows/Linux上)
  2. 点击右上角的“打开设置(JSON)”按钮
  3. 添加以下设置:
Using the User Settings (JSON)
{
  "mcp.servers": {
    "jenkins": {
      "type": "stdio",
      "command": "uvx",
      "args": ["jenkins-mcp-server"]
    }
  },
  "jenkins-mcp-server.jenkins": {
    "url": "http://your-jenkins-server:8080",
    "username": "your-username",
    "token": "********"  // Replace with your Jenkins API token
  }
}
Using workspace .vscode/mcp.json file

在(指定位置)创建一个文件 .vscode/mcp.json 包含以下内容:

{ 
  "servers": { 
    "jenkins-mcp-server": { 
      "type": "stdio", 
      "command": "jenkins-mcp-server", 
      "args": [
        "--verbose"
      ]
    }
  }
}

并且在你的 .vscode/settings.json 文件:

{
  "jenkins-mcp-server.jenkins": {
    "url": "http://your-jenkins-server:8080",
    "username": "your-username",
    "token": "********"  // Replace with your Jenkins API token
  }
}

这个配置:

  • 在VS Code中注册MCP服务器
  • 在VS Code设置中安全地存储您的Jenkins凭据
  • 用途 uvx 在需要时自动运行服务器

选项2:环境变量

或者,通过设置环境变量来配置您的Jenkins连接:

  1. 复制 .env.example 文件以创建一个 .env 文件:

    cp .env.example .env
    
  2. 编辑 .env 附上您的Jenkins详细信息文件:

    JENKINS_URL=http://your-jenkins-server:8080
    JENKINS_USERNAME=your-username
    JENKINS_PASSWORD=your-password
    # OR use an API token instead of password (recommended)
    JENKINS_TOKEN=your-api-token
    

安全提示: 使用VS Code设置更为安全,因为它们是以加密形式存储的。环境变量在 .env 文件以纯文本形式存储。

与AI助手的使用

配置完成后,支持MCP的人工智能助手现在可以通过自然语言与您的Jenkins服务器进行交互。以下是一些您可以执行的操作示例:

GitHub Copilot Chat(GitHub代码补全聊天助手)

  1. 在VS Code中打开GitHub Copilot Chat
  2. 类似“类型提示”如:
    • “列出我的所有Jenkins作业”
    • “我的‘部署’任务状态如何?”
    • “给我显示'test-project'中失败构建的构建日志”
    • “为‘deploy-api’触发新的构建”

命令行使用方法

你也可以直接从命令行运行服务器:

# Run the MCP server
uvx jenkins-mcp-server

# In another terminal, use curl to test it:
curl -X POST http://localhost:8080/mcp/v1/listResources -H "Content-Type: application/json" -d '{}'

命令行使用方法

该 uvx 该命令使得在不使用VS Code的情况下,也能轻松在命令行环境中使用MCP服务器:

# Install UVX if you don't have it yet
pip install uv

# Install the Jenkins MCP server
uvx install jenkins-mcp-server

```bash
# Install UVX if you don't have it yet
pip install uv

# Install the Jenkins MCP server from PyPI
uvx install jenkins-mcp-server==0.1.6

# Run the server with verbose output
uvx jenkins-mcp-server --verbose

从命令行进行测试

您可以手动发送JSON-RPC请求:

echo '{"jsonrpc":"2.0","id":1,"method":"listResources","params":{}}' | uvx jenkins-mcp-server

开发环境设置

如果你正在开发这个MCP服务器:

  1. 克隆此存储库
  2. 安装依赖项:
    uv venv
    uv pip install -e ".[dev]"
    
  3. 以开发模式运行服务器:
    python -m jenkins_mcp_server --verbose
    

VS Code 开发配置

在VS Code中进行开发:

"mcp": {
  "servers": {
    "jenkins-mcp-server": {
      "type": "stdio",
      "command": "bash",
      "args": [
        "-c", 
        "cd ${workspaceFolder} && python -m jenkins_mcp_server --verbose"
      ]
    }
  }
}
  1. 安装GitHub Copilot Chat扩展
  2. 在Copilot设置中启用MCP
  3. 与Copilot开始新对话,并与您的Jenkins服务器进行交互!

3. Claude Desktop(克劳德桌面版)

对于 Claude Desktop 用户:

在MacOS上: ~/Library/Application\ Support/Claude/claude_desktop_config.json 在Windows上: %APPDATA%/Claude/claude_desktop_config.json

Development Configuration
"mcpServers": {
  "jenkins-mcp-server": {
    "command": "uv",
    "args": [
      "run",
      "jenkins-mcp-server"
    ]
  }
}
Published Configuration (using uvx)
"mcpServers": {
  "jenkins-mcp-server": {
    "command": "uvx",
    "args": [
      "jenkins-mcp-server"
    ]
  }
}

发展

构建与发布

准备分发的软件包:

  1. 同步依赖项并更新锁定文件:
uv sync
  1. 构建软件包分发版:
uv build

这将在(指定目录/位置)创建源代码分发包和wheel分发包 dist/ 目录。

  1. 发布到PyPI(Python Package Index):
uv publish

注:您需要通过环境变量或命令标志来设置 PyPI 凭据:

  • 代币: --token 或者 UV_PUBLISH_TOKEN
  • 或者用户名/密码: --username/UV_PUBLISH_USERNAME 并且 --password/UV_PUBLISH_PASSWORD

调试

由于MCP服务器是通过stdio运行的,调试可能会具有挑战性。为了进行最佳调试 根据经验,我们强烈建议使用 MCP 检测器(或MCP监察器)。

你可以通过以下方式启动MCP Inspector npm 使用这个命令:

# If installed globally with uvx
npx @modelcontextprotocol/inspector uvx jenkins-mcp-server

# If installed in development mode
npx @modelcontextprotocol/inspector python -m jenkins_mcp_server

启动后,Inspector 将显示一个 URL,您可以在浏览器中访问该 URL 开始调试。