@servicialo/mcp-server 0.1.0 → 0.2.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 CHANGED
@@ -27,6 +27,8 @@ Add to your `claude_desktop_config.json`:
27
27
  }
28
28
  ```
29
29
 
30
+ Get your API key and Organization ID from [digitalo.app](https://digitalo.app).
31
+
30
32
  ## Environment Variables
31
33
 
32
34
  | Variable | Required | Description |
@@ -35,38 +37,68 @@ Add to your `claude_desktop_config.json`:
35
37
  | `SERVICIALO_ORG_ID` | Yes | Organization slug (e.g., `mamapro`) |
36
38
  | `SERVICIALO_BASE_URL` | No | API base URL (default: `https://coordinalo.com`) |
37
39
 
38
- ## Available Tools (11)
40
+ ## Available Tools (19)
39
41
 
40
- ### Scheduling (4)
42
+ ### Scheduling (5)
41
43
 
42
44
  | Tool | Description |
43
45
  |---|---|
44
46
  | `scheduling.check_availability` | Check available slots for a provider/service in a date range |
45
- | `scheduling.book` | Book a new session |
46
- | `scheduling.reschedule` | Reschedule an existing session |
47
+ | `scheduling.list_sessions` | List sessions filtered by date, provider, client, or status |
48
+ | `scheduling.book` | Book a new session for a client with a provider |
49
+ | `scheduling.reschedule` | Reschedule an existing session to a new datetime |
47
50
  | `scheduling.cancel` | Cancel a session |
48
51
 
49
- ### Clients (3)
52
+ ### Clients (4)
50
53
 
51
54
  | Tool | Description |
52
55
  |---|---|
53
56
  | `clients.list` | List clients with search and pagination |
54
- | `clients.get` | Get client details with stats |
57
+ | `clients.get` | Get client details including history and pending payments |
55
58
  | `clients.create` | Create a new client |
59
+ | `clients.history` | Get client activity history: past sessions, payments |
60
+
61
+ ### Payments (4)
62
+
63
+ | Tool | Description |
64
+ |---|---|
65
+ | `payments.list_sales` | List sales filtered by client, provider, service, or status |
66
+ | `payments.create_sale` | Create a sale/charge for a client |
67
+ | `payments.record_payment` | Record a payment received against a sale |
68
+ | `payments.client_balance` | Get client account balance and session availability |
69
+
70
+ ### Providers (3)
56
71
 
57
- ### Payments (3)
72
+ | Tool | Description |
73
+ |---|---|
74
+ | `providers.list` | List organization providers/professionals |
75
+ | `providers.get` | Get provider details including services and commissions |
76
+ | `providers.get_commission` | Get provider commission configuration |
77
+
78
+ ### Payroll (5)
58
79
 
59
80
  | Tool | Description |
60
81
  |---|---|
61
- | `payments.get_balance` | Get client balance (available sessions, pending amount) |
62
- | `payments.charge` | Create a sale/charge for a service |
63
- | `payments.record` | Record a payment received against a sale |
82
+ | `payroll.calculate` | Calculate salary settlement for a provider in a period |
83
+ | `payroll.history` | Query payroll settlement history |
84
+ | `payroll.settlement_detail` | Get monthly settlement breakdown (earnings and deductions) |
85
+ | `payroll.vacations` | Query vacation requests |
86
+ | `payroll.request_vacation` | Create a vacation request for a provider |
64
87
 
65
- ### Notifications (1)
88
+ ### Notifications (2)
66
89
 
67
90
  | Tool | Description |
68
91
  |---|---|
69
- | `notifications.send` | Send a notification to a client (reminder, confirmation, etc.) |
92
+ | `notifications.send_session_reminder` | Send a reminder notification for a session |
93
+ | `notifications.send_payment_reminder` | Send a payment reminder for a pending sale |
94
+
95
+ ## API Modules
96
+
97
+ The server connects to three Coordinalo platform modules:
98
+
99
+ - **Coordinalo** — Scheduling and session management
100
+ - **Relacionalo** — Client CRM and relationship management
101
+ - **Planificalo** — Finance, payments, payroll, and provider management
70
102
 
71
103
  ## Development
72
104
 
package/dist/client.d.ts CHANGED
@@ -1,6 +1,7 @@
1
1
  /**
2
2
  * HTTP client for Coordinalo REST API.
3
3
  * Wraps native fetch with auth headers and base URL.
4
+ * All paths are prefixed with /api/organizations/{orgSlug}.
4
5
  */
5
6
  export interface ClientConfig {
6
7
  baseUrl: string;
@@ -12,9 +13,18 @@ export declare class CoordinaloClient {
12
13
  private apiKey;
13
14
  private orgId;
14
15
  constructor(config: ClientConfig);
16
+ /** Base path for all org-scoped endpoints */
17
+ private orgPath;
15
18
  private headers;
19
+ /**
20
+ * Build full URL. If path starts with `/api/` it's used as-is (absolute).
21
+ * Otherwise it's appended to the org-scoped base path.
22
+ */
23
+ private buildUrl;
16
24
  get(path: string, params?: Record<string, string | number | undefined>): Promise<unknown>;
17
25
  post(path: string, body?: unknown): Promise<unknown>;
18
26
  put(path: string, body?: unknown): Promise<unknown>;
27
+ patch(path: string, body?: unknown): Promise<unknown>;
28
+ delete(path: string): Promise<unknown>;
19
29
  }
20
30
  //# sourceMappingURL=client.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACf;AAED,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,KAAK,CAAS;gBAEV,MAAM,EAAE,YAAY;IAMhC,OAAO,CAAC,OAAO;IAQT,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;IAuBzF,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAepD,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;CAc1D"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACf;AAED,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,KAAK,CAAS;gBAEV,MAAM,EAAE,YAAY;IAMhC,6CAA6C;IAC7C,OAAO,CAAC,OAAO;IAIf,OAAO,CAAC,OAAO;IAOf;;;OAGG;IACH,OAAO,CAAC,QAAQ;IAOV,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;IAuBzF,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAepD,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAenD,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAerD,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;CAa7C"}
package/dist/client.js CHANGED
@@ -1,6 +1,7 @@
1
1
  /**
2
2
  * HTTP client for Coordinalo REST API.
3
3
  * Wraps native fetch with auth headers and base URL.
4
+ * All paths are prefixed with /api/organizations/{orgSlug}.
4
5
  */
5
6
  export class CoordinaloClient {
6
7
  baseUrl;
@@ -11,15 +12,28 @@ export class CoordinaloClient {
11
12
  this.apiKey = config.apiKey;
12
13
  this.orgId = config.orgId;
13
14
  }
15
+ /** Base path for all org-scoped endpoints */
16
+ orgPath() {
17
+ return `/api/organizations/${this.orgId}`;
18
+ }
14
19
  headers() {
15
20
  return {
16
21
  'Authorization': `Bearer ${this.apiKey}`,
17
22
  'Content-Type': 'application/json',
18
- 'X-Org-Id': this.orgId,
19
23
  };
20
24
  }
25
+ /**
26
+ * Build full URL. If path starts with `/api/` it's used as-is (absolute).
27
+ * Otherwise it's appended to the org-scoped base path.
28
+ */
29
+ buildUrl(path) {
30
+ if (path.startsWith('/api/')) {
31
+ return `${this.baseUrl}${path}`;
32
+ }
33
+ return `${this.baseUrl}${this.orgPath()}${path}`;
34
+ }
21
35
  async get(path, params) {
22
- const url = new URL(`${this.baseUrl}${path}`);
36
+ const url = new URL(this.buildUrl(path));
23
37
  if (params) {
24
38
  for (const [key, value] of Object.entries(params)) {
25
39
  if (value !== undefined) {
@@ -38,7 +52,7 @@ export class CoordinaloClient {
38
52
  return res.json();
39
53
  }
40
54
  async post(path, body) {
41
- const res = await fetch(`${this.baseUrl}${path}`, {
55
+ const res = await fetch(this.buildUrl(path), {
42
56
  method: 'POST',
43
57
  headers: this.headers(),
44
58
  body: body !== undefined ? JSON.stringify(body) : undefined,
@@ -50,7 +64,7 @@ export class CoordinaloClient {
50
64
  return res.json();
51
65
  }
52
66
  async put(path, body) {
53
- const res = await fetch(`${this.baseUrl}${path}`, {
67
+ const res = await fetch(this.buildUrl(path), {
54
68
  method: 'PUT',
55
69
  headers: this.headers(),
56
70
  body: body !== undefined ? JSON.stringify(body) : undefined,
@@ -61,5 +75,28 @@ export class CoordinaloClient {
61
75
  }
62
76
  return res.json();
63
77
  }
78
+ async patch(path, body) {
79
+ const res = await fetch(this.buildUrl(path), {
80
+ method: 'PATCH',
81
+ headers: this.headers(),
82
+ body: body !== undefined ? JSON.stringify(body) : undefined,
83
+ });
84
+ if (!res.ok) {
85
+ const text = await res.text();
86
+ throw new Error(`PATCH ${path} failed (${res.status}): ${text}`);
87
+ }
88
+ return res.json();
89
+ }
90
+ async delete(path) {
91
+ const res = await fetch(this.buildUrl(path), {
92
+ method: 'DELETE',
93
+ headers: this.headers(),
94
+ });
95
+ if (!res.ok) {
96
+ const text = await res.text();
97
+ throw new Error(`DELETE ${path} failed (${res.status}): ${text}`);
98
+ }
99
+ return res.json();
100
+ }
64
101
  }
65
102
  //# sourceMappingURL=client.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -6,6 +6,8 @@ import { schedulingTools } from './tools/scheduling.js';
6
6
  import { clientsTools } from './tools/clients.js';
7
7
  import { paymentsTools } from './tools/payments.js';
8
8
  import { notificationsTools } from './tools/notifications.js';
9
+ import { providersTools } from './tools/providers.js';
10
+ import { payrollTools } from './tools/payroll.js';
9
11
  // --- Validate env vars ---
10
12
  const API_KEY = process.env.SERVICIALO_API_KEY;
11
13
  const ORG_ID = process.env.SERVICIALO_ORG_ID;
@@ -27,13 +29,15 @@ const apiClient = new CoordinaloClient({
27
29
  // --- Init MCP server ---
28
30
  const server = new McpServer({
29
31
  name: 'servicialo',
30
- version: '0.1.0',
32
+ version: '0.2.0',
31
33
  });
32
34
  const allTools = {
33
35
  ...schedulingTools,
34
36
  ...clientsTools,
35
37
  ...paymentsTools,
36
38
  ...notificationsTools,
39
+ ...providersTools,
40
+ ...payrollTools,
37
41
  };
38
42
  for (const [name, tool] of Object.entries(allTools)) {
39
43
  server.tool(name, tool.description, tool.schema.shape, async (args) => {
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -40,9 +40,9 @@ export declare const clientsTools: {
40
40
  page: number;
41
41
  search?: string | undefined;
42
42
  }, {
43
- search?: string | undefined;
44
43
  limit?: number | undefined;
45
44
  page?: number | undefined;
45
+ search?: string | undefined;
46
46
  }>;
47
47
  handler: (client: CoordinaloClient, args: {
48
48
  search?: string;
@@ -133,6 +133,19 @@ export declare const clientsTools: {
133
133
  actor: z.infer<typeof ActorSchema>;
134
134
  }) => Promise<unknown>;
135
135
  };
136
+ 'clients.history': {
137
+ description: string;
138
+ schema: z.ZodObject<{
139
+ client_id: z.ZodString;
140
+ }, "strip", z.ZodTypeAny, {
141
+ client_id: string;
142
+ }, {
143
+ client_id: string;
144
+ }>;
145
+ handler: (client: CoordinaloClient, args: {
146
+ client_id: string;
147
+ }) => Promise<unknown>;
148
+ };
136
149
  };
137
150
  export {};
138
151
  //# sourceMappingURL=clients.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"clients.d.ts","sourceRoot":"","sources":["../../src/tools/clients.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAErD,QAAA,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;EAOf,CAAC;AAEH,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;0BAQG,gBAAgB,QAAQ;YAAE,MAAM,CAAC,EAAE,MAAM,CAAC;YAAC,KAAK,CAAC,EAAE,MAAM,CAAC;YAAC,IAAI,CAAC,EAAE,MAAM,CAAA;SAAE;;;;;;;;;;;0BAe1E,gBAAgB,QAAQ;YAAE,SAAS,EAAE,MAAM,CAAA;SAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0BAe7C,gBAAgB,QAAQ;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,SAAS,EAAE,MAAM,CAAC;YAAC,KAAK,CAAC,EAAE,MAAM,CAAC;YAAC,KAAK,CAAC,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,CAAA;SAAE;;CAW1J,CAAC"}
1
+ {"version":3,"file":"clients.d.ts","sourceRoot":"","sources":["../../src/tools/clients.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAErD,QAAA,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;EAOf,CAAC;AAEH,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;0BAQG,gBAAgB,QAAQ;YAAE,MAAM,CAAC,EAAE,MAAM,CAAC;YAAC,KAAK,CAAC,EAAE,MAAM,CAAC;YAAC,IAAI,CAAC,EAAE,MAAM,CAAA;SAAE;;;;;;;;;;;0BAc1E,gBAAgB,QAAQ;YAAE,SAAS,EAAE,MAAM,CAAA;SAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0BAc7C,gBAAgB,QAAQ;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,SAAS,EAAE,MAAM,CAAC;YAAC,KAAK,CAAC,EAAE,MAAM,CAAC;YAAC,KAAK,CAAC,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,CAAA;SAAE;;;;;;;;;;;0BAgB/H,gBAAgB,QAAQ;YAAE,SAAS,EAAE,MAAM,CAAA;SAAE;;CAIxE,CAAC"}
@@ -11,27 +11,25 @@ export const clientsTools = {
11
11
  'clients.list': {
12
12
  description: 'Lista los clientes de la organización con búsqueda y paginación',
13
13
  schema: z.object({
14
- search: z.string().optional().describe('Texto para buscar por nombre, email o teléfono'),
15
- limit: z.number().default(20).describe('Cantidad de resultados por página'),
14
+ search: z.string().optional().describe('Buscar por nombre, email o teléfono'),
15
+ limit: z.number().default(20).describe('Resultados por página'),
16
16
  page: z.number().default(1).describe('Número de página'),
17
17
  }),
18
18
  handler: async (client, args) => {
19
- const result = await client.get('/api/v1/clients', {
19
+ return client.get('/relacionalo/clients', {
20
20
  search: args.search,
21
21
  limit: args.limit ?? 20,
22
22
  page: args.page ?? 1,
23
23
  });
24
- return result;
25
24
  },
26
25
  },
27
26
  'clients.get': {
28
- description: 'Obtiene el detalle de un cliente incluyendo estadísticas (sesiones totales, monto gastado, última sesión)',
27
+ description: 'Obtiene el detalle de un cliente incluyendo historial y pagos pendientes',
29
28
  schema: z.object({
30
29
  client_id: z.string().describe('ID del cliente'),
31
30
  }),
32
31
  handler: async (client, args) => {
33
- const result = await client.get(`/api/v1/clients/${args.client_id}`);
34
- return result;
32
+ return client.get(`/relacionalo/clients/${args.client_id}`);
35
33
  },
36
34
  },
37
35
  'clients.create': {
@@ -44,14 +42,22 @@ export const clientsTools = {
44
42
  actor: ActorSchema.describe('Quién realiza la acción'),
45
43
  }),
46
44
  handler: async (client, args) => {
47
- const result = await client.post('/api/v1/clients', {
45
+ return client.post('/relacionalo/clients', {
48
46
  name: args.name,
49
47
  lastName: args.last_name,
50
48
  email: args.email,
51
49
  phone: args.phone,
52
50
  actor: args.actor,
53
51
  });
54
- return result;
52
+ },
53
+ },
54
+ 'clients.history': {
55
+ description: 'Obtiene el historial de un cliente: sesiones pasadas, pagos y actividad',
56
+ schema: z.object({
57
+ client_id: z.string().describe('ID del cliente'),
58
+ }),
59
+ handler: async (client, args) => {
60
+ return client.get(`/relacionalo/clients/${args.client_id}/history`);
55
61
  },
56
62
  },
57
63
  };
@@ -1 +1 @@
1
- {"version":3,"file":"clients.js","sourceRoot":"","sources":["../../src/tools/clients.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,MAAM,WAAW,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3B,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,UAAU,EAAE,cAAc,EAAE,OAAO,CAAC,CAAC;IAC7D,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IACd,YAAY,EAAE,CAAC,CAAC,MAAM,CAAC;QACrB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;QAChB,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;KACf,CAAC,CAAC,QAAQ,EAAE;CACd,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,cAAc,EAAE;QACd,WAAW,EAAE,iEAAiE;QAC9E,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;YACf,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,gDAAgD,CAAC;YACxF,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,mCAAmC,CAAC;YAC3E,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,kBAAkB,CAAC;SACzD,CAAC;QACF,OAAO,EAAE,KAAK,EAAE,MAAwB,EAAE,IAAwD,EAAE,EAAE;YACpG,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,iBAAiB,EAAE;gBACjD,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,EAAE;gBACvB,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC;aACrB,CAAC,CAAC;YACH,OAAO,MAAM,CAAC;QAChB,CAAC;KACF;IAED,aAAa,EAAE;QACb,WAAW,EAAE,2GAA2G;QACxH,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;YACf,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,gBAAgB,CAAC;SACjD,CAAC;QACF,OAAO,EAAE,KAAK,EAAE,MAAwB,EAAE,IAA2B,EAAE,EAAE;YACvE,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,mBAAmB,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;YACrE,OAAO,MAAM,CAAC;QAChB,CAAC;KACF;IAED,gBAAgB,EAAE;QAChB,WAAW,EAAE,0CAA0C;QACvD,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;YACf,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,oBAAoB,CAAC;YAC/C,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,sBAAsB,CAAC;YACtD,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mBAAmB,CAAC;YAClE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,sBAAsB,CAAC;YAC7D,KAAK,EAAE,WAAW,CAAC,QAAQ,CAAC,yBAAyB,CAAC;SACvD,CAAC;QACF,OAAO,EAAE,KAAK,EAAE,MAAwB,EAAE,IAA6G,EAAE,EAAE;YACzJ,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,iBAAiB,EAAE;gBAClD,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,QAAQ,EAAE,IAAI,CAAC,SAAS;gBACxB,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,KAAK,EAAE,IAAI,CAAC,KAAK;aAClB,CAAC,CAAC;YACH,OAAO,MAAM,CAAC;QAChB,CAAC;KACF;CACF,CAAC"}
1
+ {"version":3,"file":"clients.js","sourceRoot":"","sources":["../../src/tools/clients.ts"],"names":[],"mappings":"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"}
@@ -1,33 +1,30 @@
1
1
  import { z } from 'zod';
2
2
  import type { CoordinaloClient } from '../client.js';
3
3
  export declare const notificationsTools: {
4
- 'notifications.send': {
4
+ 'notifications.send_session_reminder': {
5
5
  description: string;
6
6
  schema: z.ZodObject<{
7
- client_id: z.ZodString;
8
- type: z.ZodEnum<["reminder", "confirmation", "cancellation", "custom"]>;
9
- session_id: z.ZodOptional<z.ZodString>;
10
- message: z.ZodOptional<z.ZodString>;
11
- channel: z.ZodOptional<z.ZodEnum<["whatsapp", "email", "sms"]>>;
7
+ session_id: z.ZodString;
12
8
  }, "strip", z.ZodTypeAny, {
13
- type: "custom" | "reminder" | "confirmation" | "cancellation";
14
- client_id: string;
15
- message?: string | undefined;
16
- session_id?: string | undefined;
17
- channel?: "email" | "whatsapp" | "sms" | undefined;
9
+ session_id: string;
18
10
  }, {
19
- type: "custom" | "reminder" | "confirmation" | "cancellation";
20
- client_id: string;
21
- message?: string | undefined;
22
- session_id?: string | undefined;
23
- channel?: "email" | "whatsapp" | "sms" | undefined;
11
+ session_id: string;
24
12
  }>;
25
13
  handler: (client: CoordinaloClient, args: {
26
- client_id: string;
27
- type: string;
28
- session_id?: string;
29
- message?: string;
30
- channel?: string;
14
+ session_id: string;
15
+ }) => Promise<unknown>;
16
+ };
17
+ 'notifications.send_payment_reminder': {
18
+ description: string;
19
+ schema: z.ZodObject<{
20
+ venta_id: z.ZodString;
21
+ }, "strip", z.ZodTypeAny, {
22
+ venta_id: string;
23
+ }, {
24
+ venta_id: string;
25
+ }>;
26
+ handler: (client: CoordinaloClient, args: {
27
+ venta_id: string;
31
28
  }) => Promise<unknown>;
32
29
  };
33
30
  };
@@ -1 +1 @@
1
- {"version":3,"file":"notifications.d.ts","sourceRoot":"","sources":["../../src/tools/notifications.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAErD,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;0BAUH,gBAAgB,QAAQ;YAAE,SAAS,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAC;YAAC,UAAU,CAAC,EAAE,MAAM,CAAC;YAAC,OAAO,CAAC,EAAE,MAAM,CAAC;YAAC,OAAO,CAAC,EAAE,MAAM,CAAA;SAAE;;CAW/I,CAAC"}
1
+ {"version":3,"file":"notifications.d.ts","sourceRoot":"","sources":["../../src/tools/notifications.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAErD,eAAO,MAAM,kBAAkB;;;;;;;;;;0BAMH,gBAAgB,QAAQ;YAAE,UAAU,EAAE,MAAM,CAAA;SAAE;;;;;;;;;;;0BAU9C,gBAAgB,QAAQ;YAAE,QAAQ,EAAE,MAAM,CAAA;SAAE;;CAIvE,CAAC"}
@@ -1,23 +1,21 @@
1
1
  import { z } from 'zod';
2
2
  export const notificationsTools = {
3
- 'notifications.send': {
4
- description: 'Envía una notificación (recordatorio, confirmación, etc.) a un cliente por el canal configurado',
3
+ 'notifications.send_session_reminder': {
4
+ description: 'Envía una notificación/recordatorio para una sesión específica',
5
5
  schema: z.object({
6
- client_id: z.string().describe('ID del cliente destinatario'),
7
- type: z.enum(['reminder', 'confirmation', 'cancellation', 'custom']).describe('Tipo de notificación'),
8
- session_id: z.string().optional().describe('ID de la sesión relacionada (si aplica)'),
9
- message: z.string().optional().describe('Mensaje personalizado (para type=custom)'),
10
- channel: z.enum(['whatsapp', 'email', 'sms']).optional().describe('Canal de envío (default: el preferido del cliente)'),
6
+ session_id: z.string().describe('ID de la sesión'),
11
7
  }),
12
8
  handler: async (client, args) => {
13
- const result = await client.post('/api/v1/notifications', {
14
- clientId: args.client_id,
15
- type: args.type,
16
- sessionId: args.session_id,
17
- message: args.message,
18
- channel: args.channel,
19
- });
20
- return result;
9
+ return client.post(`/coordinalo/sessions/${args.session_id}/send-notification`);
10
+ },
11
+ },
12
+ 'notifications.send_payment_reminder': {
13
+ description: 'Envía un recordatorio de pago para una venta pendiente',
14
+ schema: z.object({
15
+ venta_id: z.string().describe('ID de la venta'),
16
+ }),
17
+ handler: async (client, args) => {
18
+ return client.post(`/planificalo/sales/${args.venta_id}/send-payment-reminder`);
21
19
  },
22
20
  },
23
21
  };
@@ -1 +1 @@
1
- {"version":3,"file":"notifications.js","sourceRoot":"","sources":["../../src/tools/notifications.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,oBAAoB,EAAE;QACpB,WAAW,EAAE,iGAAiG;QAC9G,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;YACf,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,6BAA6B,CAAC;YAC7D,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,cAAc,EAAE,cAAc,EAAE,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,sBAAsB,CAAC;YACrG,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,yCAAyC,CAAC;YACrF,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,0CAA0C,CAAC;YACnF,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,oDAAoD,CAAC;SACxH,CAAC;QACF,OAAO,EAAE,KAAK,EAAE,MAAwB,EAAE,IAAkG,EAAE,EAAE;YAC9I,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,uBAAuB,EAAE;gBACxD,QAAQ,EAAE,IAAI,CAAC,SAAS;gBACxB,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,SAAS,EAAE,IAAI,CAAC,UAAU;gBAC1B,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,OAAO,EAAE,IAAI,CAAC,OAAO;aACtB,CAAC,CAAC;YACH,OAAO,MAAM,CAAC;QAChB,CAAC;KACF;CACF,CAAC"}
1
+ {"version":3,"file":"notifications.js","sourceRoot":"","sources":["../../src/tools/notifications.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,qCAAqC,EAAE;QACrC,WAAW,EAAE,gEAAgE;QAC7E,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;YACf,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,iBAAiB,CAAC;SACnD,CAAC;QACF,OAAO,EAAE,KAAK,EAAE,MAAwB,EAAE,IAA4B,EAAE,EAAE;YACxE,OAAO,MAAM,CAAC,IAAI,CAAC,wBAAwB,IAAI,CAAC,UAAU,oBAAoB,CAAC,CAAC;QAClF,CAAC;KACF;IAED,qCAAqC,EAAE;QACrC,WAAW,EAAE,wDAAwD;QACrE,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;YACf,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,gBAAgB,CAAC;SAChD,CAAC;QACF,OAAO,EAAE,KAAK,EAAE,MAAwB,EAAE,IAA0B,EAAE,EAAE;YACtE,OAAO,MAAM,CAAC,IAAI,CAAC,sBAAsB,IAAI,CAAC,QAAQ,wBAAwB,CAAC,CAAC;QAClF,CAAC;KACF;CACF,CAAC"}
@@ -1,51 +1,69 @@
1
1
  import { z } from 'zod';
2
2
  import type { CoordinaloClient } from '../client.js';
3
3
  export declare const paymentsTools: {
4
- 'payments.get_balance': {
4
+ 'payments.list_sales': {
5
5
  description: string;
6
6
  schema: z.ZodObject<{
7
- client_id: z.ZodString;
7
+ client_id: z.ZodOptional<z.ZodString>;
8
+ provider_id: z.ZodOptional<z.ZodString>;
9
+ service_id: z.ZodOptional<z.ZodString>;
10
+ status: z.ZodOptional<z.ZodString>;
11
+ limit: z.ZodDefault<z.ZodNumber>;
12
+ page: z.ZodDefault<z.ZodNumber>;
8
13
  }, "strip", z.ZodTypeAny, {
9
- client_id: string;
14
+ limit: number;
15
+ page: number;
16
+ status?: string | undefined;
17
+ provider_id?: string | undefined;
18
+ service_id?: string | undefined;
19
+ client_id?: string | undefined;
10
20
  }, {
11
- client_id: string;
21
+ status?: string | undefined;
22
+ provider_id?: string | undefined;
23
+ service_id?: string | undefined;
24
+ client_id?: string | undefined;
25
+ limit?: number | undefined;
26
+ page?: number | undefined;
12
27
  }>;
13
28
  handler: (client: CoordinaloClient, args: {
14
- client_id: string;
15
- }) => Promise<{
16
- client_id: string;
17
- sessions_available: {} | null;
18
- pending_amount: {} | null;
19
- total_sessions: {} | null;
20
- total_spent: {} | null;
21
- }>;
29
+ client_id?: string;
30
+ provider_id?: string;
31
+ service_id?: string;
32
+ status?: string;
33
+ limit?: number;
34
+ page?: number;
35
+ }) => Promise<unknown>;
22
36
  };
23
- 'payments.charge': {
37
+ 'payments.create_sale': {
24
38
  description: string;
25
39
  schema: z.ZodObject<{
26
40
  client_id: z.ZodString;
27
41
  service_id: z.ZodString;
28
42
  provider_id: z.ZodString;
29
- amount: z.ZodNumber;
43
+ quantity: z.ZodDefault<z.ZodNumber>;
44
+ unit_price: z.ZodNumber;
30
45
  }, "strip", z.ZodTypeAny, {
31
46
  provider_id: string;
32
47
  service_id: string;
33
48
  client_id: string;
34
- amount: number;
49
+ quantity: number;
50
+ unit_price: number;
35
51
  }, {
36
52
  provider_id: string;
37
53
  service_id: string;
38
54
  client_id: string;
39
- amount: number;
55
+ unit_price: number;
56
+ quantity?: number | undefined;
40
57
  }>;
41
58
  handler: (client: CoordinaloClient, args: {
42
59
  client_id: string;
43
60
  service_id: string;
44
61
  provider_id: string;
45
- amount: number;
62
+ quantity?: number;
63
+ unit_price: number;
46
64
  }) => Promise<unknown>;
47
65
  };
48
- 'payments.record': {
66
+ 'payments.record_payment': {
49
67
  description: string;
50
68
  schema: z.ZodObject<{
51
69
  venta_id: z.ZodString;
@@ -54,13 +72,13 @@ export declare const paymentsTools: {
54
72
  reference: z.ZodOptional<z.ZodString>;
55
73
  }, "strip", z.ZodTypeAny, {
56
74
  method: "efectivo" | "transferencia" | "mercadopago" | "tarjeta";
57
- amount: number;
58
75
  venta_id: string;
76
+ amount: number;
59
77
  reference?: string | undefined;
60
78
  }, {
61
79
  method: "efectivo" | "transferencia" | "mercadopago" | "tarjeta";
62
- amount: number;
63
80
  venta_id: string;
81
+ amount: number;
64
82
  reference?: string | undefined;
65
83
  }>;
66
84
  handler: (client: CoordinaloClient, args: {
@@ -70,5 +88,18 @@ export declare const paymentsTools: {
70
88
  reference?: string;
71
89
  }) => Promise<unknown>;
72
90
  };
91
+ 'payments.client_balance': {
92
+ description: string;
93
+ schema: z.ZodObject<{
94
+ client_id: z.ZodString;
95
+ }, "strip", z.ZodTypeAny, {
96
+ client_id: string;
97
+ }, {
98
+ client_id: string;
99
+ }>;
100
+ handler: (client: CoordinaloClient, args: {
101
+ client_id: string;
102
+ }) => Promise<unknown>;
103
+ };
73
104
  };
74
105
  //# sourceMappingURL=payments.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"payments.d.ts","sourceRoot":"","sources":["../../src/tools/payments.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAErD,eAAO,MAAM,aAAa;;;;;;;;;;0BAME,gBAAgB,QAAQ;YAAE,SAAS,EAAE,MAAM,CAAA;SAAE;;;;;;;;;;;;;;;;;;;;;;;;;;0BAsB7C,gBAAgB,QAAQ;YAAE,SAAS,EAAE,MAAM,CAAC;YAAC,UAAU,EAAE,MAAM,CAAC;YAAC,WAAW,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAA;SAAE;;;;;;;;;;;;;;;;;;;;0BAoBtG,gBAAgB,QAAQ;YAAE,QAAQ,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAC;YAAC,SAAS,CAAC,EAAE,MAAM,CAAA;SAAE;;CAU3H,CAAC"}
1
+ {"version":3,"file":"payments.d.ts","sourceRoot":"","sources":["../../src/tools/payments.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAErD,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;0BAWE,gBAAgB,QAAQ;YAAE,SAAS,CAAC,EAAE,MAAM,CAAC;YAAC,WAAW,CAAC,EAAE,MAAM,CAAC;YAAC,UAAU,CAAC,EAAE,MAAM,CAAC;YAAC,MAAM,CAAC,EAAE,MAAM,CAAC;YAAC,KAAK,CAAC,EAAE,MAAM,CAAC;YAAC,IAAI,CAAC,EAAE,MAAM,CAAA;SAAE;;;;;;;;;;;;;;;;;;;;;;;0BAqBzI,gBAAgB,QAAQ;YAAE,SAAS,EAAE,MAAM,CAAC;YAAC,UAAU,EAAE,MAAM,CAAC;YAAC,WAAW,EAAE,MAAM,CAAC;YAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;YAAC,UAAU,EAAE,MAAM,CAAA;SAAE;;;;;;;;;;;;;;;;;;;;0BAmB7H,gBAAgB,QAAQ;YAAE,QAAQ,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAC;YAAC,SAAS,CAAC,EAAE,MAAM,CAAA;SAAE;;;;;;;;;;;0BAehG,gBAAgB,QAAQ;YAAE,SAAS,EAAE,MAAM,CAAA;SAAE;;CAIxE,CAAC"}