@energio/holded-mcp 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 +1040 -0
- package/dist/constants.d.ts +60 -0
- package/dist/constants.d.ts.map +1 -0
- package/dist/constants.js +72 -0
- package/dist/constants.js.map +1 -0
- package/dist/index.d.ts +11 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +86 -0
- package/dist/index.js.map +1 -0
- package/dist/schemas/accounting/account-balances.d.ts +19 -0
- package/dist/schemas/accounting/account-balances.d.ts.map +1 -0
- package/dist/schemas/accounting/account-balances.js +28 -0
- package/dist/schemas/accounting/account-balances.js.map +1 -0
- package/dist/schemas/accounting/accounts.d.ts +49 -0
- package/dist/schemas/accounting/accounts.d.ts.map +1 -0
- package/dist/schemas/accounting/accounts.js +50 -0
- package/dist/schemas/accounting/accounts.js.map +1 -0
- package/dist/schemas/accounting/daily-ledger.d.ts +45 -0
- package/dist/schemas/accounting/daily-ledger.d.ts.map +1 -0
- package/dist/schemas/accounting/daily-ledger.js +57 -0
- package/dist/schemas/accounting/daily-ledger.js.map +1 -0
- package/dist/schemas/common.d.ts +118 -0
- package/dist/schemas/common.d.ts.map +1 -0
- package/dist/schemas/common.js +126 -0
- package/dist/schemas/common.js.map +1 -0
- package/dist/schemas/crm/bookings.d.ts +108 -0
- package/dist/schemas/crm/bookings.d.ts.map +1 -0
- package/dist/schemas/crm/bookings.js +96 -0
- package/dist/schemas/crm/bookings.js.map +1 -0
- package/dist/schemas/crm/events.d.ts +57 -0
- package/dist/schemas/crm/events.d.ts.map +1 -0
- package/dist/schemas/crm/events.js +53 -0
- package/dist/schemas/crm/events.js.map +1 -0
- package/dist/schemas/crm/funnels.d.ts +60 -0
- package/dist/schemas/crm/funnels.d.ts.map +1 -0
- package/dist/schemas/crm/funnels.js +48 -0
- package/dist/schemas/crm/funnels.js.map +1 -0
- package/dist/schemas/crm/leads.d.ts +146 -0
- package/dist/schemas/crm/leads.d.ts.map +1 -0
- package/dist/schemas/crm/leads.js +129 -0
- package/dist/schemas/crm/leads.js.map +1 -0
- package/dist/schemas/invoicing/contacts.d.ts +352 -0
- package/dist/schemas/invoicing/contacts.d.ts.map +1 -0
- package/dist/schemas/invoicing/contacts.js +187 -0
- package/dist/schemas/invoicing/contacts.js.map +1 -0
- package/dist/schemas/invoicing/documents.d.ts +424 -0
- package/dist/schemas/invoicing/documents.d.ts.map +1 -0
- package/dist/schemas/invoicing/documents.js +217 -0
- package/dist/schemas/invoicing/documents.js.map +1 -0
- package/dist/schemas/invoicing/expenses-accounts.d.ts +47 -0
- package/dist/schemas/invoicing/expenses-accounts.d.ts.map +1 -0
- package/dist/schemas/invoicing/expenses-accounts.js +43 -0
- package/dist/schemas/invoicing/expenses-accounts.js.map +1 -0
- package/dist/schemas/invoicing/numbering-series.d.ts +94 -0
- package/dist/schemas/invoicing/numbering-series.d.ts.map +1 -0
- package/dist/schemas/invoicing/numbering-series.js +43 -0
- package/dist/schemas/invoicing/numbering-series.js.map +1 -0
- package/dist/schemas/invoicing/payments.d.ts +50 -0
- package/dist/schemas/invoicing/payments.d.ts.map +1 -0
- package/dist/schemas/invoicing/payments.js +46 -0
- package/dist/schemas/invoicing/payments.js.map +1 -0
- package/dist/schemas/invoicing/products.d.ts +176 -0
- package/dist/schemas/invoicing/products.d.ts.map +1 -0
- package/dist/schemas/invoicing/products.js +149 -0
- package/dist/schemas/invoicing/products.js.map +1 -0
- package/dist/schemas/invoicing/remittances.d.ts +21 -0
- package/dist/schemas/invoicing/remittances.d.ts.map +1 -0
- package/dist/schemas/invoicing/remittances.js +20 -0
- package/dist/schemas/invoicing/remittances.js.map +1 -0
- package/dist/schemas/invoicing/sales-channels.d.ts +45 -0
- package/dist/schemas/invoicing/sales-channels.d.ts.map +1 -0
- package/dist/schemas/invoicing/sales-channels.js +41 -0
- package/dist/schemas/invoicing/sales-channels.js.map +1 -0
- package/dist/schemas/invoicing/services.d.ts +55 -0
- package/dist/schemas/invoicing/services.d.ts.map +1 -0
- package/dist/schemas/invoicing/services.js +51 -0
- package/dist/schemas/invoicing/services.js.map +1 -0
- package/dist/schemas/invoicing/taxes.d.ts +12 -0
- package/dist/schemas/invoicing/taxes.d.ts.map +1 -0
- package/dist/schemas/invoicing/taxes.js +12 -0
- package/dist/schemas/invoicing/taxes.js.map +1 -0
- package/dist/schemas/invoicing/treasury.d.ts +42 -0
- package/dist/schemas/invoicing/treasury.d.ts.map +1 -0
- package/dist/schemas/invoicing/treasury.js +39 -0
- package/dist/schemas/invoicing/treasury.js.map +1 -0
- package/dist/schemas/invoicing/warehouses.d.ts +61 -0
- package/dist/schemas/invoicing/warehouses.d.ts.map +1 -0
- package/dist/schemas/invoicing/warehouses.js +43 -0
- package/dist/schemas/invoicing/warehouses.js.map +1 -0
- package/dist/schemas/projects/projects.d.ts +60 -0
- package/dist/schemas/projects/projects.d.ts.map +1 -0
- package/dist/schemas/projects/projects.js +55 -0
- package/dist/schemas/projects/projects.js.map +1 -0
- package/dist/schemas/projects/tasks.d.ts +68 -0
- package/dist/schemas/projects/tasks.d.ts.map +1 -0
- package/dist/schemas/projects/tasks.js +64 -0
- package/dist/schemas/projects/tasks.js.map +1 -0
- package/dist/schemas/projects/time-tracking.d.ts +80 -0
- package/dist/schemas/projects/time-tracking.d.ts.map +1 -0
- package/dist/schemas/projects/time-tracking.js +75 -0
- package/dist/schemas/projects/time-tracking.js.map +1 -0
- package/dist/schemas/team/employees.d.ts +135 -0
- package/dist/schemas/team/employees.d.ts.map +1 -0
- package/dist/schemas/team/employees.js +144 -0
- package/dist/schemas/team/employees.js.map +1 -0
- package/dist/schemas/team/time-tracking.d.ts +98 -0
- package/dist/schemas/team/time-tracking.d.ts.map +1 -0
- package/dist/schemas/team/time-tracking.js +89 -0
- package/dist/schemas/team/time-tracking.js.map +1 -0
- package/dist/services/api.d.ts +118 -0
- package/dist/services/api.d.ts.map +1 -0
- package/dist/services/api.js +441 -0
- package/dist/services/api.js.map +1 -0
- package/dist/tools/accounting/account-balances.d.ts +44 -0
- package/dist/tools/accounting/account-balances.d.ts.map +1 -0
- package/dist/tools/accounting/account-balances.js +240 -0
- package/dist/tools/accounting/account-balances.js.map +1 -0
- package/dist/tools/accounting/accounts.d.ts +18 -0
- package/dist/tools/accounting/accounts.d.ts.map +1 -0
- package/dist/tools/accounting/accounts.js +131 -0
- package/dist/tools/accounting/accounts.js.map +1 -0
- package/dist/tools/accounting/daily-ledger.d.ts +9 -0
- package/dist/tools/accounting/daily-ledger.d.ts.map +1 -0
- package/dist/tools/accounting/daily-ledger.js +117 -0
- package/dist/tools/accounting/daily-ledger.js.map +1 -0
- package/dist/tools/accounting/index.d.ts +9 -0
- package/dist/tools/accounting/index.d.ts.map +1 -0
- package/dist/tools/accounting/index.js +15 -0
- package/dist/tools/accounting/index.js.map +1 -0
- package/dist/tools/crm/bookings.d.ts +18 -0
- package/dist/tools/crm/bookings.d.ts.map +1 -0
- package/dist/tools/crm/bookings.js +272 -0
- package/dist/tools/crm/bookings.js.map +1 -0
- package/dist/tools/crm/events.d.ts +18 -0
- package/dist/tools/crm/events.d.ts.map +1 -0
- package/dist/tools/crm/events.js +134 -0
- package/dist/tools/crm/events.js.map +1 -0
- package/dist/tools/crm/funnels.d.ts +18 -0
- package/dist/tools/crm/funnels.d.ts.map +1 -0
- package/dist/tools/crm/funnels.js +113 -0
- package/dist/tools/crm/funnels.js.map +1 -0
- package/dist/tools/crm/index.d.ts +9 -0
- package/dist/tools/crm/index.d.ts.map +1 -0
- package/dist/tools/crm/index.js +17 -0
- package/dist/tools/crm/index.js.map +1 -0
- package/dist/tools/crm/leads.d.ts +18 -0
- package/dist/tools/crm/leads.d.ts.map +1 -0
- package/dist/tools/crm/leads.js +519 -0
- package/dist/tools/crm/leads.js.map +1 -0
- package/dist/tools/factory.d.ts +55 -0
- package/dist/tools/factory.d.ts.map +1 -0
- package/dist/tools/factory.js +145 -0
- package/dist/tools/factory.js.map +1 -0
- package/dist/tools/invoicing/contacts.d.ts +26 -0
- package/dist/tools/invoicing/contacts.d.ts.map +1 -0
- package/dist/tools/invoicing/contacts.js +358 -0
- package/dist/tools/invoicing/contacts.js.map +1 -0
- package/dist/tools/invoicing/documents.d.ts +18 -0
- package/dist/tools/invoicing/documents.d.ts.map +1 -0
- package/dist/tools/invoicing/documents.js +578 -0
- package/dist/tools/invoicing/documents.js.map +1 -0
- package/dist/tools/invoicing/expenses-accounts.d.ts +25 -0
- package/dist/tools/invoicing/expenses-accounts.d.ts.map +1 -0
- package/dist/tools/invoicing/expenses-accounts.js +111 -0
- package/dist/tools/invoicing/expenses-accounts.js.map +1 -0
- package/dist/tools/invoicing/index.d.ts +9 -0
- package/dist/tools/invoicing/index.d.ts.map +1 -0
- package/dist/tools/invoicing/index.js +33 -0
- package/dist/tools/invoicing/index.js.map +1 -0
- package/dist/tools/invoicing/numbering-series.d.ts +9 -0
- package/dist/tools/invoicing/numbering-series.d.ts.map +1 -0
- package/dist/tools/invoicing/numbering-series.js +161 -0
- package/dist/tools/invoicing/numbering-series.js.map +1 -0
- package/dist/tools/invoicing/payments.d.ts +18 -0
- package/dist/tools/invoicing/payments.d.ts.map +1 -0
- package/dist/tools/invoicing/payments.js +175 -0
- package/dist/tools/invoicing/payments.js.map +1 -0
- package/dist/tools/invoicing/products.d.ts +18 -0
- package/dist/tools/invoicing/products.d.ts.map +1 -0
- package/dist/tools/invoicing/products.js +389 -0
- package/dist/tools/invoicing/products.js.map +1 -0
- package/dist/tools/invoicing/remittances.d.ts +17 -0
- package/dist/tools/invoicing/remittances.d.ts.map +1 -0
- package/dist/tools/invoicing/remittances.js +76 -0
- package/dist/tools/invoicing/remittances.js.map +1 -0
- package/dist/tools/invoicing/sales-channels.d.ts +24 -0
- package/dist/tools/invoicing/sales-channels.d.ts.map +1 -0
- package/dist/tools/invoicing/sales-channels.js +105 -0
- package/dist/tools/invoicing/sales-channels.js.map +1 -0
- package/dist/tools/invoicing/services.d.ts +29 -0
- package/dist/tools/invoicing/services.d.ts.map +1 -0
- package/dist/tools/invoicing/services.js +124 -0
- package/dist/tools/invoicing/services.js.map +1 -0
- package/dist/tools/invoicing/taxes.d.ts +18 -0
- package/dist/tools/invoicing/taxes.d.ts.map +1 -0
- package/dist/tools/invoicing/taxes.js +58 -0
- package/dist/tools/invoicing/taxes.js.map +1 -0
- package/dist/tools/invoicing/treasury.d.ts +9 -0
- package/dist/tools/invoicing/treasury.d.ts.map +1 -0
- package/dist/tools/invoicing/treasury.js +196 -0
- package/dist/tools/invoicing/treasury.js.map +1 -0
- package/dist/tools/invoicing/warehouses.d.ts +18 -0
- package/dist/tools/invoicing/warehouses.d.ts.map +1 -0
- package/dist/tools/invoicing/warehouses.js +133 -0
- package/dist/tools/invoicing/warehouses.js.map +1 -0
- package/dist/tools/projects/index.d.ts +9 -0
- package/dist/tools/projects/index.d.ts.map +1 -0
- package/dist/tools/projects/index.js +15 -0
- package/dist/tools/projects/index.js.map +1 -0
- package/dist/tools/projects/projects.d.ts +18 -0
- package/dist/tools/projects/projects.d.ts.map +1 -0
- package/dist/tools/projects/projects.js +203 -0
- package/dist/tools/projects/projects.js.map +1 -0
- package/dist/tools/projects/tasks.d.ts +18 -0
- package/dist/tools/projects/tasks.d.ts.map +1 -0
- package/dist/tools/projects/tasks.js +154 -0
- package/dist/tools/projects/tasks.js.map +1 -0
- package/dist/tools/projects/time-tracking.d.ts +14 -0
- package/dist/tools/projects/time-tracking.d.ts.map +1 -0
- package/dist/tools/projects/time-tracking.js +291 -0
- package/dist/tools/projects/time-tracking.js.map +1 -0
- package/dist/tools/team/employees.d.ts +18 -0
- package/dist/tools/team/employees.d.ts.map +1 -0
- package/dist/tools/team/employees.js +149 -0
- package/dist/tools/team/employees.js.map +1 -0
- package/dist/tools/team/index.d.ts +9 -0
- package/dist/tools/team/index.d.ts.map +1 -0
- package/dist/tools/team/index.js +13 -0
- package/dist/tools/team/index.js.map +1 -0
- package/dist/tools/team/time-tracking.d.ts +18 -0
- package/dist/tools/team/time-tracking.d.ts.map +1 -0
- package/dist/tools/team/time-tracking.js +398 -0
- package/dist/tools/team/time-tracking.js.map +1 -0
- package/dist/tools/utilities.d.ts +45 -0
- package/dist/tools/utilities.d.ts.map +1 -0
- package/dist/tools/utilities.js +55 -0
- package/dist/tools/utilities.js.map +1 -0
- package/dist/types.d.ts +640 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +29 -0
- package/dist/types.js.map +1 -0
- package/package.json +70 -0
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Services tools for Holded API
|
|
3
|
+
*/
|
|
4
|
+
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
5
|
+
interface Service {
|
|
6
|
+
id: string;
|
|
7
|
+
name: string;
|
|
8
|
+
desc?: string;
|
|
9
|
+
subtotal?: number;
|
|
10
|
+
tax?: number;
|
|
11
|
+
cost?: number;
|
|
12
|
+
salesChannelId?: string;
|
|
13
|
+
tags?: string[];
|
|
14
|
+
[key: string]: unknown;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Format services as markdown
|
|
18
|
+
*/
|
|
19
|
+
export declare function formatServicesMarkdown(services: Service[]): string;
|
|
20
|
+
/**
|
|
21
|
+
* Format a single service as markdown
|
|
22
|
+
*/
|
|
23
|
+
export declare function formatServiceMarkdown(service: Service): string;
|
|
24
|
+
/**
|
|
25
|
+
* Register services tools
|
|
26
|
+
*/
|
|
27
|
+
export declare function registerServicesTools(server: McpServer): void;
|
|
28
|
+
export {};
|
|
29
|
+
//# sourceMappingURL=services.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"services.d.ts","sourceRoot":"","sources":["../../../src/tools/invoicing/services.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAUpE,UAAU,OAAO;IACf,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,MAAM,CAclE;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,CAa9D;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CA+E7D"}
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Services tools for Holded API
|
|
3
|
+
*/
|
|
4
|
+
import { ListServicesInputSchema, GetServiceInputSchema, CreateServiceInputSchema, UpdateServiceInputSchema, DeleteServiceInputSchema, } from "../../schemas/invoicing/services.js";
|
|
5
|
+
import { registerCrudTools } from "../factory.js";
|
|
6
|
+
/**
|
|
7
|
+
* Format services as markdown
|
|
8
|
+
*/
|
|
9
|
+
export function formatServicesMarkdown(services) {
|
|
10
|
+
if (!services.length) {
|
|
11
|
+
return "No services found.";
|
|
12
|
+
}
|
|
13
|
+
const lines = ["# Services", "", `Found ${services.length} services:`, ""];
|
|
14
|
+
for (const service of services) {
|
|
15
|
+
lines.push(`## ${service.name}`);
|
|
16
|
+
lines.push(`- **ID**: ${service.id}`);
|
|
17
|
+
lines.push("");
|
|
18
|
+
}
|
|
19
|
+
return lines.join("\n");
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Format a single service as markdown
|
|
23
|
+
*/
|
|
24
|
+
export function formatServiceMarkdown(service) {
|
|
25
|
+
const lines = [`# ${service.name || "Service"}`, "", `**ID**: ${service.id}`, ""];
|
|
26
|
+
if (service.desc)
|
|
27
|
+
lines.push(`- **Description**: ${service.desc}`);
|
|
28
|
+
if (service.subtotal !== undefined)
|
|
29
|
+
lines.push(`- **Subtotal**: ${service.subtotal}`);
|
|
30
|
+
if (service.tax !== undefined)
|
|
31
|
+
lines.push(`- **Tax**: ${service.tax}`);
|
|
32
|
+
if (service.cost !== undefined)
|
|
33
|
+
lines.push(`- **Cost**: ${service.cost}`);
|
|
34
|
+
if (service.salesChannelId)
|
|
35
|
+
lines.push(`- **Sales Channel ID**: ${service.salesChannelId}`);
|
|
36
|
+
if (service.tags && Array.isArray(service.tags) && service.tags.length > 0) {
|
|
37
|
+
lines.push(`- **Tags**: ${service.tags.join(", ")}`);
|
|
38
|
+
}
|
|
39
|
+
return lines.join("\n");
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Register services tools
|
|
43
|
+
*/
|
|
44
|
+
export function registerServicesTools(server) {
|
|
45
|
+
registerCrudTools(server, {
|
|
46
|
+
module: "invoicing",
|
|
47
|
+
toolPrefix: "holded_invoicing",
|
|
48
|
+
resource: "service",
|
|
49
|
+
resourcePlural: "services",
|
|
50
|
+
endpoint: "services",
|
|
51
|
+
idParam: "service_id",
|
|
52
|
+
schemas: {
|
|
53
|
+
list: ListServicesInputSchema,
|
|
54
|
+
get: GetServiceInputSchema,
|
|
55
|
+
create: CreateServiceInputSchema,
|
|
56
|
+
update: UpdateServiceInputSchema,
|
|
57
|
+
delete: DeleteServiceInputSchema,
|
|
58
|
+
},
|
|
59
|
+
titles: {
|
|
60
|
+
list: "List Holded Services",
|
|
61
|
+
get: "Get Holded Service",
|
|
62
|
+
create: "Create Holded Service",
|
|
63
|
+
update: "Update Holded Service",
|
|
64
|
+
delete: "Delete Holded Service",
|
|
65
|
+
},
|
|
66
|
+
descriptions: {
|
|
67
|
+
list: `List all services from Holded.
|
|
68
|
+
|
|
69
|
+
Args:
|
|
70
|
+
- page (number): Page number for pagination (default: 1, max 500 items per page)
|
|
71
|
+
- response_format ('json' | 'markdown'): Output format (default: 'json')
|
|
72
|
+
|
|
73
|
+
Returns:
|
|
74
|
+
Array of services with id and name.`,
|
|
75
|
+
get: `Get a specific service by ID from Holded.
|
|
76
|
+
|
|
77
|
+
Args:
|
|
78
|
+
- service_id (string): The service ID to retrieve (required)
|
|
79
|
+
- response_format ('json' | 'markdown'): Output format (default: 'json')
|
|
80
|
+
|
|
81
|
+
Returns:
|
|
82
|
+
Service details including name, description, price, and other fields.`,
|
|
83
|
+
create: `Create a new service in Holded.
|
|
84
|
+
|
|
85
|
+
Args:
|
|
86
|
+
- name (string): Service name (required)
|
|
87
|
+
- desc (string): Service description
|
|
88
|
+
- tags (array): Service tags
|
|
89
|
+
- tax (number): Tax rate
|
|
90
|
+
- subtotal (number): Subtotal in cents
|
|
91
|
+
- salesChannelId (string): Sales channel ID
|
|
92
|
+
- cost (number): Service cost
|
|
93
|
+
|
|
94
|
+
Returns:
|
|
95
|
+
The created service with its assigned ID.`,
|
|
96
|
+
update: `Update an existing service in Holded. Only provided fields will be updated.
|
|
97
|
+
|
|
98
|
+
Args:
|
|
99
|
+
- service_id (string): The service ID to update (required)
|
|
100
|
+
- name (string): Service name
|
|
101
|
+
- desc (string): Service description
|
|
102
|
+
- tags (array): Service tags
|
|
103
|
+
- tax (number): Tax rate
|
|
104
|
+
- subtotal (number): Subtotal in cents
|
|
105
|
+
- salesChannelId (string): Sales channel ID
|
|
106
|
+
- cost (number): Service cost
|
|
107
|
+
|
|
108
|
+
Returns:
|
|
109
|
+
The updated service.`,
|
|
110
|
+
delete: `Delete a service from Holded.
|
|
111
|
+
|
|
112
|
+
Args:
|
|
113
|
+
- service_id (string): The service ID to delete (required)
|
|
114
|
+
|
|
115
|
+
Returns:
|
|
116
|
+
Confirmation of deletion.`,
|
|
117
|
+
},
|
|
118
|
+
formatters: {
|
|
119
|
+
list: formatServicesMarkdown,
|
|
120
|
+
single: formatServiceMarkdown,
|
|
121
|
+
},
|
|
122
|
+
});
|
|
123
|
+
}
|
|
124
|
+
//# sourceMappingURL=services.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"services.js","sourceRoot":"","sources":["../../../src/tools/invoicing/services.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Taxes tools for Holded API
|
|
3
|
+
*/
|
|
4
|
+
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
5
|
+
/**
|
|
6
|
+
* Format taxes as markdown
|
|
7
|
+
*/
|
|
8
|
+
export declare function formatTaxesMarkdown(taxes: Array<{
|
|
9
|
+
id: string;
|
|
10
|
+
name: string;
|
|
11
|
+
rate?: number;
|
|
12
|
+
[key: string]: unknown;
|
|
13
|
+
}>): string;
|
|
14
|
+
/**
|
|
15
|
+
* Register taxes tools
|
|
16
|
+
*/
|
|
17
|
+
export declare function registerTaxesTools(server: McpServer): void;
|
|
18
|
+
//# sourceMappingURL=taxes.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"taxes.d.ts","sourceRoot":"","sources":["../../../src/tools/invoicing/taxes.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AASpE;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,KAAK,CAAC;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CAAE,CAAC,GAAG,MAAM,CAe7H;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAwC1D"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Taxes tools for Holded API
|
|
3
|
+
*/
|
|
4
|
+
import { makeApiRequest } from "../../services/api.js";
|
|
5
|
+
import { ResponseFormat } from "../../constants.js";
|
|
6
|
+
import { withErrorHandling } from "../utilities.js";
|
|
7
|
+
import { GetTaxesInputSchema, } from "../../schemas/invoicing/taxes.js";
|
|
8
|
+
/**
|
|
9
|
+
* Format taxes as markdown
|
|
10
|
+
*/
|
|
11
|
+
export function formatTaxesMarkdown(taxes) {
|
|
12
|
+
if (!taxes.length) {
|
|
13
|
+
return "No taxes found.";
|
|
14
|
+
}
|
|
15
|
+
const lines = ["# Taxes", "", `Found ${taxes.length} taxes:`, ""];
|
|
16
|
+
for (const tax of taxes) {
|
|
17
|
+
lines.push(`## ${tax.name}`);
|
|
18
|
+
lines.push(`- **ID**: ${tax.id}`);
|
|
19
|
+
if (tax.rate !== undefined)
|
|
20
|
+
lines.push(`- **Rate**: ${tax.rate}%`);
|
|
21
|
+
lines.push("");
|
|
22
|
+
}
|
|
23
|
+
return lines.join("\n");
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Register taxes tools
|
|
27
|
+
*/
|
|
28
|
+
export function registerTaxesTools(server) {
|
|
29
|
+
// Get Taxes
|
|
30
|
+
server.registerTool("holded_invoicing_get_taxes", {
|
|
31
|
+
title: "Get Holded Taxes",
|
|
32
|
+
description: `Get all taxes information from Holded.
|
|
33
|
+
|
|
34
|
+
Args:
|
|
35
|
+
- response_format ('json' | 'markdown'): Output format (default: 'json')
|
|
36
|
+
|
|
37
|
+
Returns:
|
|
38
|
+
Array of taxes with id, name, and rate information.`,
|
|
39
|
+
inputSchema: GetTaxesInputSchema,
|
|
40
|
+
annotations: {
|
|
41
|
+
readOnlyHint: true,
|
|
42
|
+
destructiveHint: false,
|
|
43
|
+
idempotentHint: true,
|
|
44
|
+
openWorldHint: true,
|
|
45
|
+
},
|
|
46
|
+
}, withErrorHandling(async (params) => {
|
|
47
|
+
const { response_format } = params;
|
|
48
|
+
const taxes = await makeApiRequest("invoicing", "taxes", "GET");
|
|
49
|
+
const textContent = response_format === ResponseFormat.MARKDOWN
|
|
50
|
+
? formatTaxesMarkdown(taxes)
|
|
51
|
+
: JSON.stringify(taxes, null, 2);
|
|
52
|
+
return {
|
|
53
|
+
content: [{ type: "text", text: textContent }],
|
|
54
|
+
structuredContent: { taxes, count: taxes.length },
|
|
55
|
+
};
|
|
56
|
+
}));
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=taxes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"taxes.js","sourceRoot":"","sources":["../../../src/tools/invoicing/taxes.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EACL,mBAAmB,GAEpB,MAAM,kCAAkC,CAAC;AAE1C;;GAEG;AACH,MAAM,UAAU,mBAAmB,CAAC,KAAiF;IACnH,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;QAClB,OAAO,iBAAiB,CAAC;IAC3B,CAAC;IAED,MAAM,KAAK,GAAG,CAAC,SAAS,EAAE,EAAE,EAAE,SAAS,KAAK,CAAC,MAAM,SAAS,EAAE,EAAE,CAAC,CAAC;IAElE,KAAK,MAAM,GAAG,IAAI,KAAK,EAAE,CAAC;QACxB,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;QAC7B,KAAK,CAAC,IAAI,CAAC,aAAa,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC;QAClC,IAAI,GAAG,CAAC,IAAI,KAAK,SAAS;YAAE,KAAK,CAAC,IAAI,CAAC,eAAe,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC;QACnE,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjB,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAAC,MAAiB;IAClD,YAAY;IACZ,MAAM,CAAC,YAAY,CACjB,4BAA4B,EAC5B;QACE,KAAK,EAAE,kBAAkB;QACzB,WAAW,EAAE;;;;;;sDAMmC;QAChD,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,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE;QACjC,MAAM,EAAE,eAAe,EAAE,GAAG,MAAkC,CAAC;QAC/D,MAAM,KAAK,GAAG,MAAM,cAAc,CAChC,WAAW,EACX,OAAO,EACP,KAAK,CACN,CAAC;QAEF,MAAM,WAAW,GACf,eAAe,KAAK,cAAc,CAAC,QAAQ;YACzC,CAAC,CAAC,mBAAmB,CAAC,KAAK,CAAC;YAC5B,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QAErC,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;YAC9C,iBAAiB,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE;SAClD,CAAC;IACJ,CAAC,CAAC,CACH,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Treasury and Payment Methods tools for Holded API
|
|
3
|
+
*/
|
|
4
|
+
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
5
|
+
/**
|
|
6
|
+
* Register all treasury and payment methods tools
|
|
7
|
+
*/
|
|
8
|
+
export declare function registerTreasuryTools(server: McpServer): void;
|
|
9
|
+
//# sourceMappingURL=treasury.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"treasury.d.ts","sourceRoot":"","sources":["../../../src/tools/invoicing/treasury.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAgBpE;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAkN7D"}
|
|
@@ -0,0 +1,196 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Treasury and Payment Methods tools for Holded API
|
|
3
|
+
*/
|
|
4
|
+
import { makeApiRequest, toStructuredContent } from "../../services/api.js";
|
|
5
|
+
import { ResponseFormat } from "../../constants.js";
|
|
6
|
+
import { withErrorHandling } from "../utilities.js";
|
|
7
|
+
import { CreateTreasuryInputSchema, ListPaymentMethodsInputSchema, ListTreasuriesInputSchema, GetTreasuryInputSchema, } from "../../schemas/invoicing/treasury.js";
|
|
8
|
+
/**
|
|
9
|
+
* Register all treasury and payment methods tools
|
|
10
|
+
*/
|
|
11
|
+
export function registerTreasuryTools(server) {
|
|
12
|
+
// Create Treasury
|
|
13
|
+
server.registerTool("holded_invoicing_create_treasury", {
|
|
14
|
+
title: "Create Holded Treasury Account",
|
|
15
|
+
description: `Create a new treasury/bank account in Holded.
|
|
16
|
+
|
|
17
|
+
Args:
|
|
18
|
+
- name (string): Treasury account name (required)
|
|
19
|
+
- id (string): Treasury account ID (optional, auto-generated if not provided)
|
|
20
|
+
- type (string): Account type (e.g., 'bank', 'cash', 'creditcard')
|
|
21
|
+
- balance (integer): Initial balance
|
|
22
|
+
- accountNumber (integer): Accounting account number. If blank, a new account with prefix 572 will be created
|
|
23
|
+
- iban (string): Bank IBAN
|
|
24
|
+
- swift (string): Bank SWIFT/BIC code
|
|
25
|
+
- bank (string): Bank identifier
|
|
26
|
+
- bankname (string): Bank name
|
|
27
|
+
|
|
28
|
+
Returns:
|
|
29
|
+
The created treasury account with its assigned ID.`,
|
|
30
|
+
inputSchema: CreateTreasuryInputSchema,
|
|
31
|
+
annotations: {
|
|
32
|
+
readOnlyHint: false,
|
|
33
|
+
destructiveHint: false,
|
|
34
|
+
idempotentHint: false,
|
|
35
|
+
openWorldHint: true,
|
|
36
|
+
},
|
|
37
|
+
}, withErrorHandling(async (params) => {
|
|
38
|
+
const typedParams = params;
|
|
39
|
+
const treasury = await makeApiRequest("invoicing", "treasury", "POST", typedParams);
|
|
40
|
+
return {
|
|
41
|
+
content: [
|
|
42
|
+
{
|
|
43
|
+
type: "text",
|
|
44
|
+
text: `Treasury account created successfully.\n\n${JSON.stringify(treasury, null, 2)}`,
|
|
45
|
+
},
|
|
46
|
+
],
|
|
47
|
+
structuredContent: toStructuredContent(treasury),
|
|
48
|
+
};
|
|
49
|
+
}));
|
|
50
|
+
// List Payment Methods
|
|
51
|
+
server.registerTool("holded_invoicing_list_payment_methods", {
|
|
52
|
+
title: "List Holded Payment Methods",
|
|
53
|
+
description: `List all payment methods from Holded.
|
|
54
|
+
|
|
55
|
+
Args:
|
|
56
|
+
- response_format ('json' | 'markdown'): Output format (default: 'json')
|
|
57
|
+
|
|
58
|
+
Returns:
|
|
59
|
+
Array of payment methods with id, name, and configuration.`,
|
|
60
|
+
inputSchema: ListPaymentMethodsInputSchema,
|
|
61
|
+
annotations: {
|
|
62
|
+
readOnlyHint: true,
|
|
63
|
+
destructiveHint: false,
|
|
64
|
+
idempotentHint: true,
|
|
65
|
+
openWorldHint: true,
|
|
66
|
+
},
|
|
67
|
+
}, withErrorHandling(async (params) => {
|
|
68
|
+
const { response_format } = params;
|
|
69
|
+
const paymentMethods = await makeApiRequest("invoicing", "paymentmethods", "GET");
|
|
70
|
+
let textContent;
|
|
71
|
+
if (response_format === ResponseFormat.MARKDOWN) {
|
|
72
|
+
if (!paymentMethods.length) {
|
|
73
|
+
textContent = "No payment methods found.";
|
|
74
|
+
}
|
|
75
|
+
else {
|
|
76
|
+
const lines = ["# Payment Methods", "", `Found ${paymentMethods.length} payment methods:`, ""];
|
|
77
|
+
for (const method of paymentMethods) {
|
|
78
|
+
lines.push(`- **${method.name}** (ID: ${method.id})`);
|
|
79
|
+
}
|
|
80
|
+
textContent = lines.join("\n");
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
else {
|
|
84
|
+
textContent = JSON.stringify(paymentMethods, null, 2);
|
|
85
|
+
}
|
|
86
|
+
return {
|
|
87
|
+
content: [{ type: "text", text: textContent }],
|
|
88
|
+
structuredContent: { paymentMethods, count: paymentMethods.length },
|
|
89
|
+
};
|
|
90
|
+
}));
|
|
91
|
+
// List Treasuries
|
|
92
|
+
server.registerTool("holded_invoicing_list_treasuries", {
|
|
93
|
+
title: "List Holded Treasury Accounts",
|
|
94
|
+
description: `List all treasury/bank accounts from Holded.
|
|
95
|
+
|
|
96
|
+
Args:
|
|
97
|
+
- response_format ('json' | 'markdown'): Output format (default: 'json')
|
|
98
|
+
|
|
99
|
+
Returns:
|
|
100
|
+
Array of treasury accounts with id, name, type, currency, and balance.`,
|
|
101
|
+
inputSchema: ListTreasuriesInputSchema,
|
|
102
|
+
annotations: {
|
|
103
|
+
readOnlyHint: true,
|
|
104
|
+
destructiveHint: false,
|
|
105
|
+
idempotentHint: true,
|
|
106
|
+
openWorldHint: true,
|
|
107
|
+
},
|
|
108
|
+
}, withErrorHandling(async (params) => {
|
|
109
|
+
const { response_format } = params;
|
|
110
|
+
const treasuries = await makeApiRequest("invoicing", "treasury", "GET");
|
|
111
|
+
let textContent;
|
|
112
|
+
if (response_format === ResponseFormat.MARKDOWN) {
|
|
113
|
+
if (!treasuries.length) {
|
|
114
|
+
textContent = "No treasury accounts found.";
|
|
115
|
+
}
|
|
116
|
+
else {
|
|
117
|
+
const lines = ["# Treasury Accounts", "", `Found ${treasuries.length} accounts:`, ""];
|
|
118
|
+
for (const t of treasuries) {
|
|
119
|
+
lines.push(`## ${t.name}`);
|
|
120
|
+
lines.push(`- **ID**: ${t.id}`);
|
|
121
|
+
lines.push(`- **Type**: ${t.type}`);
|
|
122
|
+
if (t.currency)
|
|
123
|
+
lines.push(`- **Currency**: ${t.currency}`);
|
|
124
|
+
if (t.balance !== undefined)
|
|
125
|
+
lines.push(`- **Balance**: ${t.balance}`);
|
|
126
|
+
if (t.accountNumber !== undefined)
|
|
127
|
+
lines.push(`- **Account Number**: ${t.accountNumber}`);
|
|
128
|
+
if (t.iban)
|
|
129
|
+
lines.push(`- **IBAN**: ${t.iban}`);
|
|
130
|
+
if (t.swift)
|
|
131
|
+
lines.push(`- **SWIFT/BIC**: ${t.swift}`);
|
|
132
|
+
lines.push("");
|
|
133
|
+
}
|
|
134
|
+
textContent = lines.join("\n");
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
else {
|
|
138
|
+
textContent = JSON.stringify(treasuries, null, 2);
|
|
139
|
+
}
|
|
140
|
+
return {
|
|
141
|
+
content: [{ type: "text", text: textContent }],
|
|
142
|
+
structuredContent: { treasuries, count: treasuries.length },
|
|
143
|
+
};
|
|
144
|
+
}));
|
|
145
|
+
// Get Treasury
|
|
146
|
+
server.registerTool("holded_invoicing_get_treasury", {
|
|
147
|
+
title: "Get Holded Treasury Account",
|
|
148
|
+
description: `Get a specific treasury/bank account by ID from Holded.
|
|
149
|
+
|
|
150
|
+
Args:
|
|
151
|
+
- treasury_id (string): The treasury account ID to retrieve (required)
|
|
152
|
+
- response_format ('json' | 'markdown'): Output format (default: 'json')
|
|
153
|
+
|
|
154
|
+
Returns:
|
|
155
|
+
Treasury account details including balance and bank information.`,
|
|
156
|
+
inputSchema: GetTreasuryInputSchema,
|
|
157
|
+
annotations: {
|
|
158
|
+
readOnlyHint: true,
|
|
159
|
+
destructiveHint: false,
|
|
160
|
+
idempotentHint: true,
|
|
161
|
+
openWorldHint: true,
|
|
162
|
+
},
|
|
163
|
+
}, withErrorHandling(async (params) => {
|
|
164
|
+
const { treasury_id, response_format } = params;
|
|
165
|
+
const treasury = await makeApiRequest("invoicing", `treasury/${treasury_id}`, "GET");
|
|
166
|
+
let textContent;
|
|
167
|
+
if (response_format === ResponseFormat.MARKDOWN) {
|
|
168
|
+
const lines = [`# ${treasury.name}`, ""];
|
|
169
|
+
lines.push(`- **ID**: ${treasury.id}`);
|
|
170
|
+
lines.push(`- **Type**: ${treasury.type}`);
|
|
171
|
+
if (treasury.currency)
|
|
172
|
+
lines.push(`- **Currency**: ${treasury.currency}`);
|
|
173
|
+
if (treasury.balance !== undefined)
|
|
174
|
+
lines.push(`- **Balance**: ${treasury.balance}`);
|
|
175
|
+
if (treasury.accountNumber !== undefined)
|
|
176
|
+
lines.push(`- **Account Number**: ${treasury.accountNumber}`);
|
|
177
|
+
if (treasury.iban)
|
|
178
|
+
lines.push(`- **IBAN**: ${treasury.iban}`);
|
|
179
|
+
if (treasury.swift)
|
|
180
|
+
lines.push(`- **SWIFT/BIC**: ${treasury.swift}`);
|
|
181
|
+
if (treasury.bank)
|
|
182
|
+
lines.push(`- **Bank**: ${treasury.bank}`);
|
|
183
|
+
if (treasury.bankname)
|
|
184
|
+
lines.push(`- **Bank Name**: ${treasury.bankname}`);
|
|
185
|
+
textContent = lines.join("\n");
|
|
186
|
+
}
|
|
187
|
+
else {
|
|
188
|
+
textContent = JSON.stringify(treasury, null, 2);
|
|
189
|
+
}
|
|
190
|
+
return {
|
|
191
|
+
content: [{ type: "text", text: textContent }],
|
|
192
|
+
structuredContent: toStructuredContent(treasury),
|
|
193
|
+
};
|
|
194
|
+
}));
|
|
195
|
+
}
|
|
196
|
+
//# sourceMappingURL=treasury.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"treasury.js","sourceRoot":"","sources":["../../../src/tools/invoicing/treasury.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Warehouse tools for Holded API
|
|
3
|
+
*/
|
|
4
|
+
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
5
|
+
import { Warehouse } from "../../types.js";
|
|
6
|
+
/**
|
|
7
|
+
* Format warehouses as markdown
|
|
8
|
+
*/
|
|
9
|
+
export declare function formatWarehousesMarkdown(warehouses: Warehouse[]): string;
|
|
10
|
+
/**
|
|
11
|
+
* Format a single warehouse as markdown
|
|
12
|
+
*/
|
|
13
|
+
export declare function formatWarehouseMarkdown(warehouse: Warehouse): string;
|
|
14
|
+
/**
|
|
15
|
+
* Register all warehouse-related tools
|
|
16
|
+
*/
|
|
17
|
+
export declare function registerWarehouseTools(server: McpServer): void;
|
|
18
|
+
//# sourceMappingURL=warehouses.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"warehouses.d.ts","sourceRoot":"","sources":["../../../src/tools/invoicing/warehouses.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAU3C;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,UAAU,EAAE,SAAS,EAAE,GAAG,MAAM,CAsBxE;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,SAAS,EAAE,SAAS,GAAG,MAAM,CAiBpE;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAuE9D"}
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Warehouse tools for Holded API
|
|
3
|
+
*/
|
|
4
|
+
import { ListWarehousesInputSchema, GetWarehouseInputSchema, CreateWarehouseInputSchema, UpdateWarehouseInputSchema, DeleteWarehouseInputSchema, } from "../../schemas/invoicing/warehouses.js";
|
|
5
|
+
import { registerCrudTools } from "../factory.js";
|
|
6
|
+
/**
|
|
7
|
+
* Format warehouses as markdown
|
|
8
|
+
*/
|
|
9
|
+
export function formatWarehousesMarkdown(warehouses) {
|
|
10
|
+
if (!warehouses.length) {
|
|
11
|
+
return "No warehouses found.";
|
|
12
|
+
}
|
|
13
|
+
const lines = ["# Warehouses", "", `Found ${warehouses.length} warehouses:`, ""];
|
|
14
|
+
for (const warehouse of warehouses) {
|
|
15
|
+
lines.push(`## ${warehouse.name}`);
|
|
16
|
+
lines.push(`- **ID**: ${warehouse.id}`);
|
|
17
|
+
if (warehouse.address) {
|
|
18
|
+
const addr = warehouse.address;
|
|
19
|
+
if (addr.address)
|
|
20
|
+
lines.push(`- **Address**: ${addr.address}`);
|
|
21
|
+
if (addr.city)
|
|
22
|
+
lines.push(`- **City**: ${addr.city}`);
|
|
23
|
+
if (addr.postalCode)
|
|
24
|
+
lines.push(`- **Postal Code**: ${addr.postalCode}`);
|
|
25
|
+
if (addr.country)
|
|
26
|
+
lines.push(`- **Country**: ${addr.country}`);
|
|
27
|
+
}
|
|
28
|
+
if (warehouse.active !== undefined)
|
|
29
|
+
lines.push(`- **Active**: ${warehouse.active ? "Yes" : "No"}`);
|
|
30
|
+
lines.push("");
|
|
31
|
+
}
|
|
32
|
+
return lines.join("\n");
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Format a single warehouse as markdown
|
|
36
|
+
*/
|
|
37
|
+
export function formatWarehouseMarkdown(warehouse) {
|
|
38
|
+
const lines = [`# ${warehouse.name}`, "", `**ID**: ${warehouse.id}`, ""];
|
|
39
|
+
if (warehouse.address) {
|
|
40
|
+
lines.push("### Address");
|
|
41
|
+
const addr = warehouse.address;
|
|
42
|
+
if (addr.address)
|
|
43
|
+
lines.push(`- ${addr.address}`);
|
|
44
|
+
if (addr.city)
|
|
45
|
+
lines.push(`- ${addr.city}`);
|
|
46
|
+
if (addr.postalCode)
|
|
47
|
+
lines.push(`- ${addr.postalCode}`);
|
|
48
|
+
if (addr.province)
|
|
49
|
+
lines.push(`- ${addr.province}`);
|
|
50
|
+
if (addr.country)
|
|
51
|
+
lines.push(`- ${addr.country}`);
|
|
52
|
+
lines.push("");
|
|
53
|
+
}
|
|
54
|
+
if (warehouse.active !== undefined)
|
|
55
|
+
lines.push(`- **Active**: ${warehouse.active ? "Yes" : "No"}`);
|
|
56
|
+
return lines.join("\n");
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Register all warehouse-related tools
|
|
60
|
+
*/
|
|
61
|
+
export function registerWarehouseTools(server) {
|
|
62
|
+
registerCrudTools(server, {
|
|
63
|
+
module: "invoicing",
|
|
64
|
+
toolPrefix: "holded_invoicing",
|
|
65
|
+
resource: "warehouse",
|
|
66
|
+
resourcePlural: "warehouses",
|
|
67
|
+
endpoint: "warehouses",
|
|
68
|
+
idParam: "warehouse_id",
|
|
69
|
+
schemas: {
|
|
70
|
+
list: ListWarehousesInputSchema,
|
|
71
|
+
get: GetWarehouseInputSchema,
|
|
72
|
+
create: CreateWarehouseInputSchema,
|
|
73
|
+
update: UpdateWarehouseInputSchema,
|
|
74
|
+
delete: DeleteWarehouseInputSchema,
|
|
75
|
+
},
|
|
76
|
+
titles: {
|
|
77
|
+
list: "List Holded Warehouses",
|
|
78
|
+
get: "Get Holded Warehouse",
|
|
79
|
+
create: "Create Holded Warehouse",
|
|
80
|
+
update: "Update Holded Warehouse",
|
|
81
|
+
delete: "Delete Holded Warehouse",
|
|
82
|
+
},
|
|
83
|
+
descriptions: {
|
|
84
|
+
list: `List all warehouses from Holded.
|
|
85
|
+
|
|
86
|
+
Args:
|
|
87
|
+
- page (number): Page number for pagination (default: 1, max 500 items per page)
|
|
88
|
+
- response_format ('json' | 'markdown'): Output format (default: 'json')
|
|
89
|
+
|
|
90
|
+
Returns:
|
|
91
|
+
Array of warehouses with id, name, address, and status.`,
|
|
92
|
+
get: `Get a specific warehouse by ID from Holded.
|
|
93
|
+
|
|
94
|
+
Args:
|
|
95
|
+
- warehouse_id (string): The warehouse ID to retrieve (required)
|
|
96
|
+
- response_format ('json' | 'markdown'): Output format (default: 'json')
|
|
97
|
+
|
|
98
|
+
Returns:
|
|
99
|
+
Warehouse details including name, address, and status.`,
|
|
100
|
+
create: `Create a new warehouse in Holded.
|
|
101
|
+
|
|
102
|
+
Args:
|
|
103
|
+
- name (string): Warehouse name (required)
|
|
104
|
+
- address (object): Warehouse address
|
|
105
|
+
- active (boolean): Whether the warehouse is active
|
|
106
|
+
|
|
107
|
+
Returns:
|
|
108
|
+
The created warehouse with its assigned ID.`,
|
|
109
|
+
update: `Update an existing warehouse in Holded.
|
|
110
|
+
|
|
111
|
+
Args:
|
|
112
|
+
- warehouse_id (string): The warehouse ID to update (required)
|
|
113
|
+
- name (string): Warehouse name
|
|
114
|
+
- address (object): Warehouse address
|
|
115
|
+
- active (boolean): Whether the warehouse is active
|
|
116
|
+
|
|
117
|
+
Returns:
|
|
118
|
+
The updated warehouse.`,
|
|
119
|
+
delete: `Delete a warehouse from Holded.
|
|
120
|
+
|
|
121
|
+
Args:
|
|
122
|
+
- warehouse_id (string): The warehouse ID to delete (required)
|
|
123
|
+
|
|
124
|
+
Returns:
|
|
125
|
+
Confirmation of deletion.`,
|
|
126
|
+
},
|
|
127
|
+
formatters: {
|
|
128
|
+
list: formatWarehousesMarkdown,
|
|
129
|
+
single: formatWarehouseMarkdown,
|
|
130
|
+
},
|
|
131
|
+
});
|
|
132
|
+
}
|
|
133
|
+
//# sourceMappingURL=warehouses.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"warehouses.js","sourceRoot":"","sources":["../../../src/tools/invoicing/warehouses.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Projects module tools registration
|
|
3
|
+
*/
|
|
4
|
+
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
5
|
+
/**
|
|
6
|
+
* Register all projects-related tools
|
|
7
|
+
*/
|
|
8
|
+
export declare function registerProjectsTools(server: McpServer): void;
|
|
9
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/tools/projects/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAKpE;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAI7D"}
|