@dpesch/mantisbt-mcp-server 1.11.0 → 1.13.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.
@@ -1,9 +1,11 @@
1
1
  # Cookbook
2
2
 
3
- Tool-orientierte Rezepte für den MantisBT MCP Server — jedes Rezept zeigt genau, welches Tool mit welchen Parametern aufgerufen wird. Beispiele mit natürlicher Sprache sind in [examples.de.md](examples.de.md) zu finden.
3
+ Tool-orientierte Rezepte für den MantisBT MCP Server – jedes Rezept zeigt genau, welches Tool mit welchen Parametern aufgerufen wird. Beispiele mit natürlicher Sprache sind in [examples.de.md](examples.de.md) zu finden.
4
4
 
5
5
  ---
6
6
 
7
+ - [Verbindung einrichten](#verbindung-einrichten)
8
+ - [Installation ohne URL-Rewriting anbinden](#installation-ohne-url-rewriting-anbinden)
7
9
  - [Die eigene Instanz erkunden](#die-eigene-instanz-erkunden)
8
10
  - [Alle Projekte abrufen](#alle-projekte-abrufen)
9
11
  - [Gültige Enum-Werte ermitteln (Schweregrad, Status, Priorität)](#gültige-enum-werte-ermitteln-schweregrad-status-priorität)
@@ -50,6 +52,10 @@ Tool-orientierte Rezepte für den MantisBT MCP Server — jedes Rezept zeigt gen
50
52
  - [Projekte & Kategorien](#projekte--kategorien)
51
53
  - [Projektkategorien auflisten](#projektkategorien-auflisten)
52
54
  - [Projektmitglied suchen](#projektmitglied-suchen)
55
+ - [Projektversion erstellen](#projektversion-erstellen)
56
+ - [Projektversion aktualisieren](#projektversion-aktualisieren)
57
+ - [Version freigeben und nächsten Bugfix-Platzhalter erstellen](#version-freigeben-und-nächsten-bugfix-platzhalter-erstellen)
58
+ - [Projektversion löschen](#projektversion-löschen)
53
59
  - [Metadaten](#metadaten)
54
60
  - [Metadaten-Zusammenfassung abrufen](#metadaten-zusammenfassung-abrufen)
55
61
  - [Vollständigen Metadaten-Cache abrufen](#vollständigen-metadaten-cache-abrufen)
@@ -72,6 +78,41 @@ Tool-orientierte Rezepte für den MantisBT MCP Server — jedes Rezept zeigt gen
72
78
 
73
79
  ---
74
80
 
81
+ ## Verbindung einrichten
82
+
83
+ ### Installation ohne URL-Rewriting anbinden
84
+
85
+ Manche MantisBT-Installationen liefern die REST-API ausschließlich über ihren Front-Controller aus – typischerweise Apache ohne `mod_rewrite` oder IIS ohne Rewrite-Modul. Dort liefert `/api/rest/issues` einen 404, während `/api/rest/index.php/issues` funktioniert.
86
+
87
+ **Variante A – Flag explizit setzen:**
88
+
89
+ ```json
90
+ {
91
+ "env": {
92
+ "MANTIS_BASE_URL": "https://mantis.example.com",
93
+ "MANTIS_API_KEY": "dein-api-token",
94
+ "MANTIS_USE_INDEX_PHP": "true"
95
+ }
96
+ }
97
+ ```
98
+
99
+ **Variante B – vollständige REST-URL eintragen und erkennen lassen:**
100
+
101
+ ```json
102
+ {
103
+ "env": {
104
+ "MANTIS_BASE_URL": "https://mantis.example.com/api/rest/index.php",
105
+ "MANTIS_API_KEY": "dein-api-token"
106
+ }
107
+ }
108
+ ```
109
+
110
+ Endet `MANTIS_BASE_URL` auf `/api/rest/index.php`, wird das index.php-Routing automatisch aktiviert. Ein explizit gesetztes `MANTIS_USE_INDEX_PHP` hat immer Vorrang vor der Erkennung – steht es zusammen mit einer solchen URL auf `false`, wird das normale `/api/rest/`-Routing erzwungen und eine Warnung auf stderr ausgegeben.
111
+
112
+ **Prüfen:** `get_mantis_version` aufrufen. Kommt eine Antwort zurück, stimmt das Routing.
113
+
114
+ ---
115
+
75
116
  ## Die eigene Instanz erkunden
76
117
 
77
118
  ### Alle Projekte abrufen
@@ -148,7 +189,7 @@ Gibt die auf der eigenen MantisBT-Instanz konfigurierten Enum-Werte zurück. Vor
148
189
  }
149
190
  ```
150
191
 
151
- > **Hinweis:** Auf lokalisierten Instanzen liefert `get_issue_enums()` im Feld `name` den lokalisierten Begriff und optional im Feld `canonical_name` den englischen Originalnamen. `create_issue` akzeptiert **beides** — sowohl den kanonischen englischen Namen (z.B. `minor`) als auch den lokalisierten Namen (z.B. `Unschönheit`). Der Server löst den Wert automatisch auf.
192
+ > **Hinweis:** Auf lokalisierten Instanzen liefert `get_issue_enums()` im Feld `name` den lokalisierten Begriff und optional im Feld `canonical_name` den englischen Originalnamen. `create_issue` akzeptiert **beides** – sowohl den kanonischen englischen Namen (z.B. `minor`) als auch den lokalisierten Namen (z.B. `Unschönheit`). Der Server löst den Wert automatisch auf.
152
193
 
153
194
  ---
154
195
 
@@ -159,7 +200,7 @@ Gibt alle Feldnamen zurück, die dem `select`-Parameter von `list_issues` überg
159
200
  **Tool:** `get_issue_fields`
160
201
 
161
202
  **Parameter:**
162
- - `project_id` — _(optional)_ auf Felder eines bestimmten Projekts beschränken
203
+ - `project_id` – _(optional)_ auf Felder eines bestimmten Projekts beschränken
163
204
 
164
205
  **Request:**
165
206
 
@@ -195,8 +236,8 @@ Ruft ein einzelnes Issue anhand seiner numerischen ID ab, inklusive Notizen, Anh
195
236
  **Tool:** `get_issue`
196
237
 
197
238
  **Parameter:**
198
- - `id` — numerische Issue-ID
199
- - `select` — _(optional)_ kommagetrennte Feldliste (server-seitige Projektion); reduziert die Antwortgröße bei großen Issues deutlich, z.B. `"id,summary,status,notes"`
239
+ - `id` – numerische Issue-ID
240
+ - `select` – _(optional)_ kommagetrennte Feldliste (server-seitige Projektion); reduziert die Antwortgröße bei großen Issues deutlich, z.B. `"id,summary,status,notes"`
200
241
 
201
242
  **Request:**
202
243
 
@@ -244,12 +285,12 @@ Kompakte Variante (nur die benötigten Felder):
244
285
 
245
286
  ### Mehrere Issues in einem Aufruf abrufen
246
287
 
247
- Ruft bis zu 50 Issues in einem einzigen MCP-Aufruf ab. Die Anfragen laufen parallel (max. 5 gleichzeitig). Nicht zugängliche IDs liefern `null` an ihrer Position — der Aufruf schlägt nie wegen einzelner fehlender IDs fehl.
288
+ Ruft bis zu 50 Issues in einem einzigen MCP-Aufruf ab. Die Anfragen laufen parallel (max. 5 gleichzeitig). Nicht zugängliche IDs liefern `null` an ihrer Position – der Aufruf schlägt nie wegen einzelner fehlender IDs fehl.
248
289
 
249
290
  **Tool:** `get_issues`
250
291
 
251
292
  **Parameter:**
252
- - `ids` — Array numerischer Issue-IDs (1–50)
293
+ - `ids` – Array numerischer Issue-IDs (1–50)
253
294
 
254
295
  **Request:**
255
296
 
@@ -295,9 +336,9 @@ Gibt eine paginierte Liste von Issues zurück, optional auf ein Projekt beschrä
295
336
  **Tool:** `list_issues`
296
337
 
297
338
  **Parameter:**
298
- - `project_id` — _(optional)_ numerische Projekt-ID
299
- - `page` — _(optional)_ Seitennummer, Standard 1
300
- - `page_size` — _(optional)_ Issues pro Seite, Standard 50
339
+ - `project_id` – _(optional)_ numerische Projekt-ID
340
+ - `page` – _(optional)_ Seitennummer, Standard 1
341
+ - `page_size` – _(optional)_ Issues pro Seite, Standard 50
301
342
 
302
343
  **Request:**
303
344
 
@@ -342,8 +383,8 @@ Eine kommagetrennte Liste von Feldnamen übergeben, um nur die benötigten Felde
342
383
  **Tool:** `list_issues`
343
384
 
344
385
  **Parameter:**
345
- - `project_id` — _(optional)_ numerische Projekt-ID
346
- - `select` — kommagetrennte Feldnamen
386
+ - `project_id` – _(optional)_ numerische Projekt-ID
387
+ - `select` – kommagetrennte Feldnamen
347
388
 
348
389
  **Request:**
349
390
 
@@ -373,19 +414,19 @@ Eine kommagetrennte Liste von Feldnamen übergeben, um nur die benötigten Felde
373
414
 
374
415
  > **Hinweis:** Mit `get_issue_fields()` lassen sich alle verfügbaren Feldnamen anzeigen.
375
416
 
376
- > **Hinweis:** `view_url` ist in allen Issue-Responses immer vorhanden — es wird vom MCP-Server injiziert und wird durch den `select`-Parameter nicht beeinflusst.
417
+ > **Hinweis:** `view_url` ist in allen Issue-Responses immer vorhanden – es wird vom MCP-Server injiziert und wird durch den `select`-Parameter nicht beeinflusst.
377
418
 
378
419
  ---
379
420
 
380
421
  ### Nach Status filtern
381
422
 
382
- Gibt nur Issues mit einem bestimmten Status zurück. Der Filter wird clientseitig angewendet — das Tool durchsucht intern bis zu 500 Issues.
423
+ Gibt nur Issues mit einem bestimmten Status zurück. Der Filter wird clientseitig angewendet – das Tool durchsucht intern bis zu 500 Issues.
383
424
 
384
425
  **Tool:** `list_issues`
385
426
 
386
427
  **Parameter:**
387
- - `project_id` — _(optional)_ numerische Projekt-ID
388
- - `status` — Status-Name als Zeichenkette (z. B. `"new"`, `"assigned"`, `"resolved"`)
428
+ - `project_id` – _(optional)_ numerische Projekt-ID
429
+ - `status` – Status-Name als Zeichenkette (z. B. `"new"`, `"assigned"`, `"resolved"`)
389
430
 
390
431
  **Request:**
391
432
 
@@ -412,9 +453,9 @@ Gibt nur Issues mit einem bestimmten Status zurück. Der Filter wird clientseiti
412
453
  }
413
454
  ```
414
455
 
415
- > **Hinweis:** Kanonische Statusnamen (z.B. `"new"`, `"resolved"`) werden zur numerischen ID aufgelöst und per `issue.status.id` gefiltert — funktioniert auch auf lokalisierten Installationen, bei denen die API übersetzte Statusnamen zurückgibt. Direkt übergebene lokalisierte Namen (z.B. `"Neu"`) werden als Fallback über den Namen abgeglichen. Das Kürzel `"open"` (alle Status mit id < 80) steht unabhängig von der Installationssprache immer zur Verfügung.
456
+ > **Hinweis:** Kanonische Statusnamen (z.B. `"new"`, `"resolved"`) werden zur numerischen ID aufgelöst und per `issue.status.id` gefiltert – funktioniert auch auf lokalisierten Installationen, bei denen die API übersetzte Statusnamen zurückgibt. Direkt übergebene lokalisierte Namen (z.B. `"Neu"`) werden als Fallback über den Namen abgeglichen. Das Kürzel `"open"` (alle Status mit id < 80) steht unabhängig von der Installationssprache immer zur Verfügung.
416
457
 
417
- > **Hinweis:** Bei großen Projekten mit vielen Issues stattdessen einen vorgespeicherten MantisBT-Filter über `filter_id` verwenden — die clientseitige Filterung durchsucht nur die ersten 500 Issues (10 Seiten × 50).
458
+ > **Hinweis:** Bei großen Projekten mit vielen Issues stattdessen einen vorgespeicherten MantisBT-Filter über `filter_id` verwenden – die clientseitige Filterung durchsucht nur die ersten 500 Issues (10 Seiten × 50).
418
459
 
419
460
  ---
420
461
 
@@ -425,9 +466,9 @@ Gibt Issues gefiltert nach dem zugewiesenen Benutzer oder dem Melder zurück. Be
425
466
  **Tool:** `list_issues`
426
467
 
427
468
  **Parameter:**
428
- - `project_id` — _(optional)_ numerische Projekt-ID
429
- - `assigned_to` — _(optional)_ numerische Benutzer-ID des Bearbeiters
430
- - `reporter_id` — _(optional)_ numerische Benutzer-ID des Melders
469
+ - `project_id` – _(optional)_ numerische Projekt-ID
470
+ - `assigned_to` – _(optional)_ numerische Benutzer-ID des Bearbeiters
471
+ - `reporter_id` – _(optional)_ numerische Benutzer-ID des Melders
431
472
 
432
473
  **Request:**
433
474
 
@@ -460,7 +501,7 @@ Gibt Issues gefiltert nach dem zugewiesenen Benutzer oder dem Melder zurück. Be
460
501
 
461
502
  Einen in MantisBT vorgespeicherten Filter anhand seiner ID verwenden. Dies ist die empfohlene Vorgehensweise bei großen Datenmengen.
462
503
 
463
- **Schritt 1 — Verfügbare Filter auflisten:**
504
+ **Schritt 1 – Verfügbare Filter auflisten:**
464
505
 
465
506
  **Tool:** `list_filters`
466
507
 
@@ -479,12 +520,12 @@ Einen in MantisBT vorgespeicherten Filter anhand seiner ID verwenden. Dies ist d
479
520
  ]
480
521
  ```
481
522
 
482
- **Schritt 2 — Issues mit der Filter-ID abrufen:**
523
+ **Schritt 2 – Issues mit der Filter-ID abrufen:**
483
524
 
484
525
  **Tool:** `list_issues`
485
526
 
486
527
  **Parameter:**
487
- - `filter_id` — numerische Filter-ID aus Schritt 1
528
+ - `filter_id` – numerische Filter-ID aus Schritt 1
488
529
 
489
530
  **Request:**
490
531
 
@@ -519,14 +560,14 @@ Legt ein neues Issue in MantisBT an.
519
560
  **Tool:** `create_issue`
520
561
 
521
562
  **Parameter:**
522
- - `summary` — Titel des Issues
523
- - `project_id` — numerische Projekt-ID
524
- - `category` — Kategoriename als Zeichenkette
525
- - `description` — _(optional)_ ausführliche Beschreibung
526
- - `priority` — _(optional)_ Priorität: kanonischer englischer Name (`none`, `low`, `normal`, `high`, `urgent`, `immediate`) oder lokalisierter Begriff. Standard: `"normal"`. Alle verfügbaren Werte über `get_issue_enums()` ermitteln.
527
- - `severity` — _(optional)_ Schweregrad: kanonischer englischer Name (`feature`, `trivial`, `text`, `tweak`, `minor`, `major`, `crash`, `block`) oder lokalisierter Begriff. Standard: `"minor"`. Alle verfügbaren Werte über `get_issue_enums()` ermitteln.
528
- - `handler` — _(optional)_ Benutzername des Bearbeiters (wird automatisch in eine ID aufgelöst)
529
- - `handler_id` — _(optional)_ numerische Benutzer-ID des Bearbeiters (Alternative zu `handler`)
563
+ - `summary` – Titel des Issues
564
+ - `project_id` – numerische Projekt-ID
565
+ - `category` – Kategoriename als Zeichenkette
566
+ - `description` – _(optional)_ ausführliche Beschreibung
567
+ - `priority` – _(optional)_ Priorität: kanonischer englischer Name (`none`, `low`, `normal`, `high`, `urgent`, `immediate`) oder lokalisierter Begriff. Standard: `"normal"`. Alle verfügbaren Werte über `get_issue_enums()` ermitteln.
568
+ - `severity` – _(optional)_ Schweregrad: kanonischer englischer Name (`feature`, `trivial`, `text`, `tweak`, `minor`, `major`, `crash`, `block`) oder lokalisierter Begriff. Standard: `"minor"`. Alle verfügbaren Werte über `get_issue_enums()` ermitteln.
569
+ - `handler` – _(optional)_ Benutzername des Bearbeiters (wird automatisch in eine ID aufgelöst)
570
+ - `handler_id` – _(optional)_ numerische Benutzer-ID des Bearbeiters (Alternative zu `handler`)
530
571
 
531
572
  **Request:**
532
573
 
@@ -572,22 +613,22 @@ Der Server prüft zuerst kanonische englische Namen und fällt dann auf einen Li
572
613
 
573
614
  > Error: Invalid severity "xyz". Valid canonical names: feature, trivial, text, tweak, minor, major, crash, block. Call get_issue_enums to see localized labels.
574
615
 
575
- Mit `get_issue_enums` lassen sich alle akzeptierten Werte ermitteln — sowohl kanonische als auch lokalisierte Namen funktionieren.
616
+ Mit `get_issue_enums` lassen sich alle akzeptierten Werte ermitteln – sowohl kanonische als auch lokalisierte Namen funktionieren.
576
617
 
577
618
  ---
578
619
 
579
620
  ### Issue schließen (Status + Auflösung)
580
621
 
581
- Löst ein Issue auf und schließt es. **Immer beide Felder** `status` und `resolution` setzen — wird nur der Status gesetzt, bleibt die Auflösung auf »offen«.
622
+ Löst ein Issue auf und schließt es. **Immer beide Felder** `status` und `resolution` setzen – wird nur der Status gesetzt, bleibt die Auflösung auf »offen«.
582
623
 
583
624
  **Tool:** `update_issue`
584
625
 
585
626
  **Parameter:**
586
- - `id` — numerische Issue-ID
587
- - `fields.status` — Status-Objekt mit Name
588
- - `fields.resolution` — Auflösungs-Objekt mit ID
627
+ - `id` – numerische Issue-ID
628
+ - `fields.status` – Status-Objekt mit Name
629
+ - `fields.resolution` – Auflösungs-Objekt mit ID
589
630
 
590
- > **Hinweis:** Alle Enum-Felder (`status`, `priority`, `severity`, `resolution`, `reproducibility`) akzeptieren kanonische englische Namen, lokalisierte Namen oder numerische IDs. Der Server löst Namen automatisch zu IDs auf — dadurch ist die Übergabe sprachunabhängig.
631
+ > **Hinweis:** Alle Enum-Felder (`status`, `priority`, `severity`, `resolution`, `reproducibility`) akzeptieren kanonische englische Namen, lokalisierte Namen oder numerische IDs. Der Server löst Namen automatisch zu IDs auf – dadurch ist die Übergabe sprachunabhängig.
591
632
 
592
633
  **Request:**
593
634
 
@@ -620,15 +661,15 @@ Löst ein Issue auf und schließt es. **Immer beide Felder** `status` und `resol
620
661
 
621
662
  ### Issue auflösen mit Begründungs-Notiz (ein Aufruf)
622
663
 
623
- Ändert den Status und hängt eine Notiz mit der Begründung an — in einem einzigen `update_issue`-Aufruf, kein separates `add_note` nötig.
664
+ Ändert den Status und hängt eine Notiz mit der Begründung an – in einem einzigen `update_issue`-Aufruf, kein separates `add_note` nötig.
624
665
 
625
666
  **Tool:** `update_issue`
626
667
 
627
668
  **Parameter:**
628
- - `id` — numerische Issue-ID
629
- - `fields` — zu ändernde Felder
630
- - `note` — Notiztext, der nach erfolgreichem Update angehängt wird
631
- - `note_view_state` — _(optional)_ `"public"` (Standard) oder `"private"`
669
+ - `id` – numerische Issue-ID
670
+ - `fields` – zu ändernde Felder
671
+ - `note` – Notiztext, der nach erfolgreichem Update angehängt wird
672
+ - `note_view_state` – _(optional)_ `"public"` (Standard) oder `"private"`
632
673
 
633
674
  **Request:**
634
675
 
@@ -639,13 +680,13 @@ Löst ein Issue auf und schließt es. **Immer beide Felder** `status` und `resol
639
680
  "status": { "name": "resolved" },
640
681
  "resolution": { "id": 20 }
641
682
  },
642
- "note": "Behoben in Commit abc123 — der Touch-Event-Handler fehlte unter iOS."
683
+ "note": "Behoben in Commit abc123 – der Touch-Event-Handler fehlte unter iOS."
643
684
  }
644
685
  ```
645
686
 
646
687
  **Response:** das aktualisierte Issue plus ein `note`-Objekt mit `view_url`.
647
688
 
648
- > **Hinweis:** Schlägt die Notiz nach erfolgreichem Update fehl, enthält die Antwort `note_error` statt eines Fehlers für den Gesamtaufruf — dann mit `add_note` nachholen. Für eine Notiz ohne Feldänderungen direkt `add_note` verwenden.
689
+ > **Hinweis:** Schlägt die Notiz nach erfolgreichem Update fehl, enthält die Antwort `note_error` statt eines Fehlers für den Gesamtaufruf – dann mit `add_note` nachholen. Für eine Notiz ohne Feldänderungen direkt `add_note` verwenden.
649
690
 
650
691
  ---
651
692
 
@@ -669,7 +710,7 @@ Schreibt Custom-Field-Werte beim Anlegen oder Aktualisieren. Dasselbe `custom_fi
669
710
  }
670
711
  ```
671
712
 
672
- > **Hinweis:** Nur die aufgeführten Custom Fields werden geändert — alle anderen bleiben unangetastet. Verfügbare Felder pro Projekt mit `get_issue_fields()` oder `get_metadata()` ermitteln. Werte sind immer Strings.
713
+ > **Hinweis:** Nur die aufgeführten Custom Fields werden geändert – alle anderen bleiben unangetastet. Verfügbare Felder pro Projekt mit `get_issue_fields()` oder `get_metadata()` ermitteln. Werte sind immer Strings.
673
714
 
674
715
  ---
675
716
 
@@ -680,8 +721,8 @@ Schreibt Custom-Field-Werte beim Anlegen oder Aktualisieren. Dasselbe `custom_fi
680
721
  **Tool:** `update_issue`
681
722
 
682
723
  **Parameter:**
683
- - `id` — numerische Issue-ID
684
- - `fields.handler` — Benutzername (wird automatisch in eine ID aufgelöst)
724
+ - `id` – numerische Issue-ID
725
+ - `fields.handler` – Benutzername (wird automatisch in eine ID aufgelöst)
685
726
 
686
727
  **Request:**
687
728
 
@@ -716,8 +757,8 @@ Setzt das Feld `fixed_in_version` eines Issues.
716
757
  **Tool:** `update_issue`
717
758
 
718
759
  **Parameter:**
719
- - `id` — numerische Issue-ID
720
- - `fields.fixed_in_version` — Versionsname als Zeichenkette
760
+ - `id` – numerische Issue-ID
761
+ - `fields.fixed_in_version` – Versionsname als Zeichenkette
721
762
 
722
763
  **Request:**
723
764
 
@@ -755,9 +796,9 @@ Fügt eine öffentlich sichtbare Notiz zu einem Issue hinzu.
755
796
  **Tool:** `add_note`
756
797
 
757
798
  **Parameter:**
758
- - `issue_id` — numerische Issue-ID
759
- - `text` — Inhalt der Notiz
760
- - `view_state` — _(optional)_ `"public"` (Standard) oder `"private"`
799
+ - `issue_id` – numerische Issue-ID
800
+ - `text` – Inhalt der Notiz
801
+ - `view_state` – _(optional)_ `"public"` (Standard) oder `"private"`
761
802
 
762
803
  **Request:**
763
804
 
@@ -790,9 +831,9 @@ Fügt eine Notiz hinzu, die nur für Entwickler und Manager sichtbar ist.
790
831
  **Tool:** `add_note`
791
832
 
792
833
  **Parameter:**
793
- - `issue_id` — numerische Issue-ID
794
- - `text` — Inhalt der Notiz
795
- - `view_state` — `"private"`
834
+ - `issue_id` – numerische Issue-ID
835
+ - `text` – Inhalt der Notiz
836
+ - `view_state` – `"private"`
796
837
 
797
838
  **Request:**
798
839
 
@@ -826,8 +867,8 @@ Entfernt eine Notiz dauerhaft von einem Issue.
826
867
  **Tool:** `delete_note`
827
868
 
828
869
  **Parameter:**
829
- - `issue_id` — numerische Issue-ID
830
- - `note_id` — numerische Notiz-ID (aus `list_notes` oder `get_issue`)
870
+ - `issue_id` – numerische Issue-ID
871
+ - `note_id` – numerische Notiz-ID (aus `list_notes` oder `get_issue`)
831
872
 
832
873
  **Request:**
833
874
 
@@ -857,8 +898,8 @@ Hängt eine Datei aus dem lokalen Dateisystem an ein Issue an.
857
898
  **Tool:** `upload_file`
858
899
 
859
900
  **Parameter:**
860
- - `issue_id` — numerische Issue-ID
861
- - `file_path` — absoluter Pfad zur Datei
901
+ - `issue_id` – numerische Issue-ID
902
+ - `file_path` – absoluter Pfad zur Datei
862
903
 
863
904
  **Request:**
864
905
 
@@ -893,11 +934,11 @@ Hängt eine Datei an, indem ihr base64-kodierter Inhalt direkt übergeben wird.
893
934
  **Tool:** `upload_file`
894
935
 
895
936
  **Parameter:**
896
- - `issue_id` — numerische Issue-ID
897
- - `content` — base64-kodierter Dateiinhalt
898
- - `filename` — Dateiname inklusive Erweiterung (erforderlich bei Verwendung von `content`)
899
- - `content_type` — _(optional)_ MIME-Typ
900
- - `description` — _(optional)_ Beschreibung des Anhangs
937
+ - `issue_id` – numerische Issue-ID
938
+ - `content` – base64-kodierter Dateiinhalt
939
+ - `filename` – Dateiname inklusive Erweiterung (erforderlich bei Verwendung von `content`)
940
+ - `content_type` – _(optional)_ MIME-Typ
941
+ - `description` – _(optional)_ Beschreibung des Anhangs
901
942
 
902
943
  **Request:**
903
944
 
@@ -933,7 +974,7 @@ Gibt alle Dateianhänge eines Issues zurück.
933
974
  **Tool:** `list_issue_files`
934
975
 
935
976
  **Parameter:**
936
- - `issue_id` — numerische Issue-ID
977
+ - `issue_id` – numerische Issue-ID
937
978
 
938
979
  **Request:**
939
980
 
@@ -969,9 +1010,9 @@ Verknüpft Issue A als Duplikat von Issue B.
969
1010
  **Tool:** `add_relationship`
970
1011
 
971
1012
  **Parameter:**
972
- - `issue_id` — ID des Duplikat-Issues (A)
973
- - `target_id` — ID des ursprünglichen Issues (B)
974
- - `type_name` — `"duplicate_of"`
1013
+ - `issue_id` – ID des Duplikat-Issues (A)
1014
+ - `target_id` – ID des ursprünglichen Issues (B)
1015
+ - `type_name` – `"duplicate_of"`
975
1016
 
976
1017
  **Request:**
977
1018
 
@@ -1002,9 +1043,9 @@ Erstellt eine nicht-direktionale »verwandt mit«-Verknüpfung zwischen zwei Iss
1002
1043
  **Tool:** `add_relationship`
1003
1044
 
1004
1045
  **Parameter:**
1005
- - `issue_id` — numerische Issue-ID
1006
- - `target_id` — numerische ID des verwandten Issues
1007
- - `type_name` — `"related_to"`
1046
+ - `issue_id` – numerische Issue-ID
1047
+ - `target_id` – numerische ID des verwandten Issues
1048
+ - `type_name` – `"related_to"`
1008
1049
 
1009
1050
  **Request:**
1010
1051
 
@@ -1030,16 +1071,16 @@ Erstellt eine nicht-direktionale »verwandt mit«-Verknüpfung zwischen zwei Iss
1030
1071
 
1031
1072
  ### Blockier-Verknüpfung setzen
1032
1073
 
1033
- Markiert Issue A als blockierend für Issue B (B kann nicht fortgeführt werden, bis A erledigt ist). Die Richtung ist entscheidend — sorgfältig lesen.
1074
+ Markiert Issue A als blockierend für Issue B (B kann nicht fortgeführt werden, bis A erledigt ist). Die Richtung ist entscheidend – sorgfältig lesen.
1034
1075
 
1035
1076
  **Tool:** `add_relationship`
1036
1077
 
1037
1078
  **Parameter:**
1038
- - `issue_id` — ID des blockierenden Issues (A)
1039
- - `target_id` — ID des blockierten Issues (B)
1040
- - `type_name` — `"parent_of"` (A blockiert B) oder `"child_of"` (A wird von B blockiert)
1079
+ - `issue_id` – ID des blockierenden Issues (A)
1080
+ - `target_id` – ID des blockierten Issues (B)
1081
+ - `type_name` – `"parent_of"` (A blockiert B) oder `"child_of"` (A wird von B blockiert)
1041
1082
 
1042
- **Beispiel — A blockiert B:**
1083
+ **Beispiel – A blockiert B:**
1043
1084
 
1044
1085
  **Request:**
1045
1086
 
@@ -1075,7 +1116,7 @@ Akzeptierte Werte für `type_name`:
1075
1116
 
1076
1117
  Entfernt eine Verknüpfung von einem Issue.
1077
1118
 
1078
- **Schritt 1 — Verknüpfungs-ID ermitteln:**
1119
+ **Schritt 1 – Verknüpfungs-ID ermitteln:**
1079
1120
 
1080
1121
  **Tool:** `get_issue`
1081
1122
 
@@ -1101,13 +1142,13 @@ Entfernt eine Verknüpfung von einem Issue.
1101
1142
 
1102
1143
  `relationships[].id` aus der Antwort lesen.
1103
1144
 
1104
- **Schritt 2 — Verknüpfung entfernen:**
1145
+ **Schritt 2 – Verknüpfung entfernen:**
1105
1146
 
1106
1147
  **Tool:** `remove_relationship`
1107
1148
 
1108
1149
  **Parameter:**
1109
- - `issue_id` — numerische Issue-ID
1110
- - `relationship_id` — numerische Verknüpfungs-ID aus Schritt 1
1150
+ - `issue_id` – numerische Issue-ID
1151
+ - `relationship_id` – numerische Verknüpfungs-ID aus Schritt 1
1111
1152
 
1112
1153
  **Request:**
1113
1154
 
@@ -1124,7 +1165,7 @@ Entfernt eine Verknüpfung von einem Issue.
1124
1165
  { "success": true }
1125
1166
  ```
1126
1167
 
1127
- > **Hinweis:** `relationship_id` ist die ID des Verknüpfungsdatensatzes selbst — nicht die Typ-ID und nicht die ID des Ziel-Issues.
1168
+ > **Hinweis:** `relationship_id` ist die ID des Verknüpfungsdatensatzes selbst – nicht die Typ-ID und nicht die ID des Ziel-Issues.
1128
1169
 
1129
1170
  ---
1130
1171
 
@@ -1137,8 +1178,8 @@ Hängt einen oder mehrere Tags per Name an ein Issue an. Unbekannte Tag-Namen we
1137
1178
  **Tool:** `attach_tags`
1138
1179
 
1139
1180
  **Parameter:**
1140
- - `issue_id` — numerische Issue-ID
1141
- - `tags` — Array von Tag-Objekten; `{name: "..."}` für Referenz per Name oder `{id: N}` für Referenz per ID
1181
+ - `issue_id` – numerische Issue-ID
1182
+ - `tags` – Array von Tag-Objekten; `{name: "..."}` für Referenz per Name oder `{id: N}` für Referenz per ID
1142
1183
 
1143
1184
  **Request:**
1144
1185
 
@@ -1164,7 +1205,7 @@ Hängt einen oder mehrere Tags per Name an ein Issue an. Unbekannte Tag-Namen we
1164
1205
 
1165
1206
  Entfernt einen Tag von einem Issue. Erfordert die numerische Tag-ID.
1166
1207
 
1167
- **Schritt 1 — Tag-ID ermitteln:**
1208
+ **Schritt 1 – Tag-ID ermitteln:**
1168
1209
 
1169
1210
  **Tool:** `get_issue`
1170
1211
 
@@ -1191,13 +1232,13 @@ Entfernt einen Tag von einem Issue. Erfordert die numerische Tag-ID.
1191
1232
 
1192
1233
  `tags[].id` aus der Antwort lesen.
1193
1234
 
1194
- **Schritt 2 — Tag entfernen:**
1235
+ **Schritt 2 – Tag entfernen:**
1195
1236
 
1196
1237
  **Tool:** `detach_tag`
1197
1238
 
1198
1239
  **Parameter:**
1199
- - `issue_id` — numerische Issue-ID
1200
- - `tag_id` — numerische Tag-ID aus Schritt 1
1240
+ - `issue_id` – numerische Issue-ID
1241
+ - `tag_id` – numerische Tag-ID aus Schritt 1
1201
1242
 
1202
1243
  **Request:**
1203
1244
 
@@ -1214,7 +1255,7 @@ Entfernt einen Tag von einem Issue. Erfordert die numerische Tag-ID.
1214
1255
  "Tag #14 successfully removed from issue #1042."
1215
1256
  ```
1216
1257
 
1217
- > **Hinweis:** `detach_tag` erfordert eine numerische ID, keinen Tag-Namen. Es gibt keine Suche per Name — die ID muss immer zuerst über `get_issue` oder `list_tags` abgerufen werden.
1258
+ > **Hinweis:** `detach_tag` erfordert eine numerische ID, keinen Tag-Namen. Es gibt keine Suche per Name – die ID muss immer zuerst über `get_issue` oder `list_tags` abgerufen werden.
1218
1259
 
1219
1260
  ---
1220
1261
 
@@ -1227,8 +1268,8 @@ Abonniert einen Benutzer für Benachrichtigungen zu einem Issue.
1227
1268
  **Tool:** `add_monitor`
1228
1269
 
1229
1270
  **Parameter:**
1230
- - `issue_id` — numerische Issue-ID
1231
- - `username` — Benutzername als Zeichenkette
1271
+ - `issue_id` – numerische Issue-ID
1272
+ - `username` – Benutzername als Zeichenkette
1232
1273
 
1233
1274
  **Request:**
1234
1275
 
@@ -1254,8 +1295,8 @@ Deabonniert einen Benutzer von Benachrichtigungen zu einem Issue.
1254
1295
  **Tool:** `remove_monitor`
1255
1296
 
1256
1297
  **Parameter:**
1257
- - `issue_id` — numerische Issue-ID
1258
- - `username` — Benutzername als Zeichenkette
1298
+ - `issue_id` – numerische Issue-ID
1299
+ - `username` – Benutzername als Zeichenkette
1259
1300
 
1260
1301
  **Request:**
1261
1302
 
@@ -1285,7 +1326,7 @@ Baut den vollständigen Vektor-Suchindex von Grund auf neu auf. Einmalig nach de
1285
1326
  **Tool:** `rebuild_search_index`
1286
1327
 
1287
1328
  **Parameter:**
1288
- - `full` — auf `true` setzen, um den bestehenden Index vor dem Aufbau zu leeren
1329
+ - `full` – auf `true` setzen, um den bestehenden Index vor dem Aufbau zu leeren
1289
1330
 
1290
1331
  **Request:**
1291
1332
 
@@ -1315,8 +1356,8 @@ Aktualisiert den Index mit Issues, die seit dem letzten Aufbau hinzugekommen ode
1315
1356
  **Tool:** `rebuild_search_index`
1316
1357
 
1317
1358
  **Parameter:**
1318
- - `project_id` — _(optional)_ auf ein einzelnes Projekt beschränken
1319
- - `full` — weglassen oder auf `false` setzen für den inkrementellen Modus
1359
+ - `project_id` – _(optional)_ auf ein einzelnes Projekt beschränken
1360
+ - `full` – weglassen oder auf `false` setzen für den inkrementellen Modus
1320
1361
 
1321
1362
  **Request:**
1322
1363
 
@@ -1374,9 +1415,9 @@ Findet Issues, die einem natürlichsprachigen Suchbegriff semantisch ähnlich si
1374
1415
  **Tool:** `search_issues`
1375
1416
 
1376
1417
  **Parameter:**
1377
- - `query` — Suchanfrage in natürlicher Sprache
1378
- - `top_n` — _(optional)_ Anzahl zurückzugebender Ergebnisse; Standard 10
1379
- - `highlight` — _(optional)_ bei `true` werden keyword-basierte Ausschnitte je Ergebnis ergänzt; Standard `false`
1418
+ - `query` – Suchanfrage in natürlicher Sprache
1419
+ - `top_n` – _(optional)_ Anzahl zurückzugebender Ergebnisse; Standard 10
1420
+ - `highlight` – _(optional)_ bei `true` werden keyword-basierte Ausschnitte je Ergebnis ergänzt; Standard `false`
1380
1421
 
1381
1422
  **Request:**
1382
1423
 
@@ -1397,7 +1438,7 @@ Findet Issues, die einem natürlichsprachigen Suchbegriff semantisch ähnlich si
1397
1438
  ]
1398
1439
  ```
1399
1440
 
1400
- > **Hinweis:** Die semantische Suche gibt die top-N ähnlichsten Issues zurück — vollständige Treffergarantie besteht nicht. Sie eignet sich nicht für Abfragen wie »alle Issues zu Thema X auflisten«.
1441
+ > **Hinweis:** Die semantische Suche gibt die top-N ähnlichsten Issues zurück – vollständige Treffergarantie besteht nicht. Sie eignet sich nicht für Abfragen wie »alle Issues zu Thema X auflisten«.
1401
1442
 
1402
1443
  ---
1403
1444
 
@@ -1408,10 +1449,10 @@ Reichert Suchergebnisse mit bestimmten Feldern aus MantisBT an. Ohne `select` we
1408
1449
  **Tool:** `search_issues`
1409
1450
 
1410
1451
  **Parameter:**
1411
- - `query` — Suchanfrage in natürlicher Sprache
1412
- - `top_n` — _(optional)_ Anzahl der Ergebnisse
1413
- - `select` — kommagetrennte Feldnamen, die für jedes Ergebnis abgerufen werden
1414
- - `highlight` — _(optional)_ bei `true` werden keyword-basierte Ausschnitte je Ergebnis ergänzt; Standard `false`
1452
+ - `query` – Suchanfrage in natürlicher Sprache
1453
+ - `top_n` – _(optional)_ Anzahl der Ergebnisse
1454
+ - `select` – kommagetrennte Feldnamen, die für jedes Ergebnis abgerufen werden
1455
+ - `highlight` – _(optional)_ bei `true` werden keyword-basierte Ausschnitte je Ergebnis ergänzt; Standard `false`
1415
1456
 
1416
1457
  **Request:**
1417
1458
 
@@ -1445,14 +1486,14 @@ Reichert Suchergebnisse mit bestimmten Feldern aus MantisBT an. Ohne `select` we
1445
1486
 
1446
1487
  ### Suche mit Keyword-Highlights
1447
1488
 
1448
- Zeigt, welcher Teil eines Issues mit der Suchanfrage übereinstimmt. Jedes Ergebnis, das lexikalisch mit der Anfrage übereinstimmt, erhält ein `highlights`-Feld mit fett hervorgehobenen Ausschnitten. Highlights sind keyword-basiert (lexikalisch), nicht semantisch — Ergebnisse ohne lexikalische Übereinstimmung haben kein `highlights`-Feld.
1489
+ Zeigt, welcher Teil eines Issues mit der Suchanfrage übereinstimmt. Jedes Ergebnis, das lexikalisch mit der Anfrage übereinstimmt, erhält ein `highlights`-Feld mit fett hervorgehobenen Ausschnitten. Highlights sind keyword-basiert (lexikalisch), nicht semantisch – Ergebnisse ohne lexikalische Übereinstimmung haben kein `highlights`-Feld.
1449
1490
 
1450
1491
  **Tool:** `search_issues`
1451
1492
 
1452
1493
  **Parameter:**
1453
- - `query` — Suchanfrage in natürlicher Sprache
1454
- - `top_n` — _(optional)_ Anzahl der Ergebnisse; Standard 10
1455
- - `highlight` — auf `true` setzen, um Highlights zu aktivieren
1494
+ - `query` – Suchanfrage in natürlicher Sprache
1495
+ - `top_n` – _(optional)_ Anzahl der Ergebnisse; Standard 10
1496
+ - `highlight` – auf `true` setzen, um Highlights zu aktivieren
1456
1497
 
1457
1498
  **Request:**
1458
1499
 
@@ -1482,7 +1523,7 @@ Zeigt, welcher Teil eines Issues mit der Suchanfrage übereinstimmt. Jedes Ergeb
1482
1523
  "score": 0.84,
1483
1524
  "view_url": "https://mantis.example.com/view.php?id=987",
1484
1525
  "highlights": {
1485
- "summary": "**Login** schlägt mit 401 fehl — Token ungültig"
1526
+ "summary": "**Login** schlägt mit 401 fehl – Token ungültig"
1486
1527
  }
1487
1528
  },
1488
1529
  {
@@ -1506,7 +1547,7 @@ Gibt alle verfügbaren Kategorien eines MantisBT-Projekts zurück. Die zurückge
1506
1547
  **Tool:** `get_project_categories`
1507
1548
 
1508
1549
  **Parameter:**
1509
- - `project_id` — numerische Projekt-ID
1550
+ - `project_id` – numerische Projekt-ID
1510
1551
 
1511
1552
  **Request:**
1512
1553
 
@@ -1537,9 +1578,9 @@ Sucht Projektmitglieder nach Name, Realname oder E-Mail. Die Suche ist Groß-/Kl
1537
1578
  **Tool:** `find_project_member`
1538
1579
 
1539
1580
  **Parameter:**
1540
- - `project_id` — numerische Projekt-ID
1541
- - `query` — _(optional)_ Suchbegriff für `name`, `real_name` oder `email`
1542
- - `limit` — _(optional)_ maximale Trefferanzahl, Standard 10, max. 100
1581
+ - `project_id` – numerische Projekt-ID
1582
+ - `query` – _(optional)_ Suchbegriff für `name`, `real_name` oder `email`
1583
+ - `limit` – _(optional)_ maximale Trefferanzahl, Standard 10, max. 100
1543
1584
 
1544
1585
  **Request:**
1545
1586
 
@@ -1564,6 +1605,167 @@ Sucht Projektmitglieder nach Name, Realname oder E-Mail. Die Suche ist Groß-/Kl
1564
1605
 
1565
1606
  ---
1566
1607
 
1608
+ ### Projektversion erstellen
1609
+
1610
+ Erstellt eine neue Version in einem MantisBT-Projekt. Ohne `timestamp` verwendet MantisBT das aktuelle Datum. Versionsnamen müssen innerhalb des Projekts eindeutig sein.
1611
+
1612
+ > **Berechtigung erforderlich:** `manage_project_threshold` (MantisBT-Standard: Manager).
1613
+
1614
+ **Tool:** `create_version`
1615
+
1616
+ **Parameter:**
1617
+ - `project_id` – numerische Projekt-ID
1618
+ - `name` – Versionsname, z. B. `"2.0.0"`
1619
+ - `description` – _(optional)_ Versionsbeschreibung
1620
+ - `released` – _(optional)_ Version als veröffentlicht markieren; Standard `false`
1621
+ - `obsolete` – _(optional)_ Version als veraltet markieren; Standard `false`
1622
+ - `timestamp` – _(optional)_ Versionsdatum als ISO-8601-String, z. B. `"2026-09-27"`
1623
+
1624
+ **Request:**
1625
+
1626
+ ```json
1627
+ {
1628
+ "project_id": 3,
1629
+ "name": "2.0.0",
1630
+ "description": "Major rewrite"
1631
+ }
1632
+ ```
1633
+
1634
+ **Response:**
1635
+
1636
+ ```json
1637
+ {
1638
+ "id": 50,
1639
+ "name": "2.0.0",
1640
+ "description": "Major rewrite",
1641
+ "released": false,
1642
+ "obsolete": false,
1643
+ "timestamp": "2026-09-27T00:00:00+00:00"
1644
+ }
1645
+ ```
1646
+
1647
+ ---
1648
+
1649
+ ### Projektversion aktualisieren
1650
+
1651
+ Aktualisiert eine bestehende Version eines MantisBT-Projekts. Es werden nur die übergebenen Felder geändert; mindestens ein Feld ist erforderlich. Das Umbenennen einer Version schreibt auch die Felder `version`, `target_version` und `fixed_in_version` aller referenzierenden Issues neu (einschließlich Unterprojekte mit geerbten Versionen).
1652
+
1653
+ > **Berechtigung erforderlich:** `manage_project_threshold` (MantisBT-Standard: Manager). Vom Elternprojekt geerbte Versionen können nur über die `project_id` des Elternprojekts geändert werden.
1654
+
1655
+ **Tool:** `update_version`
1656
+
1657
+ **Parameter:**
1658
+ - `project_id` – numerische Projekt-ID
1659
+ - `version_id` – numerische Versions-ID (mit `get_project_versions` ermittelbar)
1660
+ - `name` – _(optional)_ neuer Versionsname (muss im Projekt eindeutig sein)
1661
+ - `description` – _(optional)_ neue Versionsbeschreibung
1662
+ - `released` – _(optional)_ Veröffentlichungs-Flag
1663
+ - `obsolete` – _(optional)_ Veraltet-Flag
1664
+ - `timestamp` – _(optional)_ Versionsdatum als ISO-8601-String
1665
+
1666
+ **Request:** _(Version als veraltet markieren)_
1667
+
1668
+ ```json
1669
+ {
1670
+ "project_id": 3,
1671
+ "version_id": 21,
1672
+ "obsolete": true
1673
+ }
1674
+ ```
1675
+
1676
+ **Response:**
1677
+
1678
+ ```json
1679
+ {
1680
+ "id": 21,
1681
+ "name": "1.9.0",
1682
+ "released": true,
1683
+ "obsolete": true,
1684
+ "timestamp": "2025-06-01T00:00:00+00:00"
1685
+ }
1686
+ ```
1687
+
1688
+ ---
1689
+
1690
+ ### Version freigeben und nächsten Bugfix-Platzhalter erstellen
1691
+
1692
+ Markiert eine Version als veröffentlicht (mit Datumsangabe) und erstellt im selben Aufruf optional eine Folgeversion als Platzhalter. Der Name der Folgeversion wird unverändert übernommen – keine automatische Nummerierung. Schlägt das Erstellen der Folgeversion fehl, bleibt die Freigabe wirksam und der Fehler wird in `next_version_error` gemeldet.
1693
+
1694
+ > **Berechtigung erforderlich:** `manage_project_threshold` (MantisBT-Standard: Manager). Vom Elternprojekt geerbte Versionen können nur über die `project_id` des Elternprojekts geändert werden.
1695
+
1696
+ **Tool:** `release_version`
1697
+
1698
+ **Parameter:**
1699
+ - `project_id` – numerische Projekt-ID
1700
+ - `version_id` – numerische Versions-ID der freizugebenden Version
1701
+ - `timestamp` – _(optional)_ Freigabedatum als ISO-8601-String; Standard: jetzt
1702
+ - `next_version` – _(optional)_ Name der Folgeversion, die als unveröffentlichter Platzhalter angelegt wird
1703
+
1704
+ **Request:**
1705
+
1706
+ ```json
1707
+ {
1708
+ "project_id": 3,
1709
+ "version_id": 42,
1710
+ "timestamp": "2026-09-27",
1711
+ "next_version": "1.2.1"
1712
+ }
1713
+ ```
1714
+
1715
+ **Response:**
1716
+
1717
+ ```json
1718
+ {
1719
+ "released": {
1720
+ "id": 42,
1721
+ "name": "1.2.0",
1722
+ "released": true,
1723
+ "obsolete": false,
1724
+ "timestamp": "2026-09-27T00:00:00+00:00"
1725
+ },
1726
+ "next_version": {
1727
+ "id": 43,
1728
+ "name": "1.2.1",
1729
+ "released": false,
1730
+ "obsolete": false,
1731
+ "timestamp": "2026-09-27T00:00:00+00:00"
1732
+ }
1733
+ }
1734
+ ```
1735
+
1736
+ > **Hinweis:** Das Setzen von `released=true` via `update_version` ändert das Versionsdatum nicht – `release_version` verwenden, wenn beides in einem Schritt erledigt werden soll.
1737
+
1738
+ ---
1739
+
1740
+ ### Projektversion löschen
1741
+
1742
+ Löscht eine Version dauerhaft aus einem MantisBT-Projekt. Diese Aktion ist nicht umkehrbar. MantisBT leert die Felder `version`, `target_version` und `fixed_in_version` aller Issues, die auf die gelöschte Version verweisen. Um eine Version aus dem Umlauf zu nehmen, ohne Issues zu verändern, stattdessen `update_version` mit `obsolete=true` verwenden.
1743
+
1744
+ > **Berechtigung erforderlich:** `manage_project_threshold` (MantisBT-Standard: Manager). Vom Elternprojekt geerbte Versionen können nur über die `project_id` des Elternprojekts gelöscht werden.
1745
+
1746
+ **Tool:** `delete_version`
1747
+
1748
+ **Parameter:**
1749
+ - `project_id` – numerische Projekt-ID
1750
+ - `version_id` – numerische Versions-ID
1751
+
1752
+ **Request:**
1753
+
1754
+ ```json
1755
+ {
1756
+ "project_id": 3,
1757
+ "version_id": 7
1758
+ }
1759
+ ```
1760
+
1761
+ **Response:**
1762
+
1763
+ ```
1764
+ Version 7 deleted successfully.
1765
+ ```
1766
+
1767
+ ---
1768
+
1567
1769
  ## Metadaten
1568
1770
 
1569
1771
  ### Metadaten-Zusammenfassung abrufen
@@ -1680,7 +1882,7 @@ Gibt die Version der verbundenen MantisBT-Installation zurück und vergleicht si
1680
1882
  **Tool:** `get_mantis_version`
1681
1883
 
1682
1884
  **Parameter:**
1683
- - `check_latest` — _(optional)_ ob gegen das neueste GitHub-Release verglichen werden soll; Standard `true`
1885
+ - `check_latest` – _(optional)_ ob gegen das neueste GitHub-Release verglichen werden soll; Standard `true`
1684
1886
 
1685
1887
  **Request:**
1686
1888
 
@@ -1736,9 +1938,9 @@ Gibt das Profil des Benutzers zurück, der dem konfigurierten API-Key zugeordnet
1736
1938
 
1737
1939
  ## Ressourcen
1738
1940
 
1739
- MCP-Ressourcen sind URI-adressierbare, schreibgeschützte Daten. Clients, die Ressourcen unterstützen, können sie direkt per URI abrufen — kein Tool-Aufruf nötig. Hinweis: Ressourcen werden von MCP-Clients weniger breit unterstützt als Tools; bitte die Dokumentation des jeweiligen Clients prüfen.
1941
+ MCP-Ressourcen sind URI-adressierbare, schreibgeschützte Daten. Clients, die Ressourcen unterstützen, können sie direkt per URI abrufen – kein Tool-Aufruf nötig. Hinweis: Ressourcen werden von MCP-Clients weniger breit unterstützt als Tools; bitte die Dokumentation des jeweiligen Clients prüfen.
1740
1942
 
1741
- > **Hinweis:** Ressourcen sind schreibgeschützt. Schreiboperationen sind über das Ressourcen-Primitiv nicht möglich — für Änderungen das entsprechende Tool verwenden (`create_issue`, `update_issue` usw.).
1943
+ > **Hinweis:** Ressourcen sind schreibgeschützt. Schreiboperationen sind über das Ressourcen-Primitiv nicht möglich – für Änderungen das entsprechende Tool verwenden (`create_issue`, `update_issue` usw.).
1742
1944
 
1743
1945
  ### Eigenes Benutzerprofil lesen
1744
1946
 
@@ -1746,7 +1948,7 @@ Gibt das Profil des authentifizierten API-Benutzers zurück.
1746
1948
 
1747
1949
  **Ressource-URI:** `mantis://me`
1748
1950
 
1749
- **Abrufverhalten:** Immer live — ruft bei jedem Zugriff `GET /users/me` auf.
1951
+ **Abrufverhalten:** Immer live – ruft bei jedem Zugriff `GET /users/me` auf.
1750
1952
 
1751
1953
  **Response:**
1752
1954
 
@@ -1822,11 +2024,11 @@ Gibt eine kombinierte Ansicht eines einzelnen Projekts zurück: Projektfelder so
1822
2024
 
1823
2025
  ### Issue-Enum-Werte lesen
1824
2026
 
1825
- Gibt gültige ID/Name-Paare für alle Issue-Enum-Felder zurück (Severity, Priority, Status, Resolution, Reproducibility). Bei `create_issue` werden sowohl kanonische englische Namen als auch lokalisierte `name`/`label`-Werte akzeptiert — diese Ressource hilft, alle verfügbaren Werte zu ermitteln.
2027
+ Gibt gültige ID/Name-Paare für alle Issue-Enum-Felder zurück (Severity, Priority, Status, Resolution, Reproducibility). Bei `create_issue` werden sowohl kanonische englische Namen als auch lokalisierte `name`/`label`-Werte akzeptiert – diese Ressource hilft, alle verfügbaren Werte zu ermitteln.
1826
2028
 
1827
2029
  **Ressource-URI:** `mantis://enums`
1828
2030
 
1829
- **Abrufverhalten:** Immer live — ruft bei jedem Zugriff den MantisBT-Config-Endpoint auf.
2031
+ **Abrufverhalten:** Immer live – ruft bei jedem Zugriff den MantisBT-Config-Endpoint auf.
1830
2032
 
1831
2033
  **Response:**
1832
2034
 
@@ -1866,7 +2068,7 @@ Gibt gültige ID/Name-Paare für alle Issue-Enum-Felder zurück (Severity, Prior
1866
2068
 
1867
2069
  ## Prompts
1868
2070
 
1869
- MCP-Prompt-Templates starten eine geführte Unterhaltung — der Client sendet die Prompt-Argumente und der Server liefert eine vorgefertigte Nachricht, die den LLM anweist, die passenden Tools aufzurufen. Beispiele in natürlicher Sprache sind in [examples.de.md](examples.de.md) zu finden.
2071
+ MCP-Prompt-Templates starten eine geführte Unterhaltung – der Client sendet die Prompt-Argumente und der Server liefert eine vorgefertigte Nachricht, die den LLM anweist, die passenden Tools aufzurufen. Beispiele in natürlicher Sprache sind in [examples.de.md](examples.de.md) zu finden.
1870
2072
 
1871
2073
  ### Bug-Report erstellen
1872
2074
 
@@ -1875,16 +2077,16 @@ Sammelt strukturierte Bug-Daten und ruft `create_issue` auf.
1875
2077
  **Prompt:** `create-bug-report`
1876
2078
 
1877
2079
  **Pflichtargumente:**
1878
- - `project_id` — numerische Projekt-ID
1879
- - `category` — Kategoriename
1880
- - `summary` — Issue-Titel
1881
- - `description` — detaillierte Fehlerbeschreibung
2080
+ - `project_id` – numerische Projekt-ID
2081
+ - `category` – Kategoriename
2082
+ - `summary` – Issue-Titel
2083
+ - `description` – detaillierte Fehlerbeschreibung
1882
2084
 
1883
2085
  **Optionale Argumente:**
1884
- - `steps_to_reproduce` — Schritte zur Reproduktion
1885
- - `expected` — erwartetes Verhalten
1886
- - `actual` — tatsächliches (beobachtetes) Verhalten
1887
- - `environment` — Umgebungsangaben (Betriebssystem, Browser, Version usw.)
2086
+ - `steps_to_reproduce` – Schritte zur Reproduktion
2087
+ - `expected` – erwartetes Verhalten
2088
+ - `actual` – tatsächliches (beobachtetes) Verhalten
2089
+ - `environment` – Umgebungsangaben (Betriebssystem, Browser, Version usw.)
1888
2090
 
1889
2091
  **Ablauf:** Der Prompt liefert eine Nachricht, die den LLM anweist, zunächst `get_issue_enums` aufzurufen (um gültige Schweregrad- und Prioritätswerte zu ermitteln) und anschließend `create_issue` mit den übergebenen Daten auszuführen.
1890
2092
 
@@ -1912,13 +2114,13 @@ Sammelt Feature-Details und ruft `create_issue` auf.
1912
2114
  **Prompt:** `create-feature-request`
1913
2115
 
1914
2116
  **Pflichtargumente:**
1915
- - `project_id` — numerische Projekt-ID
1916
- - `category` — Kategoriename
1917
- - `summary` — Feature-Titel
1918
- - `description` — detaillierte Beschreibung des Features
2117
+ - `project_id` – numerische Projekt-ID
2118
+ - `category` – Kategoriename
2119
+ - `summary` – Feature-Titel
2120
+ - `description` – detaillierte Beschreibung des Features
1919
2121
 
1920
2122
  **Optionale Argumente:**
1921
- - `use_case` — konkreter Anwendungsfall oder Motivation für das Feature
2123
+ - `use_case` – konkreter Anwendungsfall oder Motivation für das Feature
1922
2124
 
1923
2125
  **Ablauf:** Der Prompt liefert eine Nachricht, die den LLM anweist, `create_issue` mit dem Schweregrad `feature` aufzurufen.
1924
2126
 
@@ -1943,9 +2145,9 @@ Ruft ein einzelnes Issue ab und liefert eine prägnante Zusammenfassung.
1943
2145
  **Prompt:** `summarize-issue`
1944
2146
 
1945
2147
  **Pflichtargumente:**
1946
- - `issue_id` — numerische Issue-ID
2148
+ - `issue_id` – numerische Issue-ID
1947
2149
 
1948
- **Ablauf:** Der Prompt liefert eine Nachricht, die den LLM anweist, `get_issue` aufzurufen und das Ergebnis zusammenzufassen — inklusive Status, Priorität, aktueller Notizen und empfohlener nächster Schritte.
2150
+ **Ablauf:** Der Prompt liefert eine Nachricht, die den LLM anweist, `get_issue` aufzurufen und das Ergebnis zusammenzufassen – inklusive Status, Priorität, aktueller Notizen und empfohlener nächster Schritte.
1949
2151
 
1950
2152
  **Beispielaufruf:**
1951
2153
 
@@ -1964,7 +2166,7 @@ Listet alle Issues eines Projekts auf und erstellt einen Status-Report nach Schw
1964
2166
  **Prompt:** `project-status`
1965
2167
 
1966
2168
  **Pflichtargumente:**
1967
- - `project_id` — numerische Projekt-ID
2169
+ - `project_id` – numerische Projekt-ID
1968
2170
 
1969
2171
  **Ablauf:** Der Prompt liefert eine Nachricht, die den LLM anweist, `list_issues` für das Projekt aufzurufen und einen strukturierten Report zu erstellen: Anzahl offener Issues, Aufschlüsselung nach Schweregrad und eine Liste der kritischsten Einträge.
1970
2172
 
@@ -1987,7 +2189,7 @@ Löscht ein MantisBT-Issue dauerhaft. Diese Aktion kann nicht rückgängig gemac
1987
2189
  **Tool:** `delete_issue`
1988
2190
 
1989
2191
  **Parameter:**
1990
- - `id` — numerische Issue-ID
2192
+ - `id` – numerische Issue-ID
1991
2193
 
1992
2194
  **Request:**
1993
2195