pulsecloud-mcp 1.0.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/dist/auth.d.ts +13 -0
- package/dist/auth.d.ts.map +1 -0
- package/dist/auth.js +111 -0
- package/dist/auth.js.map +1 -0
- package/dist/config.d.ts +11 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +12 -0
- package/dist/config.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +833 -0
- package/dist/index.js.map +1 -0
- package/dist/server.d.ts +2 -0
- package/dist/server.d.ts.map +1 -0
- package/dist/server.js +285 -0
- package/dist/server.js.map +1 -0
- package/dist/services/cloudflare.d.ts +19 -0
- package/dist/services/cloudflare.d.ts.map +1 -0
- package/dist/services/cloudflare.js +56 -0
- package/dist/services/cloudflare.js.map +1 -0
- package/dist/services/ctrlpanel.d.ts +44 -0
- package/dist/services/ctrlpanel.d.ts.map +1 -0
- package/dist/services/ctrlpanel.js +62 -0
- package/dist/services/ctrlpanel.js.map +1 -0
- package/dist/services/npm.d.ts +25 -0
- package/dist/services/npm.d.ts.map +1 -0
- package/dist/services/npm.js +46 -0
- package/dist/services/npm.js.map +1 -0
- package/dist/services/pterodactyl.d.ts +51 -0
- package/dist/services/pterodactyl.d.ts.map +1 -0
- package/dist/services/pterodactyl.js +209 -0
- package/dist/services/pterodactyl.js.map +1 -0
- package/dist/services/status.d.ts +14 -0
- package/dist/services/status.d.ts.map +1 -0
- package/dist/services/status.js +15 -0
- package/dist/services/status.js.map +1 -0
- package/package.json +43 -0
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { getToken } from '../auth.js';
|
|
2
|
+
import { CONFIG } from '../config.js';
|
|
3
|
+
const PROXY_URL = CONFIG.NPM_PROXY_URL;
|
|
4
|
+
async function api(path, options = {}) {
|
|
5
|
+
const token = getToken();
|
|
6
|
+
if (!token)
|
|
7
|
+
throw new Error('Not authenticated');
|
|
8
|
+
const res = await fetch(`${PROXY_URL}${path}`, {
|
|
9
|
+
...options,
|
|
10
|
+
headers: {
|
|
11
|
+
'Authorization': `Bearer ${token}`,
|
|
12
|
+
'Content-Type': 'application/json',
|
|
13
|
+
...options.headers,
|
|
14
|
+
},
|
|
15
|
+
});
|
|
16
|
+
if (!res.ok) {
|
|
17
|
+
const text = await res.text().catch(() => '');
|
|
18
|
+
throw new Error(`NPM API ${res.status}: ${text.slice(0, 500)}`);
|
|
19
|
+
}
|
|
20
|
+
return res.json();
|
|
21
|
+
}
|
|
22
|
+
export async function listProxyHosts() {
|
|
23
|
+
return api('/nginx/proxy-hosts');
|
|
24
|
+
}
|
|
25
|
+
export async function getProxyHost(id) {
|
|
26
|
+
return api(`/nginx/proxy-hosts/${id}`);
|
|
27
|
+
}
|
|
28
|
+
export async function createProxyHost(params) {
|
|
29
|
+
return api('/nginx/proxy-hosts', {
|
|
30
|
+
method: 'POST',
|
|
31
|
+
body: JSON.stringify(params),
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
export async function updateProxyHost(id, params) {
|
|
35
|
+
return api(`/nginx/proxy-hosts/${id}`, {
|
|
36
|
+
method: 'PUT',
|
|
37
|
+
body: JSON.stringify(params),
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
export async function deleteProxyHost(id) {
|
|
41
|
+
return api(`/nginx/proxy-hosts/${id}`, { method: 'DELETE' });
|
|
42
|
+
}
|
|
43
|
+
export async function listCertificates() {
|
|
44
|
+
return api('/nginx/certificates');
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=npm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"npm.js","sourceRoot":"","sources":["../../src/services/npm.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AACrC,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AAErC,MAAM,SAAS,GAAG,MAAM,CAAC,aAAa,CAAA;AAEtC,KAAK,UAAU,GAAG,CAAC,IAAY,EAAE,UAAuB,EAAE;IACxD,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAA;IACxB,IAAI,CAAC,KAAK;QAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAA;IAEhD,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,SAAS,GAAG,IAAI,EAAE,EAAE;QAC7C,GAAG,OAAO;QACV,OAAO,EAAE;YACP,eAAe,EAAE,UAAU,KAAK,EAAE;YAClC,cAAc,EAAE,kBAAkB;YAClC,GAAG,OAAO,CAAC,OAAiC;SAC7C;KACF,CAAC,CAAA;IACF,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;QACZ,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAA;QAC7C,MAAM,IAAI,KAAK,CAAC,WAAW,GAAG,CAAC,MAAM,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAA;IACjE,CAAC;IACD,OAAO,GAAG,CAAC,IAAI,EAAE,CAAA;AACnB,CAAC;AAaD,MAAM,CAAC,KAAK,UAAU,cAAc;IAClC,OAAO,GAAG,CAAC,oBAAoB,CAAC,CAAA;AAClC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,EAAU;IAC3C,OAAO,GAAG,CAAC,sBAAsB,EAAE,EAAE,CAAC,CAAA;AACxC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,MAQrC;IACC,OAAO,GAAG,CAAC,oBAAoB,EAAE;QAC/B,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;KAC7B,CAAC,CAAA;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,EAAU,EAAE,MAA0B;IAC1E,OAAO,GAAG,CAAC,sBAAsB,EAAE,EAAE,EAAE;QACrC,MAAM,EAAE,KAAK;QACb,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;KAC7B,CAAC,CAAA;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,EAAU;IAC9C,OAAO,GAAG,CAAC,sBAAsB,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAA;AAC9D,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB;IACpC,OAAO,GAAG,CAAC,qBAAqB,CAAC,CAAA;AACnC,CAAC"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
export interface PteroServer {
|
|
2
|
+
id: string;
|
|
3
|
+
uuid: string;
|
|
4
|
+
name: string;
|
|
5
|
+
description: string;
|
|
6
|
+
node: string;
|
|
7
|
+
sftp_ip: string;
|
|
8
|
+
sftp_port: number;
|
|
9
|
+
allocation: {
|
|
10
|
+
ip: string;
|
|
11
|
+
port: number;
|
|
12
|
+
};
|
|
13
|
+
limits: {
|
|
14
|
+
memory: number;
|
|
15
|
+
disk: number;
|
|
16
|
+
cpu: number;
|
|
17
|
+
swap: number;
|
|
18
|
+
};
|
|
19
|
+
egg: string;
|
|
20
|
+
docker_image: string;
|
|
21
|
+
installed: boolean;
|
|
22
|
+
suspended: boolean;
|
|
23
|
+
}
|
|
24
|
+
export declare function listServers(): Promise<PteroServer[]>;
|
|
25
|
+
export declare function getServer(serverId: string): Promise<any>;
|
|
26
|
+
export declare function getServerResources(serverId: string): Promise<any>;
|
|
27
|
+
export declare function powerAction(serverId: string, action: 'start' | 'stop' | 'restart' | 'kill'): Promise<any>;
|
|
28
|
+
export declare function sendCommand(serverId: string, command: string): Promise<any>;
|
|
29
|
+
export declare function getServerLogs(serverId: string): Promise<string>;
|
|
30
|
+
export declare function listFiles(serverId: string, directory?: string): Promise<any>;
|
|
31
|
+
export declare function readFile(serverId: string, file: string): Promise<string>;
|
|
32
|
+
export declare function writeFile(serverId: string, file: string, content: string): Promise<any>;
|
|
33
|
+
export declare function deleteFiles(serverId: string, files: string[]): Promise<any>;
|
|
34
|
+
export declare function renameFile(serverId: string, from: string, to: string): Promise<any>;
|
|
35
|
+
export declare function compressFiles(serverId: string, files: string[]): Promise<any>;
|
|
36
|
+
export declare function decompressFile(serverId: string, file: string): Promise<any>;
|
|
37
|
+
export declare function createDirectory(serverId: string, name: string): Promise<any>;
|
|
38
|
+
export declare function getDownloadUrl(serverId: string, file: string): string;
|
|
39
|
+
export declare function uploadFile(serverId: string, directory: string, fileName: string, content: string): Promise<any>;
|
|
40
|
+
export declare function listBackups(serverId: string): Promise<any>;
|
|
41
|
+
export declare function createBackup(serverId: string, name?: string): Promise<any>;
|
|
42
|
+
export declare function getBackupDownloadUrl(serverId: string, backupId: string): Promise<string>;
|
|
43
|
+
export declare function deleteBackup(serverId: string, backupId: string): Promise<any>;
|
|
44
|
+
export declare function listDatabases(serverId: string): Promise<any>;
|
|
45
|
+
export declare function createDatabase(serverId: string, databaseName: string): Promise<any>;
|
|
46
|
+
export declare function deleteDatabase(serverId: string, databaseId: string): Promise<any>;
|
|
47
|
+
export declare function rotateDatabasePassword(serverId: string, databaseId: string): Promise<any>;
|
|
48
|
+
export declare function listAllocations(serverId: string): Promise<any>;
|
|
49
|
+
export declare function setPrimaryAllocation(serverId: string, allocationId: number): Promise<any>;
|
|
50
|
+
export declare function getAccountInfo(): Promise<any>;
|
|
51
|
+
//# sourceMappingURL=pterodactyl.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pterodactyl.d.ts","sourceRoot":"","sources":["../../src/services/pterodactyl.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,209 @@
|
|
|
1
|
+
import { CONFIG } from '../config.js';
|
|
2
|
+
import { getToken } from '../auth.js';
|
|
3
|
+
const BASE = `${CONFIG.PTERODACTYL_URL}/api/client`;
|
|
4
|
+
function headers() {
|
|
5
|
+
const token = getToken();
|
|
6
|
+
if (!token)
|
|
7
|
+
throw new Error('Not authenticated. Use pulsecloud_login first.');
|
|
8
|
+
return {
|
|
9
|
+
'Authorization': `Bearer ${token}`,
|
|
10
|
+
'Content-Type': 'application/json',
|
|
11
|
+
'Accept': 'application/json',
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
async function api(path, options = {}) {
|
|
15
|
+
const url = `${BASE}${path}`;
|
|
16
|
+
const res = await fetch(url, {
|
|
17
|
+
...options,
|
|
18
|
+
headers: { ...headers(), ...options.headers },
|
|
19
|
+
});
|
|
20
|
+
if (!res.ok) {
|
|
21
|
+
const text = await res.text().catch(() => '');
|
|
22
|
+
throw new Error(`Pterodactyl API ${res.status}: ${text.slice(0, 500)}`);
|
|
23
|
+
}
|
|
24
|
+
return res.json();
|
|
25
|
+
}
|
|
26
|
+
export async function listServers() {
|
|
27
|
+
const data = await api('');
|
|
28
|
+
return data.data.map((s) => ({
|
|
29
|
+
id: s.attributes.identifier,
|
|
30
|
+
uuid: s.attributes.uuid,
|
|
31
|
+
name: s.attributes.name,
|
|
32
|
+
description: s.attributes.description,
|
|
33
|
+
node: s.attributes.node,
|
|
34
|
+
sftp_ip: s.attributes.sftp_details.ip,
|
|
35
|
+
sftp_port: s.attributes.sftp_details.port,
|
|
36
|
+
allocation: {
|
|
37
|
+
ip: s.attributes.sftp_details.ip,
|
|
38
|
+
port: s.attributes.relationships?.allocations?.data?.[0]?.attributes?.port || 0,
|
|
39
|
+
},
|
|
40
|
+
limits: s.attributes.limits,
|
|
41
|
+
egg: s.attributes.egg,
|
|
42
|
+
docker_image: s.attributes.docker_image,
|
|
43
|
+
installed: s.attributes.status !== 'installing',
|
|
44
|
+
suspended: s.attributes.is_suspended,
|
|
45
|
+
}));
|
|
46
|
+
}
|
|
47
|
+
export async function getServer(serverId) {
|
|
48
|
+
const data = await api(`/servers/${serverId}`);
|
|
49
|
+
return data.attributes;
|
|
50
|
+
}
|
|
51
|
+
export async function getServerResources(serverId) {
|
|
52
|
+
const data = await api(`/servers/${serverId}/resources`);
|
|
53
|
+
return data.attributes;
|
|
54
|
+
}
|
|
55
|
+
export async function powerAction(serverId, action) {
|
|
56
|
+
return api(`/servers/${serverId}/power`, {
|
|
57
|
+
method: 'POST',
|
|
58
|
+
body: JSON.stringify({ signal: action }),
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
export async function sendCommand(serverId, command) {
|
|
62
|
+
return api(`/servers/${serverId}/command`, {
|
|
63
|
+
method: 'POST',
|
|
64
|
+
body: JSON.stringify({ command }),
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
export async function getServerLogs(serverId) {
|
|
68
|
+
const data = await api(`/servers/${serverId}/websocket`);
|
|
69
|
+
const { token, socket } = data.data;
|
|
70
|
+
return new Promise((resolve, reject) => {
|
|
71
|
+
const wsUrl = socket.replace('wss://', 'wss://').replace('http://', 'ws://') + `?token=${token}`;
|
|
72
|
+
const ws = new (require('ws'))(wsUrl);
|
|
73
|
+
const logs = [];
|
|
74
|
+
const timeout = setTimeout(() => {
|
|
75
|
+
ws.close();
|
|
76
|
+
resolve(logs.join('\n'));
|
|
77
|
+
}, 3000);
|
|
78
|
+
ws.on('open', () => {
|
|
79
|
+
ws.send(JSON.stringify({ event: 'send logs', args: [''] }));
|
|
80
|
+
});
|
|
81
|
+
ws.on('message', (raw) => {
|
|
82
|
+
try {
|
|
83
|
+
const msg = JSON.parse(raw.toString());
|
|
84
|
+
if (msg.event === 'console output') {
|
|
85
|
+
logs.push(msg.args[0]);
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
catch { /* ignore */ }
|
|
89
|
+
});
|
|
90
|
+
ws.on('error', (err) => {
|
|
91
|
+
clearTimeout(timeout);
|
|
92
|
+
reject(err);
|
|
93
|
+
});
|
|
94
|
+
ws.on('close', () => {
|
|
95
|
+
clearTimeout(timeout);
|
|
96
|
+
resolve(logs.join('\n'));
|
|
97
|
+
});
|
|
98
|
+
});
|
|
99
|
+
}
|
|
100
|
+
export async function listFiles(serverId, directory = '/') {
|
|
101
|
+
const data = await api(`/servers/${serverId}/files/list?directory=${encodeURIComponent(directory)}`);
|
|
102
|
+
return data.data || data;
|
|
103
|
+
}
|
|
104
|
+
export async function readFile(serverId, file) {
|
|
105
|
+
const data = await api(`/servers/${serverId}/files/contents?file=${encodeURIComponent(file)}`);
|
|
106
|
+
if (typeof data === 'string')
|
|
107
|
+
return data;
|
|
108
|
+
return data.content ?? JSON.stringify(data);
|
|
109
|
+
}
|
|
110
|
+
export async function writeFile(serverId, file, content) {
|
|
111
|
+
return api(`/servers/${serverId}/files/write?file=${encodeURIComponent(file)}`, {
|
|
112
|
+
method: 'POST',
|
|
113
|
+
body: content,
|
|
114
|
+
headers: { 'Content-Type': 'text/plain' },
|
|
115
|
+
});
|
|
116
|
+
}
|
|
117
|
+
export async function deleteFiles(serverId, files) {
|
|
118
|
+
return api(`/servers/${serverId}/files/delete`, {
|
|
119
|
+
method: 'POST',
|
|
120
|
+
body: JSON.stringify({ root: '/', files }),
|
|
121
|
+
});
|
|
122
|
+
}
|
|
123
|
+
export async function renameFile(serverId, from, to) {
|
|
124
|
+
return api(`/servers/${serverId}/files/rename`, {
|
|
125
|
+
method: 'PUT',
|
|
126
|
+
body: JSON.stringify({ root: '/', from, to }),
|
|
127
|
+
});
|
|
128
|
+
}
|
|
129
|
+
export async function compressFiles(serverId, files) {
|
|
130
|
+
const data = await api(`/servers/${serverId}/files/compress`, {
|
|
131
|
+
method: 'POST',
|
|
132
|
+
body: JSON.stringify({ root: '/', files }),
|
|
133
|
+
});
|
|
134
|
+
return data.attributes ?? data;
|
|
135
|
+
}
|
|
136
|
+
export async function decompressFile(serverId, file) {
|
|
137
|
+
return api(`/servers/${serverId}/files/decompress`, {
|
|
138
|
+
method: 'POST',
|
|
139
|
+
body: JSON.stringify({ root: '/', file }),
|
|
140
|
+
});
|
|
141
|
+
}
|
|
142
|
+
export async function createDirectory(serverId, name) {
|
|
143
|
+
return api(`/servers/${serverId}/files/create-directory`, {
|
|
144
|
+
method: 'POST',
|
|
145
|
+
body: JSON.stringify({ root: '/', name }),
|
|
146
|
+
});
|
|
147
|
+
}
|
|
148
|
+
export function getDownloadUrl(serverId, file) {
|
|
149
|
+
const token = getToken();
|
|
150
|
+
return `${BASE}/servers/${serverId}/files/download?file=${encodeURIComponent(file)}&token=${token}`;
|
|
151
|
+
}
|
|
152
|
+
export async function uploadFile(serverId, directory, fileName, content) {
|
|
153
|
+
const formData = new FormData();
|
|
154
|
+
formData.append('files', new Blob([content]), fileName);
|
|
155
|
+
return api(`/servers/${serverId}/files/upload?directory=${encodeURIComponent(directory)}`, {
|
|
156
|
+
method: 'POST',
|
|
157
|
+
body: formData,
|
|
158
|
+
headers: {},
|
|
159
|
+
});
|
|
160
|
+
}
|
|
161
|
+
export async function listBackups(serverId) {
|
|
162
|
+
const data = await api(`/servers/${serverId}/backups`);
|
|
163
|
+
return data.data.map((b) => b.attributes);
|
|
164
|
+
}
|
|
165
|
+
export async function createBackup(serverId, name) {
|
|
166
|
+
return api(`/servers/${serverId}/backups`, {
|
|
167
|
+
method: 'POST',
|
|
168
|
+
body: JSON.stringify({ name: name || undefined }),
|
|
169
|
+
});
|
|
170
|
+
}
|
|
171
|
+
export async function getBackupDownloadUrl(serverId, backupId) {
|
|
172
|
+
const data = await api(`/servers/${serverId}/backups/${backupId}/download`);
|
|
173
|
+
return data.attributes.url;
|
|
174
|
+
}
|
|
175
|
+
export async function deleteBackup(serverId, backupId) {
|
|
176
|
+
return api(`/servers/${serverId}/backups/${backupId}`, { method: 'DELETE' });
|
|
177
|
+
}
|
|
178
|
+
export async function listDatabases(serverId) {
|
|
179
|
+
const data = await api(`/servers/${serverId}/databases`);
|
|
180
|
+
return data.data.map((d) => d.attributes);
|
|
181
|
+
}
|
|
182
|
+
export async function createDatabase(serverId, databaseName) {
|
|
183
|
+
return api(`/servers/${serverId}/databases`, {
|
|
184
|
+
method: 'POST',
|
|
185
|
+
body: JSON.stringify({ database: databaseName }),
|
|
186
|
+
});
|
|
187
|
+
}
|
|
188
|
+
export async function deleteDatabase(serverId, databaseId) {
|
|
189
|
+
return api(`/servers/${serverId}/databases/${databaseId}`, { method: 'DELETE' });
|
|
190
|
+
}
|
|
191
|
+
export async function rotateDatabasePassword(serverId, databaseId) {
|
|
192
|
+
const data = await api(`/servers/${serverId}/databases/${databaseId}/rotate-password`, { method: 'POST' });
|
|
193
|
+
return data.attributes ?? data;
|
|
194
|
+
}
|
|
195
|
+
export async function listAllocations(serverId) {
|
|
196
|
+
const data = await api(`/servers/${serverId}/network/allocations`);
|
|
197
|
+
return data.data.map((a) => a.attributes);
|
|
198
|
+
}
|
|
199
|
+
export async function setPrimaryAllocation(serverId, allocationId) {
|
|
200
|
+
return api(`/servers/${serverId}/network/allocations/${allocationId}`, {
|
|
201
|
+
method: 'POST',
|
|
202
|
+
body: JSON.stringify({ primary: true }),
|
|
203
|
+
});
|
|
204
|
+
}
|
|
205
|
+
export async function getAccountInfo() {
|
|
206
|
+
const data = await api('/account');
|
|
207
|
+
return data.attributes;
|
|
208
|
+
}
|
|
209
|
+
//# sourceMappingURL=pterodactyl.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pterodactyl.js","sourceRoot":"","sources":["../../src/services/pterodactyl.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export interface StatusComponent {
|
|
2
|
+
id: string;
|
|
3
|
+
name: string;
|
|
4
|
+
status: 'operational' | 'degraded' | 'partial_outage' | 'major_outage' | 'unknown';
|
|
5
|
+
uptime: number;
|
|
6
|
+
}
|
|
7
|
+
export interface StatusData {
|
|
8
|
+
overall: 'operational' | 'degraded' | 'partial_outage' | 'major_outage';
|
|
9
|
+
components: StatusComponent[];
|
|
10
|
+
incidents: any[];
|
|
11
|
+
last_updated: string;
|
|
12
|
+
}
|
|
13
|
+
export declare function getStatus(): Promise<StatusData>;
|
|
14
|
+
//# sourceMappingURL=status.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../src/services/status.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,aAAa,GAAG,UAAU,GAAG,gBAAgB,GAAG,cAAc,GAAG,SAAS,CAAA;IAClF,MAAM,EAAE,MAAM,CAAA;CACf;AAED,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,aAAa,GAAG,UAAU,GAAG,gBAAgB,GAAG,cAAc,CAAA;IACvE,UAAU,EAAE,eAAe,EAAE,CAAA;IAC7B,SAAS,EAAE,GAAG,EAAE,CAAA;IAChB,YAAY,EAAE,MAAM,CAAA;CACrB;AAED,wBAAsB,SAAS,IAAI,OAAO,CAAC,UAAU,CAAC,CAarD"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export async function getStatus() {
|
|
2
|
+
const res = await fetch('http://46.224.134.22:3000/api/status', {
|
|
3
|
+
headers: { 'Accept': 'application/json' },
|
|
4
|
+
});
|
|
5
|
+
if (!res.ok) {
|
|
6
|
+
return {
|
|
7
|
+
overall: 'unknown',
|
|
8
|
+
components: [],
|
|
9
|
+
incidents: [],
|
|
10
|
+
last_updated: new Date().toISOString(),
|
|
11
|
+
};
|
|
12
|
+
}
|
|
13
|
+
return res.json();
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=status.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/services/status.ts"],"names":[],"mappings":"AAcA,MAAM,CAAC,KAAK,UAAU,SAAS;IAC7B,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,sCAAsC,EAAE;QAC9D,OAAO,EAAE,EAAE,QAAQ,EAAE,kBAAkB,EAAE;KAC1C,CAAC,CAAA;IACF,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;QACZ,OAAO;YACL,OAAO,EAAE,SAAkC;YAC3C,UAAU,EAAE,EAAE;YACd,SAAS,EAAE,EAAE;YACb,YAAY,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACvC,CAAA;IACH,CAAC;IACD,OAAO,GAAG,CAAC,IAAI,EAAE,CAAA;AACnB,CAAC"}
|
package/package.json
ADDED
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "pulsecloud-mcp",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "MCP server for PulseCloud hosting platform - manage Pterodactyl servers, Nginx Proxy Manager, Cloudflare DNS, and more via AI agents",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"main": "dist/index.js",
|
|
7
|
+
"bin": {
|
|
8
|
+
"pulsecloud-mcp": "dist/index.js"
|
|
9
|
+
},
|
|
10
|
+
"files": [
|
|
11
|
+
"dist"
|
|
12
|
+
],
|
|
13
|
+
"scripts": {
|
|
14
|
+
"start": "node dist/index.js",
|
|
15
|
+
"dev": "npx tsx watch src/index.ts",
|
|
16
|
+
"build": "npx tsc"
|
|
17
|
+
},
|
|
18
|
+
"keywords": [
|
|
19
|
+
"mcp",
|
|
20
|
+
"pulsecloud",
|
|
21
|
+
"pterodactyl",
|
|
22
|
+
"hosting",
|
|
23
|
+
"nginx-proxy-manager",
|
|
24
|
+
"cloudflare",
|
|
25
|
+
"modelcontextprotocol",
|
|
26
|
+
"opencode"
|
|
27
|
+
],
|
|
28
|
+
"repository": {
|
|
29
|
+
"type": "git",
|
|
30
|
+
"url": "https://github.com/andradelima2/pulsecloud-mcp.git"
|
|
31
|
+
},
|
|
32
|
+
"author": "Fabricio Andrade Lima",
|
|
33
|
+
"license": "MIT",
|
|
34
|
+
"dependencies": {
|
|
35
|
+
"@modelcontextprotocol/sdk": "^1.11.0",
|
|
36
|
+
"zod": "^3.24.4"
|
|
37
|
+
},
|
|
38
|
+
"devDependencies": {
|
|
39
|
+
"typescript": "^5.8.3",
|
|
40
|
+
"@types/node": "^22.15.3",
|
|
41
|
+
"tsx": "^4.19.4"
|
|
42
|
+
}
|
|
43
|
+
}
|