Skip to main content
Glama
tools.ts31.9 kB
import { Tool } from '@modelcontextprotocol/sdk/types.js'; export const getTools = (): Tool[] => [ // System Management { name: 'coolify_system', description: 'System management operations - health check, version, and system information', inputSchema: { type: 'object', properties: { action: { type: 'string', enum: ['health', 'version', 'info'], description: 'Action to perform: health (check system health), version (get API version), info (get system information)' }, }, required: ['action'], }, }, // Team Management { name: 'coolify_teams', description: 'Complete team management - list teams, get current team, get team details, and list team members', inputSchema: { type: 'object', properties: { action: { type: 'string', enum: ['list', 'current', 'get', 'members'], description: 'Action to perform: list (list all teams), current (get current team), get (get specific team), members (list team members)' }, team_id: { type: 'string', description: 'Team ID (required for get and members actions, optional for others)' }, }, required: ['action'], }, }, // Project Management { name: 'coolify_projects', description: 'Project CRUD operations - list, create, get, update, and delete projects', inputSchema: { type: 'object', properties: { action: { type: 'string', enum: ['list', 'create', 'get', 'update', 'delete'], description: 'Action to perform: list (list all projects), create (create new project), get (get project by UUID), update (update project), delete (delete project)' }, uuid: { type: 'string', description: 'Project UUID (required for get, update, delete actions)' }, name: { type: 'string', description: 'Project name (required for create, optional for update)' }, description: { type: 'string', description: 'Project description (optional for create and update)' }, page: { type: 'number', description: 'Page number (optional for list action)' }, per_page: { type: 'number', description: 'Items per page (optional for list action)' }, }, required: ['action'], }, }, { name: 'coolify_project_environments', description: 'Project environment management - list, create, get, and delete project environments', inputSchema: { type: 'object', properties: { action: { type: 'string', enum: ['list', 'create', 'get', 'delete'], description: 'Action to perform: list (list all environments in project), create (create new environment), get (get environment details), delete (delete environment)' }, project_uuid: { type: 'string', description: 'Project UUID (required for all actions)' }, environment_name_or_uuid: { type: 'string', description: 'Environment name or UUID (required for get and delete actions)' }, name: { type: 'string', description: 'Environment name (required for create action)' }, }, required: ['action', 'project_uuid'], }, }, // Application Management { name: 'coolify_applications', description: 'Application CRUD operations - list, create, update, get, and delete applications of all types', inputSchema: { type: 'object', properties: { action: { type: 'string', enum: ['list', 'create', 'update', 'get', 'delete'], description: 'Action to perform: list (list all applications), create (create new application), update (update application), get (get application by UUID), delete (delete application)' }, type: { type: 'string', enum: ['public', 'private_github', 'private_deploy_key', 'dockerfile', 'dockerimage', 'dockercompose'], description: 'Application type (required for create action): public, private_github, private_deploy_key, dockerfile, dockerimage, dockercompose' }, uuid: { type: 'string', description: 'Application UUID (required for update, get, delete actions)' }, name: { type: 'string', description: 'Application name (required for create, optional for update)' }, description: { type: 'string', description: 'Application description (optional for create and update)' }, page: { type: 'number', description: 'Page number (optional for list action)' }, per_page: { type: 'number', description: 'Items per page (optional for list action)' }, // Common application creation parameters project_uuid: { type: 'string', description: 'Project UUID (required for create)' }, server_uuid: { type: 'string', description: 'Server UUID (required for create)' }, environment_name: { type: 'string', description: 'Environment name (required for create)' }, git_repository: { type: 'string', description: 'Git repository URL (required for create)' }, git_branch: { type: 'string', description: 'Git branch (optional for create, default: main)' }, build_pack: { type: 'string', enum: ['nixpacks', 'static', 'dockerfile', 'dockercompose'], description: 'Build pack type (required for create)' }, ports_exposes: { type: 'string', description: 'Port configuration (required for create)' }, // Type-specific parameters github_app_uuid: { type: 'string', description: 'GitHub App UUID (required for private_github type)' }, private_key_uuid: { type: 'string', description: 'Private key UUID (required for private_deploy_key type)' }, docker_registry_image_name: { type: 'string', description: 'Docker registry image name (required for dockerimage type)' }, docker_registry_image_tag: { type: 'string', description: 'Docker registry image tag (optional for dockerimage type, default: latest)' }, docker_compose_raw: { type: 'string', description: 'Docker Compose configuration (required for dockercompose type)' }, dockerfile_location: { type: 'string', description: 'Dockerfile location (optional for dockerfile type, default: /Dockerfile)' }, // Additional optional parameters for private_deploy_key type destination_uuid: { type: 'string', description: 'Destination UUID (optional for private_deploy_key type)' }, domains: { type: 'string', description: 'Domains configuration (optional for private_deploy_key type)' }, git_commit_sha: { type: 'string', description: 'Git commit SHA (optional for private_deploy_key type)' }, is_static: { type: 'boolean', description: 'Is static application (optional for private_deploy_key type)' }, static_image: { type: 'string', description: 'Static image (optional for private_deploy_key type)' }, install_command: { type: 'string', description: 'Install command (optional for private_deploy_key type)' }, build_command: { type: 'string', description: 'Build command (optional for private_deploy_key type)' }, start_command: { type: 'string', description: 'Start command (optional for private_deploy_key type)' }, ports_mappings: { type: 'string', description: 'Port mappings (optional for private_deploy_key type)' }, base_directory: { type: 'string', description: 'Base directory (optional for private_deploy_key type)' }, publish_directory: { type: 'string', description: 'Publish directory (optional for private_deploy_key type)' }, health_check_enabled: { type: 'boolean', description: 'Enable health checks (optional for private_deploy_key type)' }, health_check_path: { type: 'string', description: 'Health check path (optional for private_deploy_key type)' }, health_check_port: { type: 'string', description: 'Health check port (optional for private_deploy_key type)' }, health_check_host: { type: 'string', description: 'Health check host (optional for private_deploy_key type)' }, health_check_method: { type: 'string', description: 'Health check method (optional for private_deploy_key type)' }, health_check_return_code: { type: 'number', description: 'Health check return code (optional for private_deploy_key type)' }, health_check_scheme: { type: 'string', description: 'Health check scheme (optional for private_deploy_key type)' }, health_check_response_text: { type: 'string', description: 'Health check response text (optional for private_deploy_key type)' }, health_check_interval: { type: 'number', description: 'Health check interval (optional for private_deploy_key type)' }, health_check_timeout: { type: 'number', description: 'Health check timeout (optional for private_deploy_key type)' }, health_check_retries: { type: 'number', description: 'Health check retries (optional for private_deploy_key type)' }, health_check_start_period: { type: 'number', description: 'Health check start period (optional for private_deploy_key type)' }, limits_memory: { type: 'string', description: 'Memory limits (optional for private_deploy_key type)' }, limits_memory_swap: { type: 'string', description: 'Memory swap limits (optional for private_deploy_key type)' }, limits_memory_swappiness: { type: 'number', description: 'Memory swappiness (optional for private_deploy_key type)' }, limits_memory_reservation: { type: 'string', description: 'Memory reservation (optional for private_deploy_key type)' }, limits_cpus: { type: 'string', description: 'CPU limits (optional for private_deploy_key type)' }, limits_cpuset: { type: 'string', description: 'CPU set limits (optional for private_deploy_key type)' }, limits_cpu_shares: { type: 'number', description: 'CPU shares (optional for private_deploy_key type)' }, custom_labels: { type: 'string', description: 'Custom labels (optional for private_deploy_key type)' }, custom_docker_run_options: { type: 'string', description: 'Custom Docker run options (optional for private_deploy_key type)' }, post_deployment_command: { type: 'string', description: 'Post deployment command (optional for private_deploy_key type)' }, post_deployment_command_container: { type: 'string', description: 'Post deployment command container (optional for private_deploy_key type)' }, pre_deployment_command: { type: 'string', description: 'Pre deployment command (optional for private_deploy_key type)' }, pre_deployment_command_container: { type: 'string', description: 'Pre deployment command container (optional for private_deploy_key type)' }, manual_webhook_secret_github: { type: 'string', description: 'GitHub webhook secret (optional for private_deploy_key type)' }, manual_webhook_secret_gitlab: { type: 'string', description: 'GitLab webhook secret (optional for private_deploy_key type)' }, manual_webhook_secret_bitbucket: { type: 'string', description: 'Bitbucket webhook secret (optional for private_deploy_key type)' }, manual_webhook_secret_gitea: { type: 'string', description: 'Gitea webhook secret (optional for private_deploy_key type)' }, redirect: { type: 'string', description: 'Redirect configuration (optional for private_deploy_key type)' }, instant_deploy: { type: 'boolean', description: 'Instant deploy (optional for private_deploy_key type)' }, dockerfile: { type: 'string', description: 'Dockerfile content (optional for private_deploy_key type)' }, docker_compose_location: { type: 'string', description: 'Docker Compose location (optional for private_deploy_key type)' }, docker_compose_custom_start_command: { type: 'string', description: 'Docker Compose custom start command (optional for private_deploy_key type)' }, docker_compose_custom_build_command: { type: 'string', description: 'Docker Compose custom build command (optional for private_deploy_key type)' }, docker_compose_domains: { type: 'array', items: { type: 'string' }, description: 'Docker Compose domains (optional for private_deploy_key type)' }, watch_paths: { type: 'string', description: 'Watch paths (optional for private_deploy_key type)' }, use_build_server: { type: 'boolean', description: 'Use build server (optional for private_deploy_key type)' }, is_http_basic_auth_enabled: { type: 'boolean', description: 'Enable HTTP basic auth (optional for private_deploy_key type)' }, http_basic_auth_username: { type: 'string', description: 'HTTP basic auth username (optional for private_deploy_key type)' }, http_basic_auth_password: { type: 'string', description: 'HTTP basic auth password (optional for private_deploy_key type)' }, connect_to_docker_network: { type: 'boolean', description: 'Connect to Docker network (optional for private_deploy_key type)' }, force_domain_override: { type: 'boolean', description: 'Force domain override (optional for private_deploy_key type)' }, }, required: ['action'], }, }, // Application Lifecycle Management { name: 'coolify_application_lifecycle', description: 'Application lifecycle management - start, stop, and restart applications', inputSchema: { type: 'object', properties: { action: { type: 'string', enum: ['start', 'stop', 'restart'], description: 'Action to perform: start (start application), stop (stop application), restart (restart application)' }, uuid: { type: 'string', description: 'Application UUID (required for all actions)' }, }, required: ['action', 'uuid'], }, }, // Application Environment Variables Management { name: 'coolify_application_envs', description: 'Application environment variables management - list, create, bulk update, and delete environment variables', inputSchema: { type: 'object', properties: { action: { type: 'string', enum: ['list', 'create', 'bulk_update', 'delete'], description: 'Action to perform: list (list environment variables), create (create environment variable), bulk_update (bulk update environment variables), delete (delete environment variable)' }, uuid: { type: 'string', description: 'Application UUID (required for all actions)' }, key: { type: 'string', description: 'Environment variable key (required for create action)' }, value: { type: 'string', description: 'Environment variable value (required for create action)' }, env_uuid: { type: 'string', description: 'Environment variable UUID (required for delete action)' }, envs: { type: 'array', description: 'Array of environment variables (required for bulk_update action)', items: { type: 'object', properties: { key: { type: 'string' }, value: { type: 'string' }, }, required: ['key', 'value'], }, }, }, required: ['action', 'uuid'], }, }, // Application Logs and Monitoring { name: 'coolify_logs', description: 'Application logs and monitoring - get application logs', inputSchema: { type: 'object', properties: { action: { type: 'string', enum: ['get'], description: 'Action to perform: get (get application logs)' }, uuid: { type: 'string', description: 'Application UUID (required for get action)' }, lines: { type: 'number', description: 'Number of log lines to retrieve (optional for get action)' }, }, required: ['action', 'uuid'], }, }, // Application Deployments Management { name: 'coolify_application_deployments', description: 'Application deployment management - list, get, and trigger deployments', inputSchema: { type: 'object', properties: { action: { type: 'string', enum: ['list', 'get', 'trigger'], description: 'Action to perform: list (list all deployments), get (get deployment by UUID), trigger (trigger deployment)' }, uuid: { type: 'string', description: 'Application UUID (required for trigger action)' }, deployment_uuid: { type: 'string', description: 'Deployment UUID (required for get action)' }, force_rebuild: { type: 'boolean', description: 'Force rebuild (optional for trigger action, default: false)' }, page: { type: 'number', description: 'Page number (optional for list action)' }, per_page: { type: 'number', description: 'Items per page (optional for list action)' }, }, required: ['action'], }, }, // Database Management { name: 'coolify_databases', description: 'Database CRUD operations - list, create, get, update, and delete databases', inputSchema: { type: 'object', properties: { action: { type: 'string', enum: ['list', 'create', 'get', 'update', 'delete'], description: 'Action to perform: list (list all databases), create (create new database), get (get database by UUID), update (update database), delete (delete database)' }, uuid: { type: 'string', description: 'Database UUID (required for get, update, delete actions)' }, name: { type: 'string', description: 'Database name (required for create, optional for update)' }, description: { type: 'string', description: 'Database description (optional for create and update)' }, type: { type: 'string', enum: ['postgresql', 'mysql', 'mongodb', 'redis', 'mariadb', 'clickhouse', 'dragonfly', 'keydb'], description: 'Database type (required for create action)' }, server_uuid: { type: 'string', description: 'Server UUID (required for create action)' }, project_uuid: { type: 'string', description: 'Project UUID (required for create action)' }, environment_name: { type: 'string', description: 'Environment name (required 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'], }, }, // Database Lifecycle Management { name: 'coolify_database_lifecycle', description: 'Database lifecycle management - start, stop, and restart databases', inputSchema: { type: 'object', properties: { action: { type: 'string', enum: ['start', 'stop', 'restart'], description: 'Action to perform: start (start database), stop (stop database), restart (restart database)' }, uuid: { type: 'string', description: 'Database UUID (required for all actions)' }, }, required: ['action', 'uuid'], }, }, // Database Types Management { name: 'coolify_database_types', description: 'Specific database type creation - create PostgreSQL, MySQL, MongoDB, and Redis databases with type-specific parameters', inputSchema: { type: 'object', properties: { action: { type: 'string', enum: ['create'], description: 'Action to perform: create (create database of specific type)' }, type: { type: 'string', enum: ['postgresql', 'mysql', 'mongodb', 'redis'], description: 'Database type (required for create action)' }, name: { type: 'string', description: 'Database name (required for create action)' }, server_uuid: { type: 'string', description: 'Server UUID (required for create action)' }, project_uuid: { type: 'string', description: 'Project UUID (required for create action)' }, environment_name: { type: 'string', description: 'Environment name (required for create action)' }, // PostgreSQL specific parameters postgresql_user: { type: 'string', description: 'PostgreSQL user (optional for postgresql type)' }, postgresql_password: { type: 'string', description: 'PostgreSQL password (optional for postgresql type)' }, postgresql_db: { type: 'string', description: 'PostgreSQL database name (optional for postgresql type)' }, // MySQL specific parameters mysql_user: { type: 'string', description: 'MySQL user (optional for mysql type)' }, mysql_password: { type: 'string', description: 'MySQL password (optional for mysql type)' }, mysql_database: { type: 'string', description: 'MySQL database name (optional for mysql type)' }, mysql_root_password: { type: 'string', description: 'MySQL root password (optional for mysql type)' }, // MongoDB specific parameters mongodb_root_username: { type: 'string', description: 'MongoDB root username (optional for mongodb type)' }, mongodb_root_password: { type: 'string', description: 'MongoDB root password (optional for mongodb type)' }, mongodb_database: { type: 'string', description: 'MongoDB database name (optional for mongodb type)' }, mongodb_username: { type: 'string', description: 'MongoDB username (optional for mongodb type)' }, mongodb_password: { type: 'string', description: 'MongoDB password (optional for mongodb type)' }, // Redis specific parameters redis_password: { type: 'string', description: 'Redis password (optional for redis type)' }, }, required: ['action', 'type', 'name', 'server_uuid', 'project_uuid', 'environment_name'], }, }, // Server Management { 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'], }, }, // Server Operations Management { name: 'coolify_server_management', description: 'Server operations and resources - validate server connection, list domains, and list resources', inputSchema: { type: 'object', properties: { action: { type: 'string', enum: ['validate', 'domains', 'resources'], description: 'Action to perform: validate (validate server connection), domains (list server domains), resources (list server resources)' }, uuid: { type: 'string', description: 'Server UUID (required for all actions)' }, }, required: ['action', 'uuid'], }, }, // Service Management { name: 'coolify_services', description: 'Service CRUD operations - list, create, get, update, and delete services', inputSchema: { type: 'object', properties: { action: { type: 'string', enum: ['list', 'create', 'get', 'update', 'delete'], description: 'Action to perform: list (list all services), create (create new service), get (get service by UUID), update (update service), delete (delete service)' }, uuid: { type: 'string', description: 'Service UUID (required for get, update, delete actions)' }, name: { type: 'string', description: 'Service name (required for create, optional for update)' }, description: { type: 'string', description: 'Service description (optional for create and update)' }, server_uuid: { type: 'string', description: 'Server UUID (required for create action)' }, project_uuid: { type: 'string', description: 'Project UUID (required for create action)' }, environment_name: { type: 'string', description: 'Environment name (required for create action)' }, docker_compose_raw: { type: 'string', description: 'Docker Compose configuration (required for create, optional for update)' }, page: { type: 'number', description: 'Page number (optional for list action)' }, per_page: { type: 'number', description: 'Items per page (optional for list action)' }, }, required: ['action'], }, }, // Service Lifecycle Management { name: 'coolify_service_lifecycle', description: 'Service lifecycle management - start, stop, and restart services', inputSchema: { type: 'object', properties: { action: { type: 'string', enum: ['start', 'stop', 'restart'], description: 'Action to perform: start (start service), stop (stop service), restart (restart service)' }, uuid: { type: 'string', description: 'Service UUID (required for all actions)' }, }, required: ['action', 'uuid'], }, }, // Service Environment Variables Management { name: 'coolify_service_envs', description: 'Service environment variables management - list, create, update, bulk update, and delete environment variables', inputSchema: { type: 'object', properties: { action: { type: 'string', enum: ['list', 'create', 'update', 'bulk_update', 'delete'], description: 'Action to perform: list (list environment variables), create (create environment variable), update (update environment variable), bulk_update (bulk update environment variables), delete (delete environment variable)' }, uuid: { type: 'string', description: 'Service UUID (required for all actions)' }, key: { type: 'string', description: 'Environment variable key (required for create and update actions)' }, value: { type: 'string', description: 'Environment variable value (required for create and update actions)' }, env_uuid: { type: 'string', description: 'Environment variable UUID (required for delete action)' }, envs: { type: 'array', description: 'Array of environment variables (required for bulk_update action)', items: { type: 'object', properties: { key: { type: 'string' }, value: { type: 'string' }, is_preview: { type: 'boolean', default: false }, is_build_time: { type: 'boolean', default: false }, is_literal: { type: 'boolean', default: false }, is_multiline: { type: 'boolean', default: false }, is_shown_once: { type: 'boolean', default: false }, }, required: ['key', 'value'], }, }, is_preview: { type: 'boolean', description: 'Is preview variable (optional for update action, default: false)' }, is_build_time: { type: 'boolean', description: 'Is build time variable (optional for update action, default: false)' }, is_literal: { type: 'boolean', description: 'Is literal variable (optional for update action, default: false)' }, is_multiline: { type: 'boolean', description: 'Is multiline variable (optional for update action, default: false)' }, is_shown_once: { type: 'boolean', description: 'Is shown once variable (optional for update action, default: false)' }, }, required: ['action', 'uuid'], }, }, // Security Keys Management { name: 'coolify_security_keys', description: 'Security keys management - list, create, get, update, and delete security keys', inputSchema: { type: 'object', properties: { action: { type: 'string', enum: ['list', 'create', 'get', 'update', 'delete'], description: 'Action to perform: list (list all security keys), create (create new security key), get (get security key by UUID), update (update security key), delete (delete security key)' }, uuid: { type: 'string', description: 'Security key UUID (required for get, update, delete actions)' }, name: { type: 'string', description: 'Key name (required for create, optional for update)' }, description: { type: 'string', description: 'Key description (optional for create and update)' }, key: { type: 'string', description: 'SSH private key content (required for create, optional for update)' }, page: { type: 'number', description: 'Page number (optional for list action)' }, per_page: { type: 'number', description: 'Items per page (optional for list action)' }, }, required: ['action'], }, }, ];

Implementation Reference

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