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/环境配置中给出)。