Skip to main content
Glama

MCP 系统操作员

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

演示项目

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

Related MCP server: Ansible MCP Server

特征

  • 运行 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 许可证 - 详情请参阅许可证

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/tarnover/mcp-sysoperator'

If you have feedback or need assistance with the MCP directory API, please join our Discord server