模型上下文协议(MCP)是一个开源实现,它根据Anthropic的MCP规范将Jenkins与AI语言模型连接起来。此项目允许在使用Jenkins工具时进行安全、有上下文的AI交互,并保持数据隐私和安全性。
选择以下安装方法之一:
# 使用uv(推荐)
pip install uv
uvx mcp-jenkins
# 使用pip
pip install mcp-jenkins
# 使用Smithery
npx -y @smithery/cli@latest install @lanbaoshen/mcp-jenkins --client claude
这将创建或编辑您的MCP服务器配置文件~/.cursor/mcp.json。
{
"mcpServers": {
"mcp-jenkins": {
"command": "uvx",
"args": [
"mcp-jenkins",
"--jenkins-url=xxx",
"--jenkins-username=xxx",
"--jenkins-password=xxx"
]
}
}
}
注意:您也可以将Jenkins令牌设置为密码!
mcp.json文件的.vscode文件夹以进行本地设置,或者通过设置菜单编辑settings.json。{
"servers": {
"jenkins": {
"url": "http://localhost:3000/sse",
"type": "sse"
}
}
}
{
"servers": {
"mcp-jenkins-mcp": {
"autoApprove": [],
"disabled": false,
"timeout": 60,
"type": "streamableHttp",
"url": "http://localhost:3000/mcp"
}
}
}
uvx mcp-jenkins \
--jenkins-url http://localhost:3000 \
--jenkins-username your_username \
--jenkins-password your_password_or_token \
--transport sse --port 3000
# 标准IO模式
uvx mcp-jenkins --jenkins-url xxx --jenkins-username xxx --jenkins-password xxx --read-only
# SSE模式
uvx mcp-jenkins --jenkins-url xxx --jenkins-username xxx --jenkins-password xxx --transport sse --port 9887
# Streamable-Http模式
uvx mcp-jenkins --jenkins-url xxx --jenkins-username xxx --jenkins-password xxx --transport streamable-http --port 9887
安装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:
# 创建远程MCP服务的服务器参数
server_params = StdioServerParams(
command='uvx',
args=[
'mcp-jenkins',
'--jenkins-username',
'xxx',
'--jenkins-password',
'xxx',
'--jenkins-url',
'xxx'
],
)
# 从服务器获取翻译工具
adapter = await StdioMcpToolAdapter.from_server_params(server_params, 'get_all_jobs')
# 创建可以使用翻译工具的代理
agent = AssistantAgent(
name='jenkins_assistant',
model_client=[Replace_with_your_model_client],
tools=[adapter],
)
# 让代理翻译一些文本
await Console(
agent.run_stream(task='Get all jobs', cancellation_token=CancellationToken())
)
if __name__ == "__main__":
asyncio.run(main())
</details>
| 工具 | 描述 |
|---|---|
| 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 | 获取队列项信息 |
| cancel_queue_item | 取消队列项 |
| get_multibranch_jobs | 从Jenkins获取所有多分支流水线作业,可选地按模式过滤 |
| get_multibranch_branches | 获取特定多分支流水线作业的所有分支 |
| scan_multibranch_pipeline | 触发多分支流水线扫描以发现新分支 |
# 使用MCP Inspector
# 对于已安装的包
npx @modelcontextprotocol/inspector uvx mcp-jenkins --jenkins-url xxx --jenkins-username xxx --jenkins-password xxx
# 对于本地开发版本
npx @modelcontextprotocol/inspector uv --directory /path/to/your/mcp-jenkins run mcp-jenkins --jenkins-url xxx --jenkins-username xxx --jenkins-password xxx
# 安装依赖
uv sync --all-extras --dev
pre-commit install
# 手动执行
pre-commit run --all-files
# 安装依赖
uv sync --all-extras --dev
# 执行单元测试
uv run pytest --cov=mcp_jenkins
MIT许可 - 详见LICENSE文件。这不是官方的Jenkins产品。