使用说明
项目简介
MCP Jenkins Server 是一个 MCP 服务器实现,专注于将 Jenkins 集成到 Model Context Protocol (MCP) 生态系统中。它允许大型语言模型(LLM)客户端通过 MCP 协议与 Jenkins 服务器交互,从而实现诸如查询构建状态、获取 Job 配置、触发 Job 等 Jenkins 相关操作。该服务器通过 JSON-RPC 协议与客户端通信,提供了一组预定义的工具 (Tools),使得 LLM 能够以结构化的方式理解和利用 Jenkins 的功能。
主要功能点
- 资源 (Resources) 管理: 虽然仓库描述中没有明确提及“资源”,但 Jenkins 的 Jobs 和 Builds 可以被视为 MCP 中的资源,服务器提供对这些资源的访问能力。
- 工具 (Tools) 注册和执行: 仓库实现了多个用于操作 Jenkins 的工具,包括:
- 'get_all_jobs': 获取 Jenkins 上所有 Job 的列表。
- 'get_job_config': 获取指定 Job 的配置信息。
- 'search_jobs': 根据多种条件(如类名、名称、URL、颜色等)搜索 Job。
- 'get_running_builds': 获取当前正在运行的 Builds 列表。
- 这些工具允许 LLM 客户端调用 Jenkins 的功能。
- Prompt 模板 (Prompts): 仓库中没有直接提供 Prompt 模板,但 MCP 服务器的架构设计本身支持 Prompt 模板的集成和使用,可以根据需要扩展。
- 会话管理和能力声明: 'FastMCP' 框架本身处理了 MCP 服务器的会话管理和能力声明,'mcp-jenkins' 基于 'FastMCP' 构建,因此具备这些基础能力。
- 多种传输协议: 支持 Stdio 和 SSE 两种传输协议,满足不同场景的需求。
安装步骤
- 安装 mcp-jenkins:
使用 'uvx' 或 'pip' 命令安装 'mcp-jenkins' 包。选择适合你的环境的命令执行:
或者uvx mcp-jenkinspip install mcp-jenkins
服务器配置
MCP 客户端需要配置 MCP 服务器的启动命令 (command) 及其参数 (args) 才能与 MCP 服务器建立连接。以下是 'mcp-jenkins' 服务器的配置信息,请提供给你的 MCP 客户端,例如 AutoGen 等。
{ "server_name": "mcp-jenkins", "command": "uv", // 或者 "uvx",取决于你的环境和安装方式 "args": [ "run", "mcp-jenkins", // 运行 mcp-jenkins 服务 "--jenkins-url", "<Your Jenkins URL>", // 替换为你的 Jenkins 服务器 URL,例如 "http://localhost:8080" "--jenkins-username", "<Your Jenkins Username>", // 替换为你的 Jenkins 用户名 "--jenkins-password", "<Your Jenkins Password>" // 替换为你的 Jenkins 密码或 API Token // 可选参数: // "--jenkins-timeout", "10", // Jenkins API 请求超时时间,单位秒,默认为 5 秒 // "--transport", "sse", // 传输协议,可选 "stdio" 或 "sse",默认为 "stdio" // "--port", "9887" // SSE 传输协议监听端口,默认为 9887 ] }
参数注释:
- 'server_name': MCP 服务器的名称,客户端用于标识和调用。
- 'command': 启动 MCP 服务器的命令,通常是 'uv run' 或 'uvx',取决于你的 Python 环境和包管理器。
- 'args': 传递给启动命令的参数列表。
- 'run mcp-jenkins': 指定运行 'mcp-jenkins' 应用。
- '--jenkins-url', '--jenkins-username', '--jenkins-password': 必须配置,用于连接到你的 Jenkins 服务器。请替换为你的实际 Jenkins 服务器地址、用户名和密码。强烈建议使用 Jenkins API Token 而不是明文密码。
- '--jenkins-timeout': 可选,设置 Jenkins API 请求的超时时间,单位为秒。
- '--transport': 可选,指定 MCP 服务器使用的传输协议,'stdio' 为标准输入输出,'sse' 为 Server-Sent Events。默认为 'stdio'。
- '--port': 可选,当使用 'sse' 传输协议时,指定服务器监听的端口号。
注意:
- 请务必将 '<Your Jenkins URL>', '<Your Jenkins Username>', '<Your Jenkins Password>' 替换为你的实际 Jenkins 服务器配置信息。
- 出于安全考虑,建议使用 Jenkins API Token 代替明文密码。
- 你可以根据需要调整可选参数,例如修改 Jenkins API 超时时间或选择 SSE 传输协议。
基本使用方法
-
启动 MCP Jenkins Server: MCP 服务器通常由 MCP 客户端在需要时启动。根据客户端的配置,客户端会使用上述配置信息中的 'command' 和 'args' 启动 'mcp-jenkins' 服务器。
-
客户端调用工具: 一旦服务器启动并与客户端建立连接,客户端就可以通过 MCP 协议调用 'mcp-jenkins' 服务器提供的工具 (Tools),例如 'get_all_jobs', 'get_job_config' 等。具体的调用方式取决于 MCP 客户端的实现。
-
查看 Inspector (可选): 可以使用 '@modelcontextprotocol/inspector' 工具来测试和检查 MCP Jenkins Server 是否正常工作。根据 README.md 提供的命令,你可以使用 Inspector 连接到你的 'mcp-jenkins' 服务器并浏览其提供的工具。
例如,使用 'stdio' 传输协议:
npx @modelcontextprotocol/inspector uvx mcp-jenkins --jenkins-url <Your Jenkins URL> --jenkins-username <Your Jenkins Username> --jenkins-password <Your Jenkins Password>或者使用 'sse' 传输协议(假设服务器运行在默认端口 9887):
npx @modelcontextprotocol/inspector sse://localhost:9887同样需要替换 '<Your Jenkins URL>', '<Your Jenkins Username>', '<Your Jenkins Password>' 为你的实际 Jenkins 配置。
AutoGen 集成示例 (参考 README.md)
仓库的 README.md 中提供了一个使用 AutoGen 和 'StdioMcpToolAdapter' 集成 'mcp-jenkins' 的示例代码,展示了如何通过 AutoGen 代理调用 'get_all_jobs' 工具。你可以参考该示例了解如何在 MCP 客户端中使用 'mcp-jenkins' 提供的工具。
总而言之,'mcp-jenkins' 提供了一个桥梁,使得 LLM 应用能够方便地通过 MCP 协议与 Jenkins 系统集成,利用 Jenkins 强大的 CI/CD 功能。
信息
分类
开发者工具