liara-mcp 1.0.1 → 1.1.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 +25 -0
- package/dist/handlers/consolidated-handlers.d.ts +9 -0
- package/dist/handlers/consolidated-handlers.d.ts.map +1 -0
- package/dist/handlers/consolidated-handlers.js +400 -0
- package/dist/handlers/consolidated-handlers.js.map +1 -0
- package/dist/handlers/index.d.ts +1 -0
- package/dist/handlers/index.d.ts.map +1 -1
- package/dist/handlers/index.js +36 -22
- package/dist/handlers/index.js.map +1 -1
- package/dist/services/observability.js +1 -1
- package/dist/services/observability.js.map +1 -1
- package/dist/tools/consolidated-tools.d.ts +6 -0
- package/dist/tools/consolidated-tools.d.ts.map +1 -0
- package/dist/tools/consolidated-tools.js +256 -0
- package/dist/tools/consolidated-tools.js.map +1 -0
- package/dist/tools/index.d.ts +3 -0
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +32 -17
- package/dist/tools/index.js.map +1 -1
- package/dist/utils/errors.js +2 -2
- package/dist/utils/errors.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -42,6 +42,31 @@ npm install -g liara-mcp
|
|
|
42
42
|
|
|
43
43
|
Or use directly with npx (no installation required).
|
|
44
44
|
|
|
45
|
+
## Tool Modes
|
|
46
|
+
|
|
47
|
+
The Liara MCP server supports two modes for tool organization:
|
|
48
|
+
|
|
49
|
+
### Consolidated Mode (Recommended)
|
|
50
|
+
Set `LIARA_MCP_CONSOLIDATED=true` environment variable to enable consolidated tools. This mode provides fewer, more powerful tools that combine related functionality:
|
|
51
|
+
|
|
52
|
+
- `liara_manage_app` - Complete app lifecycle management (list, get, create, delete, start, stop, restart, resize)
|
|
53
|
+
- `liara_manage_env_vars` - Environment variable management (list, set single/multiple, delete single/multiple)
|
|
54
|
+
- `liara_manage_databases` - Database lifecycle management (list, get, create, delete, start, stop, restart, resize, update)
|
|
55
|
+
- `liara_manage_database_backups` - Database backup operations (create, list, get download URL, restore, delete)
|
|
56
|
+
- `liara_manage_buckets` - Bucket lifecycle management (list, get, create, delete, get credentials)
|
|
57
|
+
- `liara_manage_bucket_objects` - Bucket object operations (list, upload, get download URL, delete)
|
|
58
|
+
- `liara_get_infrastructure_overview` - Get comprehensive overview of all resources
|
|
59
|
+
- `liara_manage_deployment` - Deployment management (list releases, list sources)
|
|
60
|
+
|
|
61
|
+
**Benefits of Consolidated Mode:**
|
|
62
|
+
- **Reduced Complexity**: 8 powerful tools vs 100+ individual tools
|
|
63
|
+
- **Better UX**: Single tool handles related operations with action parameter
|
|
64
|
+
- **Improved Performance**: Fewer tool calls needed for complex operations
|
|
65
|
+
- **Simplified Integration**: Easier to understand and use tool set
|
|
66
|
+
|
|
67
|
+
### Individual Mode (Legacy)
|
|
68
|
+
The default mode provides granular tools (100+ individual tools) for maximum control and specificity.
|
|
69
|
+
|
|
45
70
|
## Configuration
|
|
46
71
|
|
|
47
72
|
The server supports multiple ways to configure your API token:
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Consolidated tool handlers - handles all consolidated tool operations
|
|
3
|
+
*/
|
|
4
|
+
import { LiaraClient, ToolResult } from './types.js';
|
|
5
|
+
/**
|
|
6
|
+
* Handle consolidated tool calls
|
|
7
|
+
*/
|
|
8
|
+
export declare function handleConsolidatedTools(client: LiaraClient, name: string, args: any): Promise<ToolResult | null>;
|
|
9
|
+
//# sourceMappingURL=consolidated-handlers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"consolidated-handlers.d.ts","sourceRoot":"","sources":["../../src/handlers/consolidated-handlers.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAOrD;;GAEG;AACH,wBAAsB,uBAAuB,CACzC,MAAM,EAAE,WAAW,EACnB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,GAAG,GACV,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CA6B5B"}
|
|
@@ -0,0 +1,400 @@
|
|
|
1
|
+
import * as appService from '../services/apps.js';
|
|
2
|
+
import * as envService from '../services/environment.js';
|
|
3
|
+
import * as dbService from '../services/databases.js';
|
|
4
|
+
import * as storageService from '../services/storage.js';
|
|
5
|
+
import * as deploymentService from '../services/deployment.js';
|
|
6
|
+
/**
|
|
7
|
+
* Handle consolidated tool calls
|
|
8
|
+
*/
|
|
9
|
+
export async function handleConsolidatedTools(client, name, args) {
|
|
10
|
+
switch (name) {
|
|
11
|
+
case 'liara_manage_app':
|
|
12
|
+
return await handleAppManagement(client, args);
|
|
13
|
+
case 'liara_manage_env_vars':
|
|
14
|
+
return await handleEnvVarManagement(client, args);
|
|
15
|
+
case 'liara_manage_databases':
|
|
16
|
+
return await handleDatabaseManagement(client, args);
|
|
17
|
+
case 'liara_manage_database_backups':
|
|
18
|
+
return await handleDatabaseBackupManagement(client, args);
|
|
19
|
+
case 'liara_manage_buckets':
|
|
20
|
+
return await handleBucketManagement(client, args);
|
|
21
|
+
case 'liara_manage_bucket_objects':
|
|
22
|
+
return await handleBucketObjectManagement(client, args);
|
|
23
|
+
case 'liara_get_infrastructure_overview':
|
|
24
|
+
return await handleInfrastructureOverview(client);
|
|
25
|
+
case 'liara_manage_deployment':
|
|
26
|
+
return await handleDeploymentManagement(client, args);
|
|
27
|
+
default:
|
|
28
|
+
return null; // Not a consolidated tool
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Handle app management operations
|
|
33
|
+
*/
|
|
34
|
+
async function handleAppManagement(client, args) {
|
|
35
|
+
const { action, name, platform, planID, region, page, perPage } = args;
|
|
36
|
+
switch (action) {
|
|
37
|
+
case 'list':
|
|
38
|
+
const apps = await appService.listApps(client, { page, perPage });
|
|
39
|
+
return {
|
|
40
|
+
content: [{ type: 'text', text: JSON.stringify(apps, null, 2) }],
|
|
41
|
+
};
|
|
42
|
+
case 'get':
|
|
43
|
+
if (!name)
|
|
44
|
+
throw new Error('App name is required for get action');
|
|
45
|
+
const app = await appService.getApp(client, name);
|
|
46
|
+
return {
|
|
47
|
+
content: [{ type: 'text', text: JSON.stringify(app, null, 2) }],
|
|
48
|
+
};
|
|
49
|
+
case 'create':
|
|
50
|
+
if (!name || !platform || !planID) {
|
|
51
|
+
throw new Error('name, platform, and planID are required for create action');
|
|
52
|
+
}
|
|
53
|
+
const createdApp = await appService.createApp(client, { name, platform, planID, region });
|
|
54
|
+
return {
|
|
55
|
+
content: [{ type: 'text', text: JSON.stringify(createdApp, null, 2) }],
|
|
56
|
+
};
|
|
57
|
+
case 'delete':
|
|
58
|
+
if (!name)
|
|
59
|
+
throw new Error('App name is required for delete action');
|
|
60
|
+
await appService.deleteApp(client, name);
|
|
61
|
+
return {
|
|
62
|
+
content: [{ type: 'text', text: `App '${name}' deleted successfully` }],
|
|
63
|
+
};
|
|
64
|
+
case 'start':
|
|
65
|
+
if (!name)
|
|
66
|
+
throw new Error('App name is required for start action');
|
|
67
|
+
await appService.startApp(client, name);
|
|
68
|
+
return {
|
|
69
|
+
content: [{ type: 'text', text: `App '${name}' started successfully` }],
|
|
70
|
+
};
|
|
71
|
+
case 'stop':
|
|
72
|
+
if (!name)
|
|
73
|
+
throw new Error('App name is required for stop action');
|
|
74
|
+
await appService.stopApp(client, name);
|
|
75
|
+
return {
|
|
76
|
+
content: [{ type: 'text', text: `App '${name}' stopped successfully` }],
|
|
77
|
+
};
|
|
78
|
+
case 'restart':
|
|
79
|
+
if (!name)
|
|
80
|
+
throw new Error('App name is required for restart action');
|
|
81
|
+
await appService.restartApp(client, name);
|
|
82
|
+
return {
|
|
83
|
+
content: [{ type: 'text', text: `App '${name}' restarted successfully` }],
|
|
84
|
+
};
|
|
85
|
+
case 'resize':
|
|
86
|
+
if (!name || !planID)
|
|
87
|
+
throw new Error('App name and planID are required for resize action');
|
|
88
|
+
await appService.resizeApp(client, name, planID);
|
|
89
|
+
return {
|
|
90
|
+
content: [{ type: 'text', text: `App '${name}' resized to plan '${planID}' successfully` }],
|
|
91
|
+
};
|
|
92
|
+
default:
|
|
93
|
+
throw new Error(`Unknown app action: ${action}`);
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Handle environment variable management operations
|
|
98
|
+
*/
|
|
99
|
+
async function handleEnvVarManagement(client, args) {
|
|
100
|
+
const { action, appName, key, value, variables, keys } = args;
|
|
101
|
+
if (!appName)
|
|
102
|
+
throw new Error('appName is required for all env var actions');
|
|
103
|
+
switch (action) {
|
|
104
|
+
case 'list':
|
|
105
|
+
const envVars = await envService.getEnvVars(client, appName);
|
|
106
|
+
return {
|
|
107
|
+
content: [{ type: 'text', text: JSON.stringify(envVars, null, 2) }],
|
|
108
|
+
};
|
|
109
|
+
case 'set':
|
|
110
|
+
if (!key || !value)
|
|
111
|
+
throw new Error('key and value are required for set action');
|
|
112
|
+
await envService.setEnvVar(client, appName, key, value);
|
|
113
|
+
return {
|
|
114
|
+
content: [{ type: 'text', text: `Environment variable '${key}' set successfully for app '${appName}'` }],
|
|
115
|
+
};
|
|
116
|
+
case 'set_multiple':
|
|
117
|
+
if (!variables || !Array.isArray(variables))
|
|
118
|
+
throw new Error('variables array is required for set_multiple action');
|
|
119
|
+
await envService.updateEnvVars(client, appName, variables);
|
|
120
|
+
return {
|
|
121
|
+
content: [{ type: 'text', text: `${variables.length} environment variables set successfully for app '${appName}'` }],
|
|
122
|
+
};
|
|
123
|
+
case 'delete':
|
|
124
|
+
if (!key)
|
|
125
|
+
throw new Error('key is required for delete action');
|
|
126
|
+
await envService.deleteEnvVar(client, appName, key);
|
|
127
|
+
return {
|
|
128
|
+
content: [{ type: 'text', text: `Environment variable '${key}' deleted successfully from app '${appName}'` }],
|
|
129
|
+
};
|
|
130
|
+
case 'delete_multiple':
|
|
131
|
+
if (!keys || !Array.isArray(keys))
|
|
132
|
+
throw new Error('keys array is required for delete_multiple action');
|
|
133
|
+
await envService.deleteEnvVars(client, appName, keys);
|
|
134
|
+
return {
|
|
135
|
+
content: [{ type: 'text', text: `${keys.length} environment variables deleted successfully from app '${appName}'` }],
|
|
136
|
+
};
|
|
137
|
+
default:
|
|
138
|
+
throw new Error(`Unknown env var action: ${action}`);
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
/**
|
|
142
|
+
* Handle database management operations
|
|
143
|
+
*/
|
|
144
|
+
async function handleDatabaseManagement(client, args) {
|
|
145
|
+
const { action, name, type, planID, version } = args;
|
|
146
|
+
switch (action) {
|
|
147
|
+
case 'list':
|
|
148
|
+
const databases = await dbService.listDatabases(client);
|
|
149
|
+
return {
|
|
150
|
+
content: [{ type: 'text', text: JSON.stringify(databases, null, 2) }],
|
|
151
|
+
};
|
|
152
|
+
case 'get':
|
|
153
|
+
if (!name)
|
|
154
|
+
throw new Error('Database name is required for get action');
|
|
155
|
+
const database = await dbService.getDatabase(client, name);
|
|
156
|
+
return {
|
|
157
|
+
content: [{ type: 'text', text: JSON.stringify(database, null, 2) }],
|
|
158
|
+
};
|
|
159
|
+
case 'get_connection':
|
|
160
|
+
if (!name)
|
|
161
|
+
throw new Error('Database name is required for get_connection action');
|
|
162
|
+
const connection = await dbService.getDatabaseConnection(client, name);
|
|
163
|
+
return {
|
|
164
|
+
content: [{ type: 'text', text: JSON.stringify(connection, null, 2) }],
|
|
165
|
+
};
|
|
166
|
+
case 'create':
|
|
167
|
+
if (!name || !type || !planID) {
|
|
168
|
+
throw new Error('name, type, and planID are required for create action');
|
|
169
|
+
}
|
|
170
|
+
const createdDb = await dbService.createDatabase(client, { name, type, planID, version });
|
|
171
|
+
return {
|
|
172
|
+
content: [{ type: 'text', text: JSON.stringify(createdDb, null, 2) }],
|
|
173
|
+
};
|
|
174
|
+
case 'delete':
|
|
175
|
+
if (!name)
|
|
176
|
+
throw new Error('Database name is required for delete action');
|
|
177
|
+
await dbService.deleteDatabase(client, name);
|
|
178
|
+
return {
|
|
179
|
+
content: [{ type: 'text', text: `Database '${name}' deleted successfully` }],
|
|
180
|
+
};
|
|
181
|
+
case 'start':
|
|
182
|
+
if (!name)
|
|
183
|
+
throw new Error('Database name is required for start action');
|
|
184
|
+
await dbService.startDatabase(client, name);
|
|
185
|
+
return {
|
|
186
|
+
content: [{ type: 'text', text: `Database '${name}' started successfully` }],
|
|
187
|
+
};
|
|
188
|
+
case 'stop':
|
|
189
|
+
if (!name)
|
|
190
|
+
throw new Error('Database name is required for stop action');
|
|
191
|
+
await dbService.stopDatabase(client, name);
|
|
192
|
+
return {
|
|
193
|
+
content: [{ type: 'text', text: `Database '${name}' stopped successfully` }],
|
|
194
|
+
};
|
|
195
|
+
case 'restart':
|
|
196
|
+
if (!name)
|
|
197
|
+
throw new Error('Database name is required for restart action');
|
|
198
|
+
await dbService.restartDatabase(client, name);
|
|
199
|
+
return {
|
|
200
|
+
content: [{ type: 'text', text: `Database '${name}' restarted successfully` }],
|
|
201
|
+
};
|
|
202
|
+
case 'resize':
|
|
203
|
+
case 'update':
|
|
204
|
+
if (!name)
|
|
205
|
+
throw new Error('Database name is required for update action');
|
|
206
|
+
const updateData = {};
|
|
207
|
+
if (planID)
|
|
208
|
+
updateData.planID = planID;
|
|
209
|
+
if (version)
|
|
210
|
+
updateData.version = version;
|
|
211
|
+
if (Object.keys(updateData).length === 0) {
|
|
212
|
+
throw new Error('At least planID or version must be provided for update action');
|
|
213
|
+
}
|
|
214
|
+
await dbService.updateDatabase(client, name, updateData);
|
|
215
|
+
return {
|
|
216
|
+
content: [{ type: 'text', text: `Database '${name}' updated successfully` }],
|
|
217
|
+
};
|
|
218
|
+
default:
|
|
219
|
+
throw new Error(`Unknown database action: ${action}`);
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
/**
|
|
223
|
+
* Handle database backup management operations
|
|
224
|
+
*/
|
|
225
|
+
async function handleDatabaseBackupManagement(client, args) {
|
|
226
|
+
const { action, databaseName, backupId } = args;
|
|
227
|
+
if (!databaseName)
|
|
228
|
+
throw new Error('databaseName is required for all backup actions');
|
|
229
|
+
switch (action) {
|
|
230
|
+
case 'create':
|
|
231
|
+
const backup = await dbService.createBackup(client, databaseName);
|
|
232
|
+
return {
|
|
233
|
+
content: [{ type: 'text', text: JSON.stringify(backup, null, 2) }],
|
|
234
|
+
};
|
|
235
|
+
case 'list':
|
|
236
|
+
const backups = await dbService.listBackups(client, databaseName);
|
|
237
|
+
return {
|
|
238
|
+
content: [{ type: 'text', text: JSON.stringify(backups, null, 2) }],
|
|
239
|
+
};
|
|
240
|
+
case 'get_download_url':
|
|
241
|
+
if (!backupId)
|
|
242
|
+
throw new Error('backupId is required for get_download_url action');
|
|
243
|
+
const downloadUrl = await dbService.getBackupDownloadUrl(client, databaseName, backupId);
|
|
244
|
+
return {
|
|
245
|
+
content: [{ type: 'text', text: downloadUrl.url }],
|
|
246
|
+
};
|
|
247
|
+
case 'restore':
|
|
248
|
+
if (!backupId)
|
|
249
|
+
throw new Error('backupId is required for restore action');
|
|
250
|
+
await dbService.restoreBackup(client, databaseName, backupId);
|
|
251
|
+
return {
|
|
252
|
+
content: [{ type: 'text', text: `Database '${databaseName}' restored from backup '${backupId}' successfully` }],
|
|
253
|
+
};
|
|
254
|
+
case 'delete':
|
|
255
|
+
if (!backupId)
|
|
256
|
+
throw new Error('backupId is required for delete action');
|
|
257
|
+
await dbService.deleteBackup(client, databaseName, backupId);
|
|
258
|
+
return {
|
|
259
|
+
content: [{ type: 'text', text: `Backup '${backupId}' deleted successfully from database '${databaseName}'` }],
|
|
260
|
+
};
|
|
261
|
+
default:
|
|
262
|
+
throw new Error(`Unknown backup action: ${action}`);
|
|
263
|
+
}
|
|
264
|
+
}
|
|
265
|
+
/**
|
|
266
|
+
* Handle bucket management operations
|
|
267
|
+
*/
|
|
268
|
+
async function handleBucketManagement(client, args) {
|
|
269
|
+
const { action, name, region, permission, page, perPage } = args;
|
|
270
|
+
switch (action) {
|
|
271
|
+
case 'list':
|
|
272
|
+
const buckets = await storageService.listBuckets(client, { page, perPage });
|
|
273
|
+
return {
|
|
274
|
+
content: [{ type: 'text', text: JSON.stringify(buckets, null, 2) }],
|
|
275
|
+
};
|
|
276
|
+
case 'get':
|
|
277
|
+
if (!name)
|
|
278
|
+
throw new Error('Bucket name is required for get action');
|
|
279
|
+
const bucket = await storageService.getBucket(client, name);
|
|
280
|
+
return {
|
|
281
|
+
content: [{ type: 'text', text: JSON.stringify(bucket, null, 2) }],
|
|
282
|
+
};
|
|
283
|
+
case 'create':
|
|
284
|
+
if (!name)
|
|
285
|
+
throw new Error('Bucket name is required for create action');
|
|
286
|
+
const createdBucket = await storageService.createBucket(client, { name, region, permission });
|
|
287
|
+
return {
|
|
288
|
+
content: [{ type: 'text', text: JSON.stringify(createdBucket, null, 2) }],
|
|
289
|
+
};
|
|
290
|
+
case 'delete':
|
|
291
|
+
if (!name)
|
|
292
|
+
throw new Error('Bucket name is required for delete action');
|
|
293
|
+
await storageService.deleteBucket(client, name);
|
|
294
|
+
return {
|
|
295
|
+
content: [{ type: 'text', text: `Bucket '${name}' deleted successfully` }],
|
|
296
|
+
};
|
|
297
|
+
case 'get_credentials':
|
|
298
|
+
if (!name)
|
|
299
|
+
throw new Error('Bucket name is required for get_credentials action');
|
|
300
|
+
const credentials = await storageService.getBucketCredentials(client, name);
|
|
301
|
+
return {
|
|
302
|
+
content: [{ type: 'text', text: JSON.stringify(credentials, null, 2) }],
|
|
303
|
+
};
|
|
304
|
+
default:
|
|
305
|
+
throw new Error(`Unknown bucket action: ${action}`);
|
|
306
|
+
}
|
|
307
|
+
}
|
|
308
|
+
/**
|
|
309
|
+
* Handle bucket object management operations
|
|
310
|
+
*/
|
|
311
|
+
async function handleBucketObjectManagement(client, args) {
|
|
312
|
+
const { action, bucketName, objectKey, filePath, prefix, maxKeys, expiresIn } = args;
|
|
313
|
+
if (!bucketName)
|
|
314
|
+
throw new Error('bucketName is required for all object actions');
|
|
315
|
+
switch (action) {
|
|
316
|
+
case 'list':
|
|
317
|
+
const objects = await storageService.listObjects(client, bucketName, prefix, maxKeys);
|
|
318
|
+
return {
|
|
319
|
+
content: [{ type: 'text', text: JSON.stringify(objects, null, 2) }],
|
|
320
|
+
};
|
|
321
|
+
case 'upload':
|
|
322
|
+
if (!objectKey || !filePath)
|
|
323
|
+
throw new Error('objectKey and filePath are required for upload action');
|
|
324
|
+
await storageService.uploadObject(client, bucketName, objectKey, filePath);
|
|
325
|
+
return {
|
|
326
|
+
content: [{ type: 'text', text: `Object '${objectKey}' uploaded successfully to bucket '${bucketName}'` }],
|
|
327
|
+
};
|
|
328
|
+
case 'get_download_url':
|
|
329
|
+
if (!objectKey)
|
|
330
|
+
throw new Error('objectKey is required for get_download_url action');
|
|
331
|
+
const downloadUrl = await storageService.getObjectDownloadUrl(client, bucketName, objectKey, expiresIn);
|
|
332
|
+
return {
|
|
333
|
+
content: [{ type: 'text', text: downloadUrl.url }],
|
|
334
|
+
};
|
|
335
|
+
case 'delete':
|
|
336
|
+
if (!objectKey)
|
|
337
|
+
throw new Error('objectKey is required for delete action');
|
|
338
|
+
await storageService.deleteObject(client, bucketName, objectKey);
|
|
339
|
+
return {
|
|
340
|
+
content: [{ type: 'text', text: `Object '${objectKey}' deleted successfully from bucket '${bucketName}'` }],
|
|
341
|
+
};
|
|
342
|
+
default:
|
|
343
|
+
throw new Error(`Unknown object action: ${action}`);
|
|
344
|
+
}
|
|
345
|
+
}
|
|
346
|
+
/**
|
|
347
|
+
* Handle infrastructure overview
|
|
348
|
+
*/
|
|
349
|
+
async function handleInfrastructureOverview(client) {
|
|
350
|
+
// Get all resources in parallel
|
|
351
|
+
const [apps, databases, buckets] = await Promise.all([
|
|
352
|
+
appService.listApps(client, {}),
|
|
353
|
+
dbService.listDatabases(client),
|
|
354
|
+
storageService.listBuckets(client, {}),
|
|
355
|
+
]);
|
|
356
|
+
const overview = {
|
|
357
|
+
apps: {
|
|
358
|
+
count: apps.length,
|
|
359
|
+
items: apps,
|
|
360
|
+
},
|
|
361
|
+
databases: {
|
|
362
|
+
count: databases.length,
|
|
363
|
+
items: databases,
|
|
364
|
+
},
|
|
365
|
+
buckets: {
|
|
366
|
+
count: buckets.length,
|
|
367
|
+
items: buckets,
|
|
368
|
+
},
|
|
369
|
+
timestamp: new Date().toISOString(),
|
|
370
|
+
};
|
|
371
|
+
return {
|
|
372
|
+
content: [{ type: 'text', text: JSON.stringify(overview, null, 2) }],
|
|
373
|
+
};
|
|
374
|
+
}
|
|
375
|
+
/**
|
|
376
|
+
* Handle deployment management operations
|
|
377
|
+
*/
|
|
378
|
+
async function handleDeploymentManagement(client, args) {
|
|
379
|
+
const { action, appName, lines } = args;
|
|
380
|
+
if (!appName)
|
|
381
|
+
throw new Error('appName is required for all deployment actions');
|
|
382
|
+
switch (action) {
|
|
383
|
+
case 'list_releases':
|
|
384
|
+
const releases = await deploymentService.listReleases(client, appName, { page: 1, perPage: lines || 10 });
|
|
385
|
+
return {
|
|
386
|
+
content: [{ type: 'text', text: JSON.stringify(releases, null, 2) }],
|
|
387
|
+
};
|
|
388
|
+
case 'list_sources':
|
|
389
|
+
const sources = await deploymentService.listSources(client, appName);
|
|
390
|
+
return {
|
|
391
|
+
content: [{ type: 'text', text: JSON.stringify(sources, null, 2) }],
|
|
392
|
+
};
|
|
393
|
+
case 'upload_source':
|
|
394
|
+
// This would require file path parameter - simplified for now
|
|
395
|
+
throw new Error('upload_source requires file path parameter (not implemented in consolidated tool)');
|
|
396
|
+
default:
|
|
397
|
+
throw new Error(`Unknown deployment action: ${action}`);
|
|
398
|
+
}
|
|
399
|
+
}
|
|
400
|
+
//# sourceMappingURL=consolidated-handlers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"consolidated-handlers.js","sourceRoot":"","sources":["../../src/handlers/consolidated-handlers.ts"],"names":[],"mappings":"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"}
|
package/dist/handlers/index.d.ts
CHANGED
|
@@ -2,6 +2,7 @@ import { LiaraClient, ToolResult } from './types.js';
|
|
|
2
2
|
export { LiaraClient, ToolResult, extractPagination } from './types.js';
|
|
3
3
|
/**
|
|
4
4
|
* Handle a tool call and return the result
|
|
5
|
+
* Supports both consolidated and individual tool modes
|
|
5
6
|
*/
|
|
6
7
|
export declare function handleToolCall(client: LiaraClient, name: string, args: any): Promise<ToolResult>;
|
|
7
8
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/handlers/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/handlers/index.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAkBrD,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAExE;;;GAGG;AACH,wBAAsB,cAAc,CAChC,MAAM,EAAE,WAAW,EACnB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,GAAG,GACV,OAAO,CAAC,UAAU,CAAC,CAsErB"}
|
package/dist/handlers/index.js
CHANGED
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Tool handlers index - exports unified handler function
|
|
3
|
+
* Supports both consolidated and individual tool modes
|
|
3
4
|
*/
|
|
4
5
|
import { ErrorCode, McpError } from '@modelcontextprotocol/sdk/types.js';
|
|
5
6
|
import { formatErrorForMcp, LiaraMcpError } from '../utils/errors.js';
|
|
7
|
+
import { handleConsolidatedTools } from './consolidated-handlers.js';
|
|
6
8
|
import { handleAppTools } from './app-handlers.js';
|
|
7
9
|
import { handleEnvTools } from './env-handlers.js';
|
|
8
10
|
import { handleSettingsTools } from './settings-handlers.js';
|
|
@@ -21,31 +23,43 @@ import { handleObservabilityTools } from './observability-handlers.js';
|
|
|
21
23
|
export { extractPagination } from './types.js';
|
|
22
24
|
/**
|
|
23
25
|
* Handle a tool call and return the result
|
|
26
|
+
* Supports both consolidated and individual tool modes
|
|
24
27
|
*/
|
|
25
28
|
export async function handleToolCall(client, name, args) {
|
|
26
29
|
try {
|
|
27
|
-
//
|
|
28
|
-
const
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
30
|
+
// Check if using consolidated tools mode
|
|
31
|
+
const useConsolidated = process.env.LIARA_MCP_CONSOLIDATED === 'true';
|
|
32
|
+
if (useConsolidated) {
|
|
33
|
+
// Try consolidated handler first
|
|
34
|
+
const consolidatedResult = await handleConsolidatedTools(client, name, args);
|
|
35
|
+
if (consolidatedResult !== null) {
|
|
36
|
+
return consolidatedResult;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
else {
|
|
40
|
+
// Try individual handlers in order
|
|
41
|
+
const handlers = [
|
|
42
|
+
handleAppTools,
|
|
43
|
+
handleEnvTools,
|
|
44
|
+
handleSettingsTools,
|
|
45
|
+
handleDeploymentTools,
|
|
46
|
+
handleDatabaseTools,
|
|
47
|
+
handleStorageTools,
|
|
48
|
+
handlePlanTools,
|
|
49
|
+
handleDnsTools,
|
|
50
|
+
handleDomainTools,
|
|
51
|
+
handleMailTools,
|
|
52
|
+
handleVmTools,
|
|
53
|
+
handleDiskTools,
|
|
54
|
+
handleNetworkTools,
|
|
55
|
+
handleUserTools,
|
|
56
|
+
handleObservabilityTools,
|
|
57
|
+
];
|
|
58
|
+
for (const handler of handlers) {
|
|
59
|
+
const result = await handler(client, name, args);
|
|
60
|
+
if (result !== null) {
|
|
61
|
+
return result;
|
|
62
|
+
}
|
|
49
63
|
}
|
|
50
64
|
}
|
|
51
65
|
// No handler found
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/handlers/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/handlers/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,7 +4,7 @@ import { validateAppName } from '../utils/errors.js';
|
|
|
4
4
|
*/
|
|
5
5
|
export async function getAppMetrics(client, appName, period) {
|
|
6
6
|
validateAppName(appName);
|
|
7
|
-
const params = period ? { period } :
|
|
7
|
+
const params = period ? { period } : {};
|
|
8
8
|
return await client.get(`/v1/projects/${appName}/metrics/summary`, params);
|
|
9
9
|
}
|
|
10
10
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"observability.js","sourceRoot":"","sources":["../../src/services/observability.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAC/B,MAAmB,EACnB,OAAe,EACf,MAAe;IAEf,eAAe,CAAC,OAAO,CAAC,CAAC;IAEzB,MAAM,MAAM,
|
|
1
|
+
{"version":3,"file":"observability.js","sourceRoot":"","sources":["../../src/services/observability.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAC/B,MAAmB,EACnB,OAAe,EACf,MAAe;IAEf,eAAe,CAAC,OAAO,CAAC,CAAC;IAEzB,MAAM,MAAM,GAA8C,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IACnF,OAAO,MAAM,MAAM,CAAC,GAAG,CACnB,gBAAgB,OAAO,kBAAkB,EACzC,MAAM,CACT,CAAC;AACN,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAC5B,MAAmB,EACnB,OAAe,EACf,OAIC;IAED,eAAe,CAAC,OAAO,CAAC,CAAC;IAEzB,MAAM,MAAM,GAAQ,EAAE,CAAC;IACvB,IAAI,OAAO,EAAE,KAAK,EAAE,CAAC;QACjB,MAAM,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;IACjC,CAAC;IACD,IAAI,OAAO,EAAE,KAAK,EAAE,CAAC;QACjB,MAAM,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;IACjC,CAAC;IACD,IAAI,OAAO,EAAE,KAAK,EAAE,CAAC;QACjB,MAAM,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;IACjC,CAAC;IAED,OAAO,MAAM,MAAM,CAAC,GAAG,CACnB,gBAAgB,OAAO,OAAO,EAC9B,MAAM,CACT,CAAC;AACN,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAC/B,MAAmB,EACnB,OAAe;IAEf,eAAe,CAAC,OAAO,CAAC,CAAC;IAEzB,8BAA8B;IAC9B,4DAA4D;IAC5D,OAAO,MAAM,UAAU,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;AAC7D,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"consolidated-tools.d.ts","sourceRoot":"","sources":["../../src/tools/consolidated-tools.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,cAAc,EAA2B,MAAM,YAAY,CAAC;AAIrE,wBAAgB,oBAAoB,IAAI,cAAc,EAAE,CA+PvD"}
|
|
@@ -0,0 +1,256 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Consolidated tool definitions - combines related functionality into fewer tools
|
|
3
|
+
*/
|
|
4
|
+
import { getPaginationProperties } from './types.js';
|
|
5
|
+
import * as appService from '../services/apps.js';
|
|
6
|
+
import * as dbService from '../services/databases.js';
|
|
7
|
+
export function getConsolidatedTools() {
|
|
8
|
+
return [
|
|
9
|
+
// ===== APP MANAGEMENT CONSOLIDATION =====
|
|
10
|
+
// Combine list, get, create, delete, start, stop, restart, resize into 2 tools
|
|
11
|
+
{
|
|
12
|
+
name: 'liara_manage_app',
|
|
13
|
+
description: 'Comprehensive app management: list apps, get details, create, delete, start, stop, restart, or resize apps',
|
|
14
|
+
inputSchema: {
|
|
15
|
+
type: 'object',
|
|
16
|
+
properties: {
|
|
17
|
+
action: {
|
|
18
|
+
type: 'string',
|
|
19
|
+
description: 'Action to perform',
|
|
20
|
+
enum: ['list', 'get', 'create', 'delete', 'start', 'stop', 'restart', 'resize'],
|
|
21
|
+
},
|
|
22
|
+
name: {
|
|
23
|
+
type: 'string',
|
|
24
|
+
description: 'App name (required for all actions except list)',
|
|
25
|
+
},
|
|
26
|
+
platform: {
|
|
27
|
+
type: 'string',
|
|
28
|
+
description: 'Platform type (required for create)',
|
|
29
|
+
enum: appService.getAvailablePlatforms(),
|
|
30
|
+
},
|
|
31
|
+
planID: {
|
|
32
|
+
type: 'string',
|
|
33
|
+
description: 'Plan ID (required for create and resize)',
|
|
34
|
+
},
|
|
35
|
+
region: {
|
|
36
|
+
type: 'string',
|
|
37
|
+
description: 'Deployment region (optional for create)',
|
|
38
|
+
},
|
|
39
|
+
...getPaginationProperties(),
|
|
40
|
+
},
|
|
41
|
+
required: ['action'],
|
|
42
|
+
},
|
|
43
|
+
},
|
|
44
|
+
// ===== ENVIRONMENT VARIABLE MANAGEMENT CONSOLIDATION =====
|
|
45
|
+
// Combine all env var operations into 1 tool
|
|
46
|
+
{
|
|
47
|
+
name: 'liara_manage_env_vars',
|
|
48
|
+
description: 'Manage environment variables: list, set single/multiple, or delete single/multiple variables',
|
|
49
|
+
inputSchema: {
|
|
50
|
+
type: 'object',
|
|
51
|
+
properties: {
|
|
52
|
+
action: {
|
|
53
|
+
type: 'string',
|
|
54
|
+
description: 'Action to perform',
|
|
55
|
+
enum: ['list', 'set', 'set_multiple', 'delete', 'delete_multiple'],
|
|
56
|
+
},
|
|
57
|
+
appName: {
|
|
58
|
+
type: 'string',
|
|
59
|
+
description: 'The name of the app',
|
|
60
|
+
},
|
|
61
|
+
key: {
|
|
62
|
+
type: 'string',
|
|
63
|
+
description: 'Variable name (for single operations)',
|
|
64
|
+
},
|
|
65
|
+
value: {
|
|
66
|
+
type: 'string',
|
|
67
|
+
description: 'Variable value (for set action)',
|
|
68
|
+
},
|
|
69
|
+
variables: {
|
|
70
|
+
type: 'array',
|
|
71
|
+
description: 'Array of variables (for set_multiple)',
|
|
72
|
+
items: {
|
|
73
|
+
type: 'object',
|
|
74
|
+
properties: {
|
|
75
|
+
key: { type: 'string', description: 'Variable name' },
|
|
76
|
+
value: { type: 'string', description: 'Variable value' },
|
|
77
|
+
},
|
|
78
|
+
required: ['key', 'value'],
|
|
79
|
+
},
|
|
80
|
+
},
|
|
81
|
+
keys: {
|
|
82
|
+
type: 'array',
|
|
83
|
+
description: 'Array of variable names to delete (for delete_multiple)',
|
|
84
|
+
items: { type: 'string' },
|
|
85
|
+
},
|
|
86
|
+
},
|
|
87
|
+
required: ['action', 'appName'],
|
|
88
|
+
},
|
|
89
|
+
},
|
|
90
|
+
// ===== DATABASE MANAGEMENT CONSOLIDATION =====
|
|
91
|
+
// Combine database operations into 3 tools
|
|
92
|
+
{
|
|
93
|
+
name: 'liara_manage_databases',
|
|
94
|
+
description: 'Database lifecycle management: list, get details, create, delete, start, stop, restart, or resize databases',
|
|
95
|
+
inputSchema: {
|
|
96
|
+
type: 'object',
|
|
97
|
+
properties: {
|
|
98
|
+
action: {
|
|
99
|
+
type: 'string',
|
|
100
|
+
description: 'Action to perform',
|
|
101
|
+
enum: ['list', 'get', 'get_connection', 'create', 'delete', 'start', 'stop', 'restart', 'resize', 'update'],
|
|
102
|
+
},
|
|
103
|
+
name: {
|
|
104
|
+
type: 'string',
|
|
105
|
+
description: 'Database name',
|
|
106
|
+
},
|
|
107
|
+
type: {
|
|
108
|
+
type: 'string',
|
|
109
|
+
description: 'Database type (for create)',
|
|
110
|
+
enum: dbService.getAvailableDatabaseTypes(),
|
|
111
|
+
},
|
|
112
|
+
planID: {
|
|
113
|
+
type: 'string',
|
|
114
|
+
description: 'Plan ID (for create, resize, update)',
|
|
115
|
+
},
|
|
116
|
+
version: {
|
|
117
|
+
type: 'string',
|
|
118
|
+
description: 'Database version (for create, update)',
|
|
119
|
+
},
|
|
120
|
+
...getPaginationProperties(),
|
|
121
|
+
},
|
|
122
|
+
required: ['action'],
|
|
123
|
+
},
|
|
124
|
+
},
|
|
125
|
+
{
|
|
126
|
+
name: 'liara_manage_database_backups',
|
|
127
|
+
description: 'Database backup management: create, list, get download URL, restore, or delete backups',
|
|
128
|
+
inputSchema: {
|
|
129
|
+
type: 'object',
|
|
130
|
+
properties: {
|
|
131
|
+
action: {
|
|
132
|
+
type: 'string',
|
|
133
|
+
description: 'Action to perform',
|
|
134
|
+
enum: ['create', 'list', 'get_download_url', 'restore', 'delete'],
|
|
135
|
+
},
|
|
136
|
+
databaseName: {
|
|
137
|
+
type: 'string',
|
|
138
|
+
description: 'The name of the database',
|
|
139
|
+
},
|
|
140
|
+
backupId: {
|
|
141
|
+
type: 'string',
|
|
142
|
+
description: 'Backup ID (for get_download_url, restore, delete)',
|
|
143
|
+
},
|
|
144
|
+
...getPaginationProperties(),
|
|
145
|
+
},
|
|
146
|
+
required: ['action', 'databaseName'],
|
|
147
|
+
},
|
|
148
|
+
},
|
|
149
|
+
// ===== STORAGE MANAGEMENT CONSOLIDATION =====
|
|
150
|
+
// Combine storage operations into 2 tools
|
|
151
|
+
{
|
|
152
|
+
name: 'liara_manage_buckets',
|
|
153
|
+
description: 'Storage bucket lifecycle management: list, get details, create, delete, or get credentials',
|
|
154
|
+
inputSchema: {
|
|
155
|
+
type: 'object',
|
|
156
|
+
properties: {
|
|
157
|
+
action: {
|
|
158
|
+
type: 'string',
|
|
159
|
+
description: 'Action to perform',
|
|
160
|
+
enum: ['list', 'get', 'create', 'delete', 'get_credentials'],
|
|
161
|
+
},
|
|
162
|
+
name: {
|
|
163
|
+
type: 'string',
|
|
164
|
+
description: 'Bucket name',
|
|
165
|
+
},
|
|
166
|
+
region: {
|
|
167
|
+
type: 'string',
|
|
168
|
+
description: 'Region (for create)',
|
|
169
|
+
},
|
|
170
|
+
permission: {
|
|
171
|
+
type: 'string',
|
|
172
|
+
description: 'Permission level (for create)',
|
|
173
|
+
enum: ['private', 'public-read'],
|
|
174
|
+
},
|
|
175
|
+
...getPaginationProperties(),
|
|
176
|
+
},
|
|
177
|
+
required: ['action'],
|
|
178
|
+
},
|
|
179
|
+
},
|
|
180
|
+
{
|
|
181
|
+
name: 'liara_manage_bucket_objects',
|
|
182
|
+
description: 'Bucket object operations: list objects, upload, get download URL, or delete objects',
|
|
183
|
+
inputSchema: {
|
|
184
|
+
type: 'object',
|
|
185
|
+
properties: {
|
|
186
|
+
action: {
|
|
187
|
+
type: 'string',
|
|
188
|
+
description: 'Action to perform',
|
|
189
|
+
enum: ['list', 'upload', 'get_download_url', 'delete'],
|
|
190
|
+
},
|
|
191
|
+
bucketName: {
|
|
192
|
+
type: 'string',
|
|
193
|
+
description: 'The name of the bucket',
|
|
194
|
+
},
|
|
195
|
+
objectKey: {
|
|
196
|
+
type: 'string',
|
|
197
|
+
description: 'The object key/path',
|
|
198
|
+
},
|
|
199
|
+
filePath: {
|
|
200
|
+
type: 'string',
|
|
201
|
+
description: 'Path to file (for upload)',
|
|
202
|
+
},
|
|
203
|
+
prefix: {
|
|
204
|
+
type: 'string',
|
|
205
|
+
description: 'Prefix filter (for list)',
|
|
206
|
+
},
|
|
207
|
+
maxKeys: {
|
|
208
|
+
type: 'number',
|
|
209
|
+
description: 'Max objects to return (for list)',
|
|
210
|
+
},
|
|
211
|
+
expiresIn: {
|
|
212
|
+
type: 'number',
|
|
213
|
+
description: 'URL expiration in seconds (for get_download_url)',
|
|
214
|
+
},
|
|
215
|
+
},
|
|
216
|
+
required: ['action', 'bucketName'],
|
|
217
|
+
},
|
|
218
|
+
},
|
|
219
|
+
// ===== INFRASTRUCTURE OVERVIEW TOOL =====
|
|
220
|
+
// Single tool to get overview of all resources
|
|
221
|
+
{
|
|
222
|
+
name: 'liara_get_infrastructure_overview',
|
|
223
|
+
description: 'Get a comprehensive overview of all Liara infrastructure: apps, databases, buckets, networks',
|
|
224
|
+
inputSchema: {
|
|
225
|
+
type: 'object',
|
|
226
|
+
properties: {},
|
|
227
|
+
},
|
|
228
|
+
},
|
|
229
|
+
// ===== DEPLOYMENT MANAGEMENT TOOL =====
|
|
230
|
+
// Consolidated deployment operations
|
|
231
|
+
{
|
|
232
|
+
name: 'liara_manage_deployment',
|
|
233
|
+
description: 'Deployment management: list releases and sources',
|
|
234
|
+
inputSchema: {
|
|
235
|
+
type: 'object',
|
|
236
|
+
properties: {
|
|
237
|
+
action: {
|
|
238
|
+
type: 'string',
|
|
239
|
+
description: 'Action to perform',
|
|
240
|
+
enum: ['list_releases', 'list_sources'],
|
|
241
|
+
},
|
|
242
|
+
appName: {
|
|
243
|
+
type: 'string',
|
|
244
|
+
description: 'App name',
|
|
245
|
+
},
|
|
246
|
+
lines: {
|
|
247
|
+
type: 'number',
|
|
248
|
+
description: 'Number of items to retrieve (default: 10)',
|
|
249
|
+
},
|
|
250
|
+
},
|
|
251
|
+
required: ['action', 'appName'],
|
|
252
|
+
},
|
|
253
|
+
},
|
|
254
|
+
];
|
|
255
|
+
}
|
|
256
|
+
//# sourceMappingURL=consolidated-tools.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"consolidated-tools.js","sourceRoot":"","sources":["../../src/tools/consolidated-tools.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/index.d.ts
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Tool definitions index - exports all tool definitions
|
|
3
|
+
* Now supports both consolidated and individual tool modes
|
|
3
4
|
*/
|
|
5
|
+
export { getConsolidatedTools } from './consolidated-tools.js';
|
|
4
6
|
export { ToolDefinition, getPaginationProperties } from './types.js';
|
|
5
7
|
export { getAppTools } from './app-tools.js';
|
|
6
8
|
export { getEnvTools } from './env-tools.js';
|
|
@@ -20,6 +22,7 @@ export { getObservabilityTools } from './observability-tools.js';
|
|
|
20
22
|
import { ToolDefinition } from './types.js';
|
|
21
23
|
/**
|
|
22
24
|
* Get all tool definitions
|
|
25
|
+
* Use LIARA_MCP_CONSOLIDATED=true env var to enable consolidated tools (default: false)
|
|
23
26
|
*/
|
|
24
27
|
export declare function getAllTools(): ToolDefinition[];
|
|
25
28
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAG/D,OAAO,EAAE,cAAc,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AACrE,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAEjE,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAqB5C;;;GAGG;AACH,wBAAgB,WAAW,IAAI,cAAc,EAAE,CAwB9C"}
|
package/dist/tools/index.js
CHANGED
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Tool definitions index - exports all tool definitions
|
|
3
|
+
* Now supports both consolidated and individual tool modes
|
|
3
4
|
*/
|
|
5
|
+
// Consolidated tools (recommended for reduced complexity)
|
|
6
|
+
export { getConsolidatedTools } from './consolidated-tools.js';
|
|
7
|
+
// Individual tools (legacy mode - more granular but complex)
|
|
4
8
|
export { getPaginationProperties } from './types.js';
|
|
5
9
|
export { getAppTools } from './app-tools.js';
|
|
6
10
|
export { getEnvTools } from './env-tools.js';
|
|
@@ -17,6 +21,7 @@ export { getDiskTools } from './disk-tools.js';
|
|
|
17
21
|
export { getNetworkTools } from './network-tools.js';
|
|
18
22
|
export { getUserTools } from './user-tools.js';
|
|
19
23
|
export { getObservabilityTools } from './observability-tools.js';
|
|
24
|
+
import { getConsolidatedTools } from './consolidated-tools.js';
|
|
20
25
|
import { getAppTools } from './app-tools.js';
|
|
21
26
|
import { getEnvTools } from './env-tools.js';
|
|
22
27
|
import { getSettingsTools } from './settings-tools.js';
|
|
@@ -32,26 +37,36 @@ import { getDiskTools } from './disk-tools.js';
|
|
|
32
37
|
import { getNetworkTools } from './network-tools.js';
|
|
33
38
|
import { getUserTools } from './user-tools.js';
|
|
34
39
|
import { getObservabilityTools } from './observability-tools.js';
|
|
40
|
+
// Configuration for tool mode
|
|
41
|
+
const USE_CONSOLIDATED_TOOLS = process.env.LIARA_MCP_CONSOLIDATED === 'true';
|
|
35
42
|
/**
|
|
36
43
|
* Get all tool definitions
|
|
44
|
+
* Use LIARA_MCP_CONSOLIDATED=true env var to enable consolidated tools (default: false)
|
|
37
45
|
*/
|
|
38
46
|
export function getAllTools() {
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
47
|
+
if (USE_CONSOLIDATED_TOOLS) {
|
|
48
|
+
// Consolidated mode: fewer, more powerful tools
|
|
49
|
+
return getConsolidatedTools();
|
|
50
|
+
}
|
|
51
|
+
else {
|
|
52
|
+
// Individual mode: granular tools (legacy)
|
|
53
|
+
return [
|
|
54
|
+
...getAppTools(),
|
|
55
|
+
...getEnvTools(),
|
|
56
|
+
...getSettingsTools(),
|
|
57
|
+
...getDeploymentTools(),
|
|
58
|
+
...getDatabaseTools(),
|
|
59
|
+
...getStorageTools(),
|
|
60
|
+
...getPlanTools(),
|
|
61
|
+
...getDnsTools(),
|
|
62
|
+
...getDomainTools(),
|
|
63
|
+
...getMailTools(),
|
|
64
|
+
...getVmTools(),
|
|
65
|
+
...getDiskTools(),
|
|
66
|
+
...getNetworkTools(),
|
|
67
|
+
...getUserTools(),
|
|
68
|
+
...getObservabilityTools(),
|
|
69
|
+
];
|
|
70
|
+
}
|
|
56
71
|
}
|
|
57
72
|
//# sourceMappingURL=index.js.map
|
package/dist/tools/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"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"}
|
package/dist/utils/errors.js
CHANGED
|
@@ -60,14 +60,14 @@ export function validateRequired(value, fieldName) {
|
|
|
60
60
|
export function validateAppName(name) {
|
|
61
61
|
validateRequired(name, 'App name');
|
|
62
62
|
if (name.length < 3) {
|
|
63
|
-
throw new LiaraMcpError(`App name "${name}" is too short (
|
|
63
|
+
throw new LiaraMcpError(`App name "${name}" is too short (3-32 characters required, got ${name.length})`, 'INVALID_APP_NAME', { name, length: name.length }, ['Use a name like "my-app" or "api-service"']);
|
|
64
64
|
}
|
|
65
65
|
if (name.length > 32) {
|
|
66
66
|
throw new LiaraMcpError(`App name "${name}" is too long (maximum 32 characters, got ${name.length})`, 'INVALID_APP_NAME', { name, length: name.length }, ['Shorten the name to 32 characters or less']);
|
|
67
67
|
}
|
|
68
68
|
if (!/^[a-z0-9-]+$/.test(name)) {
|
|
69
69
|
const invalidChars = name.match(/[^a-z0-9-]/g);
|
|
70
|
-
throw new LiaraMcpError(`App name contains invalid characters: ${invalidChars?.join(', ') || 'unknown'}
|
|
70
|
+
throw new LiaraMcpError(`App name contains invalid characters: ${invalidChars?.join(', ') || 'unknown'}. Use only lowercase letters, numbers, and hyphens.`, 'INVALID_APP_NAME', { name, invalidChars }, ['Use only lowercase letters, numbers, and hyphens', 'Example: "my-app" or "api-service"']);
|
|
71
71
|
}
|
|
72
72
|
if (name.startsWith('-') || name.endsWith('-')) {
|
|
73
73
|
throw new LiaraMcpError(`App name cannot start or end with a hyphen: "${name}"`, 'INVALID_APP_NAME', { name }, ['Remove leading/trailing hyphens', 'Example: "my-app" instead of "-my-app"']);
|
package/dist/utils/errors.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/utils/errors.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,OAAO,aAAc,SAAQ,KAAK;IAGzB;IACA;IACA;IAJX,YACI,OAAe,EACR,IAAa,EACb,OAAa,EACb,WAAsB;QAE7B,KAAK,CAAC,OAAO,CAAC,CAAC;QAJR,SAAI,GAAJ,IAAI,CAAS;QACb,YAAO,GAAP,OAAO,CAAM;QACb,gBAAW,GAAX,WAAW,CAAW;QAG7B,IAAI,CAAC,IAAI,GAAG,eAAe,CAAC;IAChC,CAAC;IAED;;OAEG;IACH,aAAa;QACT,IAAI,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC;QACvB,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAClD,GAAG,IAAI,kBAAkB,CAAC;YAC1B,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,KAAK,EAAE,EAAE;gBAC3C,GAAG,IAAI,KAAK,KAAK,GAAG,CAAC,KAAK,UAAU,EAAE,CAAC;YAC3C,CAAC,CAAC,CAAC;QACP,CAAC;QACD,OAAO,GAAG,CAAC;IACf,CAAC;CACJ;AAED;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAAC,KAAc;IAC5C,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;QACzB,OAAO,KAAK,CAAC,OAAO,CAAC;IACzB,CAAC;IACD,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;AACzB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,0BAA0B,CAAC,KAAc;IACrD,IAAI,KAAK,YAAY,aAAa,EAAE,CAAC;QACjC,OAAO,KAAK,CAAC,aAAa,EAAE,CAAC;IACjC,CAAC;IACD,OAAO,iBAAiB,CAAC,KAAK,CAAC,CAAC;AACpC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAAU,EAAE,SAAiB;IAC1D,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,EAAE,EAAE,CAAC;QACxD,MAAM,IAAI,aAAa,CAAC,GAAG,SAAS,cAAc,CAAC,CAAC;IACxD,CAAC;AACL,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,eAAe,CAAC,IAAY;IACxC,gBAAgB,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;IAEnC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAClB,MAAM,IAAI,aAAa,CACnB,aAAa,IAAI,
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/utils/errors.ts"],"names":[],"mappings":"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"}
|