Skip to main content
Glama

coolify_servers

Manage servers in Coolify infrastructure: list, create, retrieve, update, and delete server configurations with SSH details and metadata.

Instructions

Server CRUD operations - list, create, get, update, and delete servers

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
actionYesAction to perform: list (list all servers), create (create new server), get (get server by UUID), update (update server), delete (delete server)
uuidNoServer UUID (required for get, update, delete actions)
nameNoServer name (required for create, optional for update)
descriptionNoServer description (optional for create and update)
ipNoServer IP address (required for create, optional for update)
portNoSSH port (optional for create and update, default: 22)
userNoSSH user (optional for create and update, default: root)
private_key_idNoPrivate key ID (optional for create action)
pageNoPage number (optional for list action)
per_pageNoItems per page (optional for list action)

Implementation Reference

  • Handler function implementing the logic for the 'coolify_servers' tool. It handles CRUD operations (list, create, get, update, delete) for servers by making API calls to Coolify endpoints.
    async servers(action: string, args: any) { switch (action) { case 'list': const queryString = this.apiClient.buildQueryString(args); const response = await this.apiClient.get(`/servers?${queryString}`); return { content: [{ type: 'text', text: JSON.stringify(response.data, null, 2) }] }; case 'create': const createResponse = await this.apiClient.post('/servers', { name: args.name, description: args.description, ip: args.ip, port: args.port || 22, user: args.user || 'root', private_key_id: args.private_key_id, }); return { content: [{ type: 'text', text: JSON.stringify(createResponse.data, null, 2) }] }; case 'get': if (!args.uuid) throw new Error('Server UUID is required for get action'); const getResponse = await this.apiClient.get(`/servers/${args.uuid}`); return { content: [{ type: 'text', text: JSON.stringify(getResponse.data, null, 2) }] }; case 'update': if (!args.uuid) throw new Error('Server UUID is required for update action'); const updateResponse = await this.apiClient.patch(`/servers/${args.uuid}`, { name: args.name, description: args.description, ip: args.ip, port: args.port, user: args.user, }); return { content: [{ type: 'text', text: JSON.stringify(updateResponse.data, null, 2) }] }; case 'delete': if (!args.uuid) throw new Error('Server UUID is required for delete action'); await this.apiClient.delete(`/servers/${args.uuid}`); return { content: [{ type: 'text', text: 'Server deleted successfully' }] }; default: throw new Error(`Unknown servers action: ${action}`); } }
  • Input schema definition for the 'coolify_servers' tool, specifying parameters for server CRUD operations.
    { name: 'coolify_servers', description: 'Server CRUD operations - list, create, get, update, and delete servers', inputSchema: { type: 'object', properties: { action: { type: 'string', enum: ['list', 'create', 'get', 'update', 'delete'], description: 'Action to perform: list (list all servers), create (create new server), get (get server by UUID), update (update server), delete (delete server)' }, uuid: { type: 'string', description: 'Server UUID (required for get, update, delete actions)' }, name: { type: 'string', description: 'Server name (required for create, optional for update)' }, description: { type: 'string', description: 'Server description (optional for create and update)' }, ip: { type: 'string', description: 'Server IP address (required for create, optional for update)' }, port: { type: 'number', description: 'SSH port (optional for create and update, default: 22)' }, user: { type: 'string', description: 'SSH user (optional for create and update, default: root)' }, private_key_id: { type: 'string', description: 'Private key ID (optional for create action)' }, page: { type: 'number', description: 'Page number (optional for list action)' }, per_page: { type: 'number', description: 'Items per page (optional for list action)' }, }, required: ['action'], }, },
  • src/index.ts:122-123 (registration)
    Registration of the 'coolify_servers' tool handler in the MCP server's tool call dispatcher switch statement.
    case 'coolify_servers': return await this.handlers.servers(args.action, args);

Latest Blog Posts

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/HowieDuhzit/CoolifyMCP'

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