boondmanager-mcp-server 2.7.1 → 2.8.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 +1 -1
- package/dist/index.js +35 -8
- package/dist/index.js.map +1 -1
- package/dist/schemas/index.d.ts +29 -6
- package/dist/schemas/index.d.ts.map +1 -1
- package/dist/schemas/index.js +30 -7
- package/dist/schemas/index.js.map +1 -1
- package/dist/services/boond-client.d.ts +6 -0
- package/dist/services/boond-client.d.ts.map +1 -1
- package/dist/services/boond-client.js +12 -0
- package/dist/services/boond-client.js.map +1 -1
- package/dist/tools/absences.d.ts.map +1 -1
- package/dist/tools/absences.js +47 -29
- package/dist/tools/absences.js.map +1 -1
- package/dist/tools/deliveries.d.ts.map +1 -1
- package/dist/tools/deliveries.js +58 -7
- package/dist/tools/deliveries.js.map +1 -1
- package/dist/tools/invoices.d.ts.map +1 -1
- package/dist/tools/invoices.js +30 -12
- package/dist/tools/invoices.js.map +1 -1
- package/dist/tools/orders.d.ts.map +1 -1
- package/dist/tools/orders.js +31 -3
- package/dist/tools/orders.js.map +1 -1
- package/dist/tools/payments.d.ts.map +1 -1
- package/dist/tools/payments.js +72 -9
- package/dist/tools/payments.js.map +1 -1
- package/dist/tools/positionings.js +2 -2
- package/dist/tools/positionings.js.map +1 -1
- package/dist/tools/projects.d.ts.map +1 -1
- package/dist/tools/projects.js +6 -4
- package/dist/tools/projects.js.map +1 -1
- package/dist/tools/provider-invoices.d.ts.map +1 -1
- package/dist/tools/provider-invoices.js +72 -12
- package/dist/tools/provider-invoices.js.map +1 -1
- package/dist/tools/purchases.d.ts.map +1 -1
- package/dist/tools/purchases.js +5 -1
- package/dist/tools/purchases.js.map +1 -1
- package/dist/tools/timesheets.d.ts.map +1 -1
- package/dist/tools/timesheets.js +48 -0
- package/dist/tools/timesheets.js.map +1 -1
- package/dist/transports/http.d.ts +8 -0
- package/dist/transports/http.d.ts.map +1 -1
- package/dist/transports/http.js +28 -17
- package/dist/transports/http.js.map +1 -1
- package/manifest.json +2 -2
- package/package.json +2 -2
package/dist/tools/payments.js
CHANGED
|
@@ -1,15 +1,67 @@
|
|
|
1
1
|
import { PaymentSearchSchema, IdSchema } from "../schemas/index.js";
|
|
2
2
|
import { apiRequest, buildSearchQuery, formatListResponse, formatDetailResponse } from "../services/boond-client.js";
|
|
3
|
+
import { buildJsonApiBody } from "./crud-factory.js";
|
|
4
|
+
import { z } from "zod";
|
|
5
|
+
const PaymentCreateSchema = z
|
|
6
|
+
.object({
|
|
7
|
+
purchaseId: z.string().min(1).describe("ID de l'achat regle"),
|
|
8
|
+
paymentDate: z.string().optional().describe("Date du paiement (YYYY-MM-DD), mappee vers date"),
|
|
9
|
+
performedDate: z.string().optional().describe("Date de paiement effectif (YYYY-MM-DD)"),
|
|
10
|
+
expectedDate: z.string().optional().describe("Date de paiement attendu (YYYY-MM-DD)"),
|
|
11
|
+
startDate: z.string().optional().describe("Date de debut couverte (YYYY-MM-DD)"),
|
|
12
|
+
endDate: z.string().optional().describe("Date de fin couverte (YYYY-MM-DD)"),
|
|
13
|
+
amount: z.number().optional().describe("Montant HT du paiement, mappe vers amountExcludingTax"),
|
|
14
|
+
amountExcludingTax: z.number().optional().describe("Montant HT du paiement"),
|
|
15
|
+
state: z.number().int().optional().describe("Etat du paiement / achat"),
|
|
16
|
+
paymentMethod: z.number().int().optional().describe("Methode de paiement"),
|
|
17
|
+
taxRates: z.array(z.number()).optional().describe("Taux de taxes Boond"),
|
|
18
|
+
reference: z.string().optional().describe("Reference bancaire ou reglement"),
|
|
19
|
+
note: z.string().optional().describe("Note interne, mappee vers informationComments"),
|
|
20
|
+
})
|
|
21
|
+
.strict();
|
|
3
22
|
export function registerPaymentTools(server) {
|
|
4
|
-
|
|
23
|
+
server.registerTool("boond_payments_create", {
|
|
24
|
+
title: "Creer un paiement",
|
|
25
|
+
description: "Cree un paiement fournisseur lie a un achat. L'API Boond /payments requiert une relation purchase.",
|
|
26
|
+
inputSchema: PaymentCreateSchema,
|
|
27
|
+
annotations: {
|
|
28
|
+
readOnlyHint: false,
|
|
29
|
+
destructiveHint: false,
|
|
30
|
+
idempotentHint: false,
|
|
31
|
+
openWorldHint: false,
|
|
32
|
+
},
|
|
33
|
+
}, async (params) => {
|
|
34
|
+
const { purchaseId, paymentDate, amount, reference, note, ...attrs } = params;
|
|
35
|
+
const apiAttrs = {
|
|
36
|
+
...attrs,
|
|
37
|
+
...(paymentDate ? { date: paymentDate } : {}),
|
|
38
|
+
...(amount !== undefined && attrs.amountExcludingTax === undefined ? { amountExcludingTax: amount } : {}),
|
|
39
|
+
...(reference ? { number: reference } : {}),
|
|
40
|
+
...(note ? { informationComments: note } : {}),
|
|
41
|
+
};
|
|
42
|
+
const body = buildJsonApiBody("payment", apiAttrs);
|
|
43
|
+
body.data.relationships = {
|
|
44
|
+
purchase: { data: { id: purchaseId, type: "purchase" } },
|
|
45
|
+
};
|
|
46
|
+
const response = await apiRequest("/payments", "POST", body);
|
|
47
|
+
const entity = Array.isArray(response.data) ? response.data[0] : response.data;
|
|
48
|
+
return {
|
|
49
|
+
content: [
|
|
50
|
+
{
|
|
51
|
+
type: "text",
|
|
52
|
+
text: `Paiement cree avec succes.\nID: ${entity?.id}\n\n${formatDetailResponse(response)}`,
|
|
53
|
+
},
|
|
54
|
+
],
|
|
55
|
+
};
|
|
56
|
+
});
|
|
5
57
|
server.registerTool("boond_payments_search", {
|
|
6
58
|
title: "Rechercher des paiements",
|
|
7
|
-
description: `Recherche des paiements /
|
|
59
|
+
description: `Recherche des paiements / reglements dans BoondManager.
|
|
8
60
|
|
|
9
61
|
Args:
|
|
10
|
-
- keywords (string, optional): Termes de recherche
|
|
11
|
-
- invoiceId, companyId (string, optional):
|
|
12
|
-
- startDate, endDate (string, optional):
|
|
62
|
+
- keywords (string, optional): Termes de recherche. Utiliser ACH<id>, CSOC<id>, PRJ<id> selon la doc Boond pour filtrer par achat, societe ou projet.
|
|
63
|
+
- invoiceId, companyId (string, optional): Conserves pour compatibilite, transmis comme query params si fournis.
|
|
64
|
+
- startDate, endDate (string, optional): Periode (YYYY-MM-DD)
|
|
13
65
|
- page, pageSize: Pagination
|
|
14
66
|
|
|
15
67
|
Returns: Liste des paiements correspondants.`,
|
|
@@ -21,16 +73,27 @@ Returns: Liste des paiements correspondants.`,
|
|
|
21
73
|
openWorldHint: true,
|
|
22
74
|
},
|
|
23
75
|
}, async (params) => {
|
|
24
|
-
const
|
|
76
|
+
const { purchaseId, companyId, projectId, resourceId, keywords, ...rest } = params;
|
|
77
|
+
const tokens = [];
|
|
78
|
+
if (keywords)
|
|
79
|
+
tokens.push(keywords);
|
|
80
|
+
if (purchaseId)
|
|
81
|
+
tokens.push(`ACH${purchaseId}`);
|
|
82
|
+
if (companyId)
|
|
83
|
+
tokens.push(`CSOC${companyId}`);
|
|
84
|
+
if (projectId)
|
|
85
|
+
tokens.push(`PRJ${projectId}`);
|
|
86
|
+
if (resourceId)
|
|
87
|
+
tokens.push(`COMP${resourceId}`);
|
|
88
|
+
const query = buildSearchQuery(tokens.length > 0 ? { ...rest, keywords: tokens.join(" ") } : rest);
|
|
25
89
|
const response = await apiRequest("/payments", "GET", undefined, query);
|
|
26
90
|
return {
|
|
27
91
|
content: [{ type: "text", text: formatListResponse(response, "paiement") }],
|
|
28
92
|
};
|
|
29
93
|
});
|
|
30
|
-
// Get payment details
|
|
31
94
|
server.registerTool("boond_payments_get", {
|
|
32
|
-
title: "
|
|
33
|
-
description:
|
|
95
|
+
title: "Details d'un paiement",
|
|
96
|
+
description: "Recupere les informations detaillees d'un paiement / reglement par son ID.",
|
|
34
97
|
inputSchema: IdSchema,
|
|
35
98
|
annotations: {
|
|
36
99
|
readOnlyHint: true,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"payments.js","sourceRoot":"","sources":["../../src/tools/payments.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AACpE,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"payments.js","sourceRoot":"","sources":["../../src/tools/payments.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AACpE,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACrH,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,mBAAmB,GAAG,CAAC;KAC1B,MAAM,CAAC;IACN,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,qBAAqB,CAAC;IAC7D,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,iDAAiD,CAAC;IAC9F,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,wCAAwC,CAAC;IACvF,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,uCAAuC,CAAC;IACrF,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qCAAqC,CAAC;IAChF,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mCAAmC,CAAC;IAC5E,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,uDAAuD,CAAC;IAC/F,kBAAkB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,wBAAwB,CAAC;IAC5E,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,0BAA0B,CAAC;IACvE,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qBAAqB,CAAC;IAC1E,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qBAAqB,CAAC;IACxE,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,iCAAiC,CAAC;IAC5E,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,+CAA+C,CAAC;CACtF,CAAC;KACD,MAAM,EAAE,CAAC;AAEZ,MAAM,UAAU,oBAAoB,CAAC,MAAiB;IACpD,MAAM,CAAC,YAAY,CACjB,uBAAuB,EACvB;QACE,KAAK,EAAE,mBAAmB;QAC1B,WAAW,EAAE,oGAAoG;QACjH,WAAW,EAAE,mBAAmB;QAChC,WAAW,EAAE;YACX,YAAY,EAAE,KAAK;YACnB,eAAe,EAAE,KAAK;YACtB,cAAc,EAAE,KAAK;YACrB,aAAa,EAAE,KAAK;SACrB;KACF,EACD,KAAK,EAAE,MAAM,EAAE,EAAE;QACf,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,GAAG,MAAM,CAAC;QAC9E,MAAM,QAAQ,GAAG;YACf,GAAG,KAAK;YACR,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC7C,GAAG,CAAC,MAAM,KAAK,SAAS,IAAI,KAAK,CAAC,kBAAkB,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,kBAAkB,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACzG,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC3C,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,mBAAmB,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC/C,CAAC;QACF,MAAM,IAAI,GAAG,gBAAgB,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QAClD,IAAgD,CAAC,IAAI,CAAC,aAAa,GAAG;YACrE,QAAQ,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE;SACzD,CAAC;QACF,MAAM,QAAQ,GAAG,MAAM,UAAU,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;QAC7D,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC;QAC/E,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAe;oBACrB,IAAI,EAAE,mCAAmC,MAAM,EAAE,EAAE,OAAO,oBAAoB,CAAC,QAAQ,CAAC,EAAE;iBAC3F;aACF;SACF,CAAC;IACJ,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,uBAAuB,EACvB;QACE,KAAK,EAAE,0BAA0B;QACjC,WAAW,EAAE;;;;;;;;6CAQ0B;QACvC,WAAW,EAAE,mBAAmB;QAChC,WAAW,EAAE;YACX,YAAY,EAAE,IAAI;YAClB,eAAe,EAAE,KAAK;YACtB,cAAc,EAAE,IAAI;YACpB,aAAa,EAAE,IAAI;SACpB;KACF,EACD,KAAK,EAAE,MAAM,EAAE,EAAE;QACf,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,GAAG,MAAM,CAAC;QACnF,MAAM,MAAM,GAAa,EAAE,CAAC;QAC5B,IAAI,QAAQ;YAAE,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACpC,IAAI,UAAU;YAAE,MAAM,CAAC,IAAI,CAAC,MAAM,UAAU,EAAE,CAAC,CAAC;QAChD,IAAI,SAAS;YAAE,MAAM,CAAC,IAAI,CAAC,OAAO,SAAS,EAAE,CAAC,CAAC;QAC/C,IAAI,SAAS;YAAE,MAAM,CAAC,IAAI,CAAC,MAAM,SAAS,EAAE,CAAC,CAAC;QAC9C,IAAI,UAAU;YAAE,MAAM,CAAC,IAAI,CAAC,OAAO,UAAU,EAAE,CAAC,CAAC;QACjD,MAAM,KAAK,GAAG,gBAAgB,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACnG,MAAM,QAAQ,GAAG,MAAM,UAAU,CAAC,WAAW,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;QACxE,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,kBAAkB,CAAC,QAAQ,EAAE,UAAU,CAAC,EAAE,CAAC;SACrF,CAAC;IACJ,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,oBAAoB,EACpB;QACE,KAAK,EAAE,uBAAuB;QAC9B,WAAW,EAAE,4EAA4E;QACzF,WAAW,EAAE,QAAQ;QACrB,WAAW,EAAE;YACX,YAAY,EAAE,IAAI;YAClB,eAAe,EAAE,KAAK;YACtB,cAAc,EAAE,IAAI;YACpB,aAAa,EAAE,KAAK;SACrB;KACF,EACD,KAAK,EAAE,MAAM,EAAE,EAAE;QACf,MAAM,QAAQ,GAAG,MAAM,UAAU,CAAC,aAAa,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC;QAC5D,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,oBAAoB,CAAC,QAAQ,CAAC,EAAE,CAAC;SAC3E,CAAC;IACJ,CAAC,CACF,CAAC;AACJ,CAAC"}
|
|
@@ -81,9 +81,9 @@ Returns: Liste des positionnements correspondants.`,
|
|
|
81
81
|
const body = buildJsonApiBody("positioning", attrs);
|
|
82
82
|
const relationships = {};
|
|
83
83
|
if (candidateId)
|
|
84
|
-
relationships.
|
|
84
|
+
relationships.dependsOn = { data: { id: candidateId, type: "candidate" } };
|
|
85
85
|
if (resourceId)
|
|
86
|
-
relationships.
|
|
86
|
+
relationships.dependsOn = { data: { id: resourceId, type: "resource" } };
|
|
87
87
|
if (projectId)
|
|
88
88
|
relationships.project = { data: { id: projectId, type: "project" } };
|
|
89
89
|
if (opportunityId)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"positionings.js","sourceRoot":"","sources":["../../src/tools/positionings.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"positionings.js","sourceRoot":"","sources":["../../src/tools/positionings.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"projects.d.ts","sourceRoot":"","sources":["../../src/tools/projects.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAmIzE,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"projects.d.ts","sourceRoot":"","sources":["../../src/tools/projects.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAmIzE,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAyD5D"}
|
package/dist/tools/projects.js
CHANGED
|
@@ -115,8 +115,9 @@ export function registerProjectTools(server) {
|
|
|
115
115
|
});
|
|
116
116
|
registerGetTool(server, OPTS);
|
|
117
117
|
registerCreateTool(server, OPTS, ProjectCreateSchema, (params) => {
|
|
118
|
-
const { companyId, contactId, opportunityId, ...attrs } = params;
|
|
119
|
-
const
|
|
118
|
+
const { companyId, contactId, opportunityId, name, ...attrs } = params;
|
|
119
|
+
const apiAttrs = { ...attrs, ...(name ? { title: name } : {}) };
|
|
120
|
+
const body = buildJsonApiBody("project", apiAttrs);
|
|
120
121
|
const relationships = {};
|
|
121
122
|
if (companyId)
|
|
122
123
|
relationships.company = { data: { id: companyId, type: "company" } };
|
|
@@ -133,8 +134,9 @@ export function registerProjectTools(server) {
|
|
|
133
134
|
// returns 405 on PATCH (issue #134, same root cause as #124). buildJsonApiBody
|
|
134
135
|
// drops undefined values, so PUT still only touches the supplied fields.
|
|
135
136
|
registerUpdateTool(server, OPTS, ProjectUpdateSchema, (params) => {
|
|
136
|
-
const { id, ...attrs } = params;
|
|
137
|
-
|
|
137
|
+
const { id, name, ...attrs } = params;
|
|
138
|
+
const apiAttrs = { ...attrs, ...(name ? { title: name } : {}) };
|
|
139
|
+
return buildJsonApiBody("project", apiAttrs, id);
|
|
138
140
|
}, { method: "PUT", pathSuffix: "information" });
|
|
139
141
|
registerDeleteTool(server, OPTS);
|
|
140
142
|
// Register one tool per project tab
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"projects.js","sourceRoot":"","sources":["../../src/tools/projects.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAE9G,OAAO,EACL,kBAAkB,EAClB,eAAe,EACf,kBAAkB,EAClB,kBAAkB,EAClB,kBAAkB,EAClB,gBAAgB,GACjB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAE5E,MAAM,IAAI,GAAG;IACX,UAAU,EAAE,QAAQ;IACpB,gBAAgB,EAAE,SAAS;IAC3B,OAAO,EAAE,WAAW;IACpB,MAAM,EAAE,gBAAgB;CACzB,CAAC;AAEF,MAAM,oBAAoB,GAAG;IAC3B,YAAY,EAAE,IAAI;IAClB,eAAe,EAAE,KAAK;IACtB,cAAc,EAAE,IAAI;IACpB,aAAa,EAAE,KAAK;CACZ,CAAC;AASX,MAAM,YAAY,GAAoB;IACpC;QACE,IAAI,EAAE,aAAa;QACnB,GAAG,EAAE,aAAa;QAClB,KAAK,EAAE,oCAAoC;QAC3C,WAAW,EAAE;;;;;sCAKqB;KACnC;IACD;QACE,IAAI,EAAE,SAAS;QACf,GAAG,EAAE,SAAS;QACd,KAAK,EAAE,2BAA2B;QAClC,WAAW,EAAE;;;;;4CAK2B;KACzC;IACD;QACE,IAAI,EAAE,YAAY;QAClB,GAAG,EAAE,YAAY;QACjB,KAAK,EAAE,mCAAmC;QAC1C,WAAW,EAAE;;;;;qDAKoC;KAClD;IACD;QACE,IAAI,EAAE,uBAAuB;QAC7B,GAAG,EAAE,uBAAuB;QAC5B,KAAK,EAAE,wBAAwB;QAC/B,WAAW,EAAE;;;;;yCAKwB;KACtC;IACD;QACE,IAAI,EAAE,QAAQ;QACd,GAAG,EAAE,QAAQ;QACb,KAAK,EAAE,8BAA8B;QACrC,WAAW,EAAE;;;;;+CAK8B;KAC5C;IACD;QACE,IAAI,EAAE,WAAW;QACjB,GAAG,EAAE,WAAW;QAChB,KAAK,EAAE,mCAAmC;QAC1C,WAAW,EAAE;;;;;qCAKoB;KAClC;IACD;QACE,IAAI,EAAE,cAAc;QACpB,GAAG,EAAE,cAAc;QACnB,KAAK,EAAE,0BAA0B;QACjC,WAAW,EAAE;;;;;4CAK2B;KACzC;CACF,CAAC;AAEF,MAAM,0BAA0B,GAAG;;;;;;;;;;;;;;;6GAe0E,CAAC;AAE9G,MAAM,UAAU,oBAAoB,CAAC,MAAiB;IACpD,kBAAkB,CAAC,MAAM,EAAE,IAAI,EAAE;QAC/B,MAAM,EAAE,mBAAmB;QAC3B,WAAW,EAAE,0BAA0B;KACxC,CAAC,CAAC;IACH,eAAe,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAE9B,kBAAkB,CAAC,MAAM,EAAE,IAAI,EAAE,mBAAmB,EAAE,CAAC,MAAM,EAAE,EAAE;QAC/D,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,aAAa,EAAE,GAAG,KAAK,EAAE,GAAG,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"projects.js","sourceRoot":"","sources":["../../src/tools/projects.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider-invoices.d.ts","sourceRoot":"","sources":["../../src/tools/provider-invoices.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;
|
|
1
|
+
{"version":3,"file":"provider-invoices.d.ts","sourceRoot":"","sources":["../../src/tools/provider-invoices.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAoCzE,wBAAgB,4BAA4B,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAmFpE"}
|
|
@@ -1,19 +1,71 @@
|
|
|
1
1
|
import { IdSchema } from "../schemas/index.js";
|
|
2
2
|
import { apiRequest, buildSearchQuery, formatListResponse, formatDetailResponse } from "../services/boond-client.js";
|
|
3
|
+
import { buildJsonApiBody } from "./crud-factory.js";
|
|
3
4
|
import { z } from "zod";
|
|
4
5
|
import { DEFAULT_PAGE_SIZE, MAX_PAGE_SIZE, MAX_SEARCH_PAGE } from "../constants.js";
|
|
5
|
-
const ProviderInvoiceSearchSchema = z
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
6
|
+
const ProviderInvoiceSearchSchema = z
|
|
7
|
+
.object({
|
|
8
|
+
keywords: z.string().optional().describe("Mots-cles de recherche"),
|
|
9
|
+
companyId: z.string().optional().describe("Filtrer par ID societe fournisseur"),
|
|
10
|
+
resourceId: z.string().optional().describe("Filtrer par ID ressource via mot-cle COMP<id>"),
|
|
11
|
+
page: z.number().int().min(1).max(MAX_SEARCH_PAGE).default(1).describe(`Numero de page (max: ${MAX_SEARCH_PAGE})`),
|
|
12
|
+
pageSize: z.number().int().min(1).max(MAX_PAGE_SIZE).default(DEFAULT_PAGE_SIZE).describe("Resultats par page"),
|
|
13
|
+
})
|
|
14
|
+
.strict();
|
|
15
|
+
const ProviderInvoiceCreateSchema = z
|
|
16
|
+
.object({
|
|
17
|
+
reference: z.string().min(1).describe("Reference de la facture fournisseur"),
|
|
18
|
+
resourceId: z.string().min(1).describe("ID de la ressource portee par la facture fournisseur"),
|
|
19
|
+
companyId: z.string().optional().describe("ID de la societe fournisseur, mappe vers providerCompany"),
|
|
20
|
+
contactId: z.string().optional().describe("ID du contact fournisseur, mappe vers providerContact"),
|
|
21
|
+
invoiceDate: z.string().optional().describe("Date de facture (YYYY-MM-DD)"),
|
|
22
|
+
startDate: z.string().min(1).describe("Date de debut de periode (YYYY-MM-DD)"),
|
|
23
|
+
endDate: z.string().min(1).describe("Date de fin de periode (YYYY-MM-DD)"),
|
|
24
|
+
amountExcludingTax: z.number().optional().describe("Montant HT"),
|
|
25
|
+
amountIncludingTax: z.number().optional().describe("Montant TTC"),
|
|
26
|
+
currency: z.number().optional().describe("Devise Boond"),
|
|
27
|
+
exchangeRate: z.number().optional().describe("Taux de change"),
|
|
28
|
+
currencyAgency: z.number().optional().describe("Devise agence"),
|
|
29
|
+
exchangeRateAgency: z.number().optional().describe("Taux de change agence"),
|
|
30
|
+
state: z.number().int().optional().describe("Etat de la facture fournisseur"),
|
|
31
|
+
})
|
|
32
|
+
.strict();
|
|
11
33
|
export function registerProviderInvoiceTools(server) {
|
|
34
|
+
server.registerTool("boond_provider_invoices_create", {
|
|
35
|
+
title: "Creer une facture fournisseur",
|
|
36
|
+
description: "Cree une facture fournisseur Boond avec resource, providerCompany et providerContact.",
|
|
37
|
+
inputSchema: ProviderInvoiceCreateSchema,
|
|
38
|
+
annotations: {
|
|
39
|
+
readOnlyHint: false,
|
|
40
|
+
destructiveHint: false,
|
|
41
|
+
idempotentHint: false,
|
|
42
|
+
openWorldHint: false,
|
|
43
|
+
},
|
|
44
|
+
}, async (params) => {
|
|
45
|
+
const { companyId, contactId, resourceId, ...attrs } = params;
|
|
46
|
+
const body = buildJsonApiBody("providerinvoice", attrs);
|
|
47
|
+
const relationships = {
|
|
48
|
+
resource: { data: { id: resourceId, type: "resource" } },
|
|
49
|
+
};
|
|
50
|
+
if (companyId)
|
|
51
|
+
relationships.providerCompany = { data: { id: companyId, type: "company" } };
|
|
52
|
+
if (contactId)
|
|
53
|
+
relationships.providerContact = { data: { id: contactId, type: "contact" } };
|
|
54
|
+
body.data.relationships = relationships;
|
|
55
|
+
const response = await apiRequest("/provider-invoices", "POST", body);
|
|
56
|
+
const entity = Array.isArray(response.data) ? response.data[0] : response.data;
|
|
57
|
+
return {
|
|
58
|
+
content: [
|
|
59
|
+
{
|
|
60
|
+
type: "text",
|
|
61
|
+
text: `Facture fournisseur creee avec succes.\nID: ${entity?.id}\n\n${formatDetailResponse(response)}`,
|
|
62
|
+
},
|
|
63
|
+
],
|
|
64
|
+
};
|
|
65
|
+
});
|
|
12
66
|
server.registerTool("boond_provider_invoices_search", {
|
|
13
67
|
title: "Rechercher des factures fournisseur",
|
|
14
|
-
description:
|
|
15
|
-
|
|
16
|
-
Returns: Liste des factures fournisseur correspondantes.`,
|
|
68
|
+
description: "Recherche des factures fournisseur dans BoondManager.",
|
|
17
69
|
inputSchema: ProviderInvoiceSearchSchema,
|
|
18
70
|
annotations: {
|
|
19
71
|
readOnlyHint: true,
|
|
@@ -22,15 +74,23 @@ Returns: Liste des factures fournisseur correspondantes.`,
|
|
|
22
74
|
openWorldHint: true,
|
|
23
75
|
},
|
|
24
76
|
}, async (params) => {
|
|
25
|
-
const
|
|
77
|
+
const { resourceId, companyId, keywords, ...rest } = params;
|
|
78
|
+
const tokens = [];
|
|
79
|
+
if (keywords)
|
|
80
|
+
tokens.push(keywords);
|
|
81
|
+
if (resourceId)
|
|
82
|
+
tokens.push(`COMP${resourceId}`);
|
|
83
|
+
if (companyId)
|
|
84
|
+
tokens.push(`CSOC${companyId}`);
|
|
85
|
+
const query = buildSearchQuery(tokens.length > 0 ? { ...rest, keywords: tokens.join(" ") } : rest);
|
|
26
86
|
const response = await apiRequest("/provider-invoices", "GET", undefined, query);
|
|
27
87
|
return {
|
|
28
88
|
content: [{ type: "text", text: formatListResponse(response, "facture fournisseur") }],
|
|
29
89
|
};
|
|
30
90
|
});
|
|
31
91
|
server.registerTool("boond_provider_invoices_get", {
|
|
32
|
-
title: "
|
|
33
|
-
description:
|
|
92
|
+
title: "Details d'une facture fournisseur",
|
|
93
|
+
description: "Recupere les informations detaillees d'une facture fournisseur par son ID.",
|
|
34
94
|
inputSchema: IdSchema,
|
|
35
95
|
annotations: {
|
|
36
96
|
readOnlyHint: true,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider-invoices.js","sourceRoot":"","sources":["../../src/tools/provider-invoices.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACrH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAEpF,MAAM,2BAA2B,GAAG,CAAC,
|
|
1
|
+
{"version":3,"file":"provider-invoices.js","sourceRoot":"","sources":["../../src/tools/provider-invoices.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"purchases.d.ts","sourceRoot":"","sources":["../../src/tools/purchases.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;
|
|
1
|
+
{"version":3,"file":"purchases.d.ts","sourceRoot":"","sources":["../../src/tools/purchases.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AA8BzE,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CA+F7D"}
|
package/dist/tools/purchases.js
CHANGED
|
@@ -14,7 +14,9 @@ const PurchaseSearchSchema = z
|
|
|
14
14
|
.strict();
|
|
15
15
|
const PurchaseCreateSchema = z
|
|
16
16
|
.object({
|
|
17
|
+
title: z.string().optional().describe("Titre de l'achat/sous-traitance"),
|
|
17
18
|
companyId: z.string().optional().describe("ID de la société fournisseur"),
|
|
19
|
+
contactId: z.string().optional().describe("ID du contact fournisseur"),
|
|
18
20
|
projectId: z.string().optional().describe("ID du projet associé"),
|
|
19
21
|
state: z.number().int().optional().describe("État de l'achat"),
|
|
20
22
|
startDate: z.string().optional().describe("Date de début (YYYY-MM-DD)"),
|
|
@@ -73,11 +75,13 @@ Returns: Liste des achats correspondants.`,
|
|
|
73
75
|
openWorldHint: false,
|
|
74
76
|
},
|
|
75
77
|
}, async (params) => {
|
|
76
|
-
const { companyId, projectId, ...attrs } = params;
|
|
78
|
+
const { companyId, contactId, projectId, ...attrs } = params;
|
|
77
79
|
const body = buildJsonApiBody("purchase", attrs);
|
|
78
80
|
const relationships = {};
|
|
79
81
|
if (companyId)
|
|
80
82
|
relationships.company = { data: { id: companyId, type: "company" } };
|
|
83
|
+
if (contactId)
|
|
84
|
+
relationships.contact = { data: { id: contactId, type: "contact" } };
|
|
81
85
|
if (projectId)
|
|
82
86
|
relationships.project = { data: { id: projectId, type: "project" } };
|
|
83
87
|
if (Object.keys(relationships).length > 0) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"purchases.js","sourceRoot":"","sources":["../../src/tools/purchases.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"purchases.js","sourceRoot":"","sources":["../../src/tools/purchases.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"timesheets.d.ts","sourceRoot":"","sources":["../../src/tools/timesheets.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;
|
|
1
|
+
{"version":3,"file":"timesheets.d.ts","sourceRoot":"","sources":["../../src/tools/timesheets.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AA4DzE,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAkI9D"}
|
package/dist/tools/timesheets.js
CHANGED
|
@@ -1,6 +1,24 @@
|
|
|
1
1
|
import { ResourceTimesheetSchema, TimesheetSearchSchema, TimesheetGetSchema } from "../schemas/index.js";
|
|
2
2
|
import { apiRequest, buildSearchQuery, formatDetailResponse } from "../services/boond-client.js";
|
|
3
|
+
import { buildJsonApiBody } from "./crud-factory.js";
|
|
3
4
|
import { CHARACTER_LIMIT } from "../constants.js";
|
|
5
|
+
import { z } from "zod";
|
|
6
|
+
const TimesheetCreateSchema = z
|
|
7
|
+
.object({
|
|
8
|
+
resourceId: z.string().min(1).describe("ID de la ressource"),
|
|
9
|
+
projectId: z.string().optional().describe("ID du projet"),
|
|
10
|
+
term: z
|
|
11
|
+
.string()
|
|
12
|
+
.regex(/^\d{4}-\d{2}$/)
|
|
13
|
+
.describe("Mois au format YYYY-MM"),
|
|
14
|
+
startDate: z.string().optional().describe("Date de début (YYYY-MM-DD)"),
|
|
15
|
+
endDate: z.string().optional().describe("Date de fin (YYYY-MM-DD)"),
|
|
16
|
+
totalDays: z.number().optional().describe("Total jours"),
|
|
17
|
+
totalHours: z.number().optional().describe("Total heures"),
|
|
18
|
+
state: z.string().optional().describe("État de la feuille de temps"),
|
|
19
|
+
note: z.string().optional().describe("Notes"),
|
|
20
|
+
})
|
|
21
|
+
.strict();
|
|
4
22
|
function formatTimesheetSummary(response) {
|
|
5
23
|
const data = Array.isArray(response.data) ? response.data : [response.data];
|
|
6
24
|
if (data.length === 0) {
|
|
@@ -32,6 +50,36 @@ function formatTimesheetSummary(response) {
|
|
|
32
50
|
return result;
|
|
33
51
|
}
|
|
34
52
|
export function registerTimesheetTools(server) {
|
|
53
|
+
server.registerTool("boond_timesheets_create", {
|
|
54
|
+
title: "Créer une feuille de temps",
|
|
55
|
+
description: "Crée une feuille de temps mensuelle liée à une ressource.",
|
|
56
|
+
inputSchema: TimesheetCreateSchema,
|
|
57
|
+
annotations: {
|
|
58
|
+
readOnlyHint: false,
|
|
59
|
+
destructiveHint: false,
|
|
60
|
+
idempotentHint: false,
|
|
61
|
+
openWorldHint: false,
|
|
62
|
+
},
|
|
63
|
+
}, async (params) => {
|
|
64
|
+
const { resourceId, projectId, ...attrs } = params;
|
|
65
|
+
const body = buildJsonApiBody("timesreport", attrs);
|
|
66
|
+
const relationships = {};
|
|
67
|
+
if (resourceId)
|
|
68
|
+
relationships.resource = { data: { id: resourceId, type: "resource" } };
|
|
69
|
+
if (projectId)
|
|
70
|
+
relationships.project = { data: { id: projectId, type: "project" } };
|
|
71
|
+
if (Object.keys(relationships).length > 0) {
|
|
72
|
+
body.data.relationships = relationships;
|
|
73
|
+
}
|
|
74
|
+
const response = await apiRequest("/times-reports", "POST", body);
|
|
75
|
+
const text = formatDetailResponse(response);
|
|
76
|
+
const entity = Array.isArray(response.data) ? response.data[0] : response.data;
|
|
77
|
+
return {
|
|
78
|
+
content: [
|
|
79
|
+
{ type: "text", text: `✅ Feuille de temps créée avec succès.\nID: ${entity?.id}\n\n${text}` },
|
|
80
|
+
],
|
|
81
|
+
};
|
|
82
|
+
});
|
|
35
83
|
// Get timesheets for a specific resource
|
|
36
84
|
server.registerTool("boond_resources_timesheets", {
|
|
37
85
|
title: "Feuilles de temps d'une ressource",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"timesheets.js","sourceRoot":"","sources":["../../src/tools/timesheets.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,uBAAuB,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAEzG,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACjG,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"timesheets.js","sourceRoot":"","sources":["../../src/tools/timesheets.ts"],"names":[],"mappings":"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"}
|
|
@@ -26,6 +26,14 @@ export interface HttpTransportOptions {
|
|
|
26
26
|
* reverse proxy, set `MCP_HTTP_PUBLIC_URL` explicitly.
|
|
27
27
|
*/
|
|
28
28
|
publicUrl?: string;
|
|
29
|
+
/**
|
|
30
|
+
* Skip the OAuth2 Bearer check and use the env-based credentials configured
|
|
31
|
+
* via `initClient()` (BOOND_USER_TOKEN + BOOND_CLIENT_TOKEN + BOOND_CLIENT_KEY,
|
|
32
|
+
* or BOOND_API_TOKEN, or BasicAuth). Intended for single-tenant / self-hosted
|
|
33
|
+
* deployments where the operator owns both the server and the credentials.
|
|
34
|
+
* Set `BOOND_HTTP_STATIC_AUTH=true` to enable via `resolveHttpOptions()`.
|
|
35
|
+
*/
|
|
36
|
+
staticAuth?: boolean;
|
|
29
37
|
}
|
|
30
38
|
export interface HttpServerHandle {
|
|
31
39
|
close: () => Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../../src/transports/http.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAWzE,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,OAAO,CAAC;IACnB,kBAAkB,EAAE,OAAO,CAAC;IAC5B,qEAAqE;IACrE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,kEAAkE;IAClE,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,+EAA+E;IAC/E,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;;OAKG;IACH,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB;;;;;;OAMG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../../src/transports/http.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAWzE,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,OAAO,CAAC;IACnB,kBAAkB,EAAE,OAAO,CAAC;IAC5B,qEAAqE;IACrE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,kEAAkE;IAClE,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,+EAA+E;IAC/E,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;;OAKG;IACH,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB;;;;;;OAMG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;;;OAMG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3B,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IACtD,4EAA4E;IAC5E,YAAY,EAAE,MAAM,MAAM,CAAC;IAC3B,6EAA6E;IAC7E,iBAAiB,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;CAC1C;AAuCD;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,SAAS,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAmB5F;AAiBD,wBAAgB,kBAAkB,IAAI,oBAAoB,CA0BzD;AAkFD,wBAAsB,kBAAkB,CACtC,mBAAmB,EAAE,MAAM,SAAS,EACpC,OAAO,EAAE,oBAAoB,GAC5B,OAAO,CAAC,gBAAgB,CAAC,CAgS3B"}
|
package/dist/transports/http.js
CHANGED
|
@@ -91,6 +91,8 @@ export function resolveHttpOptions() {
|
|
|
91
91
|
}
|
|
92
92
|
const stateless = (readEnv("MCP_HTTP_STATEFUL") ?? "false").toLowerCase() !== "true";
|
|
93
93
|
const enableJsonResponse = (readEnv("MCP_HTTP_JSON_RESPONSE") ?? "false").toLowerCase() === "true";
|
|
94
|
+
const staticAuthRaw = (readEnv("BOOND_HTTP_STATIC_AUTH") ?? "").toLowerCase();
|
|
95
|
+
const staticAuth = staticAuthRaw === "true" || staticAuthRaw === "1" || staticAuthRaw === "yes";
|
|
94
96
|
return {
|
|
95
97
|
host: readEnv("MCP_HTTP_HOST") ?? "127.0.0.1",
|
|
96
98
|
port,
|
|
@@ -102,6 +104,7 @@ export function resolveHttpOptions() {
|
|
|
102
104
|
maxSessions: readPositiveInt("MCP_HTTP_MAX_SESSIONS", DEFAULT_MAX_SESSIONS),
|
|
103
105
|
allowedHosts: readAllowedHosts(),
|
|
104
106
|
publicUrl: readEnv("MCP_HTTP_PUBLIC_URL"),
|
|
107
|
+
staticAuth,
|
|
105
108
|
};
|
|
106
109
|
}
|
|
107
110
|
/**
|
|
@@ -276,11 +279,11 @@ export async function startHttpTransport(createServerFactory, options) {
|
|
|
276
279
|
return;
|
|
277
280
|
}
|
|
278
281
|
const url = new URL(req.url ?? "/", `http://${req.headers.host ?? "localhost"}`);
|
|
279
|
-
// Public OAuth2 discovery endpoint (RFC 9728).
|
|
280
|
-
//
|
|
281
|
-
//
|
|
282
|
-
|
|
283
|
-
|
|
282
|
+
// Public OAuth2 discovery endpoint (RFC 9728). Not served in static-auth
|
|
283
|
+
// mode — exposing it would cause OAuth-aware clients (mcp-remote, etc.)
|
|
284
|
+
// to attempt a full OAuth dance that will never complete.
|
|
285
|
+
if (!options.staticAuth &&
|
|
286
|
+
req.method === "GET" &&
|
|
284
287
|
(url.pathname === "/.well-known/oauth-protected-resource" ||
|
|
285
288
|
url.pathname === `/.well-known/oauth-protected-resource${options.path}`)) {
|
|
286
289
|
writeProtectedResourceMetadata(res);
|
|
@@ -291,17 +294,8 @@ export async function startHttpTransport(createServerFactory, options) {
|
|
|
291
294
|
res.end("Not found");
|
|
292
295
|
return;
|
|
293
296
|
}
|
|
294
|
-
//
|
|
295
|
-
|
|
296
|
-
const accessToken = extractBearerToken(req.headers["authorization"]);
|
|
297
|
-
if (!accessToken) {
|
|
298
|
-
writeOAuthChallenge(res, 401, "Missing Bearer token. Authenticate against BoondManager and include `Authorization: Bearer <access_token>`.");
|
|
299
|
-
return;
|
|
300
|
-
}
|
|
301
|
-
// Wrap the rest of the request lifecycle in the AsyncLocalStorage
|
|
302
|
-
// context so boond-client's `oauthContextAuth` can pull the token
|
|
303
|
-
// out when issuing API calls.
|
|
304
|
-
await oauthContext.run({ accessToken }, async () => {
|
|
297
|
+
// Core MCP dispatch — shared between OAuth and static-auth paths.
|
|
298
|
+
const dispatchMcpRequest = async () => {
|
|
305
299
|
if (options.stateless) {
|
|
306
300
|
if (req.method !== "POST") {
|
|
307
301
|
writeJsonRpcError(res, 405, "Only POST is supported in stateless mode");
|
|
@@ -381,7 +375,24 @@ export async function startHttpTransport(createServerFactory, options) {
|
|
|
381
375
|
const server = createServerFactory();
|
|
382
376
|
await server.connect(transport);
|
|
383
377
|
await transport.handleRequest(req, res, body);
|
|
384
|
-
}
|
|
378
|
+
};
|
|
379
|
+
if (options.staticAuth) {
|
|
380
|
+
// Static-auth mode: env-based JWT credentials configured at startup via
|
|
381
|
+
// initClient(). No Bearer token required from the MCP client.
|
|
382
|
+
await dispatchMcpRequest();
|
|
383
|
+
}
|
|
384
|
+
else {
|
|
385
|
+
// OAuth2 Bearer is mandatory on the MCP endpoint. The token is opaque
|
|
386
|
+
// to us — we forward it to BoondManager, which is authoritative.
|
|
387
|
+
const accessToken = extractBearerToken(req.headers["authorization"]);
|
|
388
|
+
if (!accessToken) {
|
|
389
|
+
writeOAuthChallenge(res, 401, "Missing Bearer token. Authenticate against BoondManager and include `Authorization: Bearer <access_token>`.");
|
|
390
|
+
return;
|
|
391
|
+
}
|
|
392
|
+
// Wrap in AsyncLocalStorage so boond-client's oauthContextAuth can pull
|
|
393
|
+
// the token out when issuing API calls.
|
|
394
|
+
await oauthContext.run({ accessToken }, dispatchMcpRequest);
|
|
395
|
+
}
|
|
385
396
|
}
|
|
386
397
|
catch (error) {
|
|
387
398
|
if (error instanceof PayloadTooLargeError) {
|