create_private_github_app_application
Deploy applications from private GitHub repositories using GitHub App authentication in Coolify, specifying project, environment, build type, and ports.
Instructions
Create a new application from a private Git repository using GitHub App authentication
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| project_uuid | Yes | Project UUID | |
| environment_name | Yes | Environment name | |
| environment_uuid | No | Environment UUID (optional) | |
| server_uuid | Yes | Server UUID | |
| destination_uuid | No | Destination UUID (optional if server has single destination) | |
| git_repository | Yes | Private Git repository URL | |
| git_branch | Yes | Git branch name | |
| build_pack | Yes | Build pack type (nixpacks, dockerfile, dockercompose) | |
| ports_exposes | Yes | Ports to expose (e.g., "3000,8080") | |
| github_app_uuid | Yes | GitHub App UUID | |
| name | No | Application name (optional, auto-generated if not provided) | |
| description | No | Application description | |
| instant_deploy | No | Deploy immediately after creation |
Implementation Reference
- src/tools/handlers.ts:167-176 (handler)Specific handler case for 'create_private_github_app_application' tool: validates required input parameters using requireParam and makes a POST request to the Coolify API endpoint '/applications/private-github-app' with the provided arguments.case 'create_private_github_app_application': requireParam(args, 'project_uuid'); requireParam(args, 'environment_name'); requireParam(args, 'server_uuid'); requireParam(args, 'git_repository'); requireParam(args, 'git_branch'); requireParam(args, 'build_pack'); requireParam(args, 'ports_exposes'); requireParam(args, 'github_app_uuid'); return client.post('/applications/private-github-app', args);
- src/tools/definitions.ts:307-329 (schema)Input schema definition and metadata for the 'create_private_github_app_application' tool, including description, properties, and required fields.{ name: 'create_private_github_app_application', description: 'Create a new application from a private Git repository using GitHub App authentication', inputSchema: { type: 'object', properties: { project_uuid: { type: 'string', description: 'Project UUID' }, environment_name: { type: 'string', description: 'Environment name' }, environment_uuid: { type: 'string', description: 'Environment UUID (optional)' }, server_uuid: { type: 'string', description: 'Server UUID' }, destination_uuid: { type: 'string', description: 'Destination UUID (optional if server has single destination)' }, git_repository: { type: 'string', description: 'Private Git repository URL' }, git_branch: { type: 'string', description: 'Git branch name' }, build_pack: { type: 'string', description: 'Build pack type (nixpacks, dockerfile, dockercompose)' }, ports_exposes: { type: 'string', description: 'Ports to expose (e.g., "3000,8080")' }, github_app_uuid: { type: 'string', description: 'GitHub App UUID' }, name: { type: 'string', description: 'Application name (optional, auto-generated if not provided)' }, description: { type: 'string', description: 'Application description' }, instant_deploy: { type: 'boolean', description: 'Deploy immediately after creation', default: false } }, required: ['project_uuid', 'environment_name', 'server_uuid', 'git_repository', 'git_branch', 'build_pack', 'ports_exposes', 'github_app_uuid'] } },
- src/index.ts:36-38 (registration)MCP server registration of all tools via ListToolsRequestHandler, which returns getToolDefinitions() including 'create_private_github_app_application'.this.server.setRequestHandler(ListToolsRequestSchema, async () => ({ tools: getToolDefinitions() }));