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