@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.
- package/CHANGELOG.md +36 -0
- package/README.de.md +26 -22
- package/README.md +6 -2
- package/dist/cache.js +18 -0
- package/dist/index.js +2 -0
- package/dist/search/tools.js +1 -2
- package/dist/tools/project-versions.js +207 -0
- package/dist/tools/projects.js +3 -3
- package/dist/tools/version.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 +10 -10
- package/server.json +2 -2
package/docs/cookbook.md
CHANGED
|
@@ -52,6 +52,10 @@ Tool-oriented recipes for the MantisBT MCP server — each recipe shows exactly
|
|
|
52
52
|
- [Projects & Categories](#projects--categories)
|
|
53
53
|
- [List project categories](#list-project-categories)
|
|
54
54
|
- [Find a project member](#find-a-project-member)
|
|
55
|
+
- [Create a project version](#create-a-project-version)
|
|
56
|
+
- [Update a project version](#update-a-project-version)
|
|
57
|
+
- [Release a version and create the next bugfix placeholder](#release-a-version-and-create-the-next-bugfix-placeholder)
|
|
58
|
+
- [Delete a project version](#delete-a-project-version)
|
|
55
59
|
- [Metadata](#metadata)
|
|
56
60
|
- [Get a metadata summary](#get-a-metadata-summary)
|
|
57
61
|
- [Get the full metadata cache](#get-the-full-metadata-cache)
|
|
@@ -1601,6 +1605,167 @@ Searches project members by name, real name, or email. The search is case-insens
|
|
|
1601
1605
|
|
|
1602
1606
|
---
|
|
1603
1607
|
|
|
1608
|
+
### Create a project version
|
|
1609
|
+
|
|
1610
|
+
Creates a new version in a MantisBT project. Without `timestamp`, MantisBT uses the current date. Version names must be unique within the project.
|
|
1611
|
+
|
|
1612
|
+
> **Permission required:** `manage_project_threshold` (MantisBT default: manager).
|
|
1613
|
+
|
|
1614
|
+
**Tool:** `create_version`
|
|
1615
|
+
|
|
1616
|
+
**Parameters:**
|
|
1617
|
+
- `project_id` — numeric project ID
|
|
1618
|
+
- `name` — version name, e.g. `"2.0.0"`
|
|
1619
|
+
- `description` — _(optional)_ version description
|
|
1620
|
+
- `released` — _(optional)_ mark the version as released; default `false`
|
|
1621
|
+
- `obsolete` — _(optional)_ mark the version as obsolete; default `false`
|
|
1622
|
+
- `timestamp` — _(optional)_ version date as ISO 8601 string, e.g. `"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
|
+
### Update a project version
|
|
1650
|
+
|
|
1651
|
+
Updates an existing version of a MantisBT project. Only the fields you pass are changed; at least one field is required. Renaming a version also rewrites the `version`, `target_version`, and `fixed_in_version` fields of all issues that reference it (including subprojects with inherited versions).
|
|
1652
|
+
|
|
1653
|
+
> **Permission required:** `manage_project_threshold` (MantisBT default: manager). Versions inherited from a parent project can only be changed via the parent's `project_id`.
|
|
1654
|
+
|
|
1655
|
+
**Tool:** `update_version`
|
|
1656
|
+
|
|
1657
|
+
**Parameters:**
|
|
1658
|
+
- `project_id` — numeric project ID
|
|
1659
|
+
- `version_id` — numeric version ID (use `get_project_versions` to discover)
|
|
1660
|
+
- `name` — _(optional)_ new version name (must be unique within the project)
|
|
1661
|
+
- `description` — _(optional)_ new version description
|
|
1662
|
+
- `released` — _(optional)_ released flag
|
|
1663
|
+
- `obsolete` — _(optional)_ obsolete flag
|
|
1664
|
+
- `timestamp` — _(optional)_ version date as ISO 8601 string
|
|
1665
|
+
|
|
1666
|
+
**Request:** _(mark a version as obsolete)_
|
|
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
|
+
### Release a version and create the next bugfix placeholder
|
|
1691
|
+
|
|
1692
|
+
Marks a version as released (setting its date) and creates a follow-up version placeholder in the same call. The follow-up version name is used as-is — no automatic numbering. If the follow-up creation fails, the release stays in effect and the error is reported in `next_version_error`.
|
|
1693
|
+
|
|
1694
|
+
> **Permission required:** `manage_project_threshold` (MantisBT default: manager). Versions inherited from a parent project can only be changed via the parent's `project_id`.
|
|
1695
|
+
|
|
1696
|
+
**Tool:** `release_version`
|
|
1697
|
+
|
|
1698
|
+
**Parameters:**
|
|
1699
|
+
- `project_id` — numeric project ID
|
|
1700
|
+
- `version_id` — numeric version ID of the version to release
|
|
1701
|
+
- `timestamp` — _(optional)_ release date as ISO 8601 string; default: now
|
|
1702
|
+
- `next_version` — _(optional)_ name of the follow-up version to create as an unreleased placeholder
|
|
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
|
+
> **Note:** Setting `released=true` via `update_version` does not change the version date — use `release_version` when you want to set both in one step.
|
|
1737
|
+
|
|
1738
|
+
---
|
|
1739
|
+
|
|
1740
|
+
### Delete a project version
|
|
1741
|
+
|
|
1742
|
+
Permanently deletes a version from a MantisBT project. This action is irreversible. MantisBT clears the `version`, `target_version`, and `fixed_in_version` fields of all issues that reference the deleted version. To retire a version without touching issues, use `update_version` with `obsolete=true` instead.
|
|
1743
|
+
|
|
1744
|
+
> **Permission required:** `manage_project_threshold` (MantisBT default: manager). Versions inherited from a parent project can only be deleted via the parent's `project_id`.
|
|
1745
|
+
|
|
1746
|
+
**Tool:** `delete_version`
|
|
1747
|
+
|
|
1748
|
+
**Parameters:**
|
|
1749
|
+
- `project_id` — numeric project ID
|
|
1750
|
+
- `version_id` — numeric version 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
|
## Metadata
|
|
1605
1770
|
|
|
1606
1771
|
### Get a metadata summary
|
package/docs/examples.de.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Anwendungsbeispiele
|
|
2
2
|
|
|
3
|
-
Praktische Beispiele für die Interaktion mit MantisBT über Claude, sobald der MCP-Server verbunden ist. Einfach in natürlicher Sprache fragen
|
|
3
|
+
Praktische Beispiele für die Interaktion mit MantisBT über Claude, sobald der MCP-Server verbunden ist. Einfach in natürlicher Sprache fragen – keine Tool-Namen oder Parameter erforderlich. Für exakte Tool-Aufrufe und Parameter siehe das [Cookbook](cookbook.de.md).
|
|
4
4
|
|
|
5
5
|
---
|
|
6
6
|
|
|
@@ -16,7 +16,7 @@ Praktische Beispiele für die Interaktion mit MantisBT über Claude, sobald der
|
|
|
16
16
|
|
|
17
17
|
> »Was ist der Status von Issue #1042?«
|
|
18
18
|
|
|
19
|
-
> »Zeige mir von Issue #1042 nur Titel, Status und Bearbeiter
|
|
19
|
+
> »Zeige mir von Issue #1042 nur Titel, Status und Bearbeiter – ohne die vollständige Beschreibung und Notizen.«
|
|
20
20
|
|
|
21
21
|
> »Zeige mir alle Issues, die jsmith diesen Monat gemeldet hat.«
|
|
22
22
|
|
|
@@ -28,7 +28,7 @@ Praktische Beispiele für die Interaktion mit MantisBT über Claude, sobald der
|
|
|
28
28
|
|
|
29
29
|
> »Erstelle einen Bug-Report: Auf der Checkout-Seite wird die Bestellung doppelt abgeschickt, wenn man zweimal auf 'Bestellen' klickt. Kategorie: Shop, Schweregrad: schwerwiegend.«
|
|
30
30
|
|
|
31
|
-
> »Öffne ein neues Issue im API-Projekt
|
|
31
|
+
> »Öffne ein neues Issue im API-Projekt – der Token-Refresh-Endpoint gibt 500 zurück, wenn das Refresh-Token abgelaufen ist. Dem Backend-Team zuweisen.«
|
|
32
32
|
|
|
33
33
|
> »Erstelle einen Feature-Request im Frontend-Projekt für einen Dunkelmodus in den Benutzereinstellungen. Niedrige Priorität, kein Fälligkeitsdatum.«
|
|
34
34
|
|
|
@@ -76,7 +76,7 @@ Praktische Beispiele für die Interaktion mit MantisBT über Claude, sobald der
|
|
|
76
76
|
|
|
77
77
|
> »Verknüpfe #901 und #902 als verwandte Issues.«
|
|
78
78
|
|
|
79
|
-
> »Issue #1100 blockiert #1101
|
|
79
|
+
> »Issue #1100 blockiert #1101 – bitte diese Beziehung anlegen.«
|
|
80
80
|
> *(Richtung ist entscheidend: #1100 ist das blockierende Issue)*
|
|
81
81
|
|
|
82
82
|
---
|
|
@@ -107,6 +107,18 @@ Praktische Beispiele für die Interaktion mit MantisBT über Claude, sobald der
|
|
|
107
107
|
|
|
108
108
|
---
|
|
109
109
|
|
|
110
|
+
### Projektversionen verwalten
|
|
111
|
+
|
|
112
|
+
> »Erstelle Version 2.0.0 in Projekt 3.«
|
|
113
|
+
|
|
114
|
+
> »Markiere Version 1.4.0 von Projekt 5 als veröffentlicht und lege 1.4.1 als nächste Version an.«
|
|
115
|
+
|
|
116
|
+
> »Markiere Version 1.0 im Backend-Projekt als veraltet.«
|
|
117
|
+
|
|
118
|
+
> »Lösche Version 0.9-test aus Projekt 3.«
|
|
119
|
+
|
|
120
|
+
---
|
|
121
|
+
|
|
110
122
|
### Triage und Auswertung
|
|
111
123
|
|
|
112
124
|
> »Gib mir einen Überblick über alle kritischen und dringenden offenen Issues in allen Projekten.«
|
|
@@ -123,7 +135,7 @@ Praktische Beispiele für die Interaktion mit MantisBT über Claude, sobald der
|
|
|
123
135
|
|
|
124
136
|
## Geführte Prompt-Workflows
|
|
125
137
|
|
|
126
|
-
Der Server enthält Prompt-Templates, die Claude durch strukturierte Arbeitsabläufe führen
|
|
138
|
+
Der Server enthält Prompt-Templates, die Claude durch strukturierte Arbeitsabläufe führen – Tool-Namen oder Parameter müssen nicht manuell angegeben werden. Die Prompts werden aus einem MCP-fähigen Client beim Namen aufgerufen.
|
|
127
139
|
|
|
128
140
|
### Issues über Prompt-Templates anlegen
|
|
129
141
|
|
|
@@ -141,7 +153,7 @@ Der Server enthält Prompt-Templates, die Claude durch strukturierte Arbeitsabl
|
|
|
141
153
|
|
|
142
154
|
## Semantische Suche
|
|
143
155
|
|
|
144
|
-
Die semantische Suche versteht die *Bedeutung* deiner Frage
|
|
156
|
+
Die semantische Suche versteht die *Bedeutung* deiner Frage – nicht nur einzelne Schlüsselwörter. Sie findet konzeptionell verwandte Issues, auch wenn die genaue Formulierung abweicht. Aktivierung mit `MANTIS_SEARCH_ENABLED=true`.
|
|
145
157
|
|
|
146
158
|
### Duplikaterkennung vor dem Anlegen
|
|
147
159
|
|
|
@@ -155,7 +167,7 @@ Die semantische Suche versteht die *Bedeutung* deiner Frage — nicht nur einzel
|
|
|
155
167
|
|
|
156
168
|
### Thematische Übersichten
|
|
157
169
|
|
|
158
|
-
> »Zeig mir relevante Issues rund um die Zahlungsabwicklung
|
|
170
|
+
> »Zeig mir relevante Issues rund um die Zahlungsabwicklung – projektübergreifend.«
|
|
159
171
|
|
|
160
172
|
> »Zeig mir Beispiele für gemeldete E-Mail-Zustellungsfehler.«
|
|
161
173
|
|
|
@@ -171,15 +183,15 @@ Die semantische Suche versteht die *Bedeutung* deiner Frage — nicht nur einzel
|
|
|
171
183
|
|
|
172
184
|
> »Suche nach 'Rechnungsexport' und markiere die relevanten Ausschnitte in Titel und Beschreibung.«
|
|
173
185
|
|
|
174
|
-
Exakte Parameter und Response-Shape: [Cookbook
|
|
186
|
+
Exakte Parameter und Response-Shape: [Cookbook – Suche mit Keyword-Highlights](cookbook.de.md#suche-mit-keyword-highlights).
|
|
175
187
|
|
|
176
188
|
---
|
|
177
189
|
|
|
178
190
|
### Unscharfe / terminologieunabhängige Suche
|
|
179
191
|
|
|
180
|
-
> »Finde Issues zu 'doppelten Einträgen'
|
|
192
|
+
> »Finde Issues zu 'doppelten Einträgen' – sie könnten auch als 'zweimal angezeigt', 'doppelte Datensätze' oder 'Phantom-Zeilen' beschrieben sein.«
|
|
181
193
|
|
|
182
|
-
> »Suche nach authentifizierungsbezogenen Issues
|
|
194
|
+
> »Suche nach authentifizierungsbezogenen Issues – die Berichte verwenden möglicherweise 'Login', 'Anmeldung', 'Token', 'Session' oder 'Auth'.«
|
|
183
195
|
|
|
184
196
|
---
|
|
185
197
|
|
|
@@ -203,7 +215,7 @@ Exakte Parameter und Response-Shape: [Cookbook — Suche mit Keyword-Highlights]
|
|
|
203
215
|
|
|
204
216
|
## Ressourcen
|
|
205
217
|
|
|
206
|
-
MCP-Ressourcen sind URI-adressierbare, schreibgeschützte Daten, die Clients direkt per URI abrufen können
|
|
218
|
+
MCP-Ressourcen sind URI-adressierbare, schreibgeschützte Daten, die Clients direkt per URI abrufen können – kein Tool-Aufruf nötig. Die Ressourcen-Unterstützung variiert je nach Client; wenn der verwendete Client keine Ressourcen unterstützt, das entsprechende Tool als Alternative verwenden.
|
|
207
219
|
|
|
208
220
|
### Server-Zustand über Ressourcen abrufen
|
|
209
221
|
|
package/docs/examples.md
CHANGED
|
@@ -107,6 +107,18 @@ Practical examples of how to interact with MantisBT through Claude once the MCP
|
|
|
107
107
|
|
|
108
108
|
---
|
|
109
109
|
|
|
110
|
+
### Managing project versions
|
|
111
|
+
|
|
112
|
+
> "Create version 2.0.0 in project 3."
|
|
113
|
+
|
|
114
|
+
> "Mark version 1.4.0 of project 5 as released and create 1.4.1 as the next version."
|
|
115
|
+
|
|
116
|
+
> "Mark version 1.0 as obsolete in the Backend project."
|
|
117
|
+
|
|
118
|
+
> "Delete version 0.9-test from project 3."
|
|
119
|
+
|
|
120
|
+
---
|
|
121
|
+
|
|
110
122
|
### Triage and reporting
|
|
111
123
|
|
|
112
124
|
> "Give me an overview of all critical and urgent open issues across all projects."
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dpesch/mantisbt-mcp-server",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.14.0",
|
|
4
4
|
"mcpName": "io.github.dpesch/mantisbt-mcp-server",
|
|
5
5
|
"description": "MCP server for MantisBT REST API – read and manage bug tracker issues",
|
|
6
6
|
"author": "Dominik Pesch",
|
|
@@ -44,18 +44,18 @@
|
|
|
44
44
|
"init": "node scripts/init.mjs"
|
|
45
45
|
},
|
|
46
46
|
"dependencies": {
|
|
47
|
-
"@huggingface/transformers": "^3.0
|
|
48
|
-
"@modelcontextprotocol/sdk": "^1.
|
|
49
|
-
"zod": "^
|
|
47
|
+
"@huggingface/transformers": "^4.3.0",
|
|
48
|
+
"@modelcontextprotocol/sdk": "^1.30.1",
|
|
49
|
+
"zod": "^4.6.5"
|
|
50
50
|
},
|
|
51
51
|
"devDependencies": {
|
|
52
|
-
"@types/node": "^20.
|
|
53
|
-
"@vitest/coverage-v8": "^
|
|
54
|
-
"tsx": "^4.
|
|
55
|
-
"typescript": "^5.3
|
|
56
|
-
"vitest": "^
|
|
52
|
+
"@types/node": "^22.20.4",
|
|
53
|
+
"@vitest/coverage-v8": "^5.0.2",
|
|
54
|
+
"tsx": "^4.23.15",
|
|
55
|
+
"typescript": "^5.9.3",
|
|
56
|
+
"vitest": "^5.0.2"
|
|
57
57
|
},
|
|
58
58
|
"engines": {
|
|
59
|
-
"node": ">=
|
|
59
|
+
"node": ">=22"
|
|
60
60
|
}
|
|
61
61
|
}
|
package/server.json
CHANGED
|
@@ -3,12 +3,12 @@
|
|
|
3
3
|
"name": "io.github.dpesch/mantisbt-mcp-server",
|
|
4
4
|
"title": "MantisBT MCP Server",
|
|
5
5
|
"description": "MantisBT MCP server – manage issues, notes, files, tags, and relationships. With semantic search.",
|
|
6
|
-
"version": "1.
|
|
6
|
+
"version": "1.14.0",
|
|
7
7
|
"packages": [
|
|
8
8
|
{
|
|
9
9
|
"registryType": "npm",
|
|
10
10
|
"identifier": "@dpesch/mantisbt-mcp-server",
|
|
11
|
-
"version": "1.
|
|
11
|
+
"version": "1.14.0",
|
|
12
12
|
"runtimeHint": "npx",
|
|
13
13
|
"transport": {
|
|
14
14
|
"type": "stdio"
|