Skip to main content
Glama

MCP SysOperator

Сервер Model Context Protocol (MCP) для операций Infrastructure as Code. Этот сервер позволяет помощникам ИИ взаимодействовать с Ansible и Terraform, выполнять сценарии и планы Terraform, управлять облачными ресурсами и выполнять другие операции по инфраструктуре напрямую.
(Проект ранее был известен как mcp-ansible )

Демонстрационные проекты

Весь код в демонстрациях сгенерирован с использованием Claude 3.7 Sonnet (через OpenRouter), Cline и SysOperator

  • AWS LAMP Stack — весь код Ansible для развертывания примера стека LAMP в AWS

  • AWS Terraform LAMP — код Terraform и Ansible для ответа на стек LAMP

Related MCP server: MCP-PIF Server

Функции

  • Запуск Ansible Playbooks : выполнение Ansible Playbooks с поддержкой таких параметров, как инвентарь, дополнительные переменные, теги и ограничения.

  • Список инвентаря : просмотр хостов и групп из файла инвентаря Ansible

  • Проверка синтаксиса : проверка синтаксиса Ansible playbook без выполнения

  • Список задач : предварительный просмотр задач, которые будут выполнены в соответствии с планом действий.

  • Доступ к инвентарю по умолчанию : доступ к файлу инвентаря Ansible по умолчанию через API ресурсов.

  • Интеграция с AWS : управление ресурсами AWS (EC2, S3, VPC, CloudFormation и т. д.)

  • Поддержка Terraform : выполнение команд Terraform (инициализация, планирование, применение, уничтожение, вывод и т. д.)

  • Интеграция tflocal : тестирование конфигураций Terraform с LocalStack для разработки локального облака

  • Поддержка LocalStack : локальное тестирование операций AWS с использованием LocalStack без реальных учетных данных AWS.

Требования

  • Node.js 18 или выше

  • npm или пряжа

  • 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.

Для VSCode с расширением Claude:

  • Отредактируйте файл ~/.config/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json

Для приложения Claude Desktop:

  • 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 предоставляет следующие инструменты помощнику на основе искусственного интеллекта:

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. Проверьте синтаксис Playbook

<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. Терраформировать применить

<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 (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. Тестирование сценариев Ansible, использующих сервисы AWS локально

  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 — подробности см. в разделе ЛИЦЕНЗИЯ

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-ansible'

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