coolify_system_management
Manage and monitor Coolify self-hosted instances by listing servers, teams, and services, or testing connectivity for efficient system administration.
Instructions
System management: list servers, teams, services, or test connectivity
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | Action to perform: get servers, teams, services, or test connection |
Input Schema (JSON Schema)
{
"properties": {
"action": {
"description": "Action to perform: get servers, teams, services, or test connection",
"enum": [
"get_servers",
"get_teams",
"get_services",
"test_connection"
],
"type": "string"
}
},
"required": [
"action"
],
"type": "object"
}
Implementation Reference
- src/tools/system-unified.ts:29-89 (handler)Main handler function executing the tool logic: dispatches to Coolify API methods based on action (get_servers, get_teams, get_services, test_connection).export async function handleSystemManagement( coolifyClient: CoolifyApiClient, args: any ): Promise<any> { try { const { action } = args; let result; let message; switch (action) { case 'get_servers': result = await coolifyClient.getServers(); message = `Found ${result.length} servers`; break; case 'get_teams': result = await coolifyClient.getTeams(); message = `Found ${result.length} teams`; break; case 'get_services': result = await coolifyClient.getServices(); message = `Found ${result.length} services`; break; case 'test_connection': result = await coolifyClient.testConnection(); message = result ? 'Connection successful' : 'Connection failed'; break; default: throw new Error(`Unknown system action: ${action}`); } return { content: [ { type: 'text', text: JSON.stringify({ success: true, data: result, message: message }, null, 2) } ] }; } catch (error) { return { content: [ { type: 'text', text: JSON.stringify({ success: false, error: error instanceof Error ? error.message : 'Unknown error occurred' }, null, 2) } ], isError: true }; } }
- src/tools/system-unified.ts:13-27 (schema)Tool definition including name 'coolify_system_management' and input schema validating the 'action' parameter.export const systemManagementTool: Tool = { name: 'coolify_system_management', description: 'System management: list servers, teams, services, or test connectivity', inputSchema: { type: 'object', properties: { action: { type: 'string', enum: ['get_servers', 'get_teams', 'get_services', 'test_connection'], description: 'Action to perform: get servers, teams, services, or test connection', }, }, required: ['action'], }, };
- src/index.ts:125-134 (registration)Registration of the tool in the MCP server's listTools handler, including systemManagementTool in the returned tools array.this.server.setRequestHandler(ListToolsRequestSchema, async () => { return { tools: [ applicationManagementTool, environmentConfigurationTool, systemManagementTool, documentationTool, ], }; });
- src/index.ts:156-157 (registration)Dispatch/registration of the handler in the MCP callTool request switch statement.case 'coolify_system_management': return await handleSystemManagement(this.coolifyClient, args);