@masonator/coolify-mcp 0.3.1 → 0.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +95 -23
- package/dist/__tests__/coolify-client.test.js +818 -0
- package/dist/__tests__/mcp-server.test.d.ts +1 -0
- package/dist/__tests__/mcp-server.test.js +141 -0
- package/dist/lib/coolify-client.d.ts +64 -9
- package/dist/lib/coolify-client.js +126 -27
- package/dist/lib/mcp-server.js +144 -9
- package/dist/types/coolify.d.ts +16 -1
- package/package.json +5 -1
package/README.md
CHANGED
|
@@ -6,17 +6,19 @@ A Model Context Protocol (MCP) server for [Coolify](https://coolify.io/), enabli
|
|
|
6
6
|
|
|
7
7
|
## Features
|
|
8
8
|
|
|
9
|
-
This MCP server provides
|
|
10
|
-
|
|
11
|
-
| Category
|
|
12
|
-
|
|
|
13
|
-
| **
|
|
14
|
-
| **
|
|
15
|
-
| **
|
|
16
|
-
| **
|
|
17
|
-
| **
|
|
18
|
-
| **
|
|
19
|
-
| **
|
|
9
|
+
This MCP server provides **58 tools** focused on **debugging, management, and deployment**:
|
|
10
|
+
|
|
11
|
+
| Category | Tools |
|
|
12
|
+
| ------------------ | -------------------------------------------------------------------------------------------------------- |
|
|
13
|
+
| **Infrastructure** | overview (all resources at once) |
|
|
14
|
+
| **Servers** | list, get, validate, resources, domains |
|
|
15
|
+
| **Projects** | list, get, create, update, delete |
|
|
16
|
+
| **Environments** | list, get, create, delete |
|
|
17
|
+
| **Applications** | list, get, update, delete, start, stop, restart, logs, env vars (CRUD), create (private-gh, private-key) |
|
|
18
|
+
| **Databases** | list, get, start, stop, restart, backups (list, get), backup executions (list, get) |
|
|
19
|
+
| **Services** | list, get, create, update, delete, start, stop, restart, env vars (list, create, delete) |
|
|
20
|
+
| **Deployments** | list, get, deploy, cancel, list by application |
|
|
21
|
+
| **Private Keys** | list, get, create, update, delete |
|
|
20
22
|
|
|
21
23
|
## Installation
|
|
22
24
|
|
|
@@ -49,27 +51,77 @@ Add to your Claude Desktop config (`~/Library/Application Support/Claude/claude_
|
|
|
49
51
|
|
|
50
52
|
```bash
|
|
51
53
|
claude mcp add coolify \
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
-- npx
|
|
54
|
+
-e COOLIFY_BASE_URL="https://your-coolify-instance.com" \
|
|
55
|
+
-e COOLIFY_ACCESS_TOKEN="your-api-token" \
|
|
56
|
+
-- npx @masonator/coolify-mcp@latest
|
|
55
57
|
```
|
|
56
58
|
|
|
59
|
+
> **Note:** Use `@latest` tag (not `-y` flag) for reliable startup in Claude Code CLI.
|
|
60
|
+
|
|
57
61
|
### Cursor
|
|
58
62
|
|
|
59
63
|
```bash
|
|
60
64
|
env COOLIFY_ACCESS_TOKEN=your-api-token COOLIFY_BASE_URL=https://your-coolify-instance.com npx -y @masonator/coolify-mcp
|
|
61
65
|
```
|
|
62
66
|
|
|
67
|
+
## Context-Optimized Responses
|
|
68
|
+
|
|
69
|
+
### Why This Matters
|
|
70
|
+
|
|
71
|
+
The Coolify API returns extremely verbose responses - a single application can contain 91 fields including embedded 3KB server objects and 47KB docker-compose files. When listing 20+ applications, responses can exceed 200KB, which quickly exhausts the context window of AI assistants like Claude Desktop.
|
|
72
|
+
|
|
73
|
+
**This MCP server solves this by returning optimized summaries by default.**
|
|
74
|
+
|
|
75
|
+
### How It Works
|
|
76
|
+
|
|
77
|
+
| Tool Type | Returns | Use Case |
|
|
78
|
+
| ----------------------------- | ---------------------------------------- | ----------------------------------- |
|
|
79
|
+
| `list_*` | Summaries only (uuid, name, status, etc) | Discovery, finding resources |
|
|
80
|
+
| `get_*` | Full details for a single resource | Deep inspection, debugging |
|
|
81
|
+
| `get_infrastructure_overview` | All resources summarized in one call | Start here to understand your setup |
|
|
82
|
+
|
|
83
|
+
### Response Size Comparison
|
|
84
|
+
|
|
85
|
+
| Endpoint | Full Response | Summary Response | Reduction |
|
|
86
|
+
| ----------------- | ------------- | ---------------- | --------- |
|
|
87
|
+
| list_applications | ~170KB | ~4.4KB | **97%** |
|
|
88
|
+
| list_services | ~367KB | ~1.2KB | **99%** |
|
|
89
|
+
| list_servers | ~4KB | ~0.4KB | **90%** |
|
|
90
|
+
|
|
91
|
+
### Recommended Workflow
|
|
92
|
+
|
|
93
|
+
1. **Start with overview**: `get_infrastructure_overview` - see everything at once
|
|
94
|
+
2. **Find your target**: `list_applications` - get UUIDs of what you need
|
|
95
|
+
3. **Dive deep**: `get_application(uuid)` - full details for one resource
|
|
96
|
+
4. **Take action**: `restart_application(uuid)`, `get_application_logs(uuid)`, etc.
|
|
97
|
+
|
|
98
|
+
### Pagination
|
|
99
|
+
|
|
100
|
+
All list endpoints still support optional pagination for very large deployments:
|
|
101
|
+
|
|
102
|
+
```bash
|
|
103
|
+
# Get page 2 with 10 items per page
|
|
104
|
+
list_applications(page=2, per_page=10)
|
|
105
|
+
```
|
|
106
|
+
|
|
63
107
|
## Example Prompts
|
|
64
108
|
|
|
109
|
+
### Getting Started
|
|
110
|
+
|
|
111
|
+
```
|
|
112
|
+
Give me an overview of my infrastructure
|
|
113
|
+
Show me all my applications
|
|
114
|
+
What's running on my servers?
|
|
115
|
+
```
|
|
116
|
+
|
|
65
117
|
### Debugging & Monitoring
|
|
66
118
|
|
|
67
119
|
```
|
|
68
|
-
Show me all servers and their status
|
|
69
|
-
What resources are running on server {uuid}?
|
|
70
120
|
Get the logs for application {uuid}
|
|
121
|
+
What's the status of application {uuid}?
|
|
71
122
|
What environment variables are set for application {uuid}?
|
|
72
123
|
Show me recent deployments for application {uuid}
|
|
124
|
+
What resources are running on server {uuid}?
|
|
73
125
|
```
|
|
74
126
|
|
|
75
127
|
### Application Management
|
|
@@ -119,10 +171,14 @@ node dist/index.js
|
|
|
119
171
|
|
|
120
172
|
## Available Tools
|
|
121
173
|
|
|
122
|
-
###
|
|
174
|
+
### Infrastructure
|
|
123
175
|
|
|
124
176
|
- `get_version` - Get Coolify API version
|
|
125
|
-
- `
|
|
177
|
+
- `get_infrastructure_overview` - Get a high-level overview of all infrastructure (servers, projects, applications, databases, services)
|
|
178
|
+
|
|
179
|
+
### Servers
|
|
180
|
+
|
|
181
|
+
- `list_servers` - List all servers (returns summary)
|
|
126
182
|
- `get_server` - Get server details
|
|
127
183
|
- `get_server_resources` - Get resources running on a server
|
|
128
184
|
- `get_server_domains` - Get domains configured on a server
|
|
@@ -130,7 +186,7 @@ node dist/index.js
|
|
|
130
186
|
|
|
131
187
|
### Projects
|
|
132
188
|
|
|
133
|
-
- `list_projects` - List all projects
|
|
189
|
+
- `list_projects` - List all projects (returns summary)
|
|
134
190
|
- `get_project` - Get project details
|
|
135
191
|
- `create_project` - Create a new project
|
|
136
192
|
- `update_project` - Update a project
|
|
@@ -145,7 +201,7 @@ node dist/index.js
|
|
|
145
201
|
|
|
146
202
|
### Applications
|
|
147
203
|
|
|
148
|
-
- `list_applications` - List all applications
|
|
204
|
+
- `list_applications` - List all applications (returns summary)
|
|
149
205
|
- `get_application` - Get application details
|
|
150
206
|
- `create_application_private_gh` - Create app from private GitHub repo (GitHub App)
|
|
151
207
|
- `create_application_private_key` - Create app from private repo using deploy key
|
|
@@ -162,16 +218,23 @@ node dist/index.js
|
|
|
162
218
|
|
|
163
219
|
### Databases
|
|
164
220
|
|
|
165
|
-
- `list_databases` - List all databases
|
|
221
|
+
- `list_databases` - List all databases (returns summary)
|
|
166
222
|
- `get_database` - Get database details
|
|
167
223
|
- `start_database` - Start a database
|
|
168
224
|
- `stop_database` - Stop a database
|
|
169
225
|
- `restart_database` - Restart a database
|
|
226
|
+
- `list_database_backups` - List scheduled backups for a database
|
|
227
|
+
- `get_database_backup` - Get details of a scheduled backup
|
|
228
|
+
- `list_backup_executions` - List execution history for a scheduled backup
|
|
229
|
+
- `get_backup_execution` - Get details of a specific backup execution
|
|
170
230
|
|
|
171
231
|
### Services
|
|
172
232
|
|
|
173
|
-
- `list_services` - List all services
|
|
233
|
+
- `list_services` - List all services (returns summary)
|
|
174
234
|
- `get_service` - Get service details
|
|
235
|
+
- `create_service` - Create a one-click service (e.g., pocketbase, mysql, redis, wordpress)
|
|
236
|
+
- `update_service` - Update a service
|
|
237
|
+
- `delete_service` - Delete a service
|
|
175
238
|
- `start_service` - Start a service
|
|
176
239
|
- `stop_service` - Stop a service
|
|
177
240
|
- `restart_service` - Restart a service
|
|
@@ -181,11 +244,20 @@ node dist/index.js
|
|
|
181
244
|
|
|
182
245
|
### Deployments
|
|
183
246
|
|
|
184
|
-
- `list_deployments` - List running deployments
|
|
247
|
+
- `list_deployments` - List running deployments (returns summary)
|
|
185
248
|
- `get_deployment` - Get deployment details
|
|
186
249
|
- `deploy` - Deploy by tag or UUID
|
|
250
|
+
- `cancel_deployment` - Cancel a running deployment
|
|
187
251
|
- `list_application_deployments` - List deployments for an application
|
|
188
252
|
|
|
253
|
+
### Private Keys
|
|
254
|
+
|
|
255
|
+
- `list_private_keys` - List all private keys (SSH keys for deployments)
|
|
256
|
+
- `get_private_key` - Get private key details
|
|
257
|
+
- `create_private_key` - Create a new private key for deployments
|
|
258
|
+
- `update_private_key` - Update a private key
|
|
259
|
+
- `delete_private_key` - Delete a private key
|
|
260
|
+
|
|
189
261
|
## Contributing
|
|
190
262
|
|
|
191
263
|
Contributions welcome! Please open an issue first to discuss major changes.
|