Development
Разбирает Terraform plan в JSON или текстовом виде, классифицирует изменения и показывает сводку по зависимостям
Вызовите этот инструмент из своего кода на трёх языках.
# 1) Upload each file first → returns { filePath }
curl -X POST 'https://api.elysiatools.com/upload/terraform-plan-visualizer' \
-F 'file=@/path/to/planFile.ext'
# 2) Call the tool with the returned filePath values
curl -X POST 'https://api.elysiatools.com/ru/api/tools/terraform-plan-visualizer' \
-F 'planInput={
"format_version": "1.2",
"resource_changes": [
{
"address": "aws_vpc.main",
"mode": "managed",
"type": "aws_vpc",
"name": "main",
"provider_name": "provider[\"registry.terraform.io/hashicorp/aws\"]",
"change": {
"actions": [
"create"
]
}
},
{
"address": "aws_subnet.app",
"mode": "managed",
"type": "aws_subnet",
"name": "app",
"provider_name": "provider[\"registry.terraform.io/hashicorp/aws\"]",
"change": {
"actions": [
"create"
]
}
},
{
"address": "aws_iam_policy.read",
"mode": "managed",
"type": "aws_iam_policy",
"name": "read",
"provider_name": "provider[\"registry.terraform.io/hashicorp/aws\"]",
"change": {
"actions": [
"update"
]
}
},
{
"address": "aws_security_group.web",
"mode": "managed",
"type": "aws_security_group",
"name": "web",
"provider_name": "provider[\"registry.terraform.io/hashicorp/aws\"]",
"change": {
"actions": [
"delete",
"create"
]
}
}
],
"configuration": {
"root_module": {
"resources": [
{
"address": "aws_vpc.main",
"provider_name": "provider[\"registry.terraform.io/hashicorp/aws\"]",
"depends_on": []
},
{
"address": "aws_subnet.app",
"provider_name": "provider[\"registry.terraform.io/hashicorp/aws\"]",
"depends_on": [
"aws_vpc.main"
]
},
{
"address": "aws_iam_policy.read",
"provider_name": "provider[\"registry.terraform.io/hashicorp/aws\"]",
"depends_on": [
"aws_vpc.main"
]
},
{
"address": "aws_security_group.web",
"provider_name": "provider[\"registry.terraform.io/hashicorp/aws\"]",
"depends_on": [
"aws_vpc.main",
"aws_subnet.app"
]
}
]
}
}
}' \
-F 'planFile=' \
-F 'inputFormat=json' \
-F 'showDependencyGraph=true'Отправьте POST-запрос с входными данными в JSON. Параметры типа «файл» требуют предварительной загрузки.
POST https://api.elysiatools.com/ru/api/tools/terraform-plan-visualizer| Имя | Тип | Обязательный | Описание |
|---|---|---|---|
| planInput | textarea | Нет | — |
| planFile | fileнужна загрузка | Нет | — |
| inputFormat | select | Нет | — |
| showDependencyGraph | checkbox | Нет | — |
HTML-результат
{
"result": "<div>Processed HTML content</div>",
"error": "Error message (optional)",
"message": "Notification message (optional)",
"metadata": {
"key": "value"
}
}Добавьте этот инструмент на свой сервер Model Context Protocol, чтобы ИИ-агенты могли перечислять и вызывать его.
Добавьте этот блок в конфигурацию вашего MCP-клиента:
{
"mcpServers": {
"elysiatools-terraform-plan-visualizer": {
"name": "terraform-plan-visualizer",
"description": "Разбирает Terraform plan в JSON или текстовом виде, классифицирует изменения и показывает сводку по зависимостям",
"baseUrl": "https://api.elysiatools.com/mcp/sse?toolId=terraform-plan-visualizer",
"command": "",
"args": [],
"env": {},
"isActive": true,
"type": "sse"
}
}
}После подключения к SSE-endpoint выведите список доступных инструментов:
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/list"
}Вызовите инструмент по его id; аргументы формируются из его параметров:
{
"jsonrpc": "2.0",
"id": 2,
"method": "tools/call",
"params": {
"name": "terraform-plan-visualizer",
"arguments": {
"planInput": "{\n \"format_version\": \"1.2\",\n \"resource_changes\": [\n {\n \"address\": \"aws_vpc.main\",\n \"mode\": \"managed\",\n \"type\": \"aws_vpc\",\n \"name\": \"main\",\n \"provider_name\": \"provider[\\\"registry.terraform.io/hashicorp/aws\\\"]\",\n \"change\": {\n \"actions\": [\n \"create\"\n ]\n }\n },\n {\n \"address\": \"aws_subnet.app\",\n \"mode\": \"managed\",\n \"type\": \"aws_subnet\",\n \"name\": \"app\",\n \"provider_name\": \"provider[\\\"registry.terraform.io/hashicorp/aws\\\"]\",\n \"change\": {\n \"actions\": [\n \"create\"\n ]\n }\n },\n {\n \"address\": \"aws_iam_policy.read\",\n \"mode\": \"managed\",\n \"type\": \"aws_iam_policy\",\n \"name\": \"read\",\n \"provider_name\": \"provider[\\\"registry.terraform.io/hashicorp/aws\\\"]\",\n \"change\": {\n \"actions\": [\n \"update\"\n ]\n }\n },\n {\n \"address\": \"aws_security_group.web\",\n \"mode\": \"managed\",\n \"type\": \"aws_security_group\",\n \"name\": \"web\",\n \"provider_name\": \"provider[\\\"registry.terraform.io/hashicorp/aws\\\"]\",\n \"change\": {\n \"actions\": [\n \"delete\",\n \"create\"\n ]\n }\n }\n ],\n \"configuration\": {\n \"root_module\": {\n \"resources\": [\n {\n \"address\": \"aws_vpc.main\",\n \"provider_name\": \"provider[\\\"registry.terraform.io/hashicorp/aws\\\"]\",\n \"depends_on\": []\n },\n {\n \"address\": \"aws_subnet.app\",\n \"provider_name\": \"provider[\\\"registry.terraform.io/hashicorp/aws\\\"]\",\n \"depends_on\": [\n \"aws_vpc.main\"\n ]\n },\n {\n \"address\": \"aws_iam_policy.read\",\n \"provider_name\": \"provider[\\\"registry.terraform.io/hashicorp/aws\\\"]\",\n \"depends_on\": [\n \"aws_vpc.main\"\n ]\n },\n {\n \"address\": \"aws_security_group.web\",\n \"provider_name\": \"provider[\\\"registry.terraform.io/hashicorp/aws\\\"]\",\n \"depends_on\": [\n \"aws_vpc.main\",\n \"aws_subnet.app\"\n ]\n }\n ]\n }\n }\n}",
"planFile": "",
"inputFormat": "json",
"showDependencyGraph": true
}
}
}Вопросы или проблемы? Свяжитесь с [email protected]