{ "openapi": "3.1.0", "info": { "title": "VPS-Commander", "version": "2.0.0", "description": "Current VPS-Commander HTTP contract. MCP tools are documented in docs/MCP_INTEGRATION.md." }, "servers": [ { "url": "https://vpstool.kory.kdns.fr" } ], "components": { "securitySchemes": { "bearerAuth": { "type": "http", "scheme": "bearer" } }, "schemas": { "Device": { "type": "object", "properties": { "name": { "type": "string" }, "status": { "type": "string" }, "is_local": { "type": "boolean" }, "arch": { "type": "string" }, "os": { "type": "string" } } }, "ExecRequest": { "type": "object", "required": [ "command" ], "properties": { "device": { "type": "string" }, "command": { "type": "string" }, "workdir": { "type": "string" }, "timeout": { "type": "integer" } } }, "ExecResponse": { "type": "object", "properties": { "device": { "type": "string" }, "exit_code": { "type": "integer" }, "stdout": { "type": "string" }, "stderr": { "type": "string" }, "duration_ms": { "type": "integer" } } }, "FileReadRequest": { "type": "object", "required": [ "path" ], "properties": { "device": { "type": "string" }, "path": { "type": "string" }, "offset": { "type": "integer" }, "limit": { "type": "integer" } } }, "FileReadResponse": { "type": "object", "properties": { "device": { "type": "string" }, "path": { "type": "string" }, "offset": { "type": "integer" }, "content": { "type": "string" }, "bytes": { "type": "integer" }, "eof": { "type": "boolean" }, "total_size": { "type": "integer" }, "has_more": { "type": "boolean" } } }, "FileWriteRequest": { "type": "object", "required": [ "path", "content" ], "properties": { "device": { "type": "string" }, "path": { "type": "string" }, "content": { "type": "string" } } }, "FileWriteResponse": { "type": "object", "properties": { "device": { "type": "string" }, "path": { "type": "string" }, "bytes": { "type": "integer" } } } } }, "paths": { "/api/v1/devices": { "get": { "responses": { "200": { "description": "OK" } } } }, "/api/v1/exec": { "post": { "responses": { "200": { "description": "OK" } } } }, "/api/v1/file/read": { "post": { "responses": { "200": { "description": "OK" } } } }, "/api/v1/file/list": { "post": { "responses": { "200": { "description": "OK" } } } }, "/api/v1/file/info": { "post": { "responses": { "200": { "description": "OK" } } } }, "/api/v1/file/search": { "post": { "responses": { "200": { "description": "OK" } } } }, "/api/v1/process/session": { "post": { "responses": { "200": { "description": "OK" } } } }, "/api/v1/file/write": { "post": { "responses": { "200": { "description": "OK" } } } }, "/api/v1/devices/file/edit_block": { "post": { "responses": { "200": { "description": "OK" } } } }, "/api/v1/mcp/services": { "get": { "responses": { "200": { "description": "OK" } } } }, "/api/v1/mcp/service": { "delete": { "responses": { "200": { "description": "OK" } } } }, "/api/v1/mcp/list": { "get": { "responses": { "200": { "description": "OK" } } } }, "/api/v1/mcp/call": { "post": { "responses": { "200": { "description": "OK" } } } }, "/api/v1/mcp/test": { "post": { "responses": { "200": { "description": "OK" } } } }, "/api/v1/security/settings": { "get": { "responses": { "200": { "description": "OK" } } } }, "/api/v1/security/settings/update": { "post": { "responses": { "200": { "description": "OK" } } } }, "/api/v1/security/device-credentials/provision": { "post": { "responses": { "200": { "description": "OK" } } } }, "/api/v1/notifications/webhooks": { "get": { "responses": { "200": { "description": "OK" } } } }, "/api/v1/notifications/webhook/update": { "post": { "responses": { "200": { "description": "OK" } } } }, "/api/v1/notifications/webhook/delete": { "delete": { "responses": { "200": { "description": "OK" } } } }, "/api/v1/notifications/webhook/test": { "post": { "responses": { "200": { "description": "OK" } } } } } }