@dversum/mcp-server 1.0.0 → 2.1.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.
Files changed (65) hide show
  1. package/README.md +132 -18
  2. package/dist/src/index.d.ts.map +1 -1
  3. package/dist/src/index.js +12 -0
  4. package/dist/src/index.js.map +1 -1
  5. package/dist/src/tools/absences.d.ts.map +1 -1
  6. package/dist/src/tools/absences.js +21 -0
  7. package/dist/src/tools/absences.js.map +1 -1
  8. package/dist/src/tools/areas.d.ts +4 -0
  9. package/dist/src/tools/areas.d.ts.map +1 -0
  10. package/dist/src/tools/areas.js +37 -0
  11. package/dist/src/tools/areas.js.map +1 -0
  12. package/dist/src/tools/contacts.d.ts.map +1 -1
  13. package/dist/src/tools/contacts.js +23 -0
  14. package/dist/src/tools/contacts.js.map +1 -1
  15. package/dist/src/tools/dashboard-notes.d.ts +4 -0
  16. package/dist/src/tools/dashboard-notes.d.ts.map +1 -0
  17. package/dist/src/tools/dashboard-notes.js +66 -0
  18. package/dist/src/tools/dashboard-notes.js.map +1 -0
  19. package/dist/src/tools/finance.d.ts.map +1 -1
  20. package/dist/src/tools/finance.js +75 -0
  21. package/dist/src/tools/finance.js.map +1 -1
  22. package/dist/src/tools/invoices.d.ts.map +1 -1
  23. package/dist/src/tools/invoices.js +81 -0
  24. package/dist/src/tools/invoices.js.map +1 -1
  25. package/dist/src/tools/notifications.d.ts.map +1 -1
  26. package/dist/src/tools/notifications.js +14 -0
  27. package/dist/src/tools/notifications.js.map +1 -1
  28. package/dist/src/tools/organization.d.ts.map +1 -1
  29. package/dist/src/tools/organization.js +52 -0
  30. package/dist/src/tools/organization.js.map +1 -1
  31. package/dist/src/tools/pages.d.ts.map +1 -1
  32. package/dist/src/tools/pages.js +25 -0
  33. package/dist/src/tools/pages.js.map +1 -1
  34. package/dist/src/tools/projects.d.ts.map +1 -1
  35. package/dist/src/tools/projects.js +72 -0
  36. package/dist/src/tools/projects.js.map +1 -1
  37. package/dist/src/tools/quotes.d.ts.map +1 -1
  38. package/dist/src/tools/quotes.js +80 -0
  39. package/dist/src/tools/quotes.js.map +1 -1
  40. package/dist/src/tools/recurring-invoices.d.ts +4 -0
  41. package/dist/src/tools/recurring-invoices.d.ts.map +1 -0
  42. package/dist/src/tools/recurring-invoices.js +89 -0
  43. package/dist/src/tools/recurring-invoices.js.map +1 -0
  44. package/dist/src/tools/reminders.d.ts +4 -0
  45. package/dist/src/tools/reminders.d.ts.map +1 -0
  46. package/dist/src/tools/reminders.js +65 -0
  47. package/dist/src/tools/reminders.js.map +1 -0
  48. package/dist/src/tools/storage.d.ts.map +1 -1
  49. package/dist/src/tools/storage.js +67 -0
  50. package/dist/src/tools/storage.js.map +1 -1
  51. package/dist/src/tools/tags.d.ts +4 -0
  52. package/dist/src/tools/tags.d.ts.map +1 -0
  53. package/dist/src/tools/tags.js +37 -0
  54. package/dist/src/tools/tags.js.map +1 -0
  55. package/dist/src/tools/tasks.d.ts.map +1 -1
  56. package/dist/src/tools/tasks.js +87 -0
  57. package/dist/src/tools/tasks.js.map +1 -1
  58. package/dist/src/tools/time.d.ts.map +1 -1
  59. package/dist/src/tools/time.js +22 -0
  60. package/dist/src/tools/time.js.map +1 -1
  61. package/dist/src/tools/whiteboards.d.ts +4 -0
  62. package/dist/src/tools/whiteboards.d.ts.map +1 -0
  63. package/dist/src/tools/whiteboards.js +52 -0
  64. package/dist/src/tools/whiteboards.js.map +1 -0
  65. package/package.json +1 -1
package/README.md CHANGED
@@ -95,9 +95,9 @@ Once the Docker container is running, point Claude Desktop to the remote endpoin
95
95
  | `MCP_TRANSPORT` | No | `stdio` (default) or `http` (for Docker/remote) |
96
96
  | `MCP_PORT` | No | HTTP port when using `http` transport (default: `3100`) |
97
97
 
98
- ## Available Tools (53)
98
+ ## Available Tools (152)
99
99
 
100
- ### Clients (CRM)
100
+ ### Clients (5)
101
101
  | Tool | Description |
102
102
  |------|-------------|
103
103
  | `list_clients` | List all clients with pagination |
@@ -106,42 +106,64 @@ Once the Docker container is running, point Claude Desktop to the remote endpoin
106
106
  | `update_client` | Update client details |
107
107
  | `delete_client` | Delete a client |
108
108
 
109
- ### Contacts
109
+ ### Contacts (5)
110
110
  | Tool | Description |
111
111
  |------|-------------|
112
112
  | `list_contacts` | List all contacts |
113
113
  | `get_contact` | Get contact details |
114
114
  | `create_contact` | Create a new contact |
115
+ | `update_contact` | Update contact details |
116
+ | `delete_contact` | Delete a contact |
115
117
 
116
- ### Projects
118
+ ### Projects (12)
117
119
  | Tool | Description |
118
120
  |------|-------------|
119
121
  | `list_projects` | List all projects |
120
122
  | `get_project` | Get project details |
121
123
  | `create_project` | Create a new project |
124
+ | `update_project` | Update project details |
125
+ | `delete_project` | Delete a project |
122
126
  | `get_project_board` | Get full kanban board (columns + tasks) |
123
-
124
- ### Tasks
127
+ | `list_project_members` | List project members |
128
+ | `add_project_member` | Add a member to a project |
129
+ | `remove_project_member` | Remove a member from a project |
130
+ | `get_project_time_stats` | Get project time statistics |
131
+ | `get_gantt_data` | Get Gantt chart data with dependencies |
132
+ | `create_column` | Create a kanban column |
133
+
134
+ ### Tasks (16)
125
135
  | Tool | Description |
126
136
  |------|-------------|
127
137
  | `get_task` | Get task details (assignees, subtasks, tags) |
128
138
  | `create_task` | Create a task in a project column |
129
139
  | `update_task` | Update task properties |
140
+ | `delete_task` | Delete a task |
130
141
  | `move_task` | Move task to a different column |
131
142
  | `assign_task` | Add an assignee to a task |
143
+ | `remove_assignee` | Remove an assignee from a task |
132
144
  | `list_task_comments` | List comments on a task |
133
-
134
- ### Time Tracking
145
+ | `create_comment` | Add a comment to a task |
146
+ | `create_subtask` | Create a subtask (checklist item) |
147
+ | `toggle_task_done` | Toggle task completion |
148
+ | `add_tag_to_task` | Add a tag to a task |
149
+ | `remove_tag_from_task` | Remove a tag from a task |
150
+ | `archive_task` | Archive a task |
151
+ | `restore_task` | Restore an archived task |
152
+ | `move_task_to_project` | Move task to a different project |
153
+
154
+ ### Time Tracking (8)
135
155
  | Tool | Description |
136
156
  |------|-------------|
137
157
  | `list_time_entries` | List time entries (filter by date, project) |
138
158
  | `create_time_entry` | Log a completed time entry |
159
+ | `update_time_entry` | Update a time entry |
160
+ | `delete_time_entry` | Delete a time entry |
139
161
  | `start_timer` | Start a running timer |
140
162
  | `stop_timer` | Stop a running timer |
141
163
  | `get_running_timer` | Get the currently running timer |
142
164
  | `get_time_stats` | Get time tracking statistics |
143
165
 
144
- ### Calendar
166
+ ### Calendar (5)
145
167
  | Tool | Description |
146
168
  |------|-------------|
147
169
  | `list_events` | List calendar events in a date range |
@@ -150,66 +172,158 @@ Once the Docker container is running, point Claude Desktop to the remote endpoin
150
172
  | `update_event` | Update an event |
151
173
  | `delete_event` | Delete an event |
152
174
 
153
- ### Invoices
175
+ ### Invoices (14)
154
176
  | Tool | Description |
155
177
  |------|-------------|
156
178
  | `list_invoices` | List invoices (filter by status, client, type) |
157
179
  | `get_invoice` | Get invoice with line items and totals |
158
180
  | `create_invoice` | Create a draft invoice |
181
+ | `update_invoice` | Update a draft invoice |
182
+ | `delete_invoice` | Delete a draft invoice |
159
183
  | `update_invoice_status` | Change invoice status |
160
184
  | `send_invoice_email` | Send invoice via email |
161
185
  | `create_invoice_from_time` | Create invoice from tracked time |
162
-
163
- ### Quotes
186
+ | `add_invoice_line_item` | Add a line item |
187
+ | `update_invoice_line_item` | Update a line item |
188
+ | `delete_invoice_line_item` | Delete a line item |
189
+ | `record_payment` | Record a payment on an invoice |
190
+ | `create_credit_note` | Create a credit note (Gutschrift) |
191
+ | `create_cancellation` | Create a cancellation invoice (Stornorechnung) |
192
+
193
+ ### Quotes (12)
164
194
  | Tool | Description |
165
195
  |------|-------------|
166
196
  | `list_quotes` | List quotes/proposals |
167
197
  | `get_quote` | Get quote with line items |
168
198
  | `create_quote` | Create a draft quote |
199
+ | `update_quote` | Update a quote |
200
+ | `delete_quote` | Delete a quote |
201
+ | `update_quote_status` | Update quote status |
202
+ | `send_quote_email` | Send quote via email |
203
+ | `duplicate_quote` | Duplicate a quote |
169
204
  | `convert_quote_to_invoice` | Convert accepted quote to invoice |
205
+ | `add_quote_line_item` | Add a line item |
206
+ | `update_quote_line_item` | Update a line item |
207
+ | `delete_quote_line_item` | Delete a line item |
170
208
 
171
- ### Finance
209
+ ### Recurring Invoices (8)
210
+ | Tool | Description |
211
+ |------|-------------|
212
+ | `list_recurring_invoices` | List recurring invoice templates |
213
+ | `get_recurring_invoice` | Get recurring invoice details |
214
+ | `create_recurring_invoice` | Create a recurring invoice |
215
+ | `update_recurring_invoice` | Update a recurring invoice |
216
+ | `delete_recurring_invoice` | Delete a recurring invoice |
217
+ | `pause_recurring_invoice` | Pause auto-generation |
218
+ | `resume_recurring_invoice` | Resume auto-generation |
219
+ | `generate_recurring_invoice_now` | Generate an invoice now |
220
+
221
+ ### Payment Reminders (6)
222
+ | Tool | Description |
223
+ |------|-------------|
224
+ | `list_reminders` | List payment reminders (Mahnungen) |
225
+ | `get_reminder` | Get reminder details |
226
+ | `get_reminder_suggestion` | Get suggested reminder for overdue invoice |
227
+ | `create_reminder` | Create a payment reminder |
228
+ | `send_reminder_email` | Send reminder via email |
229
+ | `delete_reminder` | Delete a reminder |
230
+
231
+ ### Finance (11)
172
232
  | Tool | Description |
173
233
  |------|-------------|
174
234
  | `get_finance_overview` | Monthly revenue vs expenses |
175
235
  | `get_vat_summary` | USt-Voranmeldung (KZ 81/86/66/83) |
176
236
  | `list_received_invoices` | List incoming invoices |
237
+ | `get_received_invoice` | Get received invoice details |
238
+ | `approve_received_invoice` | Approve a received invoice |
177
239
  | `list_suppliers` | List all suppliers |
240
+ | `get_supplier` | Get supplier details |
241
+ | `create_supplier` | Create a supplier |
242
+ | `update_supplier` | Update supplier details |
243
+ | `delete_supplier` | Delete a supplier |
244
+ | `get_datev_export` | Preview DATEV export data |
178
245
 
179
- ### Team Planning (Absences)
246
+ ### Team Planning (5)
180
247
  | Tool | Description |
181
248
  |------|-------------|
182
249
  | `list_absences` | List team absences |
183
250
  | `create_absence` | Create an absence entry |
251
+ | `update_absence` | Update an absence |
252
+ | `delete_absence` | Delete an absence |
184
253
  | `get_vacation_stats` | Get vacation quota/usage stats |
185
254
 
186
- ### Pages
255
+ ### Pages (7)
187
256
  | Tool | Description |
188
257
  |------|-------------|
189
258
  | `list_pages` | List all pages |
190
259
  | `get_page` | Get page with content |
191
260
  | `create_page` | Create a new page |
261
+ | `update_page` | Update page metadata |
192
262
  | `update_page_content` | Update page content |
263
+ | `delete_page` | Delete a page and children |
264
+ | `get_page_tree` | Get page tree hierarchy |
193
265
 
194
- ### File Storage
266
+ ### Whiteboards (6)
267
+ | Tool | Description |
268
+ |------|-------------|
269
+ | `list_whiteboards` | List all whiteboards |
270
+ | `get_whiteboard` | Get whiteboard with content |
271
+ | `create_whiteboard` | Create a whiteboard |
272
+ | `update_whiteboard` | Update whiteboard metadata |
273
+ | `delete_whiteboard` | Delete a whiteboard |
274
+ | `duplicate_whiteboard` | Duplicate a whiteboard |
275
+
276
+ ### File Storage (12)
195
277
  | Tool | Description |
196
278
  |------|-------------|
197
279
  | `list_files` | List files in a folder |
280
+ | `get_file` | Get file details |
281
+ | `delete_file` | Delete a file |
282
+ | `get_file_download_url` | Get presigned download URL |
198
283
  | `list_folders` | List folders |
199
284
  | `create_folder` | Create a new folder |
285
+ | `update_folder` | Update folder name/color |
286
+ | `delete_folder` | Delete a folder and contents |
200
287
  | `get_folder_tree` | Get full folder hierarchy |
288
+ | `create_share_link` | Create a WeTransfer-style share link |
289
+ | `list_share_links` | List active share links |
290
+ | `revoke_share_link` | Revoke a share link |
291
+
292
+ ### Tags (4)
293
+ | Tool | Description |
294
+ |------|-------------|
295
+ | `list_tags` | List all tags |
296
+ | `create_tag` | Create a tag |
297
+ | `update_tag` | Update a tag |
298
+ | `delete_tag` | Delete a tag |
299
+
300
+ ### Areas (4)
301
+ | Tool | Description |
302
+ |------|-------------|
303
+ | `list_areas` | List project areas/groups |
304
+ | `create_area` | Create a project area |
305
+ | `update_area` | Update an area |
306
+ | `delete_area` | Delete an area |
201
307
 
202
- ### Notifications
308
+ ### Notifications (4)
203
309
  | Tool | Description |
204
310
  |------|-------------|
205
311
  | `list_notifications` | List recent notifications |
206
312
  | `get_unread_count` | Get unread notification count |
313
+ | `mark_notification_read` | Mark a notification as read |
314
+ | `mark_all_notifications_read` | Mark all as read |
207
315
 
208
- ### Organization
316
+ ### Organization (8)
209
317
  | Tool | Description |
210
318
  |------|-------------|
211
319
  | `get_organization` | Get organization details |
320
+ | `update_organization` | Update organization settings |
212
321
  | `list_members` | List team members |
322
+ | `invite_member` | Invite a new member via email |
323
+ | `update_member_role` | Change a member's role |
324
+ | `remove_member` | Remove a member |
325
+ | `global_search` | Search across all entities |
326
+ | `get_activity_feed` | Get recent activity feed |
213
327
 
214
328
  ## Development
215
329
 
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAuCpE,wBAAgB,YAAY,IAAI;IAAE,MAAM,EAAE,SAAS,CAAC;IAAC,aAAa,EAAE,MAAM,CAAA;CAAE,CAY3E;AAoGD,wBAAsB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAQ1C"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAmDpE,wBAAgB,YAAY,IAAI;IAAE,MAAM,EAAE,SAAS,CAAC;IAAC,aAAa,EAAE,MAAM,CAAA;CAAE,CAY3E;AAoGD,wBAAsB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAQ1C"}
package/dist/src/index.js CHANGED
@@ -19,6 +19,12 @@ import { registerPageTools } from "./tools/pages.js";
19
19
  import { registerStorageTools } from "./tools/storage.js";
20
20
  import { registerNotificationTools } from "./tools/notifications.js";
21
21
  import { registerOrganizationTools } from "./tools/organization.js";
22
+ import { registerReminderTools } from "./tools/reminders.js";
23
+ import { registerRecurringInvoiceTools } from "./tools/recurring-invoices.js";
24
+ import { registerTagTools } from "./tools/tags.js";
25
+ import { registerAreaTools } from "./tools/areas.js";
26
+ import { registerWhiteboardTools } from "./tools/whiteboards.js";
27
+ import { registerDashboardNoteTools } from "./tools/dashboard-notes.js";
22
28
  function registerAllTools(server, apiClient) {
23
29
  registerClientTools(server, apiClient);
24
30
  registerContactTools(server, apiClient);
@@ -34,6 +40,12 @@ function registerAllTools(server, apiClient) {
34
40
  registerStorageTools(server, apiClient);
35
41
  registerNotificationTools(server, apiClient);
36
42
  registerOrganizationTools(server, apiClient);
43
+ registerReminderTools(server, apiClient);
44
+ registerRecurringInvoiceTools(server, apiClient);
45
+ registerTagTools(server, apiClient);
46
+ registerAreaTools(server, apiClient);
47
+ registerWhiteboardTools(server, apiClient);
48
+ registerDashboardNoteTools(server, apiClient);
37
49
  }
38
50
  export function createServer() {
39
51
  const config = loadConfig();
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"absences.d.ts","sourceRoot":"","sources":["../../../src/tools/absences.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE7C,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,SAAS,EACjB,MAAM,EAAE,aAAa,QAwDtB"}
1
+ {"version":3,"file":"absences.d.ts","sourceRoot":"","sources":["../../../src/tools/absences.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE7C,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,SAAS,EACjB,MAAM,EAAE,aAAa,QAyFtB"}
@@ -40,5 +40,26 @@ export function registerAbsenceTools(server, client) {
40
40
  content: [{ type: "text", text: JSON.stringify(data, null, 2) }],
41
41
  };
42
42
  });
43
+ server.tool("update_absence", "Update an existing absence entry.", {
44
+ id: z.string().describe("The absence UUID"),
45
+ type: z.enum(["vacation", "sick", "absence", "homeoffice", "business_trip"]).optional().describe("Absence type"),
46
+ start_date: z.string().optional().describe("Start date (YYYY-MM-DD)"),
47
+ end_date: z.string().optional().describe("End date (YYYY-MM-DD)"),
48
+ note: z.string().optional().describe("Note"),
49
+ half_day: z.boolean().optional().describe("Half-day absence"),
50
+ }, async ({ id, ...fields }) => {
51
+ const data = await client.put(`/absences/${id}`, fields);
52
+ return {
53
+ content: [{ type: "text", text: JSON.stringify(data, null, 2) }],
54
+ };
55
+ });
56
+ server.tool("delete_absence", "Delete an absence entry.", {
57
+ id: z.string().describe("The absence UUID"),
58
+ }, async ({ id }) => {
59
+ await client.delete(`/absences/${id}`);
60
+ return {
61
+ content: [{ type: "text", text: `Absence ${id} deleted successfully.` }],
62
+ };
63
+ });
43
64
  }
44
65
  //# sourceMappingURL=absences.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"absences.js","sourceRoot":"","sources":["../../../src/tools/absences.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,MAAM,UAAU,oBAAoB,CAClC,MAAiB,EACjB,MAAqB;IAErB,MAAM,CAAC,IAAI,CACT,eAAe,EACf,+DAA+D,EAC/D;QACE,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,+BAA+B,CAAC;QAC3E,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,6BAA6B,CAAC;QACvE,IAAI,EAAE,CAAC;aACJ,IAAI,CAAC,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,eAAe,CAAC,CAAC;aACpE,QAAQ,EAAE;aACV,QAAQ,CAAC,wBAAwB,CAAC;KACtC,EACD,KAAK,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,EAAE;QACvC,MAAM,MAAM,GAA2B,EAAE,CAAC;QAC1C,IAAI,UAAU;YAAE,MAAM,CAAC,UAAU,GAAG,UAAU,CAAC;QAC/C,IAAI,QAAQ;YAAE,MAAM,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzC,IAAI,IAAI;YAAE,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC;QAC7B,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;QACnD,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;SACjE,CAAC;IACJ,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,gBAAgB,EAChB,0DAA0D,EAC1D;QACE,IAAI,EAAE,CAAC;aACJ,IAAI,CAAC,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,eAAe,CAAC,CAAC;aACpE,QAAQ,CAAC,cAAc,CAAC;QAC3B,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,yBAAyB,CAAC;QAC1D,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,uBAAuB,CAAC;QACtD,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,eAAe,CAAC;QACrD,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,oCAAoC,CAAC;KAChF,EACD,KAAK,EAAE,KAAK,EAAE,EAAE;QACd,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;QACnD,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;SACjE,CAAC;IACJ,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,oBAAoB,EACpB,uDAAuD,EACvD,EAAE,EACF,KAAK,IAAI,EAAE;QACT,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;QACjD,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;SACjE,CAAC;IACJ,CAAC,CACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"absences.js","sourceRoot":"","sources":["../../../src/tools/absences.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
+ import { DversumClient } from "../client.js";
3
+ export declare function registerAreaTools(server: McpServer, client: DversumClient): void;
4
+ //# sourceMappingURL=areas.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"areas.d.ts","sourceRoot":"","sources":["../../../src/tools/areas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE7C,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,SAAS,EACjB,MAAM,EAAE,aAAa,QA0DtB"}
@@ -0,0 +1,37 @@
1
+ import { z } from "zod";
2
+ export function registerAreaTools(server, client) {
3
+ server.tool("list_areas", "List all project areas/groups.", {}, async () => {
4
+ const data = await client.get("/areas");
5
+ return {
6
+ content: [{ type: "text", text: JSON.stringify(data, null, 2) }],
7
+ };
8
+ });
9
+ server.tool("create_area", "Create a new project area/group.", {
10
+ name: z.string().describe("Area name"),
11
+ color: z.string().optional().describe("Area color"),
12
+ }, async (input) => {
13
+ const data = await client.post("/areas", input);
14
+ return {
15
+ content: [{ type: "text", text: JSON.stringify(data, null, 2) }],
16
+ };
17
+ });
18
+ server.tool("update_area", "Update a project area/group.", {
19
+ id: z.string().describe("The area UUID"),
20
+ name: z.string().optional().describe("Area name"),
21
+ color: z.string().optional().describe("Area color"),
22
+ }, async ({ id, ...fields }) => {
23
+ const data = await client.put(`/areas/${id}`, fields);
24
+ return {
25
+ content: [{ type: "text", text: JSON.stringify(data, null, 2) }],
26
+ };
27
+ });
28
+ server.tool("delete_area", "Delete a project area/group.", {
29
+ id: z.string().describe("The area UUID"),
30
+ }, async ({ id }) => {
31
+ await client.delete(`/areas/${id}`);
32
+ return {
33
+ content: [{ type: "text", text: `Area ${id} deleted successfully.` }],
34
+ };
35
+ });
36
+ }
37
+ //# sourceMappingURL=areas.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"areas.js","sourceRoot":"","sources":["../../../src/tools/areas.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,MAAM,UAAU,iBAAiB,CAC/B,MAAiB,EACjB,MAAqB;IAErB,MAAM,CAAC,IAAI,CACT,YAAY,EACZ,gCAAgC,EAChC,EAAE,EACF,KAAK,IAAI,EAAE;QACT,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACxC,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;SACjE,CAAC;IACJ,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,aAAa,EACb,kCAAkC,EAClC;QACE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC;QACtC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC;KACpD,EACD,KAAK,EAAE,KAAK,EAAE,EAAE;QACd,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QAChD,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;SACjE,CAAC;IACJ,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,aAAa,EACb,8BAA8B,EAC9B;QACE,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,eAAe,CAAC;QACxC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC;QACjD,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC;KACpD,EACD,KAAK,EAAE,EAAE,EAAE,EAAE,GAAG,MAAM,EAAE,EAAE,EAAE;QAC1B,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC;QACtD,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;SACjE,CAAC;IACJ,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,aAAa,EACb,8BAA8B,EAC9B;QACE,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,eAAe,CAAC;KACzC,EACD,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;QACf,MAAM,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;QACpC,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,wBAAwB,EAAE,CAAC;SACtE,CAAC;IACJ,CAAC,CACF,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"contacts.d.ts","sourceRoot":"","sources":["../../../src/tools/contacts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE7C,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,SAAS,EACjB,MAAM,EAAE,aAAa,QAqDtB"}
1
+ {"version":3,"file":"contacts.d.ts","sourceRoot":"","sources":["../../../src/tools/contacts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE7C,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,SAAS,EACjB,MAAM,EAAE,aAAa,QAwFtB"}
@@ -36,5 +36,28 @@ export function registerContactTools(server, client) {
36
36
  content: [{ type: "text", text: JSON.stringify(data, null, 2) }],
37
37
  };
38
38
  });
39
+ server.tool("update_contact", "Update an existing contact's details.", {
40
+ id: z.string().describe("The contact UUID"),
41
+ first_name: z.string().optional().describe("First name"),
42
+ last_name: z.string().optional().describe("Last name"),
43
+ email: z.string().optional().describe("Email address"),
44
+ phone: z.string().optional().describe("Phone number"),
45
+ position: z.string().optional().describe("Job title/position"),
46
+ client_id: z.string().optional().describe("Associated client UUID"),
47
+ notes: z.string().optional().describe("Notes"),
48
+ }, async ({ id, ...fields }) => {
49
+ const data = await client.put(`/contacts/${id}`, fields);
50
+ return {
51
+ content: [{ type: "text", text: JSON.stringify(data, null, 2) }],
52
+ };
53
+ });
54
+ server.tool("delete_contact", "Delete a contact. This cannot be undone.", {
55
+ id: z.string().describe("The contact UUID"),
56
+ }, async ({ id }) => {
57
+ await client.delete(`/contacts/${id}`);
58
+ return {
59
+ content: [{ type: "text", text: `Contact ${id} deleted successfully.` }],
60
+ };
61
+ });
39
62
  }
40
63
  //# sourceMappingURL=contacts.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"contacts.js","sourceRoot":"","sources":["../../../src/tools/contacts.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,MAAM,UAAU,oBAAoB,CAClC,MAAiB,EACjB,MAAqB;IAErB,MAAM,CAAC,IAAI,CACT,eAAe,EACf,wCAAwC,EACxC;QACE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,uBAAuB,CAAC;QAC7D,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,+BAA+B,CAAC;KAC1E,EACD,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE;QAC3B,MAAM,MAAM,GAA2B,EAAE,CAAC;QAC1C,IAAI,IAAI,KAAK,SAAS;YAAE,MAAM,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;QACnD,IAAI,QAAQ,KAAK,SAAS;YAAE,MAAM,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC/D,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;QACnD,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;SACjE,CAAC;IACJ,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,aAAa,EACb,oDAAoD,EACpD;QACE,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,kBAAkB,CAAC;KAC5C,EACD,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;QACf,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;QACjD,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;SACjE,CAAC;IACJ,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,gBAAgB,EAChB,uBAAuB,EACvB;QACE,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC;QAC7C,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC;QAC3C,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,eAAe,CAAC;QACtD,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC;QACrD,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,oBAAoB,CAAC;QAC9D,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,wBAAwB,CAAC;QACnE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,0BAA0B,CAAC;KAClE,EACD,KAAK,EAAE,KAAK,EAAE,EAAE;QACd,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;QACnD,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;SACjE,CAAC;IACJ,CAAC,CACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"contacts.js","sourceRoot":"","sources":["../../../src/tools/contacts.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
+ import { DversumClient } from "../client.js";
3
+ export declare function registerDashboardNoteTools(server: McpServer, client: DversumClient): void;
4
+ //# sourceMappingURL=dashboard-notes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dashboard-notes.d.ts","sourceRoot":"","sources":["../../../src/tools/dashboard-notes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE7C,wBAAgB,0BAA0B,CACxC,MAAM,EAAE,SAAS,EACjB,MAAM,EAAE,aAAa,QA6FtB"}
@@ -0,0 +1,66 @@
1
+ import { z } from "zod";
2
+ export function registerDashboardNoteTools(server, client) {
3
+ server.tool("list_dashboard_notes", "List dashboard sticky notes visible to the current user (created by or assigned to).", {}, async () => {
4
+ const data = await client.get("/dashboard-notes");
5
+ return {
6
+ content: [{ type: "text", text: JSON.stringify(data, null, 2) }],
7
+ };
8
+ });
9
+ server.tool("create_dashboard_note", "Create a new dashboard sticky note.", {
10
+ content: z.string().optional().describe("Note text content"),
11
+ color: z
12
+ .enum(["yellow", "pink", "blue", "green", "purple", "orange"])
13
+ .optional()
14
+ .describe("Note color (default: yellow)"),
15
+ position_x: z.number().optional().describe("X position on dashboard"),
16
+ position_y: z.number().optional().describe("Y position on dashboard"),
17
+ assignee_ids: z
18
+ .array(z.string())
19
+ .optional()
20
+ .describe("User UUIDs to assign (they will see the note)"),
21
+ }, async (input) => {
22
+ const data = await client.post("/dashboard-notes", input);
23
+ return {
24
+ content: [{ type: "text", text: JSON.stringify(data, null, 2) }],
25
+ };
26
+ });
27
+ server.tool("update_dashboard_note", "Update a dashboard sticky note (content, color, assignees). Only the creator can edit.", {
28
+ id: z.string().describe("Dashboard note UUID"),
29
+ content: z.string().optional().describe("New note content"),
30
+ color: z
31
+ .enum(["yellow", "pink", "blue", "green", "purple", "orange"])
32
+ .optional()
33
+ .describe("New note color"),
34
+ is_minimized: z.boolean().optional().describe("Minimize or expand the note"),
35
+ assignee_ids: z
36
+ .array(z.string())
37
+ .optional()
38
+ .describe("Replace assignee list with these user UUIDs"),
39
+ }, async ({ id, ...fields }) => {
40
+ const data = await client.put(`/dashboard-notes/${id}`, fields);
41
+ return {
42
+ content: [{ type: "text", text: JSON.stringify(data, null, 2) }],
43
+ };
44
+ });
45
+ server.tool("delete_dashboard_note", "Delete a dashboard sticky note. Only the creator can delete.", {
46
+ id: z.string().describe("Dashboard note UUID"),
47
+ }, async ({ id }) => {
48
+ await client.delete(`/dashboard-notes/${id}`);
49
+ return {
50
+ content: [
51
+ { type: "text", text: `Dashboard note ${id} deleted successfully.` },
52
+ ],
53
+ };
54
+ });
55
+ server.tool("dismiss_dashboard_note", "Dismiss a dashboard note (remove yourself as assignee). Use when you no longer want to see a note assigned to you.", {
56
+ id: z.string().describe("Dashboard note UUID"),
57
+ }, async ({ id }) => {
58
+ await client.patch(`/dashboard-notes/${id}/dismiss`);
59
+ return {
60
+ content: [
61
+ { type: "text", text: `Dashboard note ${id} dismissed successfully.` },
62
+ ],
63
+ };
64
+ });
65
+ }
66
+ //# sourceMappingURL=dashboard-notes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dashboard-notes.js","sourceRoot":"","sources":["../../../src/tools/dashboard-notes.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"finance.d.ts","sourceRoot":"","sources":["../../../src/tools/finance.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE7C,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,SAAS,EACjB,MAAM,EAAE,aAAa,QAiFtB"}
1
+ {"version":3,"file":"finance.d.ts","sourceRoot":"","sources":["../../../src/tools/finance.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE7C,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,SAAS,EACjB,MAAM,EAAE,aAAa,QAqMtB"}
@@ -63,5 +63,80 @@ export function registerFinanceTools(server, client) {
63
63
  content: [{ type: "text", text: JSON.stringify(data, null, 2) }],
64
64
  };
65
65
  });
66
+ server.tool("get_supplier", "Get detailed information about a supplier.", {
67
+ id: z.string().describe("The supplier UUID"),
68
+ }, async ({ id }) => {
69
+ const data = await client.get(`/suppliers/${id}`);
70
+ return {
71
+ content: [{ type: "text", text: JSON.stringify(data, null, 2) }],
72
+ };
73
+ });
74
+ server.tool("create_supplier", "Create a new supplier.", {
75
+ name: z.string().describe("Supplier name"),
76
+ email: z.string().optional().describe("Email address"),
77
+ phone: z.string().optional().describe("Phone number"),
78
+ address: z.string().optional().describe("Street address"),
79
+ city: z.string().optional().describe("City"),
80
+ zip: z.string().optional().describe("Postal code"),
81
+ country: z.string().optional().describe("Country"),
82
+ vat_id: z.string().optional().describe("VAT ID"),
83
+ }, async (input) => {
84
+ const data = await client.post("/suppliers", input);
85
+ return {
86
+ content: [{ type: "text", text: JSON.stringify(data, null, 2) }],
87
+ };
88
+ });
89
+ server.tool("update_supplier", "Update an existing supplier.", {
90
+ id: z.string().describe("The supplier UUID"),
91
+ name: z.string().optional().describe("Supplier name"),
92
+ email: z.string().optional().describe("Email"),
93
+ phone: z.string().optional().describe("Phone"),
94
+ address: z.string().optional().describe("Street address"),
95
+ city: z.string().optional().describe("City"),
96
+ zip: z.string().optional().describe("Postal code"),
97
+ country: z.string().optional().describe("Country"),
98
+ vat_id: z.string().optional().describe("VAT ID"),
99
+ }, async ({ id, ...fields }) => {
100
+ const data = await client.put(`/suppliers/${id}`, fields);
101
+ return {
102
+ content: [{ type: "text", text: JSON.stringify(data, null, 2) }],
103
+ };
104
+ });
105
+ server.tool("delete_supplier", "Delete a supplier.", {
106
+ id: z.string().describe("The supplier UUID"),
107
+ }, async ({ id }) => {
108
+ await client.delete(`/suppliers/${id}`);
109
+ return {
110
+ content: [{ type: "text", text: `Supplier ${id} deleted successfully.` }],
111
+ };
112
+ });
113
+ server.tool("get_received_invoice", "Get details of a received invoice (Eingangsrechnung).", {
114
+ id: z.string().describe("The received invoice UUID"),
115
+ }, async ({ id }) => {
116
+ const data = await client.get(`/received-invoices/${id}`);
117
+ return {
118
+ content: [{ type: "text", text: JSON.stringify(data, null, 2) }],
119
+ };
120
+ });
121
+ server.tool("approve_received_invoice", "Approve a received invoice.", {
122
+ id: z.string().describe("The received invoice UUID"),
123
+ }, async ({ id }) => {
124
+ const data = await client.post(`/received-invoices/${id}/approve`);
125
+ return {
126
+ content: [{ type: "text", text: JSON.stringify(data, null, 2) }],
127
+ };
128
+ });
129
+ server.tool("get_datev_export", "Preview or download DATEV export data for tax advisor.", {
130
+ year: z.number().describe("Year"),
131
+ month: z.number().optional().describe("Month (1-12)"),
132
+ }, async ({ year, month }) => {
133
+ const params = { year: String(year) };
134
+ if (month !== undefined)
135
+ params.month = String(month);
136
+ const data = await client.get("/exports/datev/preview", params);
137
+ return {
138
+ content: [{ type: "text", text: JSON.stringify(data, null, 2) }],
139
+ };
140
+ });
66
141
  }
67
142
  //# sourceMappingURL=finance.js.map