项目简介

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: 支持对字符串进行加密和解密。

安装步骤

  1. 克隆仓库:
    git clone https://github.com/tarnover/mcp-sysoperator.git
    cd mcp-sysoperator
  2. 安装依赖:
    npm install
  3. 构建服务器代码:
    npm run build
  4. 安装前置依赖:
    • 确保您的系统已安装 Node.js 18 或更高版本
    • 确保已安装 Ansible 并在系统的 PATH 中可执行。
    • 如需使用 AWS 相关功能,需要安装 AWS CLI 并配置有效的凭据。
    • 如需使用 Terraform 功能,需要安装 Terraform 并在系统的 PATH 中可执行。
    • 如需使用 LocalStack 相关测试或功能,需要安装 LocalStackawslocal 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 计划:
    <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>
    AI 助手会根据您的指令、对话上下文以及工具的描述和输入Schema来构造正确的工具调用请求。

信息

分类

开发者工具