这是一个用于基础设施即代码操作的模型上下文协议(MCP)服务器。此服务器允许AI助手与Ansible和Terraform进行交互,执行剧本和Terraform计划,管理云资源,并直接执行其他基础设施操作。 (该项目之前称为_mcp-ansible_)
演示中生成的所有代码均使用Claude 3.7 Sonnet(通过OpenRouter)、Cline和SysOperator
git clone https://github.com/tarnover/mcp-sysoperator.git
cd mcp-sysoperator
npm install
npm run build
将Ansible MCP服务器添加到您的MCP设置配置文件中。
对于带有Claude扩展的VSCode:
~/.config/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json的文件对于Claude桌面应用程序:
~/Library/Application Support/Claude/claude_desktop_config.json%APPDATA%\Claude\claude_desktop_config.json~/.config/Claude/claude_desktop_config.json在mcpServers部分添加以下内容:
{
"mcpServers": {
"sysoperator": {
"command": "node",
"args": ["/绝对路径到/mcp-sysoperator/build/index.js"],
"env": {}
}
}
}
确保替换/绝对路径到/mcp-sysoperator为您实际安装的路径。
一旦安装并配置好,MCP服务器将提供以下工具给AI助手:
<use_mcp_tool>
<server_name>sysoperator</server_name>
<tool_name>run_playbook</tool_name>
<arguments>
{
"playbook": "/路径到你的/playbook.yml",
"inventory": "/路径到/inventory.ini",
"extraVars": {
"var1": "value1",
"var2": "value2"
},
"tags": "setup,configure",
"limit": "webservers"
}
</arguments>
</use_mcp_tool>
<use_mcp_tool>
<server_name>sysoperator</server_name>
<tool_name>list_inventory</tool_name>
<arguments>
{
"inventory": "/路径到/inventory.ini"
}
</arguments>
</use_mcp_tool>
<use_mcp_tool>
<server_name>sysoperator</server_name>
<tool_name>check_syntax</tool_name>
<arguments>
{
"playbook": "/路径到你的/playbook.yml"
}
</arguments>
</use_mcp_tool>
<use_mcp_tool>
<server_name>sysoperator</server_name>
<tool_name>list_tasks</tool_name>
<arguments>
{
"playbook": "/路径到你的/playbook.yml"
}
</arguments>
</use_mcp_tool>
<access_mcp_resource>
<server_name>sysoperator</server_name>
<uri>sysoperator://inventory/default</uri>
</access_mcp_resource>
<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>
<use_mcp_tool>
<server_name>sysoperator</server_name>
<tool_name>terraform</tool_name>
<arguments>
{
"action": "init",
"workingDir": "/路径到/terraform/project"
}
</arguments>
</use_mcp_tool>
<use_mcp_tool>
<server_name>sysoperator</server_name>
<tool_name>terraform</tool_name>
<arguments>
{
"action": "plan",
"workingDir": "/路径到/terraform/project",
"vars": {
"instance_type": "t2.micro",
"region": "us-west-2"
}
}
</arguments>
</use_mcp_tool>
<use_m
cp_tool>
<server_name>sysoperator</server_name>
<tool_name>terraform</tool_name>
<arguments>
{
"action": "apply",
"workingDir": "/路径到/terraform/project",
"autoApprove": true,
"vars": {
"instance_type": "t2.micro",
"region": "us-west-2"
}
}
</arguments>
</use_mcp_tool>
<use_mcp_tool>
<server_name>sysoperator</server_name>
<tool_name>terraform</tool_name>
<arguments>
{
"action": "apply",
"workingDir": "/路径到/terraform/project",
"useLocalstack": true,
"autoApprove": true,
"vars": {
"instance_type": "t2.micro",
"region": "us-west-2"
}
}
</arguments>
</use_mcp_tool>
本项目包括与LocalStack的集成,用于在没有真实AWS凭证的情况下进行本地AWS操作测试。LocalStack集成允许您:
参见LocalStack README获取详细的LocalStack集成使用说明。
快速开始:
# 安装LocalStack和awslocal CLI
pip install localstack awscli-local
# 启动LocalStack
localstack start
# 运行示例剧本
node localstack/run_sample_playbook.mjs
mcp-sysoperator/
├── src/
│ ├── index.ts # 主入口点
│ └── ansible-mcp-server/ # 将在未来更新中重命名
│ ├── index.ts # MCP SysOperator服务器实现
│ ├── common/ # 常用工具和类型
│ │ ├── errors.ts # 错误定义
│ │ ├── types.ts # 类型和模式定义
│ │ ├── utils.ts # 实用函数
│ │ └── version.ts # 版本信息
│ └── operations/ # 操作处理器
│ ├── ad_hoc.ts # Ansible临时命令
│ ├── aws.ts # AWS操作
│ ├── inventory.ts # Ansible清单操作
│ ├── playbooks.ts # Ansible剧本操作
│ ├── terraform.ts # Terraform操作
│ └── vault.ts # Ansible密钥库操作
├── localstack/ # LocalStack集成
│ ├── README.md # LocalStack文档
│ ├── sample_playbook.yml # LocalStack示例剧本
│ ├── inventory.ini # LocalStack示例清单
│ ├── run_sample_playbook.mjs # 运行示例剧本的脚本
│ └── utils.localstack.ts # 修改过的LocalStack实用函数
├── package.json # 项目配置和依赖
├── tsconfig.json # TypeScript配置
└── README.md # 文档
要向MCP服务器添加新功能:
src/ansible-mcp-server/index.ts(未来:src/sysoperator/index.ts)setupToolHandlers方法中添加您的新工具common/types.ts中添加模式定义npm run build重新构建SysOperator正处于积极开发阶段,并正在进行广泛的测试。目前不建议在生产环境中使用。该软件可能会经历破坏性更改、不完整的功能或意外行为。
自行承担风险使用。
MIT许可证 - 详情见LICENSE