dalvon-mcp 3.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.
Files changed (183) hide show
  1. package/LICENSE +7 -0
  2. package/README.md +743 -0
  3. package/dist/clients/dalvon.d.ts +258 -0
  4. package/dist/clients/dalvon.d.ts.map +1 -0
  5. package/dist/clients/dalvon.js +1240 -0
  6. package/dist/clients/dalvon.js.map +1 -0
  7. package/dist/clients/knowledge.d.ts +59 -0
  8. package/dist/clients/knowledge.d.ts.map +1 -0
  9. package/dist/clients/knowledge.js +267 -0
  10. package/dist/clients/knowledge.js.map +1 -0
  11. package/dist/clients/telefonieren.d.ts +258 -0
  12. package/dist/clients/telefonieren.d.ts.map +1 -0
  13. package/dist/clients/telefonieren.js +1240 -0
  14. package/dist/clients/telefonieren.js.map +1 -0
  15. package/dist/config.d.ts +43 -0
  16. package/dist/config.d.ts.map +1 -0
  17. package/dist/config.js +76 -0
  18. package/dist/config.js.map +1 -0
  19. package/dist/environment.d.ts +33 -0
  20. package/dist/environment.d.ts.map +1 -0
  21. package/dist/environment.js +63 -0
  22. package/dist/environment.js.map +1 -0
  23. package/dist/index.d.ts +7 -0
  24. package/dist/index.d.ts.map +1 -0
  25. package/dist/index.js +2 -0
  26. package/dist/index.js.map +1 -0
  27. package/dist/tools/agents.d.ts +8 -0
  28. package/dist/tools/agents.d.ts.map +1 -0
  29. package/dist/tools/agents.js +1880 -0
  30. package/dist/tools/agents.js.map +1 -0
  31. package/dist/tools/billing.d.ts +8 -0
  32. package/dist/tools/billing.d.ts.map +1 -0
  33. package/dist/tools/billing.js +205 -0
  34. package/dist/tools/billing.js.map +1 -0
  35. package/dist/tools/calendar.d.ts +8 -0
  36. package/dist/tools/calendar.d.ts.map +1 -0
  37. package/dist/tools/calendar.js +347 -0
  38. package/dist/tools/calendar.js.map +1 -0
  39. package/dist/tools/calls.d.ts +8 -0
  40. package/dist/tools/calls.d.ts.map +1 -0
  41. package/dist/tools/calls.js +508 -0
  42. package/dist/tools/calls.js.map +1 -0
  43. package/dist/tools/campaigns.d.ts +8 -0
  44. package/dist/tools/campaigns.d.ts.map +1 -0
  45. package/dist/tools/campaigns.js +531 -0
  46. package/dist/tools/campaigns.js.map +1 -0
  47. package/dist/tools/channels.d.ts +8 -0
  48. package/dist/tools/channels.d.ts.map +1 -0
  49. package/dist/tools/channels.js +165 -0
  50. package/dist/tools/channels.js.map +1 -0
  51. package/dist/tools/chats.d.ts +8 -0
  52. package/dist/tools/chats.d.ts.map +1 -0
  53. package/dist/tools/chats.js +142 -0
  54. package/dist/tools/chats.js.map +1 -0
  55. package/dist/tools/collections.d.ts +8 -0
  56. package/dist/tools/collections.d.ts.map +1 -0
  57. package/dist/tools/collections.js +389 -0
  58. package/dist/tools/collections.js.map +1 -0
  59. package/dist/tools/contacts.d.ts +8 -0
  60. package/dist/tools/contacts.d.ts.map +1 -0
  61. package/dist/tools/contacts.js +430 -0
  62. package/dist/tools/contacts.js.map +1 -0
  63. package/dist/tools/crawler.d.ts +8 -0
  64. package/dist/tools/crawler.d.ts.map +1 -0
  65. package/dist/tools/crawler.js +263 -0
  66. package/dist/tools/crawler.js.map +1 -0
  67. package/dist/tools/dnc.d.ts +8 -0
  68. package/dist/tools/dnc.d.ts.map +1 -0
  69. package/dist/tools/dnc.js +287 -0
  70. package/dist/tools/dnc.js.map +1 -0
  71. package/dist/tools/documents.d.ts +9 -0
  72. package/dist/tools/documents.d.ts.map +1 -0
  73. package/dist/tools/documents.js +518 -0
  74. package/dist/tools/documents.js.map +1 -0
  75. package/dist/tools/engines.d.ts +8 -0
  76. package/dist/tools/engines.d.ts.map +1 -0
  77. package/dist/tools/engines.js +271 -0
  78. package/dist/tools/engines.js.map +1 -0
  79. package/dist/tools/environment.d.ts +9 -0
  80. package/dist/tools/environment.d.ts.map +1 -0
  81. package/dist/tools/environment.js +59 -0
  82. package/dist/tools/environment.js.map +1 -0
  83. package/dist/tools/forwarding.d.ts +8 -0
  84. package/dist/tools/forwarding.d.ts.map +1 -0
  85. package/dist/tools/forwarding.js +30 -0
  86. package/dist/tools/forwarding.js.map +1 -0
  87. package/dist/tools/index.d.ts +58 -0
  88. package/dist/tools/index.d.ts.map +1 -0
  89. package/dist/tools/index.js +158 -0
  90. package/dist/tools/index.js.map +1 -0
  91. package/dist/tools/integrations.d.ts +8 -0
  92. package/dist/tools/integrations.d.ts.map +1 -0
  93. package/dist/tools/integrations.js +234 -0
  94. package/dist/tools/integrations.js.map +1 -0
  95. package/dist/tools/mailbox.d.ts +8 -0
  96. package/dist/tools/mailbox.d.ts.map +1 -0
  97. package/dist/tools/mailbox.js +105 -0
  98. package/dist/tools/mailbox.js.map +1 -0
  99. package/dist/tools/media.d.ts +8 -0
  100. package/dist/tools/media.d.ts.map +1 -0
  101. package/dist/tools/media.js +223 -0
  102. package/dist/tools/media.js.map +1 -0
  103. package/dist/tools/numbers.d.ts +8 -0
  104. package/dist/tools/numbers.d.ts.map +1 -0
  105. package/dist/tools/numbers.js +560 -0
  106. package/dist/tools/numbers.js.map +1 -0
  107. package/dist/tools/organizations.d.ts +8 -0
  108. package/dist/tools/organizations.d.ts.map +1 -0
  109. package/dist/tools/organizations.js +234 -0
  110. package/dist/tools/organizations.js.map +1 -0
  111. package/dist/tools/postprocessing.d.ts +8 -0
  112. package/dist/tools/postprocessing.d.ts.map +1 -0
  113. package/dist/tools/postprocessing.js +383 -0
  114. package/dist/tools/postprocessing.js.map +1 -0
  115. package/dist/tools/pronunciations.d.ts +8 -0
  116. package/dist/tools/pronunciations.d.ts.map +1 -0
  117. package/dist/tools/pronunciations.js +236 -0
  118. package/dist/tools/pronunciations.js.map +1 -0
  119. package/dist/tools/rules.d.ts +8 -0
  120. package/dist/tools/rules.d.ts.map +1 -0
  121. package/dist/tools/rules.js +465 -0
  122. package/dist/tools/rules.js.map +1 -0
  123. package/dist/tools/statistics.d.ts +8 -0
  124. package/dist/tools/statistics.d.ts.map +1 -0
  125. package/dist/tools/statistics.js +120 -0
  126. package/dist/tools/statistics.js.map +1 -0
  127. package/dist/tools/templates.d.ts +8 -0
  128. package/dist/tools/templates.d.ts.map +1 -0
  129. package/dist/tools/templates.js +211 -0
  130. package/dist/tools/templates.js.map +1 -0
  131. package/dist/tools/tests.d.ts +8 -0
  132. package/dist/tools/tests.d.ts.map +1 -0
  133. package/dist/tools/tests.js +329 -0
  134. package/dist/tools/tests.js.map +1 -0
  135. package/dist/tools/users.d.ts +8 -0
  136. package/dist/tools/users.d.ts.map +1 -0
  137. package/dist/tools/users.js +484 -0
  138. package/dist/tools/users.js.map +1 -0
  139. package/dist/tools/voice-preview.d.ts +8 -0
  140. package/dist/tools/voice-preview.d.ts.map +1 -0
  141. package/dist/tools/voice-preview.js +100 -0
  142. package/dist/tools/voice-preview.js.map +1 -0
  143. package/dist/tools/voices.d.ts +8 -0
  144. package/dist/tools/voices.d.ts.map +1 -0
  145. package/dist/tools/voices.js +110 -0
  146. package/dist/tools/voices.js.map +1 -0
  147. package/dist/tools/whitelabels.d.ts +8 -0
  148. package/dist/tools/whitelabels.d.ts.map +1 -0
  149. package/dist/tools/whitelabels.js +199 -0
  150. package/dist/tools/whitelabels.js.map +1 -0
  151. package/dist/tools/widget-config.d.ts +8 -0
  152. package/dist/tools/widget-config.d.ts.map +1 -0
  153. package/dist/tools/widget-config.js +116 -0
  154. package/dist/tools/widget-config.js.map +1 -0
  155. package/dist/types/api.d.ts +303 -0
  156. package/dist/types/api.d.ts.map +1 -0
  157. package/dist/types/api.js +6 -0
  158. package/dist/types/api.js.map +1 -0
  159. package/dist/types/index.d.ts +6 -0
  160. package/dist/types/index.d.ts.map +1 -0
  161. package/dist/types/index.js +6 -0
  162. package/dist/types/index.js.map +1 -0
  163. package/dist/types/tools.d.ts +41 -0
  164. package/dist/types/tools.d.ts.map +1 -0
  165. package/dist/types/tools.js +6 -0
  166. package/dist/types/tools.js.map +1 -0
  167. package/dist/utils/errors.d.ts +31 -0
  168. package/dist/utils/errors.d.ts.map +1 -0
  169. package/dist/utils/errors.js +77 -0
  170. package/dist/utils/errors.js.map +1 -0
  171. package/dist/utils/index.d.ts +7 -0
  172. package/dist/utils/index.d.ts.map +1 -0
  173. package/dist/utils/index.js +7 -0
  174. package/dist/utils/index.js.map +1 -0
  175. package/dist/utils/logger.d.ts +11 -0
  176. package/dist/utils/logger.d.ts.map +1 -0
  177. package/dist/utils/logger.js +25 -0
  178. package/dist/utils/logger.js.map +1 -0
  179. package/dist/utils/validation.d.ts +34 -0
  180. package/dist/utils/validation.d.ts.map +1 -0
  181. package/dist/utils/validation.js +68 -0
  182. package/dist/utils/validation.js.map +1 -0
  183. package/package.json +56 -0
package/README.md ADDED
@@ -0,0 +1,743 @@
1
+ # dalvon-mcp
2
+
3
+ MCP Server für [dalvon.ai](https://dalvon.ai) - Verwalte AI-Telefonagenten direkt aus Claude Desktop.
4
+
5
+ ## Features
6
+
7
+ - **121 Tools** für die vollständige Verwaltung von:
8
+ - AI Agents (11 Tools) - Erweitert mit Refresh, Transfer & Statistiken
9
+ - Calls (10 Tools) - Bulk-Operations für Kategorien & Metadaten
10
+ - Templates (5 Tools)
11
+ - Contacts (8 Tools) - Vollständiges CRM mit CSV/Excel Import
12
+ - Campaigns (6 Tools) - Bulk-Calling mit Dry-Run Support
13
+ - Rules & Automation (10 Tools) - Ereignisgesteuerte Workflows & Rate Limiting
14
+ - Phone Numbers (6 Tools) - Twilio Nummer-Provisioning & Management
15
+ - Voices (3 Tools) - ElevenLabs & OpenAI Voice Library
16
+ - Voice Preview (2 Tools) - Stimmen-Samples generieren
17
+ - Hotlines (5 Tools) - Inbound-Routing mit Geschäftszeiten
18
+ - Call Forwarding (1 Tool) - Weiterleitungsregeln aktualisieren
19
+ - Media (4 Tools) - Audio/Bild Upload & TTS Generierung
20
+ - Pronunciations (4 Tools) - Benutzerdefinierte Aussprache-Regeln
21
+ - **Integrations (7 Tools)** - Nylas, Perplexity, Custom APIs & OAuth
22
+ - **Postprocessing (7 Tools)** - Transkription, Zusammenfassungen, Sentiment-Analyse
23
+ - **DNC (5 Tools)** - Do-Not-Call Listen-Management
24
+ - **Crawler (6 Tools)** - Web-Crawling für URL-Collections
25
+ - **Channels (3 Tools)** - Multi-Channel Kommunikation
26
+ - **Mailbox (2 Tools)** - Voicemail & Callback-Anfragen
27
+ - Knowledge Collections (7 Tools)
28
+ - Documents (9 Tools) - inkl. Semantic Search & Bulk-Delete
29
+ - **Type-safe** mit TypeScript und Zod Validation
30
+ - **Retry Logic** mit Exponential Backoff
31
+ - **File Upload** für Contacts (CSV/Excel), Media (Audio/Bilder) & Documents (PDF/DOCX)
32
+ - **Admin Features** mit Permission-basierter Zugriffskontrolle
33
+ - **Sentry Integration** für Production Monitoring
34
+ - **Claude Desktop** kompatibel
35
+
36
+ ## Installation
37
+
38
+ ### Voraussetzungen
39
+
40
+ - **Node.js** v18 oder höher
41
+ - **npm** v9 oder höher
42
+ - **Claude Desktop** installiert
43
+ - **API Keys** von [dalvon.ai](https://dalvon.ai)
44
+
45
+ ### Schritt 1: Repository klonen
46
+
47
+ ```bash
48
+ git clone https://github.com/neuromanufaktur/dalvon-mcp.git
49
+ cd dalvon-mcp
50
+ ```
51
+
52
+ ### Schritt 2: Dependencies installieren & builden
53
+
54
+ ```bash
55
+ npm install
56
+ npm run build
57
+ ```
58
+
59
+ ### Schritt 3: Claude Desktop konfigurieren
60
+
61
+ Die Konfiguration unterscheidet sich je nach Betriebssystem:
62
+
63
+ ---
64
+
65
+ ## 🪟 Windows
66
+
67
+ **Config-Pfad:** `%APPDATA%\Claude\claude_desktop_config.json`
68
+
69
+ **Öffnen mit:**
70
+ ```powershell
71
+ notepad $env:APPDATA\Claude\claude_desktop_config.json
72
+ ```
73
+
74
+ **Config hinzufügen:**
75
+ ```json
76
+ {
77
+ "mcpServers": {
78
+ "dalvon-mcp": {
79
+ "command": "node",
80
+ "args": [
81
+ "C:\\Users\\DEIN_USERNAME\\Desktop\\dalvon-mcp\\dist\\index.js"
82
+ ],
83
+ "env": {
84
+ "DALVON_API_KEY": "dein-api-key",
85
+ "KNOWLEDGE_API_KEY": "dein-api-key",
86
+ "TELEFONIEREN_BASE_URL": "https://api.dalvon.ai",
87
+ "KNOWLEDGE_BASE_URL": "https://knowledge.neuromanufaktur.ai"
88
+ }
89
+ }
90
+ }
91
+ }
92
+ ```
93
+
94
+ > ⚠️ **Wichtig:** Ersetze `DEIN_USERNAME` mit deinem Windows-Benutzernamen und passe den Pfad an, wo du das Repository geklont hast. Benutze doppelte Backslashes `\\` in Windows-Pfaden.
95
+
96
+ ---
97
+
98
+ ## 🍎 macOS
99
+
100
+ **Config-Pfad:** `~/Library/Application Support/Claude/claude_desktop_config.json`
101
+
102
+ **Öffnen mit:**
103
+ ```bash
104
+ nano ~/Library/Application\ Support/Claude/claude_desktop_config.json
105
+ ```
106
+
107
+ **Config hinzufügen:**
108
+ ```json
109
+ {
110
+ "mcpServers": {
111
+ "dalvon-mcp": {
112
+ "command": "node",
113
+ "args": [
114
+ "/Users/DEIN_USERNAME/code/dalvon-mcp/dist/index.js"
115
+ ],
116
+ "env": {
117
+ "DALVON_API_KEY": "dein-api-key",
118
+ "KNOWLEDGE_API_KEY": "dein-api-key",
119
+ "TELEFONIEREN_BASE_URL": "https://api.dalvon.ai",
120
+ "KNOWLEDGE_BASE_URL": "https://knowledge.neuromanufaktur.ai"
121
+ }
122
+ }
123
+ }
124
+ }
125
+ ```
126
+
127
+ > ⚠️ **Wichtig:** Ersetze `DEIN_USERNAME` mit deinem macOS-Benutzernamen.
128
+
129
+ **Falls Node über NVM installiert ist:**
130
+ ```json
131
+ "command": "/Users/DEIN_USERNAME/.nvm/versions/node/v20.x.x/bin/node"
132
+ ```
133
+
134
+ ---
135
+
136
+ ## 🐧 Linux
137
+
138
+ **Config-Pfad:** `~/.config/Claude/claude_desktop_config.json`
139
+
140
+ **Öffnen mit:**
141
+ ```bash
142
+ nano ~/.config/Claude/claude_desktop_config.json
143
+ ```
144
+
145
+ **Config hinzufügen:**
146
+ ```json
147
+ {
148
+ "mcpServers": {
149
+ "dalvon-mcp": {
150
+ "command": "node",
151
+ "args": [
152
+ "/home/DEIN_USERNAME/code/dalvon-mcp/dist/index.js"
153
+ ],
154
+ "env": {
155
+ "DALVON_API_KEY": "dein-api-key",
156
+ "KNOWLEDGE_API_KEY": "dein-api-key",
157
+ "TELEFONIEREN_BASE_URL": "https://api.dalvon.ai",
158
+ "KNOWLEDGE_BASE_URL": "https://knowledge.neuromanufaktur.ai"
159
+ }
160
+ }
161
+ }
162
+ }
163
+ ```
164
+
165
+ > ⚠️ **Wichtig:** Ersetze `DEIN_USERNAME` mit deinem Linux-Benutzernamen.
166
+
167
+ **Falls Node über NVM installiert ist:**
168
+ ```json
169
+ "command": "/home/DEIN_USERNAME/.nvm/versions/node/v20.x.x/bin/node"
170
+ ```
171
+
172
+ ---
173
+
174
+ ### Schritt 4: Claude Desktop neu starten
175
+
176
+ Nach dem Speichern der Config muss Claude Desktop komplett neu gestartet werden:
177
+ - **Windows:** Task Manager → Claude beenden → Neu starten
178
+ - **macOS:** Cmd+Q → Neu starten
179
+ - **Linux:** `killall Claude` → Neu starten
180
+
181
+ ### Schritt 5: Verbindung testen
182
+
183
+ Öffne einen neuen Chat in Claude Desktop und frage:
184
+ ```
185
+ Welche MCP Server sind verbunden?
186
+ ```
187
+
188
+ Oder teste direkt:
189
+ ```
190
+ Liste alle meine dalvon.ai Agents
191
+ ```
192
+
193
+ ---
194
+
195
+ ## Umgebungsvariablen
196
+
197
+ | Variable | Erforderlich | Beschreibung |
198
+ |----------|--------------|--------------|
199
+ | `DALVON_API_KEY` | ✅ Ja | API Key von dalvon.ai |
200
+ | `KNOWLEDGE_API_KEY` | ✅ Ja | API Key für Knowledge Service (meist gleich wie `DALVON_API_KEY`) |
201
+ | `TELEFONIEREN_BASE_URL` | ❌ Nein | Default: `https://api.dalvon.ai` |
202
+ | `KNOWLEDGE_BASE_URL` | ❌ Nein | Default: `https://knowledge.neuromanufaktur.ai` |
203
+ | `SENTRY_DSN` | ❌ Nein | Für Error-Tracking (optional) |
204
+
205
+ ---
206
+
207
+ ## Troubleshooting
208
+
209
+ ### "Server disconnected" Fehler
210
+
211
+ 1. **Prüfe den Pfad:** Ist der Pfad zur `dist/index.js` korrekt?
212
+ 2. **Prüfe Node:** Führe `node --version` aus - muss v18+ sein
213
+ 3. **NVM-Nutzer:** Verwende den vollen Pfad zu Node (siehe oben)
214
+ 4. **Teste manuell:**
215
+ ```bash
216
+ cd /pfad/zu/dalvon-mcp
217
+ DALVON_API_KEY=xxx KNOWLEDGE_API_KEY=xxx node dist/index.js
218
+ ```
219
+
220
+ ### "Invalid credentials" Fehler
221
+
222
+ - Prüfe ob der API Key korrekt ist
223
+ - API Keys erhältst du unter [dalvon.ai](https://dalvon.ai) → Settings → API Keys
224
+
225
+ ### Server startet, aber keine Tools verfügbar
226
+
227
+ - Prüfe ob `npm run build` erfolgreich war
228
+ - Prüfe ob `dist/index.js` existiert
229
+
230
+ ---
231
+
232
+ ## Alternative: npx (experimentell)
233
+
234
+ Sobald das Paket auf npm veröffentlicht ist:
235
+
236
+ ```json
237
+ {
238
+ "mcpServers": {
239
+ "telefonieren": {
240
+ "command": "npx",
241
+ "args": ["dalvon-mcp"],
242
+ "env": {
243
+ "DALVON_API_KEY": "dein-api-key",
244
+ "KNOWLEDGE_API_KEY": "dein-api-key"
245
+ }
246
+ }
247
+ }
248
+ }
249
+ ```
250
+
251
+ **Config-Pfade:**
252
+ - macOS: `~/Library/Application Support/Claude/claude_desktop_config.json`
253
+ - Windows: `%APPDATA%\Claude\claude_desktop_config.json`
254
+ - Linux: `~/.config/Claude/claude_desktop_config.json`
255
+
256
+ ## Verfügbare Tools
257
+
258
+ ### Agent Management (11 Tools)
259
+
260
+ | Tool | Beschreibung |
261
+ |------|-------------|
262
+ | `list_agents` | Alle Agents mit Filtering auflisten |
263
+ | `get_agent` | Details eines Agents abrufen |
264
+ | `create_agent` | Neuen Agent erstellen |
265
+ | `update_agent` | Agent aktualisieren |
266
+ | `delete_agent` | Agent löschen |
267
+ | `duplicate_agent` | Agent duplizieren |
268
+ | `get_agent_stats` | Agent-Statistiken abrufen |
269
+ | `list_child_agents` | Kind-Agents auflisten |
270
+ | `refresh_agents` | Agent-Konfigurationen vom Backend aktualisieren |
271
+ | `transfer_agent` | Agent-Besitz übertragen (Admin) |
272
+ | `get_agent_statistics` | Detaillierte Performance-Statistiken abrufen |
273
+
274
+ ### Call Management (10 Tools)
275
+
276
+ | Tool | Beschreibung |
277
+ |------|-------------|
278
+ | `list_calls` | Alle Calls mit Filtering auflisten |
279
+ | `initiate_call` | Neuen Anruf starten |
280
+ | `get_call_details` | Call-Details abrufen |
281
+ | `delete_call` | Call löschen |
282
+ | `submit_call_feedback` | Feedback einreichen |
283
+ | `get_call_feedback` | Feedback abrufen |
284
+ | `cleanup_expired_calls` | Abgelaufene Calls aufräumen |
285
+ | `mark_calls_as_read` | Mehrere Calls als gelesen markieren (Bulk) |
286
+ | `update_call_categories` | Call-Kategorien aktualisieren |
287
+ | `update_call_metadata` | Call-Metadaten aktualisieren |
288
+
289
+ ### Template Management (5 Tools)
290
+
291
+ | Tool | Beschreibung |
292
+ |------|-------------|
293
+ | `list_templates` | Alle Templates auflisten |
294
+ | `get_template` | Template-Details abrufen |
295
+ | `create_template` | Neues Template erstellen |
296
+ | `update_template` | Template aktualisieren |
297
+ | `delete_template` | Template löschen |
298
+
299
+ ### Contact Management (8 Tools)
300
+
301
+ | Tool | Beschreibung |
302
+ |------|-------------|
303
+ | `list_contacts` | Alle Kontakte mit Filtering auflisten |
304
+ | `get_contact` | Kontakt-Details abrufen |
305
+ | `create_contact` | Neuen Kontakt erstellen |
306
+ | `update_contact` | Kontakt aktualisieren |
307
+ | `delete_contact` | Kontakt löschen |
308
+ | `bulk_delete_contacts` | Mehrere Kontakte gleichzeitig löschen |
309
+ | `import_contacts` | Kontakte aus CSV/Excel importieren (max 10MB) |
310
+ | `export_contacts` | Kontakte als CSV/Excel exportieren |
311
+
312
+ ### Campaign Management (6 Tools)
313
+
314
+ | Tool | Beschreibung |
315
+ |------|-------------|
316
+ | `list_campaigns` | Alle Kampagnen mit Filtering auflisten |
317
+ | `get_campaign` | Kampagnen-Details und Statistiken abrufen |
318
+ | `create_campaign` | Neue Bulk-Calling Kampagne erstellen |
319
+ | `update_campaign` | Kampagne aktualisieren |
320
+ | `delete_campaign` | Kampagne löschen |
321
+ | `start_campaign` | Kampagne starten (mit Dry-Run Support) |
322
+
323
+ ### Rules & Automation (10 Tools)
324
+
325
+ | Tool | Beschreibung |
326
+ |------|-------------|
327
+ | `list_rules` | Alle Automatisierungsregeln auflisten |
328
+ | `get_rule` | Regel-Details abrufen |
329
+ | `create_rule` | Neue Regel erstellen |
330
+ | `update_rule` | Regel aktualisieren |
331
+ | `delete_rule` | Regel löschen |
332
+ | `test_rule` | Regel-Bedingungen testen |
333
+ | `list_rule_executions` | Regel-Ausführungshistorie anzeigen |
334
+ | `get_rate_limit_settings` | Rate-Limit Einstellungen abrufen |
335
+ | `update_rate_limit_settings` | Rate-Limits konfigurieren |
336
+ | `check_rate_limit_status` | Aktuellen Rate-Limit Status prüfen |
337
+
338
+ ### Phone Number Management (6 Tools)
339
+
340
+ | Tool | Beschreibung |
341
+ |------|-------------|
342
+ | `list_phone_numbers` | Alle Telefonnummern mit Filtering auflisten |
343
+ | `get_phone_number` | Telefonnummer-Details abrufen |
344
+ | `provision_phone_number` | Neue Nummer von Twilio bereitstellen |
345
+ | `release_phone_number` | Nummer freigeben (Admin) |
346
+ | `update_phone_number` | Telefonnummer-Einstellungen aktualisieren |
347
+ | `search_available_numbers` | Verfügbare Nummern bei Twilio suchen |
348
+
349
+ ### Voice Management (3 Tools)
350
+
351
+ | Tool | Beschreibung |
352
+ |------|-------------|
353
+ | `list_voices` | Alle verfügbaren Stimmen (ElevenLabs, OpenAI) auflisten |
354
+ | `get_voice` | Stimmen-Details und Sample-URL abrufen |
355
+ | `refresh_voices` | Voice Library vom Provider aktualisieren |
356
+
357
+ ### Voice Preview (2 Tools)
358
+
359
+ | Tool | Beschreibung |
360
+ |------|-------------|
361
+ | `generate_voice_preview` | Stimmen-Sample mit Beispieltext generieren |
362
+ | `compare_voices` | Mehrere Stimmen parallel vergleichen |
363
+
364
+ ### Hotline Management (5 Tools)
365
+
366
+ | Tool | Beschreibung |
367
+ |------|-------------|
368
+ | `list_hotlines` | Alle Inbound-Hotlines auflisten |
369
+ | `get_hotline` | Hotline-Details abrufen |
370
+ | `create_hotline` | Neue Hotline mit Geschäftszeiten erstellen |
371
+ | `update_hotline` | Hotline aktualisieren |
372
+ | `delete_hotline` | Hotline löschen |
373
+
374
+ ### Call Forwarding (1 Tool)
375
+
376
+ | Tool | Beschreibung |
377
+ |------|-------------|
378
+ | `refresh_forwarding_rules` | Weiterleitungsregeln vom Provider aktualisieren |
379
+
380
+ ### Media Management (4 Tools)
381
+
382
+ | Tool | Beschreibung |
383
+ |------|-------------|
384
+ | `upload_media` | Audio (MP3/WAV/OGG/M4A) oder Bild (PNG/JPG/GIF/WEBP) hochladen (max 10MB) |
385
+ | `get_media` | Media-Details und Download-URL abrufen |
386
+ | `delete_media` | Media-Datei löschen |
387
+ | `generate_tts_audio` | Text-to-Speech Audio mit spezifischer Stimme generieren |
388
+
389
+ ### Pronunciation Management (4 Tools)
390
+
391
+ | Tool | Beschreibung |
392
+ |------|-------------|
393
+ | `list_pronunciations` | Alle benutzerdefinierten Aussprache-Regeln auflisten |
394
+ | `get_pronunciation` | Aussprache-Regel-Details abrufen |
395
+ | `create_pronunciation` | Neue Aussprache-Regel erstellen (z.B. "PostgreSQL" → "post-gress-Q-L") |
396
+ | `delete_pronunciation` | Aussprache-Regel löschen |
397
+
398
+ ### Collection Management (7 Tools)
399
+
400
+ | Tool | Beschreibung |
401
+ |------|-------------|
402
+ | `list_collections` | Alle Collections auflisten |
403
+ | `create_collection` | Neue Collection erstellen |
404
+ | `get_collection` | Collection-Details abrufen |
405
+ | `update_collection` | Collection aktualisieren |
406
+ | `delete_collection` | Collection löschen |
407
+ | `refresh_collections` | Collections neu einbetten |
408
+ | `transfer_collections` | Collections übertragen |
409
+
410
+ ### Document Management (7 Tools)
411
+
412
+ | Tool | Beschreibung |
413
+ |------|-------------|
414
+ | `list_documents` | Dokumente in Collection auflisten |
415
+ | `get_document` | Dokument-Details abrufen |
416
+ | `update_document` | Dokument aktualisieren |
417
+ | `delete_document` | Dokument löschen |
418
+ | `move_documents` | Dokumente verschieben |
419
+ | `refresh_documents` | Dokumente neu einbetten |
420
+ | `create_documents` | Dokumente hochladen |
421
+
422
+ ## Beispiele
423
+
424
+ ### Agent erstellen und verwalten
425
+
426
+ ```
427
+ "Erstelle einen neuen Agent namens 'Support Bot' mit der Sprache Deutsch"
428
+ "Zeige mir die Performance-Statistiken für Agent 'Support Bot'"
429
+ "Dupliziere den Agent 'Support Bot' als 'Sales Bot'"
430
+ ```
431
+
432
+ ### Anruf starten und verwalten
433
+
434
+ ```
435
+ "Rufe +49123456789 mit dem Agent 'Support Bot' an"
436
+ "Zeige mir alle Anrufe von gestern"
437
+ "Markiere die Calls mit IDs xyz als gelesen"
438
+ ```
439
+
440
+ ### Kontakte und Kampagnen
441
+
442
+ ```
443
+ "Importiere Kontakte aus der Datei kundenliste.csv"
444
+ "Erstelle eine Kampagne 'Produktlaunch' mit Agent 'Sales Bot'"
445
+ "Starte die Kampagne 'Produktlaunch' im Dry-Run Modus"
446
+ ```
447
+
448
+ ### Telefonnummern und Stimmen
449
+
450
+ ```
451
+ "Suche verfügbare deutsche Telefonnummern in Berlin"
452
+ "Zeige mir alle verfügbaren deutschen Stimmen"
453
+ "Generiere ein Stimmen-Sample für die Stimme 'Maria' mit dem Text 'Guten Tag'"
454
+ ```
455
+
456
+ ### Hotlines und Weiterleitungen
457
+
458
+ ```
459
+ "Erstelle eine Hotline für +49301234567 mit Geschäftszeiten Mo-Fr 9-17 Uhr"
460
+ "Liste alle aktiven Hotlines"
461
+ "Aktualisiere die Weiterleitungsregeln"
462
+ ```
463
+
464
+ ### Media und Aussprache
465
+
466
+ ```
467
+ "Lade die Audio-Datei begruessung.mp3 hoch"
468
+ "Generiere TTS Audio mit der Stimme 'Anton' für den Text 'Willkommen'"
469
+ "Füge eine Aussprache-Regel hinzu: PostgreSQL wird ausgesprochen als post-gress-Q-L"
470
+ ```
471
+
472
+ ### Automatisierung
473
+
474
+ ```
475
+ "Erstelle eine Regel: Wenn ein Anruf beendet ist, sende eine E-Mail"
476
+ "Liste alle Regel-Ausführungen der letzten 7 Tage"
477
+ "Zeige mir die aktuellen Rate-Limit Einstellungen"
478
+ ```
479
+
480
+ ### Knowledge Base verwalten
481
+
482
+ ```
483
+ "Liste alle Collections in meiner Knowledge Base"
484
+ "Lade die Datei produktkatalog.pdf in die Collection 'Produkte' hoch"
485
+ "Aktualisiere alle Dokumente in der Collection 'FAQ'"
486
+ ```
487
+
488
+ ## Development
489
+
490
+ ```bash
491
+ # Clone und Dependencies installieren
492
+ git clone <repo>
493
+ cd dalvon-mcp
494
+ npm install
495
+
496
+ # Development Server
497
+ npm run dev
498
+
499
+ # Build
500
+ npm run build
501
+
502
+ # Tests
503
+ npm test
504
+ ```
505
+
506
+ ## Architektur
507
+
508
+ ### Übersicht
509
+
510
+ ```mermaid
511
+ flowchart TB
512
+ subgraph Client["MCP Client"]
513
+ CD[Claude Desktop]
514
+ CU[Cursor]
515
+ OTHER[Andere MCP Clients]
516
+ end
517
+
518
+ subgraph Server["dalvon-mcp Server"]
519
+ MCP[MCP Protocol Handler]
520
+ TOOLS[Tool Registry]
521
+
522
+ subgraph Clients["API Clients"]
523
+ TC[TelefonierenClient]
524
+ KC[KnowledgeClient]
525
+ end
526
+ end
527
+
528
+ subgraph APIs["External APIs"]
529
+ TAPI[api.dalvon.ai]
530
+ KAPI[knowledge.neuromanufaktur.ai]
531
+ end
532
+
533
+ CD <-->|stdio| MCP
534
+ CU <-->|stdio| MCP
535
+ OTHER <-->|stdio| MCP
536
+
537
+ MCP --> TOOLS
538
+ TOOLS --> TC
539
+ TOOLS --> KC
540
+
541
+ TC <-->|HTTPS| TAPI
542
+ KC <-->|HTTPS| KAPI
543
+ ```
544
+
545
+ ### Tool-Aufruf Sequenz
546
+
547
+ ```mermaid
548
+ sequenceDiagram
549
+ participant User
550
+ participant Claude as Claude Desktop
551
+ participant MCP as dalvon-mcp Server
552
+ participant Tools as Tool Handler
553
+ participant API as dalvon.ai API
554
+
555
+ User->>Claude: "Liste alle meine Agents"
556
+ Claude->>MCP: tools/call: list_agents
557
+ MCP->>Tools: Validate & Route
558
+ Tools->>API: GET /agents/
559
+
560
+ alt Success
561
+ API-->>Tools: 200 OK + Agent List
562
+ Tools-->>MCP: Format Response
563
+ MCP-->>Claude: Tool Result (JSON)
564
+ Claude-->>User: "Du hast 5 Agents: ..."
565
+ else Error
566
+ API-->>Tools: 4xx/5xx Error
567
+ Tools-->>MCP: Formatted Error + Hint
568
+ MCP-->>Claude: Error Response
569
+ Claude-->>User: "Fehler: ... Tipp: ..."
570
+ end
571
+ ```
572
+
573
+ ### Agent erstellen mit Retry
574
+
575
+ ```mermaid
576
+ sequenceDiagram
577
+ participant Claude as Claude Desktop
578
+ participant MCP as dalvon-mcp
579
+ participant Val as Zod Validator
580
+ participant Client as API Client
581
+ participant API as dalvon.ai
582
+
583
+ Claude->>MCP: create_agent({name, prompt, ...})
584
+ MCP->>Val: Validate Input
585
+
586
+ alt Invalid Input
587
+ Val-->>MCP: Validation Error
588
+ MCP-->>Claude: {success: false, error: "..."}
589
+ else Valid Input
590
+ Val-->>MCP: OK
591
+ MCP->>Client: prepareAgentData()
592
+ Note over Client: Transform prompt to<br/>{user_prompt: "..."}
593
+
594
+ loop Retry (max 3x)
595
+ Client->>API: POST /agents/
596
+ alt Success
597
+ API-->>Client: 201 Created
598
+ Client-->>MCP: Agent Data
599
+ MCP-->>Claude: {success: true, agent_id: "..."}
600
+ else Network Error
601
+ API-->>Client: Timeout/Error
602
+ Note over Client: Wait & Retry
603
+ else 422 Validation Error
604
+ API-->>Client: 422 Error
605
+ Client-->>MCP: Error + Workaround
606
+ MCP-->>Claude: {success: false, workaround: "Use Web UI"}
607
+ end
608
+ end
609
+ end
610
+ ```
611
+
612
+ ### Anruf initiieren
613
+
614
+ ```mermaid
615
+ sequenceDiagram
616
+ participant User
617
+ participant Claude as Claude Desktop
618
+ participant MCP as dalvon-mcp
619
+ participant API as dalvon.ai
620
+ participant Phone as Telefon System
621
+
622
+ User->>Claude: "Rufe +49123456789 an mit Agent 'Sales Bot'"
623
+ Claude->>MCP: initiate_call({agent_id, recipient_number})
624
+
625
+ MCP->>MCP: Validate UUID
626
+ MCP->>API: POST /calls/
627
+ API->>Phone: Initiate Call
628
+ Phone-->>API: Call Started
629
+ API-->>MCP: {id: "call-uuid", status: "initiated"}
630
+ MCP-->>Claude: {success: true, call_id: "..."}
631
+ Claude-->>User: "Anruf gestartet! Call-ID: ..."
632
+
633
+ Note over Phone: Anruf läuft...
634
+
635
+ User->>Claude: "Wie lief der Anruf?"
636
+ Claude->>MCP: get_call_details({call_id})
637
+ MCP->>API: GET /calls/{id}
638
+ API-->>MCP: {status: "completed", duration: 120, ...}
639
+ MCP-->>Claude: Call Details
640
+ Claude-->>User: "Der Anruf dauerte 2 Minuten..."
641
+ ```
642
+
643
+ ### Knowledge Base Upload
644
+
645
+ ```mermaid
646
+ sequenceDiagram
647
+ participant User
648
+ participant Claude as Claude Desktop
649
+ participant MCP as dalvon-mcp
650
+ participant FS as File System
651
+ participant API as Knowledge API
652
+ participant Vector as Pinecone
653
+
654
+ User->>Claude: "Lade produkte.pdf in Collection 'Katalog'"
655
+ Claude->>MCP: create_documents({collection_id, file_paths})
656
+
657
+ MCP->>FS: Read File
658
+ FS-->>MCP: File Content (Buffer)
659
+
660
+ MCP->>MCP: Validate File Type (.pdf ✓)
661
+ MCP->>API: POST /collections/{id}/documents (multipart)
662
+
663
+ API->>API: Parse PDF
664
+ API->>API: Chunk Text
665
+ API->>Vector: Create Embeddings
666
+ Vector-->>API: Stored
667
+
668
+ API-->>MCP: {successful_uploads: 1, chunks_created: 42}
669
+ MCP-->>Claude: Upload Result
670
+ Claude-->>User: "Dokument hochgeladen! 42 Chunks erstellt."
671
+ ```
672
+
673
+ ### Projektstruktur
674
+
675
+ ```
676
+ src/
677
+ ├── index.ts # MCP Server Entry Point
678
+ ├── config.ts # Configuration Management
679
+ ├── clients/
680
+ │ ├── telefonieren.ts # API Client für api.dalvon.ai (55 Methoden)
681
+ │ └── knowledge.ts # API Client für Knowledge API (14 Methoden)
682
+ ├── tools/
683
+ │ ├── index.ts # Tool Registry (89 Tools)
684
+ │ ├── agents.ts # Agent Tools (11)
685
+ │ ├── calls.ts # Call Tools (10)
686
+ │ ├── templates.ts # Template Tools (5)
687
+ │ ├── contacts.ts # Contact Tools (8) - CSV/Excel Import
688
+ │ ├── campaigns.ts # Campaign Tools (6) - Bulk Calling
689
+ │ ├── rules.ts # Rules & Automation Tools (10)
690
+ │ ├── numbers.ts # Phone Number Tools (6) - Twilio
691
+ │ ├── voices.ts # Voice Library Tools (3)
692
+ │ ├── voice-preview.ts # Voice Preview Tools (2)
693
+ │ ├── hotlines.ts # Hotline Tools (5)
694
+ │ ├── forwarding.ts # Forwarding Tools (1)
695
+ │ ├── media.ts # Media Management Tools (4)
696
+ │ ├── pronunciations.ts # Pronunciation Tools (4)
697
+ │ ├── collections.ts # Collection Tools (7)
698
+ │ └── documents.ts # Document Tools (7)
699
+ ├── utils/
700
+ │ ├── validation.ts # Input Validation (UUID, etc.)
701
+ │ ├── errors.ts # Error Handling & Formatting
702
+ │ └── logger.ts # Logging (Sentry Integration)
703
+ └── types/
704
+ ├── api.ts # API Types (16 Interfaces)
705
+ ├── index.ts # Re-exports
706
+ └── [...] # Tool Types
707
+ ```
708
+
709
+ ## Testing
710
+
711
+ Eine umfassende Test-Dokumentation mit Beispielen für alle 89 Tools findest du in [TESTING.md](./TESTING.md).
712
+
713
+ Die Dokumentation enthält:
714
+ - Setup-Anleitung
715
+ - Test-Szenarien für typische Workflows
716
+ - Vollständige Tool-Checklisten
717
+ - Bekannte Einschränkungen und Troubleshooting
718
+ - Performance-Tipps
719
+
720
+ ## Version History
721
+
722
+ ### v2.0.0 (Current)
723
+ - **89 Tools** (↑ von 34 Tools)
724
+ - **Phase 1**: Contact Management, Campaigns, Rules & Automation (30 neue Tools)
725
+ - **Phase 2**: Phone Numbers, Voices, Hotlines, Media, Pronunciations (25 neue Tools)
726
+ - File Upload Support für CSV/Excel Import und Media Upload
727
+ - Admin Features mit Permission-basierter Zugriffskontrolle
728
+ - Erweiterte Agent- und Call-Verwaltung
729
+
730
+ ### v1.0.0
731
+ - 34 Basis-Tools für Agents, Calls, Templates, Collections, Documents
732
+
733
+ ## License
734
+
735
+ MIT
736
+
737
+ ## Links
738
+
739
+ - [dalvon.ai](https://dalvon.ai)
740
+ - [MCP Protocol](https://modelcontextprotocol.io)
741
+ - [Claude Desktop](https://claude.ai/download)
742
+ - [Testing Guide](./TESTING.md)
743
+ - [Implementation Plan](./IMPLEMENTATION_PLAN.md)