alora-mcp 0.2.0 → 0.3.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/package.json +2 -2
- package/src/index.js +25 -3
package/package.json
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "alora-mcp",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.3.0",
|
|
4
4
|
"description": "Servidor MCP de Alora — Claude Code, Codex, Cursor y cualquier cliente MCP",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
7
7
|
"alora-mcp": "src/index.js"
|
|
8
8
|
},
|
|
9
9
|
"dependencies": {
|
|
10
|
-
"alora-sdk": "^0.
|
|
10
|
+
"alora-sdk": "^0.3.0",
|
|
11
11
|
"@modelcontextprotocol/sdk": "^1.12.0",
|
|
12
12
|
"tar": "^7.4.3",
|
|
13
13
|
"zod": "^3.24.0"
|
package/src/index.js
CHANGED
|
@@ -80,12 +80,33 @@ server.registerTool('project_status', {
|
|
|
80
80
|
}, wrap(({ project }) => client().status(project)));
|
|
81
81
|
|
|
82
82
|
server.registerTool('logs', {
|
|
83
|
-
description: '
|
|
83
|
+
description: 'Líneas de log del proyecto (deploys, runtime y salida de la app). Usalo para debuggear tus propios deploys.',
|
|
84
84
|
inputSchema: {
|
|
85
85
|
project: z.string(),
|
|
86
86
|
lines: z.number().optional().describe('Cantidad de líneas, default 100'),
|
|
87
|
+
since: z.string().optional().describe('Solo líneas posteriores a este instante (ISO o ms epoch)'),
|
|
87
88
|
},
|
|
88
|
-
}, wrap(({ project, lines }) => client().logs(project, { lines })));
|
|
89
|
+
}, wrap(({ project, lines, since }) => client().logs(project, { lines, since })));
|
|
90
|
+
|
|
91
|
+
server.registerTool('exec', {
|
|
92
|
+
description: 'Ejecuta un comando dentro de la microVM del proyecto (despierta la máquina si duerme). Devuelve stdout, stderr y exit_code. Para inspeccionar el filesystem, ver archivos en /data, debuggear. Ej: "ls -la /data", "cat /data/bitacora/hoy.log".',
|
|
93
|
+
inputSchema: { project: z.string(), command: z.string() },
|
|
94
|
+
}, wrap(({ project, command }) => client().exec(project, command)));
|
|
95
|
+
|
|
96
|
+
server.registerTool('restart', {
|
|
97
|
+
description: 'Reinicia la app sin redesplegar (útil para aplicar un cambio de estado o salir de un cuelgue).',
|
|
98
|
+
inputSchema: { project: z.string() },
|
|
99
|
+
}, wrap(({ project }) => client().restart(project)));
|
|
100
|
+
|
|
101
|
+
server.registerTool('cron_run', {
|
|
102
|
+
description: 'Dispara un cron AHORA (sin esperar su horario). Devuelve el status y el body de la respuesta de la app — útil para probar y ver el traceback si falla.',
|
|
103
|
+
inputSchema: { project: z.string(), id: z.string() },
|
|
104
|
+
}, wrap(({ project, id }) => client().cronRun(project, id)));
|
|
105
|
+
|
|
106
|
+
server.registerTool('token_create', {
|
|
107
|
+
description: 'Crea un token de acceso por proyecto que BYPASSEA el login: un script/webhook/backup externo puede pegarle a la URL de la app con Authorization: Bearer <token> sin SSO. Scoped a este proyecto y revocable. La app lo ve con x-alora-user-role: service. El token se muestra una sola vez.',
|
|
108
|
+
inputSchema: { project: z.string(), name: z.string().optional() },
|
|
109
|
+
}, wrap(({ project, name }) => client().tokenCreate(project, name)));
|
|
89
110
|
|
|
90
111
|
server.registerTool('list_versions', {
|
|
91
112
|
description: 'Historial de versiones del proyecto, con autor y mensaje.',
|
|
@@ -180,8 +201,9 @@ server.registerTool('cron_create', {
|
|
|
180
201
|
project: z.string(),
|
|
181
202
|
schedule: z.string().describe('cron UTC: "0 * * * *" cada hora, "*/5 * * * *" cada 5 min, "5 0,12 * * *" 00:05 y 12:05'),
|
|
182
203
|
path: z.string().describe('ruta que tu app maneja, ej: /cron/hourly'),
|
|
204
|
+
once: z.boolean().optional().describe('si true, se borra solo tras correr una vez'),
|
|
183
205
|
},
|
|
184
|
-
}, wrap(({ project, schedule, path }) => client().cronCreate(project, schedule, path)));
|
|
206
|
+
}, wrap(({ project, schedule, path, once }) => client().cronCreate(project, schedule, path, once)));
|
|
185
207
|
|
|
186
208
|
server.registerTool('cron_list', {
|
|
187
209
|
description: 'Lista las tareas programadas de un proyecto con su último disparo y estado.',
|