Multi-Cloud DevOps MCP Server

使用说明(Markdown 格式)

  • 项目简介

    • 这是一个基于 MCP(Model Context Protocol)的后端服务器实现,提供资源管理和工具执行能力,方便与 LLM 客户端协同工作,支持对多家云提供商的资源进行操作,以及通过 SSH 执行远程命令等功能。
  • 主要功能点

    • MCP 服务端核心:使用 FastMCP 框架处理 MCP 请求与响应,充当后端服务端。
    • 资源/路由暴露:通过资源接口提供基础上下文信息,例如健康状态等。
    • 工具暴露:提供对 AWS、Azure、Hetzner Cloud 以及 SSH 的执行封装,允许通过 MCP 客户端调用并获取结果。
    • 安全与沙箱:对执行的代码进行基础净化(sanitize_python_code),保证执行环境在一定的受控范围内。
    • 容器化部署:推荐使用 Docker Compose 进行部署,便于快速上线。
    • 运行与健康检查:内置简单健康检查端点,便于客户端探测 MCP 服务是否可用。
  • 安装步骤

    • 需求前提:需要有 Docker 和 Docker Compose,及目标云提供商的凭据(通过环境变量提供)。
    • 运行方式(常见场景)
      • 使用 Docker Compose 进行本地部署:复制并配置本地环境变量文件(如 AWS/Azure 的凭据),然后执行 docker compose build 以及 docker compose up。
      • 直接在 Python 环境中运行(开发测试时可用):运行主入口脚本以启动 MCP 服务器。
    • 服务端口与路径
      • MCP 服务监听端口:8080
      • MCP 路径:/mcp
      • 自定义健康路由:/health
  • 服务器配置(MCP 客户端启动配置示例,JSON 格式,客户端需要读取该 JSON 以启动与 MCP 服务器的连接;客户端本身不需要修改)

    • 服务器名称: devops-aws
    • 启动命令(command): docker-compose
    • 启动参数(args): ["up", "-d"]
    • 备用启动示例(单机场景,客户端也可将服务器设置为启动命令来连接)
    • 说明:以上配置用于 MCP 客户端在启动阶段获取如何启动或连接到 MCP 服务器的元信息,实际连接需要使用服务器提供的地址和协议(如 http://localhost:8080/mcp)
  • 基本使用方法

    • 启动后,客户端通过 MCP 协议向 /mcp 路径发送 JSON-RPC 请求,请求会由服务端的工具(boto3/Azure/Hetzner/SSH)执行并返回结果。
    • 客户端可以先进行健康探测(/health),确认服务可用性后再发起资源查询或工具调用。
    • 使用时请提供必要的云凭据(通过环境变量注入,示例在 README/环境配置中给出)。

服务器信息