@pschroee/redmine-mcp 0.4.0 → 0.4.2

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/README.md CHANGED
@@ -331,11 +331,11 @@ Add to your Claude Desktop config (`%APPDATA%\Claude\claude_desktop_config.json`
331
331
 
332
332
  > Requires [redmine_checklists](https://www.redmineup.com/pages/plugins/checklists) plugin
333
333
 
334
- - `list_checklists` - List checklist items for an issue
335
- - `get_checklist` - Get checklist item details
336
- - `create_checklist` - Create checklist item
337
- - `update_checklist` - Update checklist item (text, done status)
338
- - `delete_checklist` - Delete checklist item
334
+ - `list_checklist_items` - List checklist items for an issue
335
+ - `get_checklist_item` - Get checklist item details
336
+ - `create_checklist_item` - Create checklist item
337
+ - `update_checklist_item` - Update checklist item (text, done status)
338
+ - `delete_checklist_item` - Delete checklist item
339
339
 
340
340
  ### Plugin: Agile (plugin_agile)
341
341
 
@@ -351,8 +351,7 @@ export declare class RedmineClient {
351
351
  getChecklist(id: number): Promise<RedmineResult<{
352
352
  checklist: RedmineChecklist;
353
353
  }>>;
354
- createChecklist(data: {
355
- issue_id: number;
354
+ createChecklist(issueId: number, data: {
356
355
  subject: string;
357
356
  is_done?: boolean;
358
357
  position?: number;
@@ -484,14 +484,21 @@ export class RedmineClient {
484
484
  async getChecklist(id) {
485
485
  return this.request("GET", `/checklists/${id}.json`);
486
486
  }
487
- async createChecklist(data) {
488
- return this.request("POST", "/checklists.json", {
489
- checklist: data,
487
+ async createChecklist(issueId, data) {
488
+ return this.request("POST", `/issues/${issueId}/checklists.json`, {
489
+ checklist: {
490
+ ...data,
491
+ is_done: data.is_done ? 1 : 0,
492
+ },
490
493
  });
491
494
  }
492
495
  async updateChecklist(id, data) {
496
+ const payload = { ...data };
497
+ if (data.is_done !== undefined) {
498
+ payload.is_done = data.is_done ? 1 : 0;
499
+ }
493
500
  return this.request("PUT", `/checklists/${id}.json`, {
494
- checklist: data,
501
+ checklist: payload,
495
502
  });
496
503
  }
497
504
  async deleteChecklist(id) {
package/dist/server.js CHANGED
@@ -3,7 +3,7 @@ import { registerTools } from "./tools/index.js";
3
3
  export function createServer(redmineClient, toolGroups) {
4
4
  const server = new McpServer({
5
5
  name: "redmine-mcp",
6
- version: "0.4.0",
6
+ version: "0.4.2",
7
7
  });
8
8
  registerTools(server, redmineClient, toolGroups);
9
9
  return server;
@@ -1,6 +1,6 @@
1
1
  import { z } from "zod";
2
2
  export function registerChecklistsTools(server, client) {
3
- server.registerTool("list_checklists", {
3
+ server.registerTool("list_checklist_items", {
4
4
  description: "List all checklist items for an issue (requires redmine_checklists plugin)",
5
5
  inputSchema: {
6
6
  issue_id: z.number().describe("The issue ID to get checklists for"),
@@ -11,7 +11,7 @@ export function registerChecklistsTools(server, client) {
11
11
  content: [{ type: "text", text: JSON.stringify(result, null, 2) }],
12
12
  };
13
13
  });
14
- server.registerTool("get_checklist", {
14
+ server.registerTool("get_checklist_item", {
15
15
  description: "Get a specific checklist item by ID (requires redmine_checklists plugin)",
16
16
  inputSchema: {
17
17
  checklist_id: z.number().describe("The checklist item ID"),
@@ -22,7 +22,7 @@ export function registerChecklistsTools(server, client) {
22
22
  content: [{ type: "text", text: JSON.stringify(result, null, 2) }],
23
23
  };
24
24
  });
25
- server.registerTool("create_checklist", {
25
+ server.registerTool("create_checklist_item", {
26
26
  description: "Create a new checklist item for an issue (requires redmine_checklists plugin)",
27
27
  inputSchema: {
28
28
  issue_id: z.number().describe("The issue ID to add the checklist item to"),
@@ -31,12 +31,13 @@ export function registerChecklistsTools(server, client) {
31
31
  position: z.number().optional().describe("Position in the checklist (1-based)"),
32
32
  },
33
33
  }, async (params) => {
34
- const result = await client.createChecklist(params);
34
+ const { issue_id, ...data } = params;
35
+ const result = await client.createChecklist(issue_id, data);
35
36
  return {
36
37
  content: [{ type: "text", text: JSON.stringify(result, null, 2) }],
37
38
  };
38
39
  });
39
- server.registerTool("update_checklist", {
40
+ server.registerTool("update_checklist_item", {
40
41
  description: "Update an existing checklist item (requires redmine_checklists plugin)",
41
42
  inputSchema: {
42
43
  checklist_id: z.number().describe("The checklist item ID to update"),
@@ -51,7 +52,7 @@ export function registerChecklistsTools(server, client) {
51
52
  content: [{ type: "text", text: JSON.stringify(result ?? { success: true }, null, 2) }],
52
53
  };
53
54
  });
54
- server.registerTool("delete_checklist", {
55
+ server.registerTool("delete_checklist_item", {
55
56
  description: "Delete a checklist item (requires redmine_checklists plugin)",
56
57
  inputSchema: {
57
58
  checklist_id: z.number().describe("The checklist item ID to delete"),
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pschroee/redmine-mcp",
3
- "version": "0.4.0",
3
+ "version": "0.4.2",
4
4
  "description": "MCP server for Redmine - full API access with configurable tool groups",
5
5
  "type": "module",
6
6
  "bin": {