boondmanager-mcp-server 1.0.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/LICENSE +21 -0
- package/README.md +201 -0
- package/dist/constants.d.ts +32 -0
- package/dist/constants.d.ts.map +1 -0
- package/dist/constants.js +35 -0
- package/dist/constants.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +47 -0
- package/dist/index.js.map +1 -0
- package/dist/schemas/index.d.ts +347 -0
- package/dist/schemas/index.d.ts.map +1 -0
- package/dist/schemas/index.js +364 -0
- package/dist/schemas/index.js.map +1 -0
- package/dist/services/boond-client.d.ts +12 -0
- package/dist/services/boond-client.d.ts.map +1 -0
- package/dist/services/boond-client.js +123 -0
- package/dist/services/boond-client.js.map +1 -0
- package/dist/tools/absences.d.ts +3 -0
- package/dist/tools/absences.d.ts.map +1 -0
- package/dist/tools/absences.js +116 -0
- package/dist/tools/absences.js.map +1 -0
- package/dist/tools/actions.d.ts +3 -0
- package/dist/tools/actions.d.ts.map +1 -0
- package/dist/tools/actions.js +100 -0
- package/dist/tools/actions.js.map +1 -0
- package/dist/tools/advantages.d.ts +3 -0
- package/dist/tools/advantages.d.ts.map +1 -0
- package/dist/tools/advantages.js +47 -0
- package/dist/tools/advantages.js.map +1 -0
- package/dist/tools/application.d.ts +3 -0
- package/dist/tools/application.d.ts.map +1 -0
- package/dist/tools/application.js +60 -0
- package/dist/tools/application.js.map +1 -0
- package/dist/tools/candidates.d.ts +3 -0
- package/dist/tools/candidates.d.ts.map +1 -0
- package/dist/tools/candidates.js +90 -0
- package/dist/tools/candidates.js.map +1 -0
- package/dist/tools/companies.d.ts +3 -0
- package/dist/tools/companies.d.ts.map +1 -0
- package/dist/tools/companies.js +79 -0
- package/dist/tools/companies.js.map +1 -0
- package/dist/tools/contacts.d.ts +3 -0
- package/dist/tools/contacts.d.ts.map +1 -0
- package/dist/tools/contacts.js +85 -0
- package/dist/tools/contacts.js.map +1 -0
- package/dist/tools/crud-factory.d.ts +16 -0
- package/dist/tools/crud-factory.d.ts.map +1 -0
- package/dist/tools/crud-factory.js +146 -0
- package/dist/tools/crud-factory.js.map +1 -0
- package/dist/tools/deliveries.d.ts +3 -0
- package/dist/tools/deliveries.d.ts.map +1 -0
- package/dist/tools/deliveries.js +48 -0
- package/dist/tools/deliveries.js.map +1 -0
- package/dist/tools/expenses.d.ts +3 -0
- package/dist/tools/expenses.d.ts.map +1 -0
- package/dist/tools/expenses.js +119 -0
- package/dist/tools/expenses.js.map +1 -0
- package/dist/tools/index.d.ts +19 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +19 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/invoices.d.ts +3 -0
- package/dist/tools/invoices.d.ts.map +1 -0
- package/dist/tools/invoices.js +119 -0
- package/dist/tools/invoices.js.map +1 -0
- package/dist/tools/opportunities.d.ts +3 -0
- package/dist/tools/opportunities.d.ts.map +1 -0
- package/dist/tools/opportunities.js +88 -0
- package/dist/tools/opportunities.js.map +1 -0
- package/dist/tools/orders.d.ts +3 -0
- package/dist/tools/orders.d.ts.map +1 -0
- package/dist/tools/orders.js +118 -0
- package/dist/tools/orders.js.map +1 -0
- package/dist/tools/payments.d.ts +3 -0
- package/dist/tools/payments.d.ts.map +1 -0
- package/dist/tools/payments.js +48 -0
- package/dist/tools/payments.js.map +1 -0
- package/dist/tools/positionings.d.ts +3 -0
- package/dist/tools/positionings.d.ts.map +1 -0
- package/dist/tools/positionings.js +100 -0
- package/dist/tools/positionings.js.map +1 -0
- package/dist/tools/products.d.ts +3 -0
- package/dist/tools/products.d.ts.map +1 -0
- package/dist/tools/products.js +22 -0
- package/dist/tools/products.js.map +1 -0
- package/dist/tools/projects.d.ts +3 -0
- package/dist/tools/projects.d.ts.map +1 -0
- package/dist/tools/projects.js +101 -0
- package/dist/tools/projects.js.map +1 -0
- package/dist/tools/resources.d.ts +3 -0
- package/dist/tools/resources.d.ts.map +1 -0
- package/dist/tools/resources.js +112 -0
- package/dist/tools/resources.js.map +1 -0
- package/dist/tools/timesheets.d.ts +3 -0
- package/dist/tools/timesheets.d.ts.map +1 -0
- package/dist/tools/timesheets.js +116 -0
- package/dist/tools/timesheets.js.map +1 -0
- package/dist/types.d.ts +37 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +3 -0
- package/dist/types.js.map +1 -0
- package/package.json +55 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"invoices.js","sourceRoot":"","sources":["../../src/tools/invoices.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"opportunities.d.ts","sourceRoot":"","sources":["../../src/tools/opportunities.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAsEzE,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CA0ChE"}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import { OpportunityCreateSchema, OpportunityUpdateSchema, IdSchema } from "../schemas/index.js";
|
|
2
|
+
import { registerSearchTool, registerGetTool, registerCreateTool, registerUpdateTool, registerDeleteTool, buildJsonApiBody, } from "./crud-factory.js";
|
|
3
|
+
import { apiRequest, formatDetailResponse } from "../services/boond-client.js";
|
|
4
|
+
const OPTS = {
|
|
5
|
+
entityName: "opportunité",
|
|
6
|
+
entityNamePlural: "opportunités",
|
|
7
|
+
apiPath: "/opportunities",
|
|
8
|
+
prefix: "boond_opportunities",
|
|
9
|
+
};
|
|
10
|
+
const TAB_TOOL_ANNOTATIONS = {
|
|
11
|
+
readOnlyHint: true,
|
|
12
|
+
destructiveHint: false,
|
|
13
|
+
idempotentHint: true,
|
|
14
|
+
openWorldHint: false,
|
|
15
|
+
};
|
|
16
|
+
const OPPORTUNITY_TABS = [
|
|
17
|
+
{
|
|
18
|
+
name: "information",
|
|
19
|
+
tab: "information",
|
|
20
|
+
title: "Informations générales d'une opportunité",
|
|
21
|
+
description: `Récupère les informations générales d'une opportunité (client, dates, montant, probabilité, état...).
|
|
22
|
+
|
|
23
|
+
Args:
|
|
24
|
+
- id (string): ID de l'opportunité
|
|
25
|
+
|
|
26
|
+
Returns: Données générales de l'opportunité.`,
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
name: "actions",
|
|
30
|
+
tab: "actions",
|
|
31
|
+
title: "Actions liées à une opportunité",
|
|
32
|
+
description: `Récupère les actions (appels, emails, RDV, notes) associées à une opportunité.
|
|
33
|
+
|
|
34
|
+
Args:
|
|
35
|
+
- id (string): ID de l'opportunité
|
|
36
|
+
|
|
37
|
+
Returns: Liste des actions liées à l'opportunité.`,
|
|
38
|
+
},
|
|
39
|
+
{
|
|
40
|
+
name: "documents",
|
|
41
|
+
tab: "documents",
|
|
42
|
+
title: "Documents d'une opportunité",
|
|
43
|
+
description: `Récupère les documents attachés à une opportunité (propositions commerciales, cahiers des charges...).
|
|
44
|
+
|
|
45
|
+
Args:
|
|
46
|
+
- id (string): ID de l'opportunité
|
|
47
|
+
|
|
48
|
+
Returns: Liste des documents de l'opportunité.`,
|
|
49
|
+
},
|
|
50
|
+
];
|
|
51
|
+
export function registerOpportunityTools(server) {
|
|
52
|
+
registerSearchTool(server, OPTS);
|
|
53
|
+
registerGetTool(server, OPTS);
|
|
54
|
+
registerCreateTool(server, OPTS, OpportunityCreateSchema, (params) => {
|
|
55
|
+
const { companyId, contactId, ...attrs } = params;
|
|
56
|
+
const body = buildJsonApiBody("opportunity", attrs);
|
|
57
|
+
const relationships = {};
|
|
58
|
+
if (companyId)
|
|
59
|
+
relationships.company = { data: { id: companyId, type: "company" } };
|
|
60
|
+
if (contactId)
|
|
61
|
+
relationships.contact = { data: { id: contactId, type: "contact" } };
|
|
62
|
+
if (Object.keys(relationships).length > 0) {
|
|
63
|
+
body.data.relationships = relationships;
|
|
64
|
+
}
|
|
65
|
+
return body;
|
|
66
|
+
});
|
|
67
|
+
registerUpdateTool(server, OPTS, OpportunityUpdateSchema, (params) => {
|
|
68
|
+
const { id, ...attrs } = params;
|
|
69
|
+
return buildJsonApiBody("opportunity", attrs, id);
|
|
70
|
+
});
|
|
71
|
+
registerDeleteTool(server, OPTS);
|
|
72
|
+
// Register one tool per opportunity tab
|
|
73
|
+
for (const tab of OPPORTUNITY_TABS) {
|
|
74
|
+
server.registerTool(`boond_opportunities_${tab.name}`, {
|
|
75
|
+
title: tab.title,
|
|
76
|
+
description: tab.description,
|
|
77
|
+
inputSchema: IdSchema,
|
|
78
|
+
annotations: TAB_TOOL_ANNOTATIONS,
|
|
79
|
+
}, async (params) => {
|
|
80
|
+
const response = await apiRequest(`/opportunities/${params.id}/${tab.tab}`);
|
|
81
|
+
const text = formatDetailResponse(response);
|
|
82
|
+
return {
|
|
83
|
+
content: [{ type: "text", text }],
|
|
84
|
+
};
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
//# sourceMappingURL=opportunities.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"opportunities.js","sourceRoot":"","sources":["../../src/tools/opportunities.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"orders.d.ts","sourceRoot":"","sources":["../../src/tools/orders.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAKzE,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAuI1D"}
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
import { OrderSearchSchema, OrderCreateSchema, OrderUpdateSchema, IdSchema } from "../schemas/index.js";
|
|
2
|
+
import { apiRequest, buildSearchQuery, formatListResponse, formatDetailResponse } from "../services/boond-client.js";
|
|
3
|
+
import { buildJsonApiBody } from "./crud-factory.js";
|
|
4
|
+
export function registerOrderTools(server) {
|
|
5
|
+
// Search orders
|
|
6
|
+
server.registerTool("boond_orders_search", {
|
|
7
|
+
title: "Rechercher des bons de commande",
|
|
8
|
+
description: `Recherche des bons de commande dans BoondManager avec filtres par société et projet.
|
|
9
|
+
|
|
10
|
+
Args:
|
|
11
|
+
- keywords (string, optional): Termes de recherche
|
|
12
|
+
- companyId, projectId (string, optional): Filtrer par entité liée
|
|
13
|
+
- page, pageSize: Pagination
|
|
14
|
+
|
|
15
|
+
Returns: Liste des bons de commande correspondants.`,
|
|
16
|
+
inputSchema: OrderSearchSchema,
|
|
17
|
+
annotations: {
|
|
18
|
+
readOnlyHint: true,
|
|
19
|
+
destructiveHint: false,
|
|
20
|
+
idempotentHint: true,
|
|
21
|
+
openWorldHint: true,
|
|
22
|
+
},
|
|
23
|
+
}, async (params) => {
|
|
24
|
+
const query = buildSearchQuery(params);
|
|
25
|
+
const response = await apiRequest("/orders", "GET", undefined, query);
|
|
26
|
+
return {
|
|
27
|
+
content: [{ type: "text", text: formatListResponse(response, "bon de commande") }],
|
|
28
|
+
};
|
|
29
|
+
});
|
|
30
|
+
// Get order details
|
|
31
|
+
server.registerTool("boond_orders_get", {
|
|
32
|
+
title: "Détails d'un bon de commande",
|
|
33
|
+
description: `Récupère les informations détaillées d'un bon de commande par son ID.`,
|
|
34
|
+
inputSchema: IdSchema,
|
|
35
|
+
annotations: {
|
|
36
|
+
readOnlyHint: true,
|
|
37
|
+
destructiveHint: false,
|
|
38
|
+
idempotentHint: true,
|
|
39
|
+
openWorldHint: false,
|
|
40
|
+
},
|
|
41
|
+
}, async (params) => {
|
|
42
|
+
const response = await apiRequest(`/orders/${params.id}`);
|
|
43
|
+
return {
|
|
44
|
+
content: [{ type: "text", text: formatDetailResponse(response) }],
|
|
45
|
+
};
|
|
46
|
+
});
|
|
47
|
+
// Create order
|
|
48
|
+
server.registerTool("boond_orders_create", {
|
|
49
|
+
title: "Créer un bon de commande",
|
|
50
|
+
description: `Crée un nouveau bon de commande dans BoondManager, optionnellement lié à une société et un projet.`,
|
|
51
|
+
inputSchema: OrderCreateSchema,
|
|
52
|
+
annotations: {
|
|
53
|
+
readOnlyHint: false,
|
|
54
|
+
destructiveHint: false,
|
|
55
|
+
idempotentHint: false,
|
|
56
|
+
openWorldHint: false,
|
|
57
|
+
},
|
|
58
|
+
}, async (params) => {
|
|
59
|
+
const { companyId, projectId, ...attrs } = params;
|
|
60
|
+
const body = buildJsonApiBody("order", attrs);
|
|
61
|
+
const relationships = {};
|
|
62
|
+
if (companyId)
|
|
63
|
+
relationships.company = { data: { id: companyId, type: "company" } };
|
|
64
|
+
if (projectId)
|
|
65
|
+
relationships.project = { data: { id: projectId, type: "project" } };
|
|
66
|
+
if (Object.keys(relationships).length > 0) {
|
|
67
|
+
body.data.relationships = relationships;
|
|
68
|
+
}
|
|
69
|
+
const response = await apiRequest("/orders", "POST", body);
|
|
70
|
+
const entity = Array.isArray(response.data) ? response.data[0] : response.data;
|
|
71
|
+
return {
|
|
72
|
+
content: [{
|
|
73
|
+
type: "text",
|
|
74
|
+
text: `✅ Bon de commande créé avec succès.\nID: ${entity?.id}\n\n${formatDetailResponse(response)}`,
|
|
75
|
+
}],
|
|
76
|
+
};
|
|
77
|
+
});
|
|
78
|
+
// Update order
|
|
79
|
+
server.registerTool("boond_orders_update", {
|
|
80
|
+
title: "Modifier un bon de commande",
|
|
81
|
+
description: `Met à jour un bon de commande existant. Seuls les champs fournis sont modifiés.`,
|
|
82
|
+
inputSchema: OrderUpdateSchema,
|
|
83
|
+
annotations: {
|
|
84
|
+
readOnlyHint: false,
|
|
85
|
+
destructiveHint: false,
|
|
86
|
+
idempotentHint: true,
|
|
87
|
+
openWorldHint: false,
|
|
88
|
+
},
|
|
89
|
+
}, async (params) => {
|
|
90
|
+
const { id, ...attrs } = params;
|
|
91
|
+
const body = buildJsonApiBody("order", attrs, id);
|
|
92
|
+
const response = await apiRequest(`/orders/${id}`, "PATCH", body);
|
|
93
|
+
return {
|
|
94
|
+
content: [{
|
|
95
|
+
type: "text",
|
|
96
|
+
text: `✅ Bon de commande #${id} mis à jour.\n\n${formatDetailResponse(response)}`,
|
|
97
|
+
}],
|
|
98
|
+
};
|
|
99
|
+
});
|
|
100
|
+
// Delete order
|
|
101
|
+
server.registerTool("boond_orders_delete", {
|
|
102
|
+
title: "Supprimer un bon de commande",
|
|
103
|
+
description: `Supprime un bon de commande de BoondManager. ⚠️ Action irréversible.`,
|
|
104
|
+
inputSchema: IdSchema,
|
|
105
|
+
annotations: {
|
|
106
|
+
readOnlyHint: false,
|
|
107
|
+
destructiveHint: true,
|
|
108
|
+
idempotentHint: false,
|
|
109
|
+
openWorldHint: false,
|
|
110
|
+
},
|
|
111
|
+
}, async (params) => {
|
|
112
|
+
await apiRequest(`/orders/${params.id}`, "DELETE");
|
|
113
|
+
return {
|
|
114
|
+
content: [{ type: "text", text: `🗑️ Bon de commande #${params.id} supprimé.` }],
|
|
115
|
+
};
|
|
116
|
+
});
|
|
117
|
+
}
|
|
118
|
+
//# sourceMappingURL=orders.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"orders.js","sourceRoot":"","sources":["../../src/tools/orders.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"payments.d.ts","sourceRoot":"","sources":["../../src/tools/payments.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAIzE,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAqD5D"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { PaymentSearchSchema, IdSchema } from "../schemas/index.js";
|
|
2
|
+
import { apiRequest, buildSearchQuery, formatListResponse, formatDetailResponse } from "../services/boond-client.js";
|
|
3
|
+
export function registerPaymentTools(server) {
|
|
4
|
+
// Search payments
|
|
5
|
+
server.registerTool("boond_payments_search", {
|
|
6
|
+
title: "Rechercher des paiements",
|
|
7
|
+
description: `Recherche des paiements / règlements dans BoondManager avec filtres par facture, société et période.
|
|
8
|
+
|
|
9
|
+
Args:
|
|
10
|
+
- keywords (string, optional): Termes de recherche
|
|
11
|
+
- invoiceId, companyId (string, optional): Filtrer par entité liée
|
|
12
|
+
- startDate, endDate (string, optional): Période (YYYY-MM-DD)
|
|
13
|
+
- page, pageSize: Pagination
|
|
14
|
+
|
|
15
|
+
Returns: Liste des paiements correspondants.`,
|
|
16
|
+
inputSchema: PaymentSearchSchema,
|
|
17
|
+
annotations: {
|
|
18
|
+
readOnlyHint: true,
|
|
19
|
+
destructiveHint: false,
|
|
20
|
+
idempotentHint: true,
|
|
21
|
+
openWorldHint: true,
|
|
22
|
+
},
|
|
23
|
+
}, async (params) => {
|
|
24
|
+
const query = buildSearchQuery(params);
|
|
25
|
+
const response = await apiRequest("/payments", "GET", undefined, query);
|
|
26
|
+
return {
|
|
27
|
+
content: [{ type: "text", text: formatListResponse(response, "paiement") }],
|
|
28
|
+
};
|
|
29
|
+
});
|
|
30
|
+
// Get payment details
|
|
31
|
+
server.registerTool("boond_payments_get", {
|
|
32
|
+
title: "Détails d'un paiement",
|
|
33
|
+
description: `Récupère les informations détaillées d'un paiement / règlement par son ID.`,
|
|
34
|
+
inputSchema: IdSchema,
|
|
35
|
+
annotations: {
|
|
36
|
+
readOnlyHint: true,
|
|
37
|
+
destructiveHint: false,
|
|
38
|
+
idempotentHint: true,
|
|
39
|
+
openWorldHint: false,
|
|
40
|
+
},
|
|
41
|
+
}, async (params) => {
|
|
42
|
+
const response = await apiRequest(`/payments/${params.id}`);
|
|
43
|
+
return {
|
|
44
|
+
content: [{ type: "text", text: formatDetailResponse(response) }],
|
|
45
|
+
};
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=payments.js.map
|
|
@@ -0,0 +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;AAErH,MAAM,UAAU,oBAAoB,CAAC,MAAiB;IACpD,kBAAkB;IAClB,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,KAAK,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;QACvC,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,sBAAsB;IACtB,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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"positionings.d.ts","sourceRoot":"","sources":["../../src/tools/positionings.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAKzE,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CA8GhE"}
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
import { PositioningSearchSchema, PositioningCreateSchema, IdSchema } from "../schemas/index.js";
|
|
2
|
+
import { apiRequest, buildSearchQuery, formatListResponse, formatDetailResponse } from "../services/boond-client.js";
|
|
3
|
+
import { buildJsonApiBody } from "./crud-factory.js";
|
|
4
|
+
export function registerPositioningTools(server) {
|
|
5
|
+
// Search positionings
|
|
6
|
+
server.registerTool("boond_positionings_search", {
|
|
7
|
+
title: "Rechercher des positionnements",
|
|
8
|
+
description: `Recherche des positionnements (placement de candidats/ressources sur des projets/opportunités) dans BoondManager.
|
|
9
|
+
|
|
10
|
+
Args:
|
|
11
|
+
- keywords (string, optional): Termes de recherche
|
|
12
|
+
- candidateId, resourceId, projectId, opportunityId (string, optional): Filtrer par entité liée
|
|
13
|
+
- page, pageSize: Pagination
|
|
14
|
+
|
|
15
|
+
Returns: Liste des positionnements correspondants.`,
|
|
16
|
+
inputSchema: PositioningSearchSchema,
|
|
17
|
+
annotations: {
|
|
18
|
+
readOnlyHint: true,
|
|
19
|
+
destructiveHint: false,
|
|
20
|
+
idempotentHint: true,
|
|
21
|
+
openWorldHint: true,
|
|
22
|
+
},
|
|
23
|
+
}, async (params) => {
|
|
24
|
+
const query = buildSearchQuery(params);
|
|
25
|
+
const response = await apiRequest("/positionings", "GET", undefined, query);
|
|
26
|
+
return {
|
|
27
|
+
content: [{ type: "text", text: formatListResponse(response, "positionnement") }],
|
|
28
|
+
};
|
|
29
|
+
});
|
|
30
|
+
// Get positioning details
|
|
31
|
+
server.registerTool("boond_positionings_get", {
|
|
32
|
+
title: "Détails d'un positionnement",
|
|
33
|
+
description: `Récupère les informations détaillées d'un positionnement par son ID.`,
|
|
34
|
+
inputSchema: IdSchema,
|
|
35
|
+
annotations: {
|
|
36
|
+
readOnlyHint: true,
|
|
37
|
+
destructiveHint: false,
|
|
38
|
+
idempotentHint: true,
|
|
39
|
+
openWorldHint: false,
|
|
40
|
+
},
|
|
41
|
+
}, async (params) => {
|
|
42
|
+
const response = await apiRequest(`/positionings/${params.id}`);
|
|
43
|
+
return {
|
|
44
|
+
content: [{ type: "text", text: formatDetailResponse(response) }],
|
|
45
|
+
};
|
|
46
|
+
});
|
|
47
|
+
// Create positioning
|
|
48
|
+
server.registerTool("boond_positionings_create", {
|
|
49
|
+
title: "Créer un positionnement",
|
|
50
|
+
description: `Crée un nouveau positionnement pour placer un candidat ou une ressource sur un projet ou une opportunité.`,
|
|
51
|
+
inputSchema: PositioningCreateSchema,
|
|
52
|
+
annotations: {
|
|
53
|
+
readOnlyHint: false,
|
|
54
|
+
destructiveHint: false,
|
|
55
|
+
idempotentHint: false,
|
|
56
|
+
openWorldHint: false,
|
|
57
|
+
},
|
|
58
|
+
}, async (params) => {
|
|
59
|
+
const { candidateId, resourceId, projectId, opportunityId, ...attrs } = params;
|
|
60
|
+
const body = buildJsonApiBody("positioning", attrs);
|
|
61
|
+
const relationships = {};
|
|
62
|
+
if (candidateId)
|
|
63
|
+
relationships.candidate = { data: { id: candidateId, type: "candidate" } };
|
|
64
|
+
if (resourceId)
|
|
65
|
+
relationships.resource = { data: { id: resourceId, type: "resource" } };
|
|
66
|
+
if (projectId)
|
|
67
|
+
relationships.project = { data: { id: projectId, type: "project" } };
|
|
68
|
+
if (opportunityId)
|
|
69
|
+
relationships.opportunity = { data: { id: opportunityId, type: "opportunity" } };
|
|
70
|
+
if (Object.keys(relationships).length > 0) {
|
|
71
|
+
body.data.relationships = relationships;
|
|
72
|
+
}
|
|
73
|
+
const response = await apiRequest("/positionings", "POST", body);
|
|
74
|
+
const entity = Array.isArray(response.data) ? response.data[0] : response.data;
|
|
75
|
+
return {
|
|
76
|
+
content: [{
|
|
77
|
+
type: "text",
|
|
78
|
+
text: `✅ Positionnement créé avec succès.\nID: ${entity?.id}\n\n${formatDetailResponse(response)}`,
|
|
79
|
+
}],
|
|
80
|
+
};
|
|
81
|
+
});
|
|
82
|
+
// Delete positioning
|
|
83
|
+
server.registerTool("boond_positionings_delete", {
|
|
84
|
+
title: "Supprimer un positionnement",
|
|
85
|
+
description: `Supprime un positionnement de BoondManager. ⚠️ Action irréversible.`,
|
|
86
|
+
inputSchema: IdSchema,
|
|
87
|
+
annotations: {
|
|
88
|
+
readOnlyHint: false,
|
|
89
|
+
destructiveHint: true,
|
|
90
|
+
idempotentHint: false,
|
|
91
|
+
openWorldHint: false,
|
|
92
|
+
},
|
|
93
|
+
}, async (params) => {
|
|
94
|
+
await apiRequest(`/positionings/${params.id}`, "DELETE");
|
|
95
|
+
return {
|
|
96
|
+
content: [{ type: "text", text: `🗑️ Positionnement #${params.id} supprimé.` }],
|
|
97
|
+
};
|
|
98
|
+
});
|
|
99
|
+
}
|
|
100
|
+
//# sourceMappingURL=positionings.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"positionings.js","sourceRoot":"","sources":["../../src/tools/positionings.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"products.d.ts","sourceRoot":"","sources":["../../src/tools/products.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAkBzE,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAe5D"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { ProductCreateSchema, ProductUpdateSchema } from "../schemas/index.js";
|
|
2
|
+
import { registerSearchTool, registerGetTool, registerCreateTool, registerUpdateTool, registerDeleteTool, buildJsonApiBody, } from "./crud-factory.js";
|
|
3
|
+
const OPTS = {
|
|
4
|
+
entityName: "produit",
|
|
5
|
+
entityNamePlural: "produits",
|
|
6
|
+
apiPath: "/products",
|
|
7
|
+
prefix: "boond_products",
|
|
8
|
+
};
|
|
9
|
+
export function registerProductTools(server) {
|
|
10
|
+
registerSearchTool(server, OPTS);
|
|
11
|
+
registerGetTool(server, OPTS);
|
|
12
|
+
registerCreateTool(server, OPTS, ProductCreateSchema, (params) => {
|
|
13
|
+
const { ...attrs } = params;
|
|
14
|
+
return buildJsonApiBody("product", attrs);
|
|
15
|
+
});
|
|
16
|
+
registerUpdateTool(server, OPTS, ProductUpdateSchema, (params) => {
|
|
17
|
+
const { id, ...attrs } = params;
|
|
18
|
+
return buildJsonApiBody("product", attrs, id);
|
|
19
|
+
});
|
|
20
|
+
registerDeleteTool(server, OPTS);
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=products.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"products.js","sourceRoot":"","sources":["../../src/tools/products.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC/E,OAAO,EACL,kBAAkB,EAClB,eAAe,EACf,kBAAkB,EAClB,kBAAkB,EAClB,kBAAkB,EAClB,gBAAgB,GACjB,MAAM,mBAAmB,CAAC;AAE3B,MAAM,IAAI,GAAG;IACX,UAAU,EAAE,SAAS;IACrB,gBAAgB,EAAE,UAAU;IAC5B,OAAO,EAAE,WAAW;IACpB,MAAM,EAAE,gBAAgB;CACzB,CAAC;AAEF,MAAM,UAAU,oBAAoB,CAAC,MAAiB;IACpD,kBAAkB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IACjC,eAAe,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAE9B,kBAAkB,CAAC,MAAM,EAAE,IAAI,EAAE,mBAAmB,EAAE,CAAC,MAAM,EAAE,EAAE;QAC/D,MAAM,EAAE,GAAG,KAAK,EAAE,GAAG,MAAM,CAAC;QAC5B,OAAO,gBAAgB,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IAC5C,CAAC,CAAC,CAAC;IAEH,kBAAkB,CAAC,MAAM,EAAE,IAAI,EAAE,mBAAmB,EAAE,CAAC,MAAM,EAAE,EAAE;QAC/D,MAAM,EAAE,EAAE,EAAE,GAAG,KAAK,EAAE,GAAG,MAAM,CAAC;QAChC,OAAO,gBAAgB,CAAC,SAAS,EAAE,KAAK,EAAE,EAAY,CAAC,CAAC;IAC1D,CAAC,CAAC,CAAC;IAEH,kBAAkB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;AACnC,CAAC"}
|
|
@@ -0,0 +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;AAiFzE,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CA2C5D"}
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
import { ProjectCreateSchema, ProjectUpdateSchema, IdSchema } from "../schemas/index.js";
|
|
2
|
+
import { registerSearchTool, registerGetTool, registerCreateTool, registerUpdateTool, registerDeleteTool, buildJsonApiBody, } from "./crud-factory.js";
|
|
3
|
+
import { apiRequest, formatDetailResponse } from "../services/boond-client.js";
|
|
4
|
+
const OPTS = {
|
|
5
|
+
entityName: "projet",
|
|
6
|
+
entityNamePlural: "projets",
|
|
7
|
+
apiPath: "/projects",
|
|
8
|
+
prefix: "boond_projects",
|
|
9
|
+
};
|
|
10
|
+
const TAB_TOOL_ANNOTATIONS = {
|
|
11
|
+
readOnlyHint: true,
|
|
12
|
+
destructiveHint: false,
|
|
13
|
+
idempotentHint: true,
|
|
14
|
+
openWorldHint: false,
|
|
15
|
+
};
|
|
16
|
+
const PROJECT_TABS = [
|
|
17
|
+
{
|
|
18
|
+
name: "information",
|
|
19
|
+
tab: "information",
|
|
20
|
+
title: "Informations générales d'un projet",
|
|
21
|
+
description: `Récupère les informations générales d'un projet (client, dates, état, description, responsable...).
|
|
22
|
+
|
|
23
|
+
Args:
|
|
24
|
+
- id (string): ID du projet
|
|
25
|
+
|
|
26
|
+
Returns: Données générales du projet.`,
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
name: "planning",
|
|
30
|
+
tab: "planning",
|
|
31
|
+
title: "Planning d'un projet",
|
|
32
|
+
description: `Récupère le planning d'un projet (jalons, phases, dates prévisionnelles et réelles...).
|
|
33
|
+
|
|
34
|
+
Args:
|
|
35
|
+
- id (string): ID du projet
|
|
36
|
+
|
|
37
|
+
Returns: Données de planning du projet.`,
|
|
38
|
+
},
|
|
39
|
+
{
|
|
40
|
+
name: "actions",
|
|
41
|
+
tab: "actions",
|
|
42
|
+
title: "Actions liées à un projet",
|
|
43
|
+
description: `Récupère les actions (appels, emails, RDV, notes) associées à un projet.
|
|
44
|
+
|
|
45
|
+
Args:
|
|
46
|
+
- id (string): ID du projet
|
|
47
|
+
|
|
48
|
+
Returns: Liste des actions liées au projet.`,
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
name: "documents",
|
|
52
|
+
tab: "documents",
|
|
53
|
+
title: "Documents d'un projet",
|
|
54
|
+
description: `Récupère les documents attachés à un projet (contrats, avenants, spécifications, livrables...).
|
|
55
|
+
|
|
56
|
+
Args:
|
|
57
|
+
- id (string): ID du projet
|
|
58
|
+
|
|
59
|
+
Returns: Liste des documents du projet.`,
|
|
60
|
+
},
|
|
61
|
+
];
|
|
62
|
+
export function registerProjectTools(server) {
|
|
63
|
+
registerSearchTool(server, OPTS);
|
|
64
|
+
registerGetTool(server, OPTS);
|
|
65
|
+
registerCreateTool(server, OPTS, ProjectCreateSchema, (params) => {
|
|
66
|
+
const { companyId, contactId, opportunityId, ...attrs } = params;
|
|
67
|
+
const body = buildJsonApiBody("project", attrs);
|
|
68
|
+
const relationships = {};
|
|
69
|
+
if (companyId)
|
|
70
|
+
relationships.company = { data: { id: companyId, type: "company" } };
|
|
71
|
+
if (contactId)
|
|
72
|
+
relationships.contact = { data: { id: contactId, type: "contact" } };
|
|
73
|
+
if (opportunityId)
|
|
74
|
+
relationships.opportunity = { data: { id: opportunityId, type: "opportunity" } };
|
|
75
|
+
if (Object.keys(relationships).length > 0) {
|
|
76
|
+
body.data.relationships = relationships;
|
|
77
|
+
}
|
|
78
|
+
return body;
|
|
79
|
+
});
|
|
80
|
+
registerUpdateTool(server, OPTS, ProjectUpdateSchema, (params) => {
|
|
81
|
+
const { id, ...attrs } = params;
|
|
82
|
+
return buildJsonApiBody("project", attrs, id);
|
|
83
|
+
});
|
|
84
|
+
registerDeleteTool(server, OPTS);
|
|
85
|
+
// Register one tool per project tab
|
|
86
|
+
for (const tab of PROJECT_TABS) {
|
|
87
|
+
server.registerTool(`boond_projects_${tab.name}`, {
|
|
88
|
+
title: tab.title,
|
|
89
|
+
description: tab.description,
|
|
90
|
+
inputSchema: IdSchema,
|
|
91
|
+
annotations: TAB_TOOL_ANNOTATIONS,
|
|
92
|
+
}, async (params) => {
|
|
93
|
+
const response = await apiRequest(`/projects/${params.id}/${tab.tab}`);
|
|
94
|
+
const text = formatDetailResponse(response);
|
|
95
|
+
return {
|
|
96
|
+
content: [{ type: "text", text }],
|
|
97
|
+
};
|
|
98
|
+
});
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
//# sourceMappingURL=projects.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"projects.js","sourceRoot":"","sources":["../../src/tools/projects.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resources.d.ts","sourceRoot":"","sources":["../../src/tools/resources.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAuGzE,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAmC7D"}
|