@jurislm/coolify-plugin 4.0.11 → 4.0.13
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/.codex-plugin/plugin.json +3 -3
- package/README.md +5 -1
- package/api/manifest.json +4 -3
- package/dist/capabilities.js +1 -1
- package/dist/generated/coolify-api.d.ts +43 -39
- package/dist/generated/operations.d.ts +1 -0
- package/dist/generated/operations.js +276 -276
- package/dist/server.js +1 -1
- package/openapi/coolify-openapi.json +78 -64
- package/package.json +1 -1
- package/plugin.json +3 -3
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "coolify-plugin",
|
|
3
|
-
"version": "4.0.
|
|
3
|
+
"version": "4.0.13",
|
|
4
4
|
"description": "Fallback Codex metadata for local stdio Coolify tools.",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "JurisLM",
|
|
@@ -12,10 +12,10 @@
|
|
|
12
12
|
"mcpServers": "./.mcp.json",
|
|
13
13
|
"interface": {
|
|
14
14
|
"displayName": "Coolify Plugin",
|
|
15
|
-
"shortDescription": "Manage Coolify
|
|
15
|
+
"shortDescription": "Manage Coolify locally.",
|
|
16
16
|
"longDescription": "Inspect and control Coolify applications, servers, databases, services, deployments, and environment configuration.",
|
|
17
17
|
"developerName": "JurisLM",
|
|
18
|
-
"category": "Developer
|
|
18
|
+
"category": "Developer Tools",
|
|
19
19
|
"capabilities": [
|
|
20
20
|
"Read",
|
|
21
21
|
"Write"
|
package/README.md
CHANGED
|
@@ -2,6 +2,10 @@
|
|
|
2
2
|
|
|
3
3
|
Portable Coolify MCP plugin. It exposes focused `coolify_*` stdio tools generated from one pinned Coolify API contract.
|
|
4
4
|
|
|
5
|
+
## Scope
|
|
6
|
+
|
|
7
|
+
This repository provides a local Codex and Cursor plugin. It runs a stdio MCP server against a user-configured Coolify instance. OpenAI public Plugin Directory submission is outside this scope; public HTTPS, OAuth, and listing requirements are not acceptance criteria for this local plugin.
|
|
8
|
+
|
|
5
9
|
## Configure
|
|
6
10
|
|
|
7
11
|
The plugin reads the same global environment variables used by the Coolify setup:
|
|
@@ -19,7 +23,7 @@ bun run check
|
|
|
19
23
|
bun dist/index.js
|
|
20
24
|
```
|
|
21
25
|
|
|
22
|
-
`mcp.json` and `.mcp.json` use the same published-package `bunx` stdio registration as the Woodpecker CI plugin. `.mcp.json.example` contains placeholder environment values only. NPM package release is allowed.
|
|
26
|
+
`mcp.json` and `.mcp.json` use the same published-package `bunx` stdio registration as the Woodpecker CI plugin. `.mcp.json.example` contains placeholder environment values only. NPM package release is allowed.
|
|
23
27
|
|
|
24
28
|
For Codex repository marketplace installation, use the repository root and leave the sparse path empty. The supported marketplace manifest is `.agents/plugins/marketplace.json`; do not enter `plugins/codex`.
|
|
25
29
|
The Codex MCP registration forwards `COOLIFY_BASE_URL` and `COOLIFY_ACCESS_TOKEN` from the Codex session environment. A desktop session may not inherit values exported in a terminal; start a new task after configuring the app environment, then verify a read-only Coolify tool before making changes.
|
package/api/manifest.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"sourceUrl": "https://raw.githubusercontent.com/coollabsio/coolify/v4.3.23/openapi.json",
|
|
3
|
-
"fetchedAt": "2026-09-
|
|
4
|
-
"sha256": "
|
|
3
|
+
"fetchedAt": "2026-09-25T11:20:11.773Z",
|
|
4
|
+
"sha256": "934bb0ecd71db0b596df44d141152e0d4052a2604cbb302519276ba9558a0b38",
|
|
5
5
|
"upstreamSha256": "964360ffb3d4c026252aa4657d6561190f59ac4256395bf0645bf6a4f171ec88",
|
|
6
6
|
"openapiVersion": "3.1.0",
|
|
7
7
|
"infoVersion": "0.1",
|
|
@@ -29,6 +29,7 @@
|
|
|
29
29
|
"Resource creation accepts either environment name or UUID as documented",
|
|
30
30
|
"Docker image build packs and cloud-init/resource clone responses match live Coolify payloads",
|
|
31
31
|
"Application tag removal and database backup updates match live message responses",
|
|
32
|
-
"Application ports_exposes can be null for new Git applications"
|
|
32
|
+
"Application ports_exposes can be null for new Git applications",
|
|
33
|
+
"Private key update uses the routed UUID path rather than the upstream annotation path"
|
|
33
34
|
]
|
|
34
35
|
}
|
package/dist/capabilities.js
CHANGED
|
@@ -40,7 +40,7 @@ export function registerCapabilities(server, client) {
|
|
|
40
40
|
return { structuredContent, content: [{ type: "text", text: JSON.stringify(structuredContent) }] };
|
|
41
41
|
};
|
|
42
42
|
const register = (name, description, inputSchema, annotations, handler) => {
|
|
43
|
-
server.registerTool(name, { title:
|
|
43
|
+
server.registerTool(name, { title: description, description, inputSchema, outputSchema, annotations }, async (input) => result(name, await handler(input)));
|
|
44
44
|
};
|
|
45
45
|
const settledRows = async (names) => {
|
|
46
46
|
const settled = await Promise.allSettled(names.map((name) => call(`coolify_list_${name}`)));
|
|
@@ -2501,11 +2501,7 @@ export interface paths {
|
|
|
2501
2501
|
delete?: never;
|
|
2502
2502
|
options?: never;
|
|
2503
2503
|
head?: never;
|
|
2504
|
-
|
|
2505
|
-
* Update
|
|
2506
|
-
* @description Update a private key.
|
|
2507
|
-
*/
|
|
2508
|
-
patch: operations["update-private-key"];
|
|
2504
|
+
patch?: never;
|
|
2509
2505
|
trace?: never;
|
|
2510
2506
|
};
|
|
2511
2507
|
"/security/keys/{uuid}": {
|
|
@@ -2529,7 +2525,11 @@ export interface paths {
|
|
|
2529
2525
|
delete: operations["delete-private-key-by-uuid"];
|
|
2530
2526
|
options?: never;
|
|
2531
2527
|
head?: never;
|
|
2532
|
-
|
|
2528
|
+
/**
|
|
2529
|
+
* Update
|
|
2530
|
+
* @description Update a private key.
|
|
2531
|
+
*/
|
|
2532
|
+
patch: operations["update-private-key"];
|
|
2533
2533
|
trace?: never;
|
|
2534
2534
|
};
|
|
2535
2535
|
"/servers/{uuid}/cloudflare-tunnel": {
|
|
@@ -12967,39 +12967,6 @@ export interface operations {
|
|
|
12967
12967
|
422: components["responses"]["422"];
|
|
12968
12968
|
};
|
|
12969
12969
|
};
|
|
12970
|
-
"update-private-key": {
|
|
12971
|
-
parameters: {
|
|
12972
|
-
query?: never;
|
|
12973
|
-
header?: never;
|
|
12974
|
-
path?: never;
|
|
12975
|
-
cookie?: never;
|
|
12976
|
-
};
|
|
12977
|
-
requestBody: {
|
|
12978
|
-
content: {
|
|
12979
|
-
"application/json": {
|
|
12980
|
-
name?: string;
|
|
12981
|
-
description?: string;
|
|
12982
|
-
private_key: string;
|
|
12983
|
-
};
|
|
12984
|
-
};
|
|
12985
|
-
};
|
|
12986
|
-
responses: {
|
|
12987
|
-
/** @description The updated private key's UUID. */
|
|
12988
|
-
201: {
|
|
12989
|
-
headers: {
|
|
12990
|
-
[name: string]: unknown;
|
|
12991
|
-
};
|
|
12992
|
-
content: {
|
|
12993
|
-
"application/json": {
|
|
12994
|
-
uuid?: string;
|
|
12995
|
-
};
|
|
12996
|
-
};
|
|
12997
|
-
};
|
|
12998
|
-
400: components["responses"]["400"];
|
|
12999
|
-
401: components["responses"]["401"];
|
|
13000
|
-
422: components["responses"]["422"];
|
|
13001
|
-
};
|
|
13002
|
-
};
|
|
13003
12970
|
"get-private-key-by-uuid": {
|
|
13004
12971
|
parameters: {
|
|
13005
12972
|
query?: never;
|
|
@@ -13079,6 +13046,43 @@ export interface operations {
|
|
|
13079
13046
|
};
|
|
13080
13047
|
};
|
|
13081
13048
|
};
|
|
13049
|
+
"update-private-key": {
|
|
13050
|
+
parameters: {
|
|
13051
|
+
query?: never;
|
|
13052
|
+
header?: never;
|
|
13053
|
+
path: {
|
|
13054
|
+
/** @description Private Key UUID */
|
|
13055
|
+
uuid: string;
|
|
13056
|
+
};
|
|
13057
|
+
cookie?: never;
|
|
13058
|
+
};
|
|
13059
|
+
requestBody: {
|
|
13060
|
+
content: {
|
|
13061
|
+
"application/json": {
|
|
13062
|
+
name?: string;
|
|
13063
|
+
description?: string;
|
|
13064
|
+
private_key: string;
|
|
13065
|
+
};
|
|
13066
|
+
};
|
|
13067
|
+
};
|
|
13068
|
+
responses: {
|
|
13069
|
+
/** @description The updated private key's UUID. */
|
|
13070
|
+
201: {
|
|
13071
|
+
headers: {
|
|
13072
|
+
[name: string]: unknown;
|
|
13073
|
+
};
|
|
13074
|
+
content: {
|
|
13075
|
+
"application/json": {
|
|
13076
|
+
uuid?: string;
|
|
13077
|
+
};
|
|
13078
|
+
};
|
|
13079
|
+
};
|
|
13080
|
+
400: components["responses"]["400"];
|
|
13081
|
+
401: components["responses"]["401"];
|
|
13082
|
+
404: components["responses"]["404"];
|
|
13083
|
+
422: components["responses"]["422"];
|
|
13084
|
+
};
|
|
13085
|
+
};
|
|
13082
13086
|
"get-server-cloudflare-tunnel": {
|
|
13083
13087
|
parameters: {
|
|
13084
13088
|
query?: never;
|