使用说明
MCP Jenkins(注:这里的“MCP”可能是一个特定上下文中的缩写或专有名词,没有具体上下文难以给出确切翻译,但在此保留原样;“Jenkins”通常指的是一种持续集成工具或人名,根据上下文可能翻译为“詹金斯”或保持原样)
模型上下文协议(MCP)是一个开源实现,它遵循Anthropic的MCP规范,将Jenkins与人工智能语言模型连接起来。此项目能够在保护数据隐私和安全的同时,实现Jenkins工具与人工智能的安全上下文交互。
光标演示
安装指南
安装
选择以下安装方法之一:
# Using uv (recommended)
pip install uv
uvx mcp-jenkins
# Using pip
pip install mcp-jenkins
# Using Smithery
npx -y @smithery/cli@latest install @lanbaoshen/mcp-jenkins --client claude
配置与使用
光标
- 打开光标设置
- 导航至MCP(管理控制面板/主控制面板/指定的控制点等,具体含义根据上下文确定)
- 点击 + 添加新的全局MCP服务器
这将创建或编辑包含您MCP服务器配置的~/.cursor/mcp.json文件。
{
"mcpServers": {
"mcp-jenkins": {
"command": "uvx",
"args": [
"mcp-jenkins",
"--jenkins-url=xxx",
"--jenkins-username=xxx",
"--jenkins-password=xxx"
]
}
}
}
注:您也可以将Jenkins令牌设置为密码!
VSCode Copilot 聊天
- 创造
.vscode文件夹中包含mcp.json在你的工作区中存放用于本地设置或编辑的文件settings.json槽设置菜单。 - 插入以下配置:
- SSE模式
{
"servers": {
"jenkins": {
"url": "http://localhost:3000/sse",
"type": "sse"
}
}
}
- 可流式传输-HTTP 模式
{
"servers": {
"mcp-jenkins-mcp": {
"autoApprove": [],
"disabled": false,
"timeout": 60,
"type": "streamableHttp",
"url": "http://localhost:3000/mcp"
}
}
}
- 使用以下命令运行 Jenkins MCP 服务器:
uvx mcp-jenkins \
--jenkins-url http://localhost:3000 \
--jenkins-username your_username \
--jenkins-password your_password_or_token \
--transport sse --port 3000
命令行参数
# Stdio Mode
uvx mcp-jenkins --jenkins-url xxx --jenkins-username xxx --jenkins-password xxx --read-only
# SSE Mode
uvx mcp-jenkins --jenkins-url xxx --jenkins-username xxx --jenkins-password xxx --transport sse --port 9887
# Streamable-Http Mode
uvx mcp-jenkins --jenkins-url xxx --jenkins-username xxx --jenkins-password xxx --transport streamable-http --port 9887
AutoGen
Install and exec
安装autogen:
pip install "autogen-ext[azure,ollama,openai,mcp]" autogen-chat
运行Python脚本:
import asyncio
from autogen_ext.tools.mcp import StdioMcpToolAdapter, StdioServerParams
from autogen_agentchat.agents import AssistantAgent
from autogen_agentchat.ui import Console
from autogen_core import CancellationToken
async def main() -> None:
# Create server params for the remote MCP service
server_params = StdioServerParams(
command='uvx',
args=[
'mcp-jenkins',
'--jenkins-username',
'xxx',
'--jenkins-password',
'xxx',
'--jenkins-url',
'xxx'
],
)
# Get the translation tool from the server
adapter = await StdioMcpToolAdapter.from_server_params(server_params, 'get_all_jobs')
# Create an agent that can use the translation tool
agent = AssistantAgent(
name='jenkins_assistant',
model_client=[Replace_with_your_model_client],
tools=[adapter],
)
# Let the agent translate some text
await Console(
agent.run_stream(task='Get all jobs', cancellation_token=CancellationToken())
)
if __name__ == "__main__":
asyncio.run(main())
可用工具
| 工具 | 描述 |
|---|---|
| get_all_jobs | 获取所有作业 |
| get_job_config | 获取作业配置 |
| search_jobs | 按特定字段搜索工作职位 |
| get_running_builds | 获取正在运行的构建任务 |
| stop_build | 停止运行构建过程 |
| get_build_info | 获取构建信息 |
| get_build_sourcecode | 获取Jenkins中特定构建的流水线源代码 |
| get_job_info | 获取作业信息 |
| build_job | 使用参数构建一个作业 |
| get_build_logs | 获取构建日志 |
| get_test_results | 获取特定构建的测试结果 |
| get_all_nodes | 获取所有节点 |
| get_node_config | 获取节点的配置信息 |
| get_all_queue_items | 获取所有队列项 |
| get_queue_item | 获取队列项信息 |
| 取消队列项 | 取消队列中的项目 |
| get_multibranch_jobs | 从 Jenkins 获取所有多分支流水线作业,可选地按模式过滤 |
| get_multibranch_branches | 获取特定多分支流水线作业的所有分支 |
| scan_multibranch_pipeline | 触发对多分支流水线的扫描以发现新分支 |
开发与调试
# Using MCP Inspector
# For installed package
npx @modelcontextprotocol/inspector uvx mcp-jenkins --jenkins-url xxx --jenkins-username xxx --jenkins-password xxx
# For local development version
npx @modelcontextprotocol/inspector uv --directory /path/to/your/mcp-jenkins run mcp-jenkins --jenkins-url xxx --jenkins-username xxx --jenkins-password xxx
预提交钩子(Pre-Commit Hook)
# Install Dependency
uv sync --all-extras --dev
pre-commit install
# Manually execute
pre-commit run --all-files
UT
# Install Dependency
uv sync --all-extras --dev
# Execute UT
uv run pytest --cov=mcp_jenkins
许可证
根据MIT许可协议授权 - 详见 许可证 文件。这不是 Jenkins 的官方产品。
MCP-Jenkins 在 MCP 注册表中
- https://mcpreview.com/mcp-servers/lanbaoshen/mcp-jenkins 翻译为中文是:“https://mcpreview.com/mcp-servers/兰宝神/mcp- Jenkins(注:'lanbaoshen'在此处可能是一个特定名称或品牌,直接音译为‘兰宝神’,实际翻译可能需根据具体上下文调整)”。不过,通常在中文语境中,网址中的特定名称或品牌不会直接翻译,除非该名称有官方中文译名。因此,如果“lanbaoshen”没有官方中文译名,保持原样或音译也是可以接受的
- https://smithery.ai/server/@lanbaoshen/mcp-jenkins 翻译为中文可以是:“https://smithery.ai/服务器/@lanbaoshen/mcp- Jenkins(注:此处‘Jenkins’通常作为专有名词,如‘Jenkins持续集成服务器’,在此上下文中直接保留原样)”。不过,为了更自然地表达,也可以稍作调整为:“Smithery.ai 服务器上的 @lanbaoshen 的 MCP-Jenkins(项目/配置)”。具体翻译可能需要根据上下文和实际用途进行微调
- https://glama.ai/mcp/servers/@lanbaoshen/mcp-jenkins 翻译为中文可以是:“https://glama.ai/mcp/服务器/@lanbaoshen/mcp- Jenkins(或 Jenkins MCP 服务器)”。不过,为了更流畅和符合中文表达习惯,也可以稍作调整为:“https://glama.ai/mcp/服务器页面/@lanbaoshen/mcp-Jenkins(或 Jenkins MCP 服务器配置/实例)”。这里假设“mcp-jenkins”是指与 Jenkins 相关的 MCP(可能是指某种管理控制平台或服务器配置)服务器或实例
- https://mseep.ai/app/兰宝神-MCP-Jenkins(注:这里的“兰宝神”可能是对某个特定名称或品牌的音译,具体翻译可能需根据上下文或品牌官方译名进行调整)
