@frihet/mcp-server 1.0.1 → 1.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/dist/index.js +30 -1
- package/dist/index.js.map +1 -1
- package/dist/prompts/register-all.d.ts +10 -0
- package/dist/prompts/register-all.d.ts.map +1 -0
- package/dist/prompts/register-all.js +271 -0
- package/dist/prompts/register-all.js.map +1 -0
- package/dist/resources/register-all.d.ts +12 -0
- package/dist/resources/register-all.d.ts.map +1 -0
- package/dist/resources/register-all.js +345 -0
- package/dist/resources/register-all.js.map +1 -0
- package/dist/tools/clients.d.ts.map +1 -1
- package/dist/tools/clients.js +21 -6
- package/dist/tools/clients.js.map +1 -1
- package/dist/tools/expenses.d.ts.map +1 -1
- package/dist/tools/expenses.js +21 -6
- package/dist/tools/expenses.js.map +1 -1
- package/dist/tools/invoices.d.ts.map +1 -1
- package/dist/tools/invoices.js +25 -10
- package/dist/tools/invoices.js.map +1 -1
- package/dist/tools/products.d.ts.map +1 -1
- package/dist/tools/products.js +21 -6
- package/dist/tools/products.js.map +1 -1
- package/dist/tools/quotes.d.ts.map +1 -1
- package/dist/tools/quotes.js +21 -6
- package/dist/tools/quotes.js.map +1 -1
- package/dist/tools/shared.d.ts +125 -5
- package/dist/tools/shared.d.ts.map +1 -1
- package/dist/tools/shared.js +165 -7
- package/dist/tools/shared.js.map +1 -1
- package/dist/tools/webhooks.d.ts.map +1 -1
- package/dist/tools/webhooks.js +21 -6
- package/dist/tools/webhooks.js.map +1 -1
- package/package.json +3 -3
package/dist/tools/invoices.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Invoice tools for the Frihet MCP server.
|
|
3
3
|
*/
|
|
4
4
|
import { z } from "zod/v4";
|
|
5
|
-
import { handleToolError, formatPaginatedResponse, formatRecord } from "./shared.js";
|
|
5
|
+
import { handleToolError, formatPaginatedResponse, formatRecord, listContent, getContent, mutateContent, READ_ONLY_ANNOTATIONS, CREATE_ANNOTATIONS, UPDATE_ANNOTATIONS, DELETE_ANNOTATIONS, paginatedOutput, deleteResultOutput, invoiceItemOutput } from "./shared.js";
|
|
6
6
|
const invoiceItemSchema = z.object({
|
|
7
7
|
description: z.string().describe("Description of the line item / Descripcion del concepto"),
|
|
8
8
|
quantity: z.number().describe("Quantity / Cantidad"),
|
|
@@ -16,6 +16,7 @@ export function registerInvoiceTools(server, client) {
|
|
|
16
16
|
"Returns a paginated list of invoices sorted by creation date. " +
|
|
17
17
|
"/ Lista todas las facturas con paginacion opcional. " +
|
|
18
18
|
"Devuelve una lista paginada de facturas ordenadas por fecha de creacion.",
|
|
19
|
+
annotations: READ_ONLY_ANNOTATIONS,
|
|
19
20
|
inputSchema: {
|
|
20
21
|
limit: z
|
|
21
22
|
.number()
|
|
@@ -31,11 +32,13 @@ export function registerInvoiceTools(server, client) {
|
|
|
31
32
|
.optional()
|
|
32
33
|
.describe("Number of results to skip / Resultados a saltar"),
|
|
33
34
|
},
|
|
35
|
+
outputSchema: paginatedOutput(invoiceItemOutput),
|
|
34
36
|
}, async ({ limit, offset }) => {
|
|
35
37
|
try {
|
|
36
38
|
const result = await client.listInvoices({ limit, offset });
|
|
37
39
|
return {
|
|
38
|
-
content: [
|
|
40
|
+
content: [listContent(formatPaginatedResponse("invoices", result))],
|
|
41
|
+
structuredContent: result,
|
|
39
42
|
};
|
|
40
43
|
}
|
|
41
44
|
catch (error) {
|
|
@@ -47,14 +50,17 @@ export function registerInvoiceTools(server, client) {
|
|
|
47
50
|
title: "Get Invoice",
|
|
48
51
|
description: "Get a single invoice by its ID. Returns the full invoice including line items, totals, and status. " +
|
|
49
52
|
"/ Obtiene una factura por su ID. Devuelve la factura completa con conceptos, totales y estado.",
|
|
53
|
+
annotations: READ_ONLY_ANNOTATIONS,
|
|
50
54
|
inputSchema: {
|
|
51
55
|
id: z.string().describe("Invoice ID / ID de la factura"),
|
|
52
56
|
},
|
|
57
|
+
outputSchema: invoiceItemOutput,
|
|
53
58
|
}, async ({ id }) => {
|
|
54
59
|
try {
|
|
55
60
|
const result = await client.getInvoice(id);
|
|
56
61
|
return {
|
|
57
|
-
content: [
|
|
62
|
+
content: [getContent(formatRecord("Invoice", result))],
|
|
63
|
+
structuredContent: result,
|
|
58
64
|
};
|
|
59
65
|
}
|
|
60
66
|
catch (error) {
|
|
@@ -68,6 +74,7 @@ export function registerInvoiceTools(server, client) {
|
|
|
68
74
|
"The invoice number is auto-generated. " +
|
|
69
75
|
"/ Crea una nueva factura. Requiere nombre del cliente y al menos un concepto. " +
|
|
70
76
|
"El numero de factura se genera automaticamente.",
|
|
77
|
+
annotations: CREATE_ANNOTATIONS,
|
|
71
78
|
inputSchema: {
|
|
72
79
|
clientName: z.string().describe("Client/customer name / Nombre del cliente"),
|
|
73
80
|
items: z
|
|
@@ -93,11 +100,13 @@ export function registerInvoiceTools(server, client) {
|
|
|
93
100
|
.optional()
|
|
94
101
|
.describe("Tax rate percentage (e.g. 21 for 21% IVA) / Porcentaje de impuesto"),
|
|
95
102
|
},
|
|
103
|
+
outputSchema: invoiceItemOutput,
|
|
96
104
|
}, async (input) => {
|
|
97
105
|
try {
|
|
98
106
|
const result = await client.createInvoice(input);
|
|
99
107
|
return {
|
|
100
|
-
content: [
|
|
108
|
+
content: [mutateContent(formatRecord("Invoice created", result))],
|
|
109
|
+
structuredContent: result,
|
|
101
110
|
};
|
|
102
111
|
}
|
|
103
112
|
catch (error) {
|
|
@@ -109,6 +118,7 @@ export function registerInvoiceTools(server, client) {
|
|
|
109
118
|
title: "Update Invoice",
|
|
110
119
|
description: "Update an existing invoice. Only the provided fields will be changed. " +
|
|
111
120
|
"/ Actualiza una factura existente. Solo se modifican los campos proporcionados.",
|
|
121
|
+
annotations: UPDATE_ANNOTATIONS,
|
|
112
122
|
inputSchema: {
|
|
113
123
|
id: z.string().describe("Invoice ID / ID de la factura"),
|
|
114
124
|
clientName: z.string().optional().describe("Client name / Nombre del cliente"),
|
|
@@ -125,11 +135,13 @@ export function registerInvoiceTools(server, client) {
|
|
|
125
135
|
notes: z.string().optional().describe("Notes / Notas"),
|
|
126
136
|
taxRate: z.number().min(0).max(100).optional().describe("Tax rate % / IVA %"),
|
|
127
137
|
},
|
|
138
|
+
outputSchema: invoiceItemOutput,
|
|
128
139
|
}, async ({ id, ...data }) => {
|
|
129
140
|
try {
|
|
130
141
|
const result = await client.updateInvoice(id, data);
|
|
131
142
|
return {
|
|
132
|
-
content: [
|
|
143
|
+
content: [mutateContent(formatRecord("Invoice updated", result))],
|
|
144
|
+
structuredContent: result,
|
|
133
145
|
};
|
|
134
146
|
}
|
|
135
147
|
catch (error) {
|
|
@@ -141,14 +153,17 @@ export function registerInvoiceTools(server, client) {
|
|
|
141
153
|
title: "Delete Invoice",
|
|
142
154
|
description: "Permanently delete an invoice by its ID. This action cannot be undone. " +
|
|
143
155
|
"/ Elimina permanentemente una factura por su ID. Esta accion no se puede deshacer.",
|
|
156
|
+
annotations: DELETE_ANNOTATIONS,
|
|
144
157
|
inputSchema: {
|
|
145
158
|
id: z.string().describe("Invoice ID / ID de la factura"),
|
|
146
159
|
},
|
|
160
|
+
outputSchema: deleteResultOutput,
|
|
147
161
|
}, async ({ id }) => {
|
|
148
162
|
try {
|
|
149
163
|
await client.deleteInvoice(id);
|
|
150
164
|
return {
|
|
151
|
-
content: [
|
|
165
|
+
content: [mutateContent(`Invoice ${id} deleted successfully. / Factura ${id} eliminada correctamente.`)],
|
|
166
|
+
structuredContent: { success: true, id },
|
|
152
167
|
};
|
|
153
168
|
}
|
|
154
169
|
catch (error) {
|
|
@@ -160,21 +175,21 @@ export function registerInvoiceTools(server, client) {
|
|
|
160
175
|
title: "Search Invoices",
|
|
161
176
|
description: "Search invoices by client name. Useful for finding all invoices for a specific client. " +
|
|
162
177
|
"/ Busca facturas por nombre de cliente. Util para encontrar todas las facturas de un cliente concreto.",
|
|
178
|
+
annotations: READ_ONLY_ANNOTATIONS,
|
|
163
179
|
inputSchema: {
|
|
164
180
|
clientName: z.string().describe("Client name to search for / Nombre del cliente a buscar"),
|
|
165
181
|
limit: z.number().int().min(1).max(100).optional().describe("Max results / Resultados maximos"),
|
|
166
182
|
offset: z.number().int().min(0).optional().describe("Offset / Desplazamiento"),
|
|
167
183
|
},
|
|
184
|
+
outputSchema: paginatedOutput(invoiceItemOutput),
|
|
168
185
|
}, async ({ clientName, limit, offset }) => {
|
|
169
186
|
try {
|
|
170
187
|
const result = await client.searchInvoices(clientName, { limit, offset });
|
|
171
188
|
return {
|
|
172
189
|
content: [
|
|
173
|
-
{
|
|
174
|
-
type: "text",
|
|
175
|
-
text: formatPaginatedResponse(`invoices matching "${clientName}"`, result),
|
|
176
|
-
},
|
|
190
|
+
listContent(formatPaginatedResponse(`invoices matching "${clientName}"`, result)),
|
|
177
191
|
],
|
|
192
|
+
structuredContent: result,
|
|
178
193
|
};
|
|
179
194
|
}
|
|
180
195
|
catch (error) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"invoices.js","sourceRoot":"","sources":["../../src/tools/invoices.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAE3B,OAAO,EAAE,eAAe,EAAE,uBAAuB,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"invoices.js","sourceRoot":"","sources":["../../src/tools/invoices.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"products.d.ts","sourceRoot":"","sources":["../../src/tools/products.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEzE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAG5D,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,aAAa,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"products.d.ts","sourceRoot":"","sources":["../../src/tools/products.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEzE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAG5D,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,aAAa,GAAG,IAAI,CAoKnF"}
|
package/dist/tools/products.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Product tools for the Frihet MCP server.
|
|
3
3
|
*/
|
|
4
4
|
import { z } from "zod/v4";
|
|
5
|
-
import { handleToolError, formatPaginatedResponse, formatRecord } from "./shared.js";
|
|
5
|
+
import { handleToolError, formatPaginatedResponse, formatRecord, listContent, getContent, mutateContent, READ_ONLY_ANNOTATIONS, CREATE_ANNOTATIONS, UPDATE_ANNOTATIONS, DELETE_ANNOTATIONS, paginatedOutput, deleteResultOutput, productItemOutput } from "./shared.js";
|
|
6
6
|
export function registerProductTools(server, client) {
|
|
7
7
|
// -- list_products --
|
|
8
8
|
server.registerTool("list_products", {
|
|
@@ -11,15 +11,18 @@ export function registerProductTools(server, client) {
|
|
|
11
11
|
"Products are reusable items that can be added to invoices and quotes. " +
|
|
12
12
|
"/ Lista todos los productos/servicios con paginacion opcional. " +
|
|
13
13
|
"Los productos son conceptos reutilizables para facturas y presupuestos.",
|
|
14
|
+
annotations: READ_ONLY_ANNOTATIONS,
|
|
14
15
|
inputSchema: {
|
|
15
16
|
limit: z.number().int().min(1).max(100).optional().describe("Max results (1-100) / Resultados maximos"),
|
|
16
17
|
offset: z.number().int().min(0).optional().describe("Offset / Desplazamiento"),
|
|
17
18
|
},
|
|
19
|
+
outputSchema: paginatedOutput(productItemOutput),
|
|
18
20
|
}, async ({ limit, offset }) => {
|
|
19
21
|
try {
|
|
20
22
|
const result = await client.listProducts({ limit, offset });
|
|
21
23
|
return {
|
|
22
|
-
content: [
|
|
24
|
+
content: [listContent(formatPaginatedResponse("products", result))],
|
|
25
|
+
structuredContent: result,
|
|
23
26
|
};
|
|
24
27
|
}
|
|
25
28
|
catch (error) {
|
|
@@ -31,14 +34,17 @@ export function registerProductTools(server, client) {
|
|
|
31
34
|
title: "Get Product",
|
|
32
35
|
description: "Get a single product/service by its ID. " +
|
|
33
36
|
"/ Obtiene un producto/servicio por su ID.",
|
|
37
|
+
annotations: READ_ONLY_ANNOTATIONS,
|
|
34
38
|
inputSchema: {
|
|
35
39
|
id: z.string().describe("Product ID / ID del producto"),
|
|
36
40
|
},
|
|
41
|
+
outputSchema: productItemOutput,
|
|
37
42
|
}, async ({ id }) => {
|
|
38
43
|
try {
|
|
39
44
|
const result = await client.getProduct(id);
|
|
40
45
|
return {
|
|
41
|
-
content: [
|
|
46
|
+
content: [getContent(formatRecord("Product", result))],
|
|
47
|
+
structuredContent: result,
|
|
42
48
|
};
|
|
43
49
|
}
|
|
44
50
|
catch (error) {
|
|
@@ -52,6 +58,7 @@ export function registerProductTools(server, client) {
|
|
|
52
58
|
"Products can be referenced when creating invoices and quotes for faster data entry. " +
|
|
53
59
|
"/ Crea un nuevo producto o servicio. Requiere nombre y precio unitario. " +
|
|
54
60
|
"Los productos se pueden usar al crear facturas y presupuestos.",
|
|
61
|
+
annotations: CREATE_ANNOTATIONS,
|
|
55
62
|
inputSchema: {
|
|
56
63
|
name: z.string().describe("Product/service name / Nombre del producto o servicio"),
|
|
57
64
|
unitPrice: z.number().describe("Unit price in EUR / Precio unitario en EUR"),
|
|
@@ -68,11 +75,13 @@ export function registerProductTools(server, client) {
|
|
|
68
75
|
.describe("Default tax rate % (e.g. 21 for 21% IVA) / IVA por defecto"),
|
|
69
76
|
sku: z.string().optional().describe("SKU / Reference code / Codigo de referencia"),
|
|
70
77
|
},
|
|
78
|
+
outputSchema: productItemOutput,
|
|
71
79
|
}, async (input) => {
|
|
72
80
|
try {
|
|
73
81
|
const result = await client.createProduct(input);
|
|
74
82
|
return {
|
|
75
|
-
content: [
|
|
83
|
+
content: [mutateContent(formatRecord("Product created", result))],
|
|
84
|
+
structuredContent: result,
|
|
76
85
|
};
|
|
77
86
|
}
|
|
78
87
|
catch (error) {
|
|
@@ -84,6 +93,7 @@ export function registerProductTools(server, client) {
|
|
|
84
93
|
title: "Update Product",
|
|
85
94
|
description: "Update an existing product. Only the provided fields will be changed. " +
|
|
86
95
|
"/ Actualiza un producto existente. Solo se modifican los campos proporcionados.",
|
|
96
|
+
annotations: UPDATE_ANNOTATIONS,
|
|
87
97
|
inputSchema: {
|
|
88
98
|
id: z.string().describe("Product ID / ID del producto"),
|
|
89
99
|
name: z.string().optional().describe("Name / Nombre"),
|
|
@@ -93,11 +103,13 @@ export function registerProductTools(server, client) {
|
|
|
93
103
|
taxRate: z.number().min(0).max(100).optional().describe("Tax rate % / IVA %"),
|
|
94
104
|
sku: z.string().optional().describe("SKU / Referencia"),
|
|
95
105
|
},
|
|
106
|
+
outputSchema: productItemOutput,
|
|
96
107
|
}, async ({ id, ...data }) => {
|
|
97
108
|
try {
|
|
98
109
|
const result = await client.updateProduct(id, data);
|
|
99
110
|
return {
|
|
100
|
-
content: [
|
|
111
|
+
content: [mutateContent(formatRecord("Product updated", result))],
|
|
112
|
+
structuredContent: result,
|
|
101
113
|
};
|
|
102
114
|
}
|
|
103
115
|
catch (error) {
|
|
@@ -109,14 +121,17 @@ export function registerProductTools(server, client) {
|
|
|
109
121
|
title: "Delete Product",
|
|
110
122
|
description: "Permanently delete a product by its ID. This action cannot be undone. " +
|
|
111
123
|
"/ Elimina permanentemente un producto por su ID. Esta accion no se puede deshacer.",
|
|
124
|
+
annotations: DELETE_ANNOTATIONS,
|
|
112
125
|
inputSchema: {
|
|
113
126
|
id: z.string().describe("Product ID / ID del producto"),
|
|
114
127
|
},
|
|
128
|
+
outputSchema: deleteResultOutput,
|
|
115
129
|
}, async ({ id }) => {
|
|
116
130
|
try {
|
|
117
131
|
await client.deleteProduct(id);
|
|
118
132
|
return {
|
|
119
|
-
content: [
|
|
133
|
+
content: [mutateContent(`Product ${id} deleted successfully. / Producto ${id} eliminado correctamente.`)],
|
|
134
|
+
structuredContent: { success: true, id },
|
|
120
135
|
};
|
|
121
136
|
}
|
|
122
137
|
catch (error) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"products.js","sourceRoot":"","sources":["../../src/tools/products.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAE3B,OAAO,EAAE,eAAe,EAAE,uBAAuB,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"products.js","sourceRoot":"","sources":["../../src/tools/products.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"quotes.d.ts","sourceRoot":"","sources":["../../src/tools/quotes.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEzE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAS5D,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,aAAa,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"quotes.d.ts","sourceRoot":"","sources":["../../src/tools/quotes.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEzE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAS5D,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,aAAa,GAAG,IAAI,CAsKjF"}
|
package/dist/tools/quotes.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Quote tools for the Frihet MCP server.
|
|
3
3
|
*/
|
|
4
4
|
import { z } from "zod/v4";
|
|
5
|
-
import { handleToolError, formatPaginatedResponse, formatRecord } from "./shared.js";
|
|
5
|
+
import { handleToolError, formatPaginatedResponse, formatRecord, listContent, getContent, mutateContent, READ_ONLY_ANNOTATIONS, CREATE_ANNOTATIONS, UPDATE_ANNOTATIONS, DELETE_ANNOTATIONS, paginatedOutput, deleteResultOutput, quoteItemOutput } from "./shared.js";
|
|
6
6
|
const quoteItemSchema = z.object({
|
|
7
7
|
description: z.string().describe("Description of the line item / Descripcion del concepto"),
|
|
8
8
|
quantity: z.number().describe("Quantity / Cantidad"),
|
|
@@ -16,15 +16,18 @@ export function registerQuoteTools(server, client) {
|
|
|
16
16
|
"Quotes are proposals sent to clients before they become invoices. " +
|
|
17
17
|
"/ Lista todos los presupuestos con paginacion opcional. " +
|
|
18
18
|
"Los presupuestos son propuestas enviadas a clientes antes de facturar.",
|
|
19
|
+
annotations: READ_ONLY_ANNOTATIONS,
|
|
19
20
|
inputSchema: {
|
|
20
21
|
limit: z.number().int().min(1).max(100).optional().describe("Max results (1-100) / Resultados maximos"),
|
|
21
22
|
offset: z.number().int().min(0).optional().describe("Offset / Desplazamiento"),
|
|
22
23
|
},
|
|
24
|
+
outputSchema: paginatedOutput(quoteItemOutput),
|
|
23
25
|
}, async ({ limit, offset }) => {
|
|
24
26
|
try {
|
|
25
27
|
const result = await client.listQuotes({ limit, offset });
|
|
26
28
|
return {
|
|
27
|
-
content: [
|
|
29
|
+
content: [listContent(formatPaginatedResponse("quotes", result))],
|
|
30
|
+
structuredContent: result,
|
|
28
31
|
};
|
|
29
32
|
}
|
|
30
33
|
catch (error) {
|
|
@@ -36,14 +39,17 @@ export function registerQuoteTools(server, client) {
|
|
|
36
39
|
title: "Get Quote",
|
|
37
40
|
description: "Get a single quote/estimate by its ID. Returns the full quote with line items and totals. " +
|
|
38
41
|
"/ Obtiene un presupuesto por su ID. Devuelve el presupuesto completo con conceptos y totales.",
|
|
42
|
+
annotations: READ_ONLY_ANNOTATIONS,
|
|
39
43
|
inputSchema: {
|
|
40
44
|
id: z.string().describe("Quote ID / ID del presupuesto"),
|
|
41
45
|
},
|
|
46
|
+
outputSchema: quoteItemOutput,
|
|
42
47
|
}, async ({ id }) => {
|
|
43
48
|
try {
|
|
44
49
|
const result = await client.getQuote(id);
|
|
45
50
|
return {
|
|
46
|
-
content: [
|
|
51
|
+
content: [getContent(formatRecord("Quote", result))],
|
|
52
|
+
structuredContent: result,
|
|
47
53
|
};
|
|
48
54
|
}
|
|
49
55
|
catch (error) {
|
|
@@ -57,6 +63,7 @@ export function registerQuoteTools(server, client) {
|
|
|
57
63
|
"Quotes can later be converted to invoices. " +
|
|
58
64
|
"/ Crea un nuevo presupuesto para un cliente. Requiere nombre del cliente y al menos un concepto. " +
|
|
59
65
|
"Los presupuestos se pueden convertir en facturas despues.",
|
|
66
|
+
annotations: CREATE_ANNOTATIONS,
|
|
60
67
|
inputSchema: {
|
|
61
68
|
clientName: z.string().describe("Client name / Nombre del cliente"),
|
|
62
69
|
items: z
|
|
@@ -73,11 +80,13 @@ export function registerQuoteTools(server, client) {
|
|
|
73
80
|
.optional()
|
|
74
81
|
.describe("Quote status (default: draft) / Estado del presupuesto"),
|
|
75
82
|
},
|
|
83
|
+
outputSchema: quoteItemOutput,
|
|
76
84
|
}, async (input) => {
|
|
77
85
|
try {
|
|
78
86
|
const result = await client.createQuote(input);
|
|
79
87
|
return {
|
|
80
|
-
content: [
|
|
88
|
+
content: [mutateContent(formatRecord("Quote created", result))],
|
|
89
|
+
structuredContent: result,
|
|
81
90
|
};
|
|
82
91
|
}
|
|
83
92
|
catch (error) {
|
|
@@ -89,6 +98,7 @@ export function registerQuoteTools(server, client) {
|
|
|
89
98
|
title: "Update Quote",
|
|
90
99
|
description: "Update an existing quote. Only the provided fields will be changed. " +
|
|
91
100
|
"/ Actualiza un presupuesto existente. Solo se modifican los campos proporcionados.",
|
|
101
|
+
annotations: UPDATE_ANNOTATIONS,
|
|
92
102
|
inputSchema: {
|
|
93
103
|
id: z.string().describe("Quote ID / ID del presupuesto"),
|
|
94
104
|
clientName: z.string().optional().describe("Client name / Nombre del cliente"),
|
|
@@ -100,11 +110,13 @@ export function registerQuoteTools(server, client) {
|
|
|
100
110
|
.optional()
|
|
101
111
|
.describe("Status / Estado"),
|
|
102
112
|
},
|
|
113
|
+
outputSchema: quoteItemOutput,
|
|
103
114
|
}, async ({ id, ...data }) => {
|
|
104
115
|
try {
|
|
105
116
|
const result = await client.updateQuote(id, data);
|
|
106
117
|
return {
|
|
107
|
-
content: [
|
|
118
|
+
content: [mutateContent(formatRecord("Quote updated", result))],
|
|
119
|
+
structuredContent: result,
|
|
108
120
|
};
|
|
109
121
|
}
|
|
110
122
|
catch (error) {
|
|
@@ -116,14 +128,17 @@ export function registerQuoteTools(server, client) {
|
|
|
116
128
|
title: "Delete Quote",
|
|
117
129
|
description: "Permanently delete a quote by its ID. This action cannot be undone. " +
|
|
118
130
|
"/ Elimina permanentemente un presupuesto por su ID. Esta accion no se puede deshacer.",
|
|
131
|
+
annotations: DELETE_ANNOTATIONS,
|
|
119
132
|
inputSchema: {
|
|
120
133
|
id: z.string().describe("Quote ID / ID del presupuesto"),
|
|
121
134
|
},
|
|
135
|
+
outputSchema: deleteResultOutput,
|
|
122
136
|
}, async ({ id }) => {
|
|
123
137
|
try {
|
|
124
138
|
await client.deleteQuote(id);
|
|
125
139
|
return {
|
|
126
|
-
content: [
|
|
140
|
+
content: [mutateContent(`Quote ${id} deleted successfully. / Presupuesto ${id} eliminado correctamente.`)],
|
|
141
|
+
structuredContent: { success: true, id },
|
|
127
142
|
};
|
|
128
143
|
}
|
|
129
144
|
catch (error) {
|
package/dist/tools/quotes.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"quotes.js","sourceRoot":"","sources":["../../src/tools/quotes.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAE3B,OAAO,EAAE,eAAe,EAAE,uBAAuB,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"quotes.js","sourceRoot":"","sources":["../../src/tools/quotes.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/shared.d.ts
CHANGED
|
@@ -6,15 +6,32 @@
|
|
|
6
6
|
* detection uses duck-typing (checking for `statusCode`/`errorCode` properties)
|
|
7
7
|
* so it works regardless of which FrihetApiError class threw the error.
|
|
8
8
|
*/
|
|
9
|
+
import type { ToolAnnotations, Annotations } from "@modelcontextprotocol/sdk/types.js";
|
|
10
|
+
import { z } from "zod/v4";
|
|
9
11
|
import type { PaginatedResponse } from "../types.js";
|
|
12
|
+
export declare const READ_ONLY_ANNOTATIONS: ToolAnnotations;
|
|
13
|
+
export declare const CREATE_ANNOTATIONS: ToolAnnotations;
|
|
14
|
+
export declare const UPDATE_ANNOTATIONS: ToolAnnotations;
|
|
15
|
+
export declare const DELETE_ANNOTATIONS: ToolAnnotations;
|
|
16
|
+
/** List operations: useful to both user and assistant for navigation, medium priority. */
|
|
17
|
+
export declare const LIST_CONTENT_ANNOTATIONS: Annotations;
|
|
18
|
+
/** Get/read operations: useful to both, higher priority as specifically requested data. */
|
|
19
|
+
export declare const GET_CONTENT_ANNOTATIONS: Annotations;
|
|
20
|
+
/** Mutating operations (create/update/delete): primarily for the user, highest priority. */
|
|
21
|
+
export declare const MUTATE_CONTENT_ANNOTATIONS: Annotations;
|
|
22
|
+
/** Error responses: always high priority, always for the user. */
|
|
23
|
+
export declare const ERROR_CONTENT_ANNOTATIONS: Annotations;
|
|
24
|
+
export interface AnnotatedTextContent {
|
|
25
|
+
type: "text";
|
|
26
|
+
text: string;
|
|
27
|
+
annotations?: Annotations;
|
|
28
|
+
}
|
|
29
|
+
export declare function truncateResponse(text: string): string;
|
|
10
30
|
/**
|
|
11
|
-
* Maps an error to a user-friendly MCP tool response.
|
|
31
|
+
* Maps an error to a user-friendly MCP tool response with error annotations.
|
|
12
32
|
*/
|
|
13
33
|
export declare function handleToolError(error: unknown): {
|
|
14
|
-
content:
|
|
15
|
-
type: "text";
|
|
16
|
-
text: string;
|
|
17
|
-
}>;
|
|
34
|
+
content: AnnotatedTextContent[];
|
|
18
35
|
isError: true;
|
|
19
36
|
};
|
|
20
37
|
/**
|
|
@@ -25,4 +42,107 @@ export declare function formatPaginatedResponse(resourceName: string, response:
|
|
|
25
42
|
* Formats a single record for display.
|
|
26
43
|
*/
|
|
27
44
|
export declare function formatRecord(label: string, record: Record<string, unknown>): string;
|
|
45
|
+
/**
|
|
46
|
+
* Builds an annotated content block for list/search responses.
|
|
47
|
+
*/
|
|
48
|
+
export declare function listContent(text: string): AnnotatedTextContent;
|
|
49
|
+
/**
|
|
50
|
+
* Builds an annotated content block for get/read responses.
|
|
51
|
+
*/
|
|
52
|
+
export declare function getContent(text: string): AnnotatedTextContent;
|
|
53
|
+
/**
|
|
54
|
+
* Builds an annotated content block for create/update/delete responses.
|
|
55
|
+
*/
|
|
56
|
+
export declare function mutateContent(text: string): AnnotatedTextContent;
|
|
57
|
+
/**
|
|
58
|
+
* Wraps an item schema in a paginated envelope for list/search tools.
|
|
59
|
+
*/
|
|
60
|
+
export declare function paginatedOutput<T extends z.ZodType>(itemSchema: T): z.ZodObject<{
|
|
61
|
+
data: z.ZodArray<T>;
|
|
62
|
+
total: z.ZodNumber;
|
|
63
|
+
limit: z.ZodNumber;
|
|
64
|
+
offset: z.ZodNumber;
|
|
65
|
+
}, z.core.$strip>;
|
|
66
|
+
/** Schema for delete operation results. */
|
|
67
|
+
export declare const deleteResultOutput: z.ZodObject<{
|
|
68
|
+
success: z.ZodBoolean;
|
|
69
|
+
id: z.ZodString;
|
|
70
|
+
}, z.core.$strip>;
|
|
71
|
+
export declare const invoiceItemOutput: z.ZodObject<{
|
|
72
|
+
id: z.ZodString;
|
|
73
|
+
clientName: z.ZodString;
|
|
74
|
+
items: z.ZodArray<z.ZodObject<{
|
|
75
|
+
description: z.ZodString;
|
|
76
|
+
quantity: z.ZodNumber;
|
|
77
|
+
unitPrice: z.ZodNumber;
|
|
78
|
+
}, z.core.$strip>>;
|
|
79
|
+
status: z.ZodOptional<z.ZodString>;
|
|
80
|
+
dueDate: z.ZodOptional<z.ZodString>;
|
|
81
|
+
notes: z.ZodOptional<z.ZodString>;
|
|
82
|
+
taxRate: z.ZodOptional<z.ZodNumber>;
|
|
83
|
+
total: z.ZodOptional<z.ZodNumber>;
|
|
84
|
+
createdAt: z.ZodOptional<z.ZodString>;
|
|
85
|
+
updatedAt: z.ZodOptional<z.ZodString>;
|
|
86
|
+
}, z.core.$loose>;
|
|
87
|
+
export declare const expenseItemOutput: z.ZodObject<{
|
|
88
|
+
id: z.ZodString;
|
|
89
|
+
description: z.ZodString;
|
|
90
|
+
amount: z.ZodNumber;
|
|
91
|
+
category: z.ZodOptional<z.ZodString>;
|
|
92
|
+
date: z.ZodOptional<z.ZodString>;
|
|
93
|
+
vendor: z.ZodOptional<z.ZodString>;
|
|
94
|
+
taxDeductible: z.ZodOptional<z.ZodBoolean>;
|
|
95
|
+
createdAt: z.ZodOptional<z.ZodString>;
|
|
96
|
+
updatedAt: z.ZodOptional<z.ZodString>;
|
|
97
|
+
}, z.core.$loose>;
|
|
98
|
+
export declare const clientItemOutput: z.ZodObject<{
|
|
99
|
+
id: z.ZodString;
|
|
100
|
+
name: z.ZodString;
|
|
101
|
+
email: z.ZodOptional<z.ZodString>;
|
|
102
|
+
phone: z.ZodOptional<z.ZodString>;
|
|
103
|
+
taxId: z.ZodOptional<z.ZodString>;
|
|
104
|
+
address: z.ZodOptional<z.ZodObject<{
|
|
105
|
+
street: z.ZodOptional<z.ZodString>;
|
|
106
|
+
city: z.ZodOptional<z.ZodString>;
|
|
107
|
+
postalCode: z.ZodOptional<z.ZodString>;
|
|
108
|
+
country: z.ZodOptional<z.ZodString>;
|
|
109
|
+
}, z.core.$strip>>;
|
|
110
|
+
createdAt: z.ZodOptional<z.ZodString>;
|
|
111
|
+
updatedAt: z.ZodOptional<z.ZodString>;
|
|
112
|
+
}, z.core.$loose>;
|
|
113
|
+
export declare const productItemOutput: z.ZodObject<{
|
|
114
|
+
id: z.ZodString;
|
|
115
|
+
name: z.ZodString;
|
|
116
|
+
unitPrice: z.ZodNumber;
|
|
117
|
+
description: z.ZodOptional<z.ZodString>;
|
|
118
|
+
unit: z.ZodOptional<z.ZodString>;
|
|
119
|
+
taxRate: z.ZodOptional<z.ZodNumber>;
|
|
120
|
+
sku: z.ZodOptional<z.ZodString>;
|
|
121
|
+
createdAt: z.ZodOptional<z.ZodString>;
|
|
122
|
+
updatedAt: z.ZodOptional<z.ZodString>;
|
|
123
|
+
}, z.core.$loose>;
|
|
124
|
+
export declare const quoteItemOutput: z.ZodObject<{
|
|
125
|
+
id: z.ZodString;
|
|
126
|
+
clientName: z.ZodString;
|
|
127
|
+
items: z.ZodArray<z.ZodObject<{
|
|
128
|
+
description: z.ZodString;
|
|
129
|
+
quantity: z.ZodNumber;
|
|
130
|
+
unitPrice: z.ZodNumber;
|
|
131
|
+
}, z.core.$strip>>;
|
|
132
|
+
validUntil: z.ZodOptional<z.ZodString>;
|
|
133
|
+
notes: z.ZodOptional<z.ZodString>;
|
|
134
|
+
status: z.ZodOptional<z.ZodString>;
|
|
135
|
+
total: z.ZodOptional<z.ZodNumber>;
|
|
136
|
+
createdAt: z.ZodOptional<z.ZodString>;
|
|
137
|
+
updatedAt: z.ZodOptional<z.ZodString>;
|
|
138
|
+
}, z.core.$loose>;
|
|
139
|
+
export declare const webhookItemOutput: z.ZodObject<{
|
|
140
|
+
id: z.ZodString;
|
|
141
|
+
url: z.ZodString;
|
|
142
|
+
events: z.ZodArray<z.ZodString>;
|
|
143
|
+
active: z.ZodOptional<z.ZodBoolean>;
|
|
144
|
+
secret: z.ZodOptional<z.ZodString>;
|
|
145
|
+
createdAt: z.ZodOptional<z.ZodString>;
|
|
146
|
+
updatedAt: z.ZodOptional<z.ZodString>;
|
|
147
|
+
}, z.core.$loose>;
|
|
28
148
|
//# sourceMappingURL=shared.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../src/tools/shared.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../src/tools/shared.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,oCAAoC,CAAC;AACvF,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAC3B,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAMrD,eAAO,MAAM,qBAAqB,EAAE,eAAqH,CAAC;AAC1J,eAAO,MAAM,kBAAkB,EAAE,eAAuH,CAAC;AACzJ,eAAO,MAAM,kBAAkB,EAAE,eAAsH,CAAC;AACxJ,eAAO,MAAM,kBAAkB,EAAE,eAAqH,CAAC;AAMvJ,0FAA0F;AAC1F,eAAO,MAAM,wBAAwB,EAAE,WAG7B,CAAC;AAEX,2FAA2F;AAC3F,eAAO,MAAM,uBAAuB,EAAE,WAG5B,CAAC;AAEX,4FAA4F;AAC5F,eAAO,MAAM,0BAA0B,EAAE,WAG/B,CAAC;AAEX,kEAAkE;AAClE,eAAO,MAAM,yBAAyB,EAAE,WAG9B,CAAC;AAMX,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,WAAW,CAAC;CAC3B;AAQD,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAIrD;AAmBD;;GAEG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG;IAC/C,OAAO,EAAE,oBAAoB,EAAE,CAAC;IAChC,OAAO,EAAE,IAAI,CAAC;CACf,CAsCA;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CACrC,YAAY,EAAE,MAAM,EACpB,QAAQ,EAAE,iBAAiB,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GACnD,MAAM,CAkBR;AAED;;GAEG;AACH,wBAAgB,YAAY,CAC1B,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC9B,MAAM,CAER;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,oBAAoB,CAE9D;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,oBAAoB,CAE7D;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,oBAAoB,CAEhE;AAMD;;GAEG;AACH,wBAAgB,eAAe,CAAC,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,UAAU,EAAE,CAAC;;;;;kBAOjE;AAED,2CAA2C;AAC3C,eAAO,MAAM,kBAAkB;;;iBAG7B,CAAC;AAUH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;iBAWd,CAAC;AAEjB,eAAO,MAAM,iBAAiB;;;;;;;;;;iBAUd,CAAC;AASjB,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;iBASb,CAAC;AAEjB,eAAO,MAAM,iBAAiB;;;;;;;;;;iBAUd,CAAC;AAEjB,eAAO,MAAM,eAAe;;;;;;;;;;;;;;iBAUZ,CAAC;AAEjB,eAAO,MAAM,iBAAiB;;;;;;;;iBAQd,CAAC"}
|