alora-mcp 0.3.0 → 0.5.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 +15 -0
package/package.json CHANGED
@@ -1,13 +1,13 @@
1
1
  {
2
2
  "name": "alora-mcp",
3
- "version": "0.3.0",
3
+ "version": "0.5.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.3.0",
10
+ "alora-sdk": "^0.5.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
@@ -103,6 +103,21 @@ server.registerTool('cron_run', {
103
103
  inputSchema: { project: z.string(), id: z.string() },
104
104
  }, wrap(({ project, id }) => client().cronRun(project, id)));
105
105
 
106
+ server.registerTool('egress_ip', {
107
+ description: 'Muestra la(s) IP(s) de egreso dedicada(s) del proyecto. Sin IP dedicada, la salida usa una IP compartida que PUEDE cambiar al migrar — malo para APIs con whitelist de IP (exchanges, bancos).',
108
+ inputSchema: { project: z.string() },
109
+ }, wrap(({ project }) => client().egressIp(project)));
110
+
111
+ server.registerTool('egress_ip_allocate', {
112
+ description: 'Asigna una IP de egreso ESTÁTICA y dedicada al proyecto (add-on pago, ~US$4/mes debitado del saldo; primer mes al asignar y luego mensual). Sobrevive migraciones y reinicios; reinicia la app para tomarla. Para apps que operan APIs con whitelist de IP: exchanges de cripto (Binance exige IP restringida para trading), bancos, brokers, SaaS enterprise. Requiere saldo. Si el saldo no cubre la renovación, la IP se libera y se avisa. Whitelisteá la IP devuelta.',
113
+ inputSchema: { project: z.string() },
114
+ }, wrap(({ project }) => client().egressIpAllocate(project)));
115
+
116
+ server.registerTool('egress_ip_release', {
117
+ description: 'Libera la IP de egreso dedicada del proyecto y deja de cobrarla. La IP de egreso vuelve a ser compartida (puede cambiar).',
118
+ inputSchema: { project: z.string() },
119
+ }, wrap(({ project }) => client().egressIpRelease(project)));
120
+
106
121
  server.registerTool('token_create', {
107
122
  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
123
  inputSchema: { project: z.string(), name: z.string().optional() },