Token导航 LogoToken导航TokenDH.com
Devops Mcps logo
开发工具stdio官方级别未说明来源级核验

Devops Mcps

MCP Server

一个基于FastMCP的DevOps工具集成服务器,提供GitHub、Jenkins和Artifactory的集成功能,用于安全地检索和分析数据而不修改系统。

工具数

0

提示词数

0

GitHub Stars

0

资源数

0
代码分析PythonGitHub

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

huangjien

提供方

huangjien

最后核验

2026/5/17 20:23

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

pip install devops-mcps

详细介绍

DevOps MCP服务器

](https://badge.fury.io/py/devops-mcps) ![License: MIT](https://opensource.org/licenses/MIT) ![Coverage](https://github.com/huangjien/devops-mcps)

A. FastMCP-基于MCP服务器,提供一套DevOps工具和集成。

此服务器以只读方式运行,在不修改系统的情况下检索数据进行分析和显示。它的设计考虑了DevOps环境的安全性。

认证 MCP审查

特性

DevOps MCP服务器与各种基本的DevOps平台集成:

GitHub集成

  • 库管理:搜索和查看存储库详细信息。
  • 文件访问:从存储库检索文件内容。
  • 问题追踪:管理和跟踪问题。
  • 代码搜索:执行有针对性的代码搜索。
  • 提交历史记录:查看分支的提交历史记录。
  • 公共和企业支持:自动检测并连接到公共GitHub和GitHub Enterprise实例(可通过以下方式配置 GITHUB_API_URL).

Jenkins集成

  • 工作管理:列出并管理Jenkins作业。
  • 生成日志:检索和分析构建日志。
  • 视图管理:访问和管理Jenkins视图。
  • 构建参数:检查用于构建的参数。
  • 故障监测:识别并监控最近失败的构建。

人工集成

  • 存储库浏览:列出Artifactory存储库中的项目(文件和目录)。
  • 文物搜索:使用工件查询语言(AQL)在多个存储库中按名称或路径搜索工件。
  • 物品详情:检索特定文件和目录的元数据和属性。
  • 认证:支持基于令牌和用户名/密码的身份验证。

安装

使用pip安装软件包:

pip install devops-mcps

用法

直接运行MCP服务器:

devops-mcps

传输配置

服务器支持两种通信传输类型:

  • stdio (默认):标准输入/输出。
  • stream_http:HTTP流传输。

本地使用:

# Default stdio transport
devops-mcps

# stream_http transport (runs HTTP server on 127.0.0.1:3721/mcp by default)
devops-mcps --transport stream_http

UVX使用:

如果使用 UVX,首先安装工具:

uvx install

然后运行:

# Default stdio transport
uvx run devops-mcps

# stream_http transport
uvx run devops-mcps-stream-http

使用Make

使用提供的 Makefile 简化常见任务:

# Discover available targets
make help

# Install dev dependencies (auto-detects uv, falls back to pip)
make install

# One-shot dev setup: install, format, and lint
make dev

# Run MCP server (stdio)
make run

# Run MCP server (stream_http) with optional mount path
make run-http MOUNT_PATH=/mcp

# Test and coverage
make test
make coverage

# Build and publish the package
make build
make publish

# Docker workflows
make docker-build
make docker-run
make docker-push REGISTRY=your.registry.example

配置

使用环境变量配置服务器:

必修的:

# GitHub
export GITHUB_PERSONAL_ACCESS_TOKEN="your_github_token"
# Optional: For GitHub Enterprise, set your API endpoint
# export GITHUB_API_URL="https://github.mycompany.com"

# Jenkins
export JENKINS_URL="your_jenkins_url"
export JENKINS_USER="your_jenkins_username"
export JENKINS_TOKEN="your_jenkins_api_token_or_password"

# Artifactory
export ARTIFACTORY_URL="https://your-artifactory-instance.example.com"
# Choose ONE authentication method:
export ARTIFACTORY_IDENTITY_TOKEN="your_artifactory_identity_token"
# OR
export ARTIFACTORY_USERNAME="your_artifactory_username"
export ARTIFACTORY_PASSWORD="your_artifactory_password"

可选:

# Jenkins Log Length (default: 5120 bytes)
export LOG_LENGTH=10240

# MCP Server Port for stream_http transport (default: 3721)
export MCP_PORT=3721

# Dynamic Prompts (optional)
export PROMPTS_FILE="example_prompts.json"

备注: LOG_LENGTH 控制检索到的Jenkins日志数据量。根据需要进行调整。

替代方法:使用.env文件

您还可以创建 .env 将文件保存在项目根目录中,而不是手动设置环境变量:

# .env file
GITHUB_PERSONAL_ACCESS_TOKEN=your_github_token_here
PROMPTS_FILE=example_prompts.json
# Add other optional environment variables as needed

服务器将自动从以下位置加载环境变量 .env 文件启动时。

动态提示

服务器支持从JSON文件加载自定义提示。设置 PROMPTS_FILE 将环境变量设置为提示配置文件的路径。

提示文件格式:

{
  "prompts": [
    {
      "name": "github_repo_analysis",
      "description": "Analyze a GitHub repository for DevOps insights",
      "template": "Please analyze the GitHub repository {{owner}}/{{repo}} and provide insights on:\n\n1. Repository structure and organization\n2. CI/CD pipeline configuration\n3. Code quality indicators\n4. Security considerations\n5. Documentation quality\n\n{{#include_issues}}Also include analysis of recent issues and their resolution patterns.{{/include_issues}}",
      "arguments": [
        {
          "name": "owner",
          "description": "GitHub repository owner",
          "required": true
        },
        {
          "name": "repo",
          "description": "GitHub repository name",
          "required": true
        },
        {
          "name": "include_issues",
          "description": "Include analysis of repository issues",
          "required": false
        }
      ]
    }
  ]
}

使用提示

DevOps MCP服务器提供动态提示,帮助您执行常见的DevOps任务。以下是如何使用可用的提示:

可用提示

  1. quick_repo_check -具有安全分析的全面存储库健康评估
  2. daily_check -通过Jenkins作业分析和基础设施状态完成DevOps监控
  3. build_troubleshoot -先进的构建故障调查和根本原因分析

使用 daily_check 提示

目的: 通过Jenkins作业分析进行全面的DevOps监控和基础设施状态报告。

参数:

参数类型必填说明
time_rangestring❌ 否分析时间范围(例如,“24小时”、“7天”、“1周”)
include_infrastructureboolean❌ 否在报告中包括基础设施状态
focus_areastring❌ 否要关注的具体领域(例如,“构建”、“部署”、“安全”)

使用示例:

# Basic daily monitoring
Prompt: daily_check

# Weekly infrastructure review
Prompt: daily_check
Parameters:
- time_range: "7d"
- include_infrastructure: true

# Focus on build failures
Prompt: daily_check
Parameters:
- time_range: "24h"
- focus_area: "builds"

它的作用:

  1. 🔍 Jenkins工作分析:全面审查工作状态和最近的失败
  2. 🔧 根本原因调查:深入了解故障模式和趋势
  3. 🏗️ 基础设施状态:关键基础设施组件的健康检查
  4. 📋 可采取行动的建议:有实施指导的优先行动项目
  5. 📊 执行摘要:关键指标和趋势的高层概述

使用 build_troubleshoot 提示

目的: 高级构建故障调查,包括全面的根本原因分析和可操作的建议。

参数:

参数类型必填说明
job_namestring✅ 是Jenkins作业名称
build_numberstring❌ 否要分析的内部版本号(最新版本使用-1)
include_logsboolean❌ 否是否在分析中包含构建日志

使用示例:

# Basic usage (latest build)
Prompt: build_troubleshoot
Parameters:
- job_name: "my-application-build"

# Specific build number
Prompt: build_troubleshoot
Parameters:
- job_name: "my-application-build"
- build_number: "42"

# With build logs
Prompt: build_troubleshoot
Parameters:
- job_name: "my-application-build"
- build_number: "42"
- include_logs: true

它的作用:

  1. 获取指定作业的生成状态和基本信息
  2. 检索并分析构建日志(如果 include_logs 是真的)
  3. 根据构建数据确定潜在的故障原因
  4. 提出故障排除步骤和可操作的建议

使用 quick_repo_check 提示

目的: 全面的存储库健康评估,包括安全分析和DevOps最佳实践评估。

参数:

参数类型必填说明
repo_namestring✅ 是存储库名称格式为“所有者/仓库”
include_securityboolean❌ 否评估中包括安全分析
check_ci_cdboolean❌ 否分析CI/CD管道配置

使用示例:

# Basic repository check
Prompt: quick_repo_check
Parameters:
- repo_name: "facebook/react"

# Comprehensive security assessment
Prompt: quick_repo_check
Parameters:
- repo_name: "myorg/myproject"
- include_security: true
- check_ci_cd: true

它的作用:

  1. 📊 存储库健康评估:全面评估存储库状态和指标
  2. 🔒 安全分析:安全配置审查和漏洞评估
  3. 🏗️ CI/CD管道评估:构建和部署配置分析
  4. 📋 可采取行动的建议:优先考虑改进建议并提供实施指导
  5. 📈 执行摘要:高级别概览,包括主要调查结果和战略建议

自然语言支持

DevOps MCP服务器同时支持这两种功能 结构化的自然语言 调用提示的方法:

结构化格式(显式):

Use prompt: build_troubleshoot
Parameters:
- job_name: "creole-Automerge-main"
- build_number: 29
- include_logs: true

自然语言格式(推荐):

"Perform daily DevOps monitoring check for the last 24 hours"

"Troubleshoot the Jenkins build failure for job 'creole-Automerge-main' build #29 with detailed logs"

"Check the GitHub repository facebook/react with security analysis"

"Analyze the failed build for my-app-build job number 42 including logs"

"Run weekly infrastructure review with comprehensive monitoring"

"Assess repository health for myorg/myproject including CI/CD pipeline analysis"

自然语言处理是如何工作的:

  1. 意图识别:AI助手识别哪个提示与您的请求匹配
  2. 参数提取:从消息中提取特定值(作业名称、内部版本号、仓库名称)
  3. 自动映射:将您的自然语言映射到结构化提示格式
  4. 情境感知:使用对话历史记录和工作区上下文查找缺失的参数

更好的自然语言识别技巧:

  • 使用关键字:包括“故障排除”、“分析”、“检查存储库”、“构建失败”等术语
  • 具体:提及确切的作业名称、内部版本号、存储库名称
  • 使用引号:为清楚起见,请在引号中注明具体值(例如“我的工作名称”)
  • 包括上下文:指定所需的分析类型

自然语言模式示例:

意图自然语言示例
日常监控“日常DevOps检查”、“运行日常监控”、“基础设施状态报告”
存储库分析“使用安全性检查存储库所有者/名称”,“使用CI/CD分析GitHub存储库X”
构建故障排除“调试构建失败”,“对作业X构建Y进行故障排除”,“调查构建问题”
包含日志“包含日志”、“包含详细日志”、”显示构建日志“
最新版本“最新版本”、“最近版本”和“当前版本”
时间范围“最近24小时”、“上周”、“7天”、“每周回顾”
重点领域“关注构建”、“安全分析”、“基础设施审查”

先决条件

使用Jenkins相关的提示,如 build_troubleshoot,确保您拥有:

# Required Jenkins environment variables
export JENKINS_URL="https://your-jenkins-server.com"
export JENKINS_USER="your-username"
export JENKINS_TOKEN="your-api-token"

使用GitHub相关提示,如 quick_repo_check,确保您拥有:

# Required GitHub environment variable
export GITHUB_PERSONAL_ACCESS_TOKEN="your_github_token"

模板变量:

  • 使用 {{variable_name}} 用于简单变量替换
  • 使用 {{#variable_name}}...{{/variable_name}} 对于条件块(如果变量有值则显示)
  • 使用 {{^variable_name}}...{{/variable_name}} 对于负条件块(如果变量为空/null则显示)

可用的提示工具: 您的提示可以参考任何可用的MCP工具:

  • GitHub工具: search_repositories, get_file_contents, list_commits, list_issues等等。
  • Jenkins工具: get_jenkins_jobs, get_jenkins_build_log, get_recent_failed_jenkins_builds等等。
  • Azure工具: get_azure_subscriptions, list_azure_vms, list_aks_clusters等等。
  • 人工工具: list_artifactory_items, search_artifactory_items, get_artifactory_item_info等等。

码头工人

构建Docker镜像:

docker build -t devops-mcps .

运行容器:

# Stdio transport (interactive)
docker run -i --rm \
  -e GITHUB_PERSONAL_ACCESS_TOKEN="..." \
  -e JENKINS_URL="..." \
  -e JENKINS_USER="..." \
  -e JENKINS_TOKEN="..." \
  -e ARTIFACTORY_URL="..." \
  -e ARTIFACTORY_IDENTITY_TOKEN="..." \
  devops-mcps

# stream_http transport (background, HTTP server on 127.0.0.1:3721/mcp by default)
docker run -d -p 3721:3721 --rm \
  -e TRANSPORT_TYPE=stream_http \
  -e MCP_PORT=3721 \
  -e GITHUB_PERSONAL_ACCESS_TOKEN="..." \
  -e JENKINS_URL="..." \
  -e JENKINS_USER="..." \
  -e JENKINS_TOKEN="..." \
  -e ARTIFACTORY_URL="..." \
  -e ARTIFACTORY_IDENTITY_TOKEN="..." \
  devops-mcps

替换 ... 凭你的真实证件。

VSCode集成

在VSCode中配置MCP服务器 settings.json:

示例(带stdio的UVX):

"devops-mcps": {
  "type": "stdio",
  "command": "uvx",
  "args": ["devops-mcps"],
  "env": {
    "GITHUB_PERSONAL_ACCESS_TOKEN": "ghp_...",
    "GITHUB_API_URL": "https://github.mycompany.com", // Optional for GHE
    "JENKINS_URL": "...",
    "JENKINS_USER": "...",
    "JENKINS_TOKEN": "...",
    "ARTIFACTORY_URL": "...",
    "ARTIFACTORY_IDENTITY_TOKEN": "cm..." // Or USERNAME/PASSWORD
  }
}

示例(带有stream_http的Docker):

确保Docker容器在启用stream_http的情况下运行(请参阅Docker部分)。

{
  "type": "stream_http",
  "url": "http://127.0.0.1:3721/mcp", // Adjust if Docker host is remote or if MCP_PORT is set differently
  "env": {
    // Environment variables are set in the container,
    // but can be overridden here if needed.
    "GITHUB_PERSONAL_ACCESS_TOKEN": "ghp_..."
  }
}

请参阅初始 README.md 其他传输/运行器组合的部分(UVX/stream_http、Docker/stdio)。

发展

设置您的开发环境:

# Install dependencies (using uv)
uv pip install -e ".[dev]"
# Or sync with lock file
# uv sync --all-extras --group dev

装订和格式化(Ruff):

# Check code style
uvx ruff check .

# Format code
uvx ruff format .

测试(Pytest):

# Run tests with coverage using the provided script
./test.sh

# Or run manually
pytest --cov=src/devops_mcps --cov-report=html:coverage/html --cov-report=xml --cov-fail-under=80 tests/

测试脚本功能:

该项目包括一个全面的 test.sh 脚本:

  • 自动检查 uv 安装
  • 同步开发依赖关系
  • 使用pytest运行所有测试
  • 生成HTML和XML覆盖率报告
  • 在浏览器中自动打开HTML覆盖率报告(在CI中跳过)
  • 要求最低80%的测试覆盖率(项目保持高覆盖率)

覆盖范围报告:

  • HTML报告: coverage/html/index.html (自动打开)
  • XML报告: coverage.xml (用于CI/CD集成)

使用MCP检查器进行调试:

# Basic run
npx @modelcontextprotocol/inspector uvx run devops-mcps

# Run with specific environment variables
npx @modelcontextprotocol/inspector uvx run devops-mcps -e GITHUB_PERSONAL_ACCESS_TOKEN=... -e JENKINS_URL=... # Add other vars

检查包依赖项是否已过时

uv pip list --outdated

更新包依赖关系

uv lock --upgrade

CI/CD

GitHub操作工作流(.github/workflows/ci.yml)手柄:

  1. 剥皮与测试:对推送和拉取请求运行Ruff和Pytest。
  2. 出版:构建Python包并将其发布到PyPI,将Docker镜像推送到Docker Hub main 支。

所需的存储库机密:

  • PYPI_API_TOKEN:用于包发布的PyPI令牌。
  • DOCKER_HUB_USERNAME:Docker Hub用户名。
  • DOCKER_HUB_TOKEN:Docker Hub访问令牌。

包装与出版(手册)

确保你有 buildtwine 安装:

pip install -U build twine
  1. 更新版本:增加版本号 pyproject.toml.
  2. 构建: python -m build
  3. 上传: twine upload dist/* (需要 ~/.pypirc 配置或令牌输入)。

附录:GitHub搜索查询语法

利用GitHub在MCP工具中强大的搜索语法:

存储库搜索(gh_search_repositories):

  • in:name,description,readme:搜索特定字段。

*例子: fastapi in:name*

  • user:USERNAMEorg:ORGNAME:搜索用户/组织的范围。

*例子: user:tiangolo fastapi*

  • language:LANGUAGE:按语言筛选。

*例子: http client language:python*

  • stars:>N, forks:YYYY-MM-DD:按指标和日期过滤。

*例子: language:javascript stars:>1000 pushed:>2024-01-01*

  • topic:TOPIC-NAME:按主题筛选。

*例子: topic:docker topic:python*

  • license:LICENSE-KEYWORD:按许可证过滤(例如。, mit, apache-2.0).

*例子: language:go license:mit*

代码搜索(gh_search_code):

  • in:file,path:搜索文件内容(默认)或路径。

*例子: "import requests" in:file*

  • repo:OWNER/REPO:搜索特定存储库的范围。

*例子: "JenkinsAPIException" repo:your-org/your-repo*

  • language:LANGUAGE:按文件语言筛选。

*例子: def main language:python*

  • path:PATH/TO/DIR, filename:FILENAME.EXT, extension:EXT:按路径、文件名或扩展名筛选。

*例子: "GithubException" path:src/devops_mcps extension:py*

参考文献

许可证

该项目根据MIT许可证获得许可。看 许可证 文件以获取详细信息。

目录标签

目录标签

代码分析PythonGitHubDevOps工具本地部署GitHub集成Jenkins集成Artifactory集成

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

token

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdiotoken部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP