jotae-mcp 1.0.6 → 1.0.8

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/dist/index.js +27 -3
  2. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -139,14 +139,14 @@ const TOOLS = [
139
139
  channel: { type: 'string', enum: ['whatsapp', 'email'] },
140
140
  trigger: { type: 'string', enum: ['registration', 'event_start', 'event_end', 'attended', 'no_show', 'watched_pitch', 'clicked_cta', 'purchased', 'scheduled'] },
141
141
  delay_minutes: { type: 'number', description: 'Minutos após o gatilho (negativo = antes)' },
142
- template_id: { type: 'string', description: 'ID do template (WhatsApp ou e-mail mesmo campo para ambos)' },
143
- destination: { type: 'string', enum: ['individual', 'group'], description: 'WhatsApp: individual (padrão) ou group' },
142
+ template_id: { type: 'string', description: 'ID do template (obrigatóriouse list_templates para obter o ID)' },
143
+ destination: { type: 'string', enum: ['individual', 'group'], description: 'Destino: individual (padrão) ou group. Obrigatório.' },
144
144
  group_id: { type: 'string', description: 'ID do grupo WhatsApp (quando destination=group)' },
145
145
  scheduled_at: { type: 'string', description: 'ISO 8601 — obrigatório quando trigger=scheduled' },
146
146
  audience_list_id: { type: 'string', description: 'ID da lista de destinatários (filtra quem recebe)' },
147
147
  exclude_list_id: { type: 'string', description: 'ID da lista de exclusão (quem não recebe)' },
148
148
  },
149
- required: ['event_id', 'channel', 'trigger'],
149
+ required: ['event_id', 'channel', 'trigger', 'template_id', 'destination'],
150
150
  },
151
151
  },
152
152
  {
@@ -217,6 +217,7 @@ const TOOLS = [
217
217
  destination: { type: 'string', enum: ['individual', 'group'], description: 'Destino WhatsApp (padrão: individual)' },
218
218
  media_url: { type: 'string', description: 'URL de mídia opcional (WhatsApp)' },
219
219
  media_type: { type: 'string', enum: ['image', 'video', 'document'], description: 'Tipo de mídia (WhatsApp)' },
220
+ folder_id: { type: 'string', description: 'ID da pasta (use list_folders ou create_folder)' },
220
221
  },
221
222
  required: ['channel', 'name', 'body'],
222
223
  },
@@ -239,6 +240,23 @@ const TOOLS = [
239
240
  required: ['template_id'],
240
241
  },
241
242
  },
243
+ // ── Pastas de templates ──
244
+ {
245
+ name: 'list_folders',
246
+ description: 'Lista as pastas de templates criadas pelo produtor.',
247
+ inputSchema: { type: 'object', properties: {} },
248
+ },
249
+ {
250
+ name: 'create_folder',
251
+ description: 'Cria uma pasta para organizar templates. Retorna o folder_id para usar em create_template.',
252
+ inputSchema: {
253
+ type: 'object',
254
+ properties: {
255
+ name: { type: 'string', description: 'Nome da pasta (ex: "Aquecimento", "Pós-live")' },
256
+ },
257
+ required: ['name'],
258
+ },
259
+ },
242
260
  // ── Dados ──
243
261
  {
244
262
  name: 'list_contacts',
@@ -399,6 +417,12 @@ server.setRequestHandler(types_js_1.CallToolRequestSchema, async (req) => {
399
417
  result = await api('PATCH', `/templates/${template_id}`, patch);
400
418
  break;
401
419
  }
420
+ case 'list_folders':
421
+ result = await api('GET', '/folders');
422
+ break;
423
+ case 'create_folder':
424
+ result = await api('POST', '/folders', { name: a.name });
425
+ break;
402
426
  case 'list_contacts':
403
427
  result = await api('GET', `/contacts?limit=${a.limit ?? 100}&offset=${a.offset ?? 0}`);
404
428
  break;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "jotae-mcp",
3
- "version": "1.0.6",
3
+ "version": "1.0.8",
4
4
  "description": "MCP Server para o Jotae — cria eventos, configura automações e lê métricas via Claude",
5
5
  "main": "dist/index.js",
6
6
  "bin": {