使用说明(Markdown 格式)
-
项目简介
- 该仓库实现了一个在 Jenkins 环境中运行的 MCP 服务器端组件。通过对接 MCP 客户端,服务器向客户端提供 Jenkins 的工具、资源和提示等能力,并通过 JSON-RPC 接口进行交互。服务器端还实现了会话管理、权限校验以及多传输协议支持(如 SSE、流式 HTTP)。
-
主要功能点
- MCP 服务器核心能力与端点
- 提供对 MCP 客户端的服务器能力声明、工具集、Prompts、Resources 的托管与管理。
- 支持 SSE、流式 HTTP 等传输模式,并暴露相应端点。
- 工具包装与暴露
- 将 Jenkins 中的方法通过注解方式暴露为 MCP 工具,自动生成输入输出描述和参数信息。
- 支持参数描述、必填项、默认值和元数据(meta、annotations)。
- 参数与结果处理
- 内置复杂参数类型处理(字符串、布尔、选择、文本、密码、运行参数、文件参数等)以及对 Git 参数的特殊处理。
- 支持插件自定义参数类型的反射处理。
- 结果序列化:Jenkins 对象按导出策略序列化为文本/JSON,兼容导出注解对象与普通对象。
- 资源、工具、Prompts 的扩展机制
- 通过 McpServerExtension 接口可继续扩展同步的 Tools、Prompts、Resources。
- 安全与认证
- Origin 头部校验(可选)以及 Jenkins 登录态的上下文注入,支持在权限控制下执行工具调用。
- 测试与示例实现
- 包含若干扩展实现(如 DefaultMcpServer、BuildLogsExtension、TestResultExtension、JobScmExtension、SampleMcpServer 等)作为示例或可用扩展。
- 提供用于测试 MCP 客户端的测试框架与示例实现。
- MCP 服务器核心能力与端点
-
安装步骤
- 将插件打包为 Jenkins 插件包(.hpi/.jpi),并部署到运行中的 Jenkins 实例中。
- 重启 Jenkins,使插件初始化并自动暴露 MCP 服务端端点。
- MCP 客户端在连接前需要具备 Jenkins 的访问凭证(通常为 Jenkins 用户 API Token),并通过以下端点之一建立连接:
- SSE 端点(推荐用于 Copilot 等工具):https://your-jenkins-host/mcp-server/sse
- 流式 HTTP 端点(http/https,需正确的请求头):https://your-jenkins-host/mcp-server/mcp
- 消息端点(Post 方式,具体依赖客户端实现):https://your-jenkins-host/mcp-server/message
- 客户端在初次连接时可选择提供认证信息(Header),如 Authorization: Basic base64(user:token)。
-
服务器配置(MCP 客户端连接配置说明) 注:MCP 客户端配置通常包含服务器名称、传输类型、端点 URL,以及必要的请求头。以下为符合仓库实现特征的配置要点说明,实际值请结合你的 Jenkins 实例进行替换。
- serverName: jenkins-mcp-server
- endpointType: sse 或 streamable
- url:
- SSE: https://<jenkins-host>/mcp-server/sse
- 流式: https://<jenkins-host>/mcp-server/mcp
- headers:
- Authorization: Basic <base64(username:token)>
- 说明:
- 该 MCP 服务器插件在 Jenkins 内部运行,因此不需要单独的启动命令(command)和参数(args)。客户端需要的仅是指向 Jenkins 暴露的端点的连接信息,以及在需要时提供的认证信息。
- 示例(文本描述的配置信息,非代码片段)
- 服务器名称:jenkins-mcp-server
- 传输类型:SSE(或流式)
- 端点 URL:SSE 使用 https://<jenkins-host>/mcp-server/sse;流式使用 https://<jenkins-host>/mcp-server/mcp
- 认证头:Authorization: Basic base64(user:token)
- 备注:MCP 客户端的启动命令和参数在此场景下不是必需的,因为服务器端运行在 Jenkins 插件中,客户端通过网络端点进行访问。
- 备选配置( Copilot 等工具可用示例,按端点选择)
- Copilot 配置示例(用于提示工具的快速接入,不属于服务端配置代码)
- 端点类型:SSE
- URL:https://<jenkins-host>/mcp-server/sse
- 认证:按需要设置 Authorization 头
- Copilot 配置示例(用于提示工具的快速接入,不属于服务端配置代码)
- 说明性要点
- 客户端需要的是真正的端点地址、传输方式以及必要的认证信息,具体的“命令/参数”字段在此实现中并非必需,因为服务器是运行在 Jenkins 插件中的服务端组件。
-
基本使用方法
- 连接与探索
- 启动 Jenkins 并确保插件加载成功后,客户端连接到以下端点之一即可获取服务器能力、工具和资源信息。
- 列出服务器能力与工具:客户端可以请求服务器能力清单、可用工具、可用资源等信息。
- 调用工具
- 客户端通过 MCP 端点调用名为 sayHello、getBuild、triggerBuild 等工具,传入参数后获得结构化文本内容(通常包含 JSON 字符串,或直接返回文本/对象的序列化表示)。
- 获取构建信息与变更
- 使用工具如 getBuild、getJobScm、getBuildScm、getBuildLog、getBuildChangeSets、getStatus、whoAmI 等,客户端可获得 Jenkins 的构建数据、变更集、日志等信息。
- 安全与权限
- 如需要,启用 Jenkins 安全认证,并在请求中提供授权头部(例如 Basic Token),服务端会在执行工具时遵循 Jenkins 的权限模型进行控制。
- 日志与结果
- 构建日志、测试结果等通过服务器端工具返回前端时,将序列化为文本内容,便于 MCP 客户端解析和展示。
- 连接与探索
-
备注
- 本仓库提供了多个扩展示例(如 BuildLogsExtension、TestResultExtension、JobScmExtension、DefaultMcpServer 等)来演示如何通过 MCP 服务器暴露 Jenkins 的能力,实际使用时可按需启用或自定义扩展。
信息
分类
开发者工具