项目简介
MCP SysOperator 是一个 Model Context Protocol (MCP) 服务器实现,专注于基础设施即代码 (IaC) 操作。它允许连接到 MCP 服务器的 LLM (大型语言模型) 客户端(如AI助手)直接通过标准化的 MCP 接口来执行 Ansible Playbooks、管理 Ansible 库存、执行 Terraform 命令以及与 AWS 等云服务进行交互。
主要功能点
- 运行 Ansible Playbooks: 执行指定的 Ansible Playbook,支持传递变量、指定库存、限制主机等。
- 管理 Ansible 库存: 查看 Ansible 库存文件中的主机和分组信息。
- 检查配置语法: 验证 Ansible Playbook 的语法是否正确。
- 列出任务: 预览 Ansible Playbook 中将要执行的任务列表。
- 访问默认库存资源: 通过资源接口读取默认的 Ansible 库存文件内容。
- AWS 集成: 提供对多种 AWS 服务(如 EC2, S3, VPC, CloudFormation, IAM, RDS, Route53, ELB, Lambda)的管理操作能力。
- Terraform 支持: 执行常见的 Terraform 命令(初始化、计划、应用、销毁、校验、输出等)。
- LocalStack 集成: 支持通过 tflocal 或修改配置的方式,在本地使用 LocalStack 测试 AWS 和 Terraform 操作。
- Ansible Vault: 支持对字符串进行加密和解密。
安装步骤
- 克隆仓库:
git clone https://github.com/tarnover/mcp-sysoperator.git cd mcp-sysoperator - 安装依赖:
npm install - 构建服务器代码:
npm run build - 安装前置依赖:
- 确保您的系统已安装 Node.js 18 或更高版本。
- 确保已安装 Ansible 并在系统的 PATH 中可执行。
- 如需使用 AWS 相关功能,需要安装 AWS CLI 并配置有效的凭据。
- 如需使用 Terraform 功能,需要安装 Terraform 并在系统的 PATH 中可执行。
- 如需使用 LocalStack 相关测试或功能,需要安装 LocalStack 和 awslocal CLI。
服务器配置 (供 MCP 客户端使用)
MCP 服务器通常由 MCP 客户端(如 AI 助手插件)启动和管理。您需要在您的 MCP 客户端的配置中添加 SysOperator 服务器的信息。配置格式通常是一个 JSON 文件,其中包含一个 'mcpServers' 部分。
找到您的 MCP 客户端的配置文件(例如,VSCode Claude 扩展的 '~/.config/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json' 或 Claude 桌面应用的配置文件),并在 'mcpServers' 部分添加类似以下的配置项:
{ "mcpServers": { "sysoperator": { "command": "node", "args": [ "/absolute/path/to/mcp-sysoperator/build/index.js" ], "env": {} } } }
请将 '/absolute/path/to/mcp-sysoperator' 替换为您实际克隆并构建的仓库路径。'command' 指定了启动服务器的可执行文件(这里是 node),'args' 提供了传递给 'node' 命令的参数,即服务器的入口文件路径。
基本使用方法 (通过 MCP 客户端)
配置完成后,您的 LLM 客户端将能够发现并与 MCP SysOperator 服务器交互。
- 访问资源: AI 助手可以通过 MCP 的资源访问指令(如 '<access_mcp_resource>') 来读取服务器提供的资源,例如访问默认的 Ansible 库存:
<access_mcp_resource> <server_name>sysoperator</server_name> <uri>sysoperator://inventory/default</uri> </access_mcp_resource> - 使用工具: AI 助手可以通过 MCP 的工具调用指令(如 '<use_mcp_tool>') 来执行服务器提供的各种工具,例如运行一个 Ansible Playbook 或执行 Terraform 计划:
AI 助手会根据您的指令、对话上下文以及工具的描述和输入Schema来构造正确的工具调用请求。<use_mcp_tool> <server_name>sysoperator</server_name> <tool_name>run_playbook</tool_name> <arguments> { "playbook": "/path/to/your/playbook.yml", "inventory": "/path/to/inventory.ini", "extraVars": {} } </arguments> </use_mcp_tool> <use_mcp_tool> <server_name>sysoperator</server_name> <tool_name>terraform</tool_name> <arguments> { "action": "plan", "workingDir": "/path/to/terraform/project", "vars": {} } </arguments> </use_mcp_tool>
信息
分类
开发者工具