@dpesch/mantisbt-mcp-server 1.12.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.
- package/CHANGELOG.md +19 -0
- package/README.de.md +25 -21
- package/README.md +5 -1
- package/dist/cache.js +18 -0
- package/dist/index.js +2 -0
- package/dist/tools/project-versions.js +207 -0
- package/dist/tools/projects.js +1 -1
- package/docs/cookbook.de.md +306 -141
- package/docs/cookbook.md +165 -0
- package/docs/examples.de.md +23 -11
- package/docs/examples.md +12 -0
- package/package.json +1 -1
- package/server.json +2 -2
package/docs/cookbook.de.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Cookbook
|
|
2
2
|
|
|
3
|
-
Tool-orientierte Rezepte für den MantisBT MCP Server
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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**
|
|
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`
|
|
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`
|
|
236
|
-
- `select`
|
|
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
|
|
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`
|
|
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`
|
|
336
|
-
- `page`
|
|
337
|
-
- `page_size`
|
|
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`
|
|
383
|
-
- `select`
|
|
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
|
|
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
|
|
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`
|
|
425
|
-
- `status`
|
|
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
|
|
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
|
|
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`
|
|
466
|
-
- `assigned_to`
|
|
467
|
-
- `reporter_id`
|
|
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
|
|
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
|
|
523
|
+
**Schritt 2 – Issues mit der Filter-ID abrufen:**
|
|
520
524
|
|
|
521
525
|
**Tool:** `list_issues`
|
|
522
526
|
|
|
523
527
|
**Parameter:**
|
|
524
|
-
- `filter_id`
|
|
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`
|
|
560
|
-
- `project_id`
|
|
561
|
-
- `category`
|
|
562
|
-
- `description`
|
|
563
|
-
- `priority`
|
|
564
|
-
- `severity`
|
|
565
|
-
- `handler`
|
|
566
|
-
- `handler_id`
|
|
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
|
|
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
|
|
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`
|
|
624
|
-
- `fields.status`
|
|
625
|
-
- `fields.resolution`
|
|
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
|
|
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
|
|
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`
|
|
666
|
-
- `fields`
|
|
667
|
-
- `note`
|
|
668
|
-
- `note_view_state`
|
|
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
|
|
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
|
|
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
|
|
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`
|
|
721
|
-
- `fields.handler`
|
|
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`
|
|
757
|
-
- `fields.fixed_in_version`
|
|
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`
|
|
796
|
-
- `text`
|
|
797
|
-
- `view_state`
|
|
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`
|
|
831
|
-
- `text`
|
|
832
|
-
- `view_state`
|
|
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`
|
|
867
|
-
- `note_id`
|
|
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`
|
|
898
|
-
- `file_path`
|
|
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`
|
|
934
|
-
- `content`
|
|
935
|
-
- `filename`
|
|
936
|
-
- `content_type`
|
|
937
|
-
- `description`
|
|
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`
|
|
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`
|
|
1010
|
-
- `target_id`
|
|
1011
|
-
- `type_name`
|
|
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`
|
|
1043
|
-
- `target_id`
|
|
1044
|
-
- `type_name`
|
|
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
|
|
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`
|
|
1076
|
-
- `target_id`
|
|
1077
|
-
- `type_name`
|
|
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
|
|
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
|
|
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
|
|
1145
|
+
**Schritt 2 – Verknüpfung entfernen:**
|
|
1142
1146
|
|
|
1143
1147
|
**Tool:** `remove_relationship`
|
|
1144
1148
|
|
|
1145
1149
|
**Parameter:**
|
|
1146
|
-
- `issue_id`
|
|
1147
|
-
- `relationship_id`
|
|
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
|
|
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`
|
|
1178
|
-
- `tags`
|
|
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
|
|
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
|
|
1235
|
+
**Schritt 2 – Tag entfernen:**
|
|
1232
1236
|
|
|
1233
1237
|
**Tool:** `detach_tag`
|
|
1234
1238
|
|
|
1235
1239
|
**Parameter:**
|
|
1236
|
-
- `issue_id`
|
|
1237
|
-
- `tag_id`
|
|
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
|
|
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`
|
|
1268
|
-
- `username`
|
|
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`
|
|
1295
|
-
- `username`
|
|
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`
|
|
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`
|
|
1356
|
-
- `full`
|
|
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`
|
|
1415
|
-
- `top_n`
|
|
1416
|
-
- `highlight`
|
|
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
|
|
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`
|
|
1449
|
-
- `top_n`
|
|
1450
|
-
- `select`
|
|
1451
|
-
- `highlight`
|
|
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
|
|
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`
|
|
1491
|
-
- `top_n`
|
|
1492
|
-
- `highlight`
|
|
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
|
|
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`
|
|
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`
|
|
1578
|
-
- `query`
|
|
1579
|
-
- `limit`
|
|
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`
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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`
|
|
1916
|
-
- `category`
|
|
1917
|
-
- `summary`
|
|
1918
|
-
- `description`
|
|
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`
|
|
1922
|
-
- `expected`
|
|
1923
|
-
- `actual`
|
|
1924
|
-
- `environment`
|
|
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`
|
|
1953
|
-
- `category`
|
|
1954
|
-
- `summary`
|
|
1955
|
-
- `description`
|
|
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`
|
|
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`
|
|
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
|
|
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`
|
|
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`
|
|
2192
|
+
- `id` – numerische Issue-ID
|
|
2028
2193
|
|
|
2029
2194
|
**Request:**
|
|
2030
2195
|
|