MCP SysOperator

by tarnover

Integrations

  • Allows execution of Ansible playbooks with parameters, inventory management, syntax validation, and task previews for infrastructure automation

  • Supports running on Linux systems with configuration file integration for the Claude app

  • Supports running on macOS systems with configuration file integration for the Claude app

MCP 系统操作员

用于基础设施即代码操作的模型上下文协议 (MCP) 服务器。该服务器允许 AI 助手与 Ansible 和 Terraform 交互,执行剧本和 Terraform 计划,管理云资源,并直接执行其他基础设施操作。
(该项目以前称为mcp-ansible

示例测试项目

这些文件夹中的所有代码均由 Cline 和 mcp-sysoperator 生成

所有代码均使用 Claude 3.7 Sonnet(通过 OpenRouter)、Cline 和 SysOperator 生成

特征

  • 运行 Ansible Playbooks :执行 Ansible Playbooks,支持库存、额外变量、标签和限制等参数
  • 列出清单:从 Ansible 清单文件中查看主机和组
  • 检查语法:无需执行即可验证 Ansible playbook 语法
  • 列出任务:预览剧本将执行的任务
  • 访问默认库存:通过资源 API 访问默认的 Ansible 库存文件
  • AWS 集成:管理 AWS 资源(EC2、S3、VPC、CloudFormation 等)
  • Terraform 支持:执行 Terraform 命令(init、plan、apply、destroy、output 等)
  • tflocal 集成:使用 LocalStack 测试 Terraform 配置以进行本地云开发
  • LocalStack 支持:使用 LocalStack 在本地测试 AWS 操作,无需真实的 AWS 凭证

要求

  • Node.js 18 或更高版本
  • npm 或 yarn
  • Ansible 已安装并位于 PATH 中
  • @modelcontextprotocol/sdk(自动安装)
  • 对于 AWS 操作:AWS CLI 和有效凭证
  • 对于 LocalStack:LocalStack 已安装并正在运行,awslocal CLI

安装

1. 克隆存储库

git clone https://github.com/tarnover/mcp-sysoperator.git cd mcp-sysoperator

2.安装依赖项

npm install

3. 构建服务器

npm run build

4. 配置 MCP 设置

将 Ansible MCP 服务器添加到您的 MCP 设置配置文件。

对于带有 Claude 扩展的 VSCode:

  • 编辑文件~/.config/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json

对于 Claude 桌面应用程序:

  • macOS:编辑~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows:编辑%APPDATA%\Claude\claude_desktop_config.json
  • Linux:编辑~/.config/Claude/claude_desktop_config.json

将以下内容添加到mcpServers部分:

{ "mcpServers": { "sysoperator": { "command": "node", "args": ["/absolute/path/to/mcp-sysoperator/build/index.js"], "env": {} } } }

确保将/absolute/path/to/mcp-sysoperator替换为安装的实际路径。

使用示例

一旦安装并配置完成,MCP 服务器将向 AI 助手提供以下工具:

1. 运行剧本

<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": { "var1": "value1", "var2": "value2" }, "tags": "setup,configure", "limit": "webservers" } </arguments> </use_mcp_tool>

2. 列出库存

<use_mcp_tool> <server_name>sysoperator</server_name> <tool_name>list_inventory</tool_name> <arguments> { "inventory": "/path/to/inventory.ini" } </arguments> </use_mcp_tool>

3.检查剧本语法

<use_mcp_tool> <server_name>sysoperator</server_name> <tool_name>check_syntax</tool_name> <arguments> { "playbook": "/path/to/your/playbook.yml" } </arguments> </use_mcp_tool>

4. 在剧本中列出任务

<use_mcp_tool> <server_name>sysoperator</server_name> <tool_name>list_tasks</tool_name> <arguments> { "playbook": "/path/to/your/playbook.yml" } </arguments> </use_mcp_tool>

5. 访问默认库存资源

<access_mcp_resource> <server_name>sysoperator</server_name> <uri>sysoperator://inventory/default</uri> </access_mcp_resource>

6.AWS S3 操作

<use_mcp_tool> <server_name>sysoperator</server_name> <tool_name>aws_s3</tool_name> <arguments> { "action": "list_buckets", "region": "us-east-1" } </arguments> </use_mcp_tool>

7. Terraform 初始化和规划

<use_mcp_tool> <server_name>sysoperator</server_name> <tool_name>terraform</tool_name> <arguments> { "action": "init", "workingDir": "/path/to/terraform/project" } </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": { "instance_type": "t2.micro", "region": "us-west-2" } } </arguments> </use_mcp_tool>

8. Terraform 应用

<use_mcp_tool> <server_name>sysoperator</server_name> <tool_name>terraform</tool_name> <arguments> { "action": "apply", "workingDir": "/path/to/terraform/project", "autoApprove": true, "vars": { "instance_type": "t2.micro", "region": "us-west-2" } } </arguments> </use_mcp_tool>

9. 带有 LocalStack 的 Terraform(tflocal)

<use_mcp_tool> <server_name>sysoperator</server_name> <tool_name>terraform</tool_name> <arguments> { "action": "apply", "workingDir": "/path/to/terraform/project", "useLocalstack": true, "autoApprove": true, "vars": { "instance_type": "t2.micro", "region": "us-west-2" } } </arguments> </use_mcp_tool>

LocalStack 集成

该项目包含与 LocalStack 的集成,用于在本地测试 AWS 操作,无需真实的 AWS 凭证。LocalStack 集成允许您:

  1. 在本地测试使用 AWS 服务的 Ansible 剧本
  2. 无需承担 AWS 成本即可开发和测试 AWS 操作
  3. 无需真实 AWS 凭证即可运行测试
  4. 在部署到真正的 AWS 之前验证您的基础设施代码

使用 LocalStack

有关使用 LocalStack 集成的详细说明,请参阅LocalStack README

快速入门:

# Install LocalStack and awslocal CLI pip install localstack awscli-local # Start LocalStack localstack start # Run the sample playbook node localstack/run_sample_playbook.mjs

发展

项目结构

mcp-sysoperator/ ├── src/ │ ├── index.ts # Main entry point │ └── ansible-mcp-server/ # Will be renamed in filesystem in future updates │ ├── index.ts # MCP SysOperator server implementation │ ├── common/ # Common utilities and types │ │ ├── errors.ts # Error definitions │ │ ├── types.ts # Type and schema definitions │ │ ├── utils.ts # Utility functions │ │ └── version.ts # Version information │ └── operations/ # Operation handlers │ ├── ad_hoc.ts # Ansible ad-hoc commands │ ├── aws.ts # AWS operations │ ├── inventory.ts # Ansible inventory operations │ ├── playbooks.ts # Ansible playbook operations │ ├── terraform.ts # Terraform operations │ └── vault.ts # Ansible vault operations ├── localstack/ # LocalStack integration │ ├── README.md # LocalStack documentation │ ├── sample_playbook.yml # Sample playbook for LocalStack │ ├── inventory.ini # Sample inventory for LocalStack │ ├── run_sample_playbook.mjs # Script to run sample playbook │ └── utils.localstack.ts # Modified utils for LocalStack ├── package.json # Project configuration and dependencies ├── tsconfig.json # TypeScript configuration └── README.md # Documentation

添加新功能

要向 MCP 服务器添加新功能:

  1. 修改src/ansible-mcp-server/index.ts (未来: src/sysoperator/index.ts
  2. setupToolHandlers方法中添加新工具
  3. 在适当的操作文件中为您的工具实现处理程序函数
  4. common/types.ts中添加模式定义
  5. 使用npm run build重建

⚠️ 免责声明

SysOperator 目前正在积极开发和广泛测试中。目前不建议在生产环境中使用。该软件可能会出现重大变更、功能不完整或出现意外行为。

使用风险自负。

执照

MIT 许可证 - 详情请参阅许可证

You must be authenticated.

A
security – no known vulnerabilities
A
license - permissive license
A
quality - confirmed to work

hybrid server

The server is able to function both locally and remotely, depending on the configuration or use case.

模型上下文协议服务器使 AI 助手能够直接与 Ansible 和 Terraform 等基础设施工具交互,以执行剧本、管理云资源和执行其他基础设施操作。

  1. 示例测试项目
    1. 特征
      1. 要求
        1. 安装
          1. 1. 克隆存储库
          2. 2.安装依赖项
          3. 3. 构建服务器
          4. 4. 配置 MCP 设置
        2. 使用示例
          1. 1. 运行剧本
          2. 2. 列出库存
          3. 3.检查剧本语法
          4. 4. 在剧本中列出任务
          5. 5. 访问默认库存资源
          6. 6.AWS S3 操作
          7. 7. Terraform 初始化和规划
          8. 8. Terraform 应用
          9. 9. 带有 LocalStack 的 Terraform(tflocal)
        3. LocalStack 集成
          1. 使用 LocalStack
        4. 发展
          1. 项目结构
          2. 添加新功能
          3. ⚠️ 免责声明
        5. 执照

          Related MCP Servers

          • A
            security
            A
            license
            A
            quality
            A Model Context Protocol server that enables AI assistants to interact with Azure DevOps resources including projects, work items, repositories, pull requests, branches, and pipelines through a standardized protocol.
            Last updated -
            15
            602
            131
            TypeScript
            MIT License
            • Linux
            • Apple
          • A
            security
            A
            license
            A
            quality
            A Model Context Protocol server that exposes Cloudinary Upload & Admin API methods as tools by AI assistants. This integration allows AI systems to trigger and interact with your Cloudinary cloud.
            Last updated -
            5
            506
            JavaScript
            MIT License
          • -
            security
            F
            license
            -
            quality
            A Model Context Protocol server that provides persistent task management capabilities for AI assistants, allowing them to create, update, and track tasks beyond their usual context limitations.
            Last updated -
            1
            TypeScript
          • -
            security
            F
            license
            -
            quality
            A comprehensive Model Context Protocol server implementation that enables AI assistants to interact with file systems, databases, GitHub repositories, web resources, and system tools while maintaining security and control.
            Last updated -
            16
            TypeScript

          View all related MCP servers

          ID: 7ov3ozxt9a