@dpesch/mantisbt-mcp-server 1.10.0 → 1.10.1
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/.github/workflows/ci.yml +32 -0
- package/CHANGELOG.md +13 -0
- package/dist/tools/files.js +10 -12
- package/package.json +1 -1
- package/server.json +2 -2
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
name: CI
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches: [main]
|
|
6
|
+
pull_request:
|
|
7
|
+
branches: [main]
|
|
8
|
+
|
|
9
|
+
jobs:
|
|
10
|
+
test:
|
|
11
|
+
runs-on: ubuntu-latest
|
|
12
|
+
|
|
13
|
+
steps:
|
|
14
|
+
- uses: actions/checkout@v4
|
|
15
|
+
|
|
16
|
+
- name: Set up Node.js
|
|
17
|
+
uses: actions/setup-node@v4
|
|
18
|
+
with:
|
|
19
|
+
node-version: '20'
|
|
20
|
+
cache: 'npm'
|
|
21
|
+
|
|
22
|
+
- name: Install dependencies
|
|
23
|
+
run: npm ci
|
|
24
|
+
|
|
25
|
+
- name: Type check
|
|
26
|
+
run: npm run typecheck
|
|
27
|
+
|
|
28
|
+
- name: Build
|
|
29
|
+
run: npm run build
|
|
30
|
+
|
|
31
|
+
- name: Test
|
|
32
|
+
run: npm test
|
package/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,19 @@ This project adheres to [Semantic Versioning](https://semver.org/).
|
|
|
7
7
|
|
|
8
8
|
---
|
|
9
9
|
|
|
10
|
+
## [1.10.1] – 2026-05-02
|
|
11
|
+
|
|
12
|
+
### Added
|
|
13
|
+
- GitHub Actions CI workflow (`.github/workflows/ci.yml`): runs on push and pull requests to `main`; steps are typecheck, build, and test on Node.js 20.
|
|
14
|
+
|
|
15
|
+
### Changed
|
|
16
|
+
- Improved descriptions for `upload_file` and `list_issue_files`: both now include return shape, usage guidelines, and cross-references to related tools.
|
|
17
|
+
|
|
18
|
+
### Fixed
|
|
19
|
+
- `upload_file`: removed Zod `.refine()` calls from `inputSchema`. MCP SDK 1.27.x serialized `ZodEffects` (the type produced by `.refine()`) to an empty `properties: {}` object, making all parameters invisible to clients. Imperative validation in the handler is unchanged — the same constraints are still enforced at runtime.
|
|
20
|
+
|
|
21
|
+
---
|
|
22
|
+
|
|
10
23
|
## [1.10.0] – 2026-04-11
|
|
11
24
|
|
|
12
25
|
### Added
|
package/dist/tools/files.js
CHANGED
|
@@ -15,7 +15,9 @@ export function registerFileTools(server, client, uploadDir) {
|
|
|
15
15
|
// ---------------------------------------------------------------------------
|
|
16
16
|
server.registerTool('list_issue_files', {
|
|
17
17
|
title: 'List Issue File Attachments',
|
|
18
|
-
description:
|
|
18
|
+
description: `List all file attachments of a MantisBT issue. Returns an array of attachment objects, each containing id, filename, size in bytes, content_type, and download_url. Returns an empty array if the issue has no attachments.
|
|
19
|
+
|
|
20
|
+
Use this tool when you need to inspect or enumerate files attached to an issue. To add a new attachment, use upload_file instead. To retrieve full issue details that include attachments alongside other fields, use get_issue instead.`,
|
|
19
21
|
inputSchema: z.object({
|
|
20
22
|
issue_id: z.coerce.number().int().positive().describe('Numeric issue ID'),
|
|
21
23
|
}),
|
|
@@ -42,13 +44,15 @@ export function registerFileTools(server, client, uploadDir) {
|
|
|
42
44
|
// ---------------------------------------------------------------------------
|
|
43
45
|
server.registerTool('upload_file', {
|
|
44
46
|
title: 'Upload File Attachment',
|
|
45
|
-
description: `Upload a file as an attachment to a MantisBT issue
|
|
47
|
+
description: `Upload a file as an attachment to a MantisBT issue. Adds the file to the issue without modifying any issue fields or status. Returns the created attachment metadata on success.
|
|
48
|
+
|
|
49
|
+
Two input modes — exactly one must be provided:
|
|
50
|
+
- file_path: absolute path to a local file; filename is derived from the path automatically
|
|
51
|
+
- content: Base64-encoded file content; filename must be supplied explicitly via the filename parameter
|
|
46
52
|
|
|
47
|
-
|
|
48
|
-
- file_path: absolute path to a local file — filename is derived from the path automatically
|
|
49
|
-
- content: Base64-encoded file content — filename must be supplied explicitly via the filename parameter
|
|
53
|
+
The optional content_type sets the MIME type (e.g. "image/png"); defaults to "application/octet-stream". Use the optional description to annotate the attachment.
|
|
50
54
|
|
|
51
|
-
|
|
55
|
+
Use this tool to attach files such as logs, screenshots, or patches to an existing issue. To list existing attachments, use list_issue_files. To retrieve issue details, use get_issue.`,
|
|
52
56
|
inputSchema: z.object({
|
|
53
57
|
issue_id: z.coerce.number().int().positive().describe('Numeric issue ID'),
|
|
54
58
|
file_path: z.string().min(1).optional().describe('Absolute path to the local file to upload (mutually exclusive with content)'),
|
|
@@ -56,12 +60,6 @@ The optional content_type parameter sets the MIME type (e.g. "image/png"). If om
|
|
|
56
60
|
filename: z.string().min(1).optional().describe('File name for the attachment (required when using content; overrides the derived name when using file_path)'),
|
|
57
61
|
content_type: z.string().optional().describe('MIME type of the file, e.g. "image/png" (default: "application/octet-stream")'),
|
|
58
62
|
description: z.string().optional().describe('Optional description for the attachment'),
|
|
59
|
-
}).refine(d => !!(d.file_path ?? d.content), {
|
|
60
|
-
message: 'Either file_path or content must be provided',
|
|
61
|
-
}).refine(d => !(d.file_path && d.content), {
|
|
62
|
-
message: 'Only one of file_path or content may be provided',
|
|
63
|
-
}).refine(d => !d.content || !!d.filename, {
|
|
64
|
-
message: 'filename is required when using content',
|
|
65
63
|
}),
|
|
66
64
|
annotations: {
|
|
67
65
|
readOnlyHint: false,
|
package/package.json
CHANGED
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.10.
|
|
6
|
+
"version": "1.10.1",
|
|
7
7
|
"packages": [
|
|
8
8
|
{
|
|
9
9
|
"registryType": "npm",
|
|
10
10
|
"identifier": "@dpesch/mantisbt-mcp-server",
|
|
11
|
-
"version": "1.10.
|
|
11
|
+
"version": "1.10.1",
|
|
12
12
|
"runtimeHint": "npx",
|
|
13
13
|
"transport": {
|
|
14
14
|
"type": "stdio"
|