@masonator/coolify-mcp 0.2.13 → 0.2.15

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.
@@ -1,4 +1,6 @@
1
1
  export class CoolifyClient {
2
+ baseUrl;
3
+ accessToken;
2
4
  constructor(config) {
3
5
  if (!config.baseUrl) {
4
6
  throw new Error('Coolify base URL is required');
@@ -93,12 +93,15 @@ const serviceTypes = [
93
93
  'wordpress-without-database'
94
94
  ];
95
95
  export class CoolifyMcpServer extends McpServer {
96
+ client;
96
97
  constructor(config) {
97
98
  super({
98
99
  name: 'coolify',
99
100
  version: '0.1.18',
100
101
  capabilities: {
101
- tools: true
102
+ tools: true,
103
+ resources: true,
104
+ prompts: true
102
105
  }
103
106
  });
104
107
  log('Initializing server with config: %o', config);
@@ -352,4 +355,69 @@ export class CoolifyMcpServer extends McpServer {
352
355
  async delete_service(uuid, options) {
353
356
  return this.client.deleteService(uuid, options);
354
357
  }
358
+ async resources_list() {
359
+ return {
360
+ resources: [
361
+ 'coolify/servers/list',
362
+ 'coolify/servers/{id}',
363
+ 'coolify/servers/{id}/resources',
364
+ 'coolify/servers/{id}/domains',
365
+ 'coolify/servers/{id}/validate',
366
+ 'coolify/projects/list',
367
+ 'coolify/projects/{id}',
368
+ 'coolify/projects/create',
369
+ 'coolify/projects/{id}/update',
370
+ 'coolify/projects/{id}/delete',
371
+ 'coolify/projects/{id}/environments/{env}',
372
+ 'coolify/databases/list',
373
+ 'coolify/databases/{id}',
374
+ 'coolify/databases/{id}/update',
375
+ 'coolify/databases/{id}/delete',
376
+ 'coolify/services/list',
377
+ 'coolify/services/{id}',
378
+ 'coolify/services/create',
379
+ 'coolify/services/{id}/delete',
380
+ 'coolify/applications/deploy/{id}'
381
+ ]
382
+ };
383
+ }
384
+ async prompts_list() {
385
+ return {
386
+ prompts: [
387
+ 'Show me all Coolify servers in my instance',
388
+ 'What\'s the status of server {uuid}?',
389
+ 'Show me the resources running on server {uuid}',
390
+ 'What domains are configured for server {uuid}?',
391
+ 'Can you validate the connection to server {uuid}?',
392
+ 'How much CPU and memory is server {uuid} using?',
393
+ 'List all resources running on server {uuid}',
394
+ 'Show me the current status of all servers',
395
+ 'List all my Coolify projects',
396
+ 'Create a new project called "{name}" with description "{description}"',
397
+ 'Show me the details of project {uuid}',
398
+ 'Update project {uuid} to change its name to "{name}"',
399
+ 'Delete project {uuid}',
400
+ 'Show me the environments in project {uuid}',
401
+ 'Get details of the {env} environment in project {uuid}',
402
+ 'What variables are set in the {env} environment of project {uuid}?',
403
+ 'List all applications',
404
+ 'Show me details of application {uuid}',
405
+ 'Create a new application called "{name}"',
406
+ 'Delete application {uuid}',
407
+ 'Show me all running services',
408
+ 'Create a new {type} service',
409
+ 'What\'s the status of service {uuid}?',
410
+ 'Delete service {uuid} and clean up its resources',
411
+ 'List all databases',
412
+ 'Show me the configuration of database {uuid}',
413
+ 'Update database {uuid}',
414
+ 'Delete database {uuid} and clean up volumes',
415
+ 'Show me all active deployments',
416
+ 'What\'s the status of deployment {uuid}?',
417
+ 'Deploy application {uuid}',
418
+ 'Force rebuild and deploy application {uuid}',
419
+ 'List recent deployments for application {uuid}'
420
+ ]
421
+ };
422
+ }
355
423
  }
package/package.json CHANGED
@@ -1,39 +1,18 @@
1
1
  {
2
2
  "name": "@masonator/coolify-mcp",
3
- "scope": "@masonator",
4
- "version": "0.2.13",
5
- "description": "MCP server implementation for Coolify",
3
+ "version": "0.2.15",
4
+ "description": "Model Context Protocol server for Coolify",
6
5
  "type": "module",
7
- "main": "./dist/index.cjs",
8
- "module": "./dist/index.js",
9
- "types": "./dist/index.d.ts",
10
- "exports": {
11
- ".": {
12
- "types": "./dist/index.d.ts",
13
- "import": "./dist/index.js",
14
- "require": "./dist/index.cjs",
15
- "default": "./dist/index.js"
16
- }
17
- },
6
+ "main": "./dist/index.js",
18
7
  "bin": {
19
- "coolify-mcp": "./dist/index.cjs"
8
+ "coolify-mcp": "./dist/index.js"
20
9
  },
21
10
  "files": [
22
11
  "dist"
23
12
  ],
24
13
  "scripts": {
25
- "build": "node build.js && tsc --emitDeclarationOnly && shx chmod +x dist/index.js",
26
- "dev": "tsc --watch",
27
- "test": "NODE_OPTIONS=--experimental-vm-modules jest",
28
- "test:watch": "NODE_OPTIONS=--experimental-vm-modules jest --watch",
29
- "test:coverage": "NODE_OPTIONS=--experimental-vm-modules jest --coverage",
30
- "lint": "eslint . --ext .ts",
31
- "lint:fix": "eslint . --ext .ts --fix",
32
- "format": "prettier --write .",
33
- "format:check": "prettier --check .",
34
- "prepare": "husky",
35
- "prepublishOnly": "npm test && npm run lint && npm run build",
36
- "start": "node dist/index.js"
14
+ "build": "tsc",
15
+ "prepublishOnly": "npm run build"
37
16
  },
38
17
  "keywords": [
39
18
  "coolify",
@@ -44,25 +23,10 @@
44
23
  "license": "MIT",
45
24
  "dependencies": {
46
25
  "@modelcontextprotocol/sdk": "^1.6.1",
47
- "reflect-metadata": "^0.2.2",
48
26
  "zod": "^3.24.2"
49
27
  },
50
28
  "devDependencies": {
51
- "@types/debug": "^4.1.12",
52
- "@types/jest": "^29.5.14",
53
29
  "@types/node": "^20.17.23",
54
- "@typescript-eslint/eslint-plugin": "^7.18.0",
55
- "@typescript-eslint/parser": "^7.18.0",
56
- "esbuild": "^0.20.2",
57
- "eslint": "^8.56.0",
58
- "eslint-config-prettier": "^9.1.0",
59
- "husky": "^9.0.11",
60
- "jest": "^29.7.0",
61
- "lint-staged": "^15.2.2",
62
- "markdownlint-cli2": "^0.12.1",
63
- "prettier": "^3.5.3",
64
- "shx": "^0.3.4",
65
- "ts-jest": "^29.2.6",
66
30
  "typescript": "^5.8.2"
67
31
  },
68
32
  "engines": {