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.
Files changed (2) hide show
  1. package/package.json +2 -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.2.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.2.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: 'Últimas líneas de log del proyecto (deploys, runtime y salida de la app). Usalo para debuggear tus propios deploys.',
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.',