@dpesch/mantisbt-mcp-server 1.12.0 → 1.14.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,6 +1,6 @@
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
 
@@ -52,6 +52,10 @@ Tool-orientierte Rezepte für den MantisBT MCP Server — jedes Rezept zeigt gen
52
52
  - [Projekte & Kategorien](#projekte--kategorien)
53
53
  - [Projektkategorien auflisten](#projektkategorien-auflisten)
54
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)
55
59
  - [Metadaten](#metadaten)
56
60
  - [Metadaten-Zusammenfassung abrufen](#metadaten-zusammenfassung-abrufen)
57
61
  - [Vollständigen Metadaten-Cache abrufen](#vollständigen-metadaten-cache-abrufen)
@@ -78,9 +82,9 @@ Tool-orientierte Rezepte für den MantisBT MCP Server — jedes Rezept zeigt gen
78
82
 
79
83
  ### Installation ohne URL-Rewriting anbinden
80
84
 
81
- 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.
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.
82
86
 
83
- **Variante A — Flag explizit setzen:**
87
+ **Variante A – Flag explizit setzen:**
84
88
 
85
89
  ```json
86
90
  {
@@ -92,7 +96,7 @@ Manche MantisBT-Installationen liefern die REST-API ausschließlich über ihren
92
96
  }
93
97
  ```
94
98
 
95
- **Variante B — vollständige REST-URL eintragen und erkennen lassen:**
99
+ **Variante B – vollständige REST-URL eintragen und erkennen lassen:**
96
100
 
97
101
  ```json
98
102
  {
@@ -103,7 +107,7 @@ Manche MantisBT-Installationen liefern die REST-API ausschließlich über ihren
103
107
  }
104
108
  ```
105
109
 
106
- 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.
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.
107
111
 
108
112
  **Prüfen:** `get_mantis_version` aufrufen. Kommt eine Antwort zurück, stimmt das Routing.
109
113
 
@@ -185,7 +189,7 @@ Gibt die auf der eigenen MantisBT-Instanz konfigurierten Enum-Werte zurück. Vor
185
189
  }
186
190
  ```
187
191
 
188
- > **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.
189
193
 
190
194
  ---
191
195
 
@@ -196,7 +200,7 @@ Gibt alle Feldnamen zurück, die dem `select`-Parameter von `list_issues` überg
196
200
  **Tool:** `get_issue_fields`
197
201
 
198
202
  **Parameter:**
199
- - `project_id` — _(optional)_ auf Felder eines bestimmten Projekts beschränken
203
+ - `project_id` – _(optional)_ auf Felder eines bestimmten Projekts beschränken
200
204
 
201
205
  **Request:**
202
206
 
@@ -232,8 +236,8 @@ Ruft ein einzelnes Issue anhand seiner numerischen ID ab, inklusive Notizen, Anh
232
236
  **Tool:** `get_issue`
233
237
 
234
238
  **Parameter:**
235
- - `id` — numerische Issue-ID
236
- - `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"`
237
241
 
238
242
  **Request:**
239
243
 
@@ -281,12 +285,12 @@ Kompakte Variante (nur die benötigten Felder):
281
285
 
282
286
  ### Mehrere Issues in einem Aufruf abrufen
283
287
 
284
- 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.
285
289
 
286
290
  **Tool:** `get_issues`
287
291
 
288
292
  **Parameter:**
289
- - `ids` — Array numerischer Issue-IDs (1–50)
293
+ - `ids` – Array numerischer Issue-IDs (1–50)
290
294
 
291
295
  **Request:**
292
296
 
@@ -332,9 +336,9 @@ Gibt eine paginierte Liste von Issues zurück, optional auf ein Projekt beschrä
332
336
  **Tool:** `list_issues`
333
337
 
334
338
  **Parameter:**
335
- - `project_id` — _(optional)_ numerische Projekt-ID
336
- - `page` — _(optional)_ Seitennummer, Standard 1
337
- - `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
338
342
 
339
343
  **Request:**
340
344
 
@@ -379,8 +383,8 @@ Eine kommagetrennte Liste von Feldnamen übergeben, um nur die benötigten Felde
379
383
  **Tool:** `list_issues`
380
384
 
381
385
  **Parameter:**
382
- - `project_id` — _(optional)_ numerische Projekt-ID
383
- - `select` — kommagetrennte Feldnamen
386
+ - `project_id` – _(optional)_ numerische Projekt-ID
387
+ - `select` – kommagetrennte Feldnamen
384
388
 
385
389
  **Request:**
386
390
 
@@ -410,19 +414,19 @@ Eine kommagetrennte Liste von Feldnamen übergeben, um nur die benötigten Felde
410
414
 
411
415
  > **Hinweis:** Mit `get_issue_fields()` lassen sich alle verfügbaren Feldnamen anzeigen.
412
416
 
413
- > **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.
414
418
 
415
419
  ---
416
420
 
417
421
  ### Nach Status filtern
418
422
 
419
- 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.
420
424
 
421
425
  **Tool:** `list_issues`
422
426
 
423
427
  **Parameter:**
424
- - `project_id` — _(optional)_ numerische Projekt-ID
425
- - `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"`)
426
430
 
427
431
  **Request:**
428
432
 
@@ -449,9 +453,9 @@ Gibt nur Issues mit einem bestimmten Status zurück. Der Filter wird clientseiti
449
453
  }
450
454
  ```
451
455
 
452
- > **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.
453
457
 
454
- > **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).
455
459
 
456
460
  ---
457
461
 
@@ -462,9 +466,9 @@ Gibt Issues gefiltert nach dem zugewiesenen Benutzer oder dem Melder zurück. Be
462
466
  **Tool:** `list_issues`
463
467
 
464
468
  **Parameter:**
465
- - `project_id` — _(optional)_ numerische Projekt-ID
466
- - `assigned_to` — _(optional)_ numerische Benutzer-ID des Bearbeiters
467
- - `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
468
472
 
469
473
  **Request:**
470
474
 
@@ -497,7 +501,7 @@ Gibt Issues gefiltert nach dem zugewiesenen Benutzer oder dem Melder zurück. Be
497
501
 
498
502
  Einen in MantisBT vorgespeicherten Filter anhand seiner ID verwenden. Dies ist die empfohlene Vorgehensweise bei großen Datenmengen.
499
503
 
500
- **Schritt 1 — Verfügbare Filter auflisten:**
504
+ **Schritt 1 – Verfügbare Filter auflisten:**
501
505
 
502
506
  **Tool:** `list_filters`
503
507
 
@@ -516,12 +520,12 @@ Einen in MantisBT vorgespeicherten Filter anhand seiner ID verwenden. Dies ist d
516
520
  ]
517
521
  ```
518
522
 
519
- **Schritt 2 — Issues mit der Filter-ID abrufen:**
523
+ **Schritt 2 – Issues mit der Filter-ID abrufen:**
520
524
 
521
525
  **Tool:** `list_issues`
522
526
 
523
527
  **Parameter:**
524
- - `filter_id` — numerische Filter-ID aus Schritt 1
528
+ - `filter_id` – numerische Filter-ID aus Schritt 1
525
529
 
526
530
  **Request:**
527
531
 
@@ -556,14 +560,14 @@ Legt ein neues Issue in MantisBT an.
556
560
  **Tool:** `create_issue`
557
561
 
558
562
  **Parameter:**
559
- - `summary` — Titel des Issues
560
- - `project_id` — numerische Projekt-ID
561
- - `category` — Kategoriename als Zeichenkette
562
- - `description` — _(optional)_ ausführliche Beschreibung
563
- - `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.
564
- - `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.
565
- - `handler` — _(optional)_ Benutzername des Bearbeiters (wird automatisch in eine ID aufgelöst)
566
- - `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`)
567
571
 
568
572
  **Request:**
569
573
 
@@ -609,22 +613,22 @@ Der Server prüft zuerst kanonische englische Namen und fällt dann auf einen Li
609
613
 
610
614
  > Error: Invalid severity "xyz". Valid canonical names: feature, trivial, text, tweak, minor, major, crash, block. Call get_issue_enums to see localized labels.
611
615
 
612
- 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.
613
617
 
614
618
  ---
615
619
 
616
620
  ### Issue schließen (Status + Auflösung)
617
621
 
618
- 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«.
619
623
 
620
624
  **Tool:** `update_issue`
621
625
 
622
626
  **Parameter:**
623
- - `id` — numerische Issue-ID
624
- - `fields.status` — Status-Objekt mit Name
625
- - `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
626
630
 
627
- > **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.
628
632
 
629
633
  **Request:**
630
634
 
@@ -657,15 +661,15 @@ Löst ein Issue auf und schließt es. **Immer beide Felder** `status` und `resol
657
661
 
658
662
  ### Issue auflösen mit Begründungs-Notiz (ein Aufruf)
659
663
 
660
- Ä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.
661
665
 
662
666
  **Tool:** `update_issue`
663
667
 
664
668
  **Parameter:**
665
- - `id` — numerische Issue-ID
666
- - `fields` — zu ändernde Felder
667
- - `note` — Notiztext, der nach erfolgreichem Update angehängt wird
668
- - `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"`
669
673
 
670
674
  **Request:**
671
675
 
@@ -676,13 +680,13 @@ Löst ein Issue auf und schließt es. **Immer beide Felder** `status` und `resol
676
680
  "status": { "name": "resolved" },
677
681
  "resolution": { "id": 20 }
678
682
  },
679
- "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."
680
684
  }
681
685
  ```
682
686
 
683
687
  **Response:** das aktualisierte Issue plus ein `note`-Objekt mit `view_url`.
684
688
 
685
- > **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.
686
690
 
687
691
  ---
688
692
 
@@ -706,7 +710,7 @@ Schreibt Custom-Field-Werte beim Anlegen oder Aktualisieren. Dasselbe `custom_fi
706
710
  }
707
711
  ```
708
712
 
709
- > **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.
710
714
 
711
715
  ---
712
716
 
@@ -717,8 +721,8 @@ Schreibt Custom-Field-Werte beim Anlegen oder Aktualisieren. Dasselbe `custom_fi
717
721
  **Tool:** `update_issue`
718
722
 
719
723
  **Parameter:**
720
- - `id` — numerische Issue-ID
721
- - `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)
722
726
 
723
727
  **Request:**
724
728
 
@@ -753,8 +757,8 @@ Setzt das Feld `fixed_in_version` eines Issues.
753
757
  **Tool:** `update_issue`
754
758
 
755
759
  **Parameter:**
756
- - `id` — numerische Issue-ID
757
- - `fields.fixed_in_version` — Versionsname als Zeichenkette
760
+ - `id` – numerische Issue-ID
761
+ - `fields.fixed_in_version` – Versionsname als Zeichenkette
758
762
 
759
763
  **Request:**
760
764
 
@@ -792,9 +796,9 @@ Fügt eine öffentlich sichtbare Notiz zu einem Issue hinzu.
792
796
  **Tool:** `add_note`
793
797
 
794
798
  **Parameter:**
795
- - `issue_id` — numerische Issue-ID
796
- - `text` — Inhalt der Notiz
797
- - `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"`
798
802
 
799
803
  **Request:**
800
804
 
@@ -827,9 +831,9 @@ Fügt eine Notiz hinzu, die nur für Entwickler und Manager sichtbar ist.
827
831
  **Tool:** `add_note`
828
832
 
829
833
  **Parameter:**
830
- - `issue_id` — numerische Issue-ID
831
- - `text` — Inhalt der Notiz
832
- - `view_state` — `"private"`
834
+ - `issue_id` – numerische Issue-ID
835
+ - `text` – Inhalt der Notiz
836
+ - `view_state` – `"private"`
833
837
 
834
838
  **Request:**
835
839
 
@@ -863,8 +867,8 @@ Entfernt eine Notiz dauerhaft von einem Issue.
863
867
  **Tool:** `delete_note`
864
868
 
865
869
  **Parameter:**
866
- - `issue_id` — numerische Issue-ID
867
- - `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`)
868
872
 
869
873
  **Request:**
870
874
 
@@ -894,8 +898,8 @@ Hängt eine Datei aus dem lokalen Dateisystem an ein Issue an.
894
898
  **Tool:** `upload_file`
895
899
 
896
900
  **Parameter:**
897
- - `issue_id` — numerische Issue-ID
898
- - `file_path` — absoluter Pfad zur Datei
901
+ - `issue_id` – numerische Issue-ID
902
+ - `file_path` – absoluter Pfad zur Datei
899
903
 
900
904
  **Request:**
901
905
 
@@ -930,11 +934,11 @@ Hängt eine Datei an, indem ihr base64-kodierter Inhalt direkt übergeben wird.
930
934
  **Tool:** `upload_file`
931
935
 
932
936
  **Parameter:**
933
- - `issue_id` — numerische Issue-ID
934
- - `content` — base64-kodierter Dateiinhalt
935
- - `filename` — Dateiname inklusive Erweiterung (erforderlich bei Verwendung von `content`)
936
- - `content_type` — _(optional)_ MIME-Typ
937
- - `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
938
942
 
939
943
  **Request:**
940
944
 
@@ -970,7 +974,7 @@ Gibt alle Dateianhänge eines Issues zurück.
970
974
  **Tool:** `list_issue_files`
971
975
 
972
976
  **Parameter:**
973
- - `issue_id` — numerische Issue-ID
977
+ - `issue_id` – numerische Issue-ID
974
978
 
975
979
  **Request:**
976
980
 
@@ -1006,9 +1010,9 @@ Verknüpft Issue A als Duplikat von Issue B.
1006
1010
  **Tool:** `add_relationship`
1007
1011
 
1008
1012
  **Parameter:**
1009
- - `issue_id` — ID des Duplikat-Issues (A)
1010
- - `target_id` — ID des ursprünglichen Issues (B)
1011
- - `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"`
1012
1016
 
1013
1017
  **Request:**
1014
1018
 
@@ -1039,9 +1043,9 @@ Erstellt eine nicht-direktionale »verwandt mit«-Verknüpfung zwischen zwei Iss
1039
1043
  **Tool:** `add_relationship`
1040
1044
 
1041
1045
  **Parameter:**
1042
- - `issue_id` — numerische Issue-ID
1043
- - `target_id` — numerische ID des verwandten Issues
1044
- - `type_name` — `"related_to"`
1046
+ - `issue_id` – numerische Issue-ID
1047
+ - `target_id` – numerische ID des verwandten Issues
1048
+ - `type_name` – `"related_to"`
1045
1049
 
1046
1050
  **Request:**
1047
1051
 
@@ -1067,16 +1071,16 @@ Erstellt eine nicht-direktionale »verwandt mit«-Verknüpfung zwischen zwei Iss
1067
1071
 
1068
1072
  ### Blockier-Verknüpfung setzen
1069
1073
 
1070
- 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.
1071
1075
 
1072
1076
  **Tool:** `add_relationship`
1073
1077
 
1074
1078
  **Parameter:**
1075
- - `issue_id` — ID des blockierenden Issues (A)
1076
- - `target_id` — ID des blockierten Issues (B)
1077
- - `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)
1078
1082
 
1079
- **Beispiel — A blockiert B:**
1083
+ **Beispiel – A blockiert B:**
1080
1084
 
1081
1085
  **Request:**
1082
1086
 
@@ -1112,7 +1116,7 @@ Akzeptierte Werte für `type_name`:
1112
1116
 
1113
1117
  Entfernt eine Verknüpfung von einem Issue.
1114
1118
 
1115
- **Schritt 1 — Verknüpfungs-ID ermitteln:**
1119
+ **Schritt 1 – Verknüpfungs-ID ermitteln:**
1116
1120
 
1117
1121
  **Tool:** `get_issue`
1118
1122
 
@@ -1138,13 +1142,13 @@ Entfernt eine Verknüpfung von einem Issue.
1138
1142
 
1139
1143
  `relationships[].id` aus der Antwort lesen.
1140
1144
 
1141
- **Schritt 2 — Verknüpfung entfernen:**
1145
+ **Schritt 2 – Verknüpfung entfernen:**
1142
1146
 
1143
1147
  **Tool:** `remove_relationship`
1144
1148
 
1145
1149
  **Parameter:**
1146
- - `issue_id` — numerische Issue-ID
1147
- - `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
1148
1152
 
1149
1153
  **Request:**
1150
1154
 
@@ -1161,7 +1165,7 @@ Entfernt eine Verknüpfung von einem Issue.
1161
1165
  { "success": true }
1162
1166
  ```
1163
1167
 
1164
- > **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.
1165
1169
 
1166
1170
  ---
1167
1171
 
@@ -1174,8 +1178,8 @@ Hängt einen oder mehrere Tags per Name an ein Issue an. Unbekannte Tag-Namen we
1174
1178
  **Tool:** `attach_tags`
1175
1179
 
1176
1180
  **Parameter:**
1177
- - `issue_id` — numerische Issue-ID
1178
- - `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
1179
1183
 
1180
1184
  **Request:**
1181
1185
 
@@ -1201,7 +1205,7 @@ Hängt einen oder mehrere Tags per Name an ein Issue an. Unbekannte Tag-Namen we
1201
1205
 
1202
1206
  Entfernt einen Tag von einem Issue. Erfordert die numerische Tag-ID.
1203
1207
 
1204
- **Schritt 1 — Tag-ID ermitteln:**
1208
+ **Schritt 1 – Tag-ID ermitteln:**
1205
1209
 
1206
1210
  **Tool:** `get_issue`
1207
1211
 
@@ -1228,13 +1232,13 @@ Entfernt einen Tag von einem Issue. Erfordert die numerische Tag-ID.
1228
1232
 
1229
1233
  `tags[].id` aus der Antwort lesen.
1230
1234
 
1231
- **Schritt 2 — Tag entfernen:**
1235
+ **Schritt 2 – Tag entfernen:**
1232
1236
 
1233
1237
  **Tool:** `detach_tag`
1234
1238
 
1235
1239
  **Parameter:**
1236
- - `issue_id` — numerische Issue-ID
1237
- - `tag_id` — numerische Tag-ID aus Schritt 1
1240
+ - `issue_id` – numerische Issue-ID
1241
+ - `tag_id` – numerische Tag-ID aus Schritt 1
1238
1242
 
1239
1243
  **Request:**
1240
1244
 
@@ -1251,7 +1255,7 @@ Entfernt einen Tag von einem Issue. Erfordert die numerische Tag-ID.
1251
1255
  "Tag #14 successfully removed from issue #1042."
1252
1256
  ```
1253
1257
 
1254
- > **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.
1255
1259
 
1256
1260
  ---
1257
1261
 
@@ -1264,8 +1268,8 @@ Abonniert einen Benutzer für Benachrichtigungen zu einem Issue.
1264
1268
  **Tool:** `add_monitor`
1265
1269
 
1266
1270
  **Parameter:**
1267
- - `issue_id` — numerische Issue-ID
1268
- - `username` — Benutzername als Zeichenkette
1271
+ - `issue_id` – numerische Issue-ID
1272
+ - `username` – Benutzername als Zeichenkette
1269
1273
 
1270
1274
  **Request:**
1271
1275
 
@@ -1291,8 +1295,8 @@ Deabonniert einen Benutzer von Benachrichtigungen zu einem Issue.
1291
1295
  **Tool:** `remove_monitor`
1292
1296
 
1293
1297
  **Parameter:**
1294
- - `issue_id` — numerische Issue-ID
1295
- - `username` — Benutzername als Zeichenkette
1298
+ - `issue_id` – numerische Issue-ID
1299
+ - `username` – Benutzername als Zeichenkette
1296
1300
 
1297
1301
  **Request:**
1298
1302
 
@@ -1322,7 +1326,7 @@ Baut den vollständigen Vektor-Suchindex von Grund auf neu auf. Einmalig nach de
1322
1326
  **Tool:** `rebuild_search_index`
1323
1327
 
1324
1328
  **Parameter:**
1325
- - `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
1326
1330
 
1327
1331
  **Request:**
1328
1332
 
@@ -1352,8 +1356,8 @@ Aktualisiert den Index mit Issues, die seit dem letzten Aufbau hinzugekommen ode
1352
1356
  **Tool:** `rebuild_search_index`
1353
1357
 
1354
1358
  **Parameter:**
1355
- - `project_id` — _(optional)_ auf ein einzelnes Projekt beschränken
1356
- - `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
1357
1361
 
1358
1362
  **Request:**
1359
1363
 
@@ -1411,9 +1415,9 @@ Findet Issues, die einem natürlichsprachigen Suchbegriff semantisch ähnlich si
1411
1415
  **Tool:** `search_issues`
1412
1416
 
1413
1417
  **Parameter:**
1414
- - `query` — Suchanfrage in natürlicher Sprache
1415
- - `top_n` — _(optional)_ Anzahl zurückzugebender Ergebnisse; Standard 10
1416
- - `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`
1417
1421
 
1418
1422
  **Request:**
1419
1423
 
@@ -1434,7 +1438,7 @@ Findet Issues, die einem natürlichsprachigen Suchbegriff semantisch ähnlich si
1434
1438
  ]
1435
1439
  ```
1436
1440
 
1437
- > **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«.
1438
1442
 
1439
1443
  ---
1440
1444
 
@@ -1445,10 +1449,10 @@ Reichert Suchergebnisse mit bestimmten Feldern aus MantisBT an. Ohne `select` we
1445
1449
  **Tool:** `search_issues`
1446
1450
 
1447
1451
  **Parameter:**
1448
- - `query` — Suchanfrage in natürlicher Sprache
1449
- - `top_n` — _(optional)_ Anzahl der Ergebnisse
1450
- - `select` — kommagetrennte Feldnamen, die für jedes Ergebnis abgerufen werden
1451
- - `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`
1452
1456
 
1453
1457
  **Request:**
1454
1458
 
@@ -1482,14 +1486,14 @@ Reichert Suchergebnisse mit bestimmten Feldern aus MantisBT an. Ohne `select` we
1482
1486
 
1483
1487
  ### Suche mit Keyword-Highlights
1484
1488
 
1485
- 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.
1486
1490
 
1487
1491
  **Tool:** `search_issues`
1488
1492
 
1489
1493
  **Parameter:**
1490
- - `query` — Suchanfrage in natürlicher Sprache
1491
- - `top_n` — _(optional)_ Anzahl der Ergebnisse; Standard 10
1492
- - `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
1493
1497
 
1494
1498
  **Request:**
1495
1499
 
@@ -1519,7 +1523,7 @@ Zeigt, welcher Teil eines Issues mit der Suchanfrage übereinstimmt. Jedes Ergeb
1519
1523
  "score": 0.84,
1520
1524
  "view_url": "https://mantis.example.com/view.php?id=987",
1521
1525
  "highlights": {
1522
- "summary": "**Login** schlägt mit 401 fehl — Token ungültig"
1526
+ "summary": "**Login** schlägt mit 401 fehl – Token ungültig"
1523
1527
  }
1524
1528
  },
1525
1529
  {
@@ -1543,7 +1547,7 @@ Gibt alle verfügbaren Kategorien eines MantisBT-Projekts zurück. Die zurückge
1543
1547
  **Tool:** `get_project_categories`
1544
1548
 
1545
1549
  **Parameter:**
1546
- - `project_id` — numerische Projekt-ID
1550
+ - `project_id` – numerische Projekt-ID
1547
1551
 
1548
1552
  **Request:**
1549
1553
 
@@ -1574,9 +1578,9 @@ Sucht Projektmitglieder nach Name, Realname oder E-Mail. Die Suche ist Groß-/Kl
1574
1578
  **Tool:** `find_project_member`
1575
1579
 
1576
1580
  **Parameter:**
1577
- - `project_id` — numerische Projekt-ID
1578
- - `query` — _(optional)_ Suchbegriff für `name`, `real_name` oder `email`
1579
- - `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
1580
1584
 
1581
1585
  **Request:**
1582
1586
 
@@ -1601,6 +1605,167 @@ Sucht Projektmitglieder nach Name, Realname oder E-Mail. Die Suche ist Groß-/Kl
1601
1605
 
1602
1606
  ---
1603
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
+
1604
1769
  ## Metadaten
1605
1770
 
1606
1771
  ### Metadaten-Zusammenfassung abrufen
@@ -1717,7 +1882,7 @@ Gibt die Version der verbundenen MantisBT-Installation zurück und vergleicht si
1717
1882
  **Tool:** `get_mantis_version`
1718
1883
 
1719
1884
  **Parameter:**
1720
- - `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`
1721
1886
 
1722
1887
  **Request:**
1723
1888
 
@@ -1773,9 +1938,9 @@ Gibt das Profil des Benutzers zurück, der dem konfigurierten API-Key zugeordnet
1773
1938
 
1774
1939
  ## Ressourcen
1775
1940
 
1776
- 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.
1777
1942
 
1778
- > **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.).
1779
1944
 
1780
1945
  ### Eigenes Benutzerprofil lesen
1781
1946
 
@@ -1783,7 +1948,7 @@ Gibt das Profil des authentifizierten API-Benutzers zurück.
1783
1948
 
1784
1949
  **Ressource-URI:** `mantis://me`
1785
1950
 
1786
- **Abrufverhalten:** Immer live — ruft bei jedem Zugriff `GET /users/me` auf.
1951
+ **Abrufverhalten:** Immer live – ruft bei jedem Zugriff `GET /users/me` auf.
1787
1952
 
1788
1953
  **Response:**
1789
1954
 
@@ -1859,11 +2024,11 @@ Gibt eine kombinierte Ansicht eines einzelnen Projekts zurück: Projektfelder so
1859
2024
 
1860
2025
  ### Issue-Enum-Werte lesen
1861
2026
 
1862
- 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.
1863
2028
 
1864
2029
  **Ressource-URI:** `mantis://enums`
1865
2030
 
1866
- **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.
1867
2032
 
1868
2033
  **Response:**
1869
2034
 
@@ -1903,7 +2068,7 @@ Gibt gültige ID/Name-Paare für alle Issue-Enum-Felder zurück (Severity, Prior
1903
2068
 
1904
2069
  ## Prompts
1905
2070
 
1906
- 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.
1907
2072
 
1908
2073
  ### Bug-Report erstellen
1909
2074
 
@@ -1912,16 +2077,16 @@ Sammelt strukturierte Bug-Daten und ruft `create_issue` auf.
1912
2077
  **Prompt:** `create-bug-report`
1913
2078
 
1914
2079
  **Pflichtargumente:**
1915
- - `project_id` — numerische Projekt-ID
1916
- - `category` — Kategoriename
1917
- - `summary` — Issue-Titel
1918
- - `description` — detaillierte Fehlerbeschreibung
2080
+ - `project_id` – numerische Projekt-ID
2081
+ - `category` – Kategoriename
2082
+ - `summary` – Issue-Titel
2083
+ - `description` – detaillierte Fehlerbeschreibung
1919
2084
 
1920
2085
  **Optionale Argumente:**
1921
- - `steps_to_reproduce` — Schritte zur Reproduktion
1922
- - `expected` — erwartetes Verhalten
1923
- - `actual` — tatsächliches (beobachtetes) Verhalten
1924
- - `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.)
1925
2090
 
1926
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.
1927
2092
 
@@ -1949,13 +2114,13 @@ Sammelt Feature-Details und ruft `create_issue` auf.
1949
2114
  **Prompt:** `create-feature-request`
1950
2115
 
1951
2116
  **Pflichtargumente:**
1952
- - `project_id` — numerische Projekt-ID
1953
- - `category` — Kategoriename
1954
- - `summary` — Feature-Titel
1955
- - `description` — detaillierte Beschreibung des Features
2117
+ - `project_id` – numerische Projekt-ID
2118
+ - `category` – Kategoriename
2119
+ - `summary` – Feature-Titel
2120
+ - `description` – detaillierte Beschreibung des Features
1956
2121
 
1957
2122
  **Optionale Argumente:**
1958
- - `use_case` — konkreter Anwendungsfall oder Motivation für das Feature
2123
+ - `use_case` – konkreter Anwendungsfall oder Motivation für das Feature
1959
2124
 
1960
2125
  **Ablauf:** Der Prompt liefert eine Nachricht, die den LLM anweist, `create_issue` mit dem Schweregrad `feature` aufzurufen.
1961
2126
 
@@ -1980,9 +2145,9 @@ Ruft ein einzelnes Issue ab und liefert eine prägnante Zusammenfassung.
1980
2145
  **Prompt:** `summarize-issue`
1981
2146
 
1982
2147
  **Pflichtargumente:**
1983
- - `issue_id` — numerische Issue-ID
2148
+ - `issue_id` – numerische Issue-ID
1984
2149
 
1985
- **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.
1986
2151
 
1987
2152
  **Beispielaufruf:**
1988
2153
 
@@ -2001,7 +2166,7 @@ Listet alle Issues eines Projekts auf und erstellt einen Status-Report nach Schw
2001
2166
  **Prompt:** `project-status`
2002
2167
 
2003
2168
  **Pflichtargumente:**
2004
- - `project_id` — numerische Projekt-ID
2169
+ - `project_id` – numerische Projekt-ID
2005
2170
 
2006
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.
2007
2172
 
@@ -2024,7 +2189,7 @@ Löscht ein MantisBT-Issue dauerhaft. Diese Aktion kann nicht rückgängig gemac
2024
2189
  **Tool:** `delete_issue`
2025
2190
 
2026
2191
  **Parameter:**
2027
- - `id` — numerische Issue-ID
2192
+ - `id` – numerische Issue-ID
2028
2193
 
2029
2194
  **Request:**
2030
2195