kemdicode-mcp 1.20.0 → 1.20.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/README.md CHANGED
@@ -5,12 +5,12 @@
5
5
  <h3 align="center">Model Context Protocol Server for AI-Powered Development</h3>
6
6
 
7
7
  <p align="center">
8
- 103 tools &bull; 7 LLM providers &bull; multi-agent orchestration &bull; kanban &bull; project memory
8
+ 119 tools &bull; 7 LLM providers &bull; multi-agent orchestration &bull; kanban &bull; project memory
9
9
  </p>
10
10
 
11
11
  <p align="center">
12
12
  <a href="https://www.npmjs.com/package/kemdicode-mcp"><img src="https://img.shields.io/badge/npm-kemdicode--mcp-CB3837?style=flat-square&logo=npm&logoColor=white" alt="npm" /></a>
13
- <a href="https://github.com/kemdi-pl/kemdicode-mcp/releases"><img src="https://img.shields.io/badge/version-1.19.0-blue?style=flat-square" alt="Version" /></a>
13
+ <a href="https://github.com/kemdi-pl/kemdicode-mcp/releases"><img src="https://img.shields.io/badge/version-1.20.1-blue?style=flat-square" alt="Version" /></a>
14
14
  <a href="LICENSE"><img src="https://img.shields.io/badge/license-GPL--3.0-green?style=flat-square" alt="License" /></a>
15
15
  </p>
16
16
 
@@ -23,12 +23,12 @@
23
23
 
24
24
  ---
25
25
 
26
- **kemdiCode MCP** is a [Model Context Protocol](https://modelcontextprotocol.io/) server that gives AI agents and IDE assistants access to **100+ specialized tools** for code analysis, generation, git operations, file management, AST-aware editing, project memory, multi-board kanban, and multi-agent coordination.
26
+ **kemdiCode MCP** is a [Model Context Protocol](https://modelcontextprotocol.io/) server that gives AI agents and IDE assistants access to **119 specialized tools** for code analysis, generation, git operations, file management, AST-aware editing, project memory, multi-board kanban, task comments, and multi-agent coordination.
27
27
 
28
28
  <details>
29
29
  <summary><strong>Table of Contents</strong></summary>
30
30
 
31
- - [What's New in 1.19.0](#whats-new-in-1190)
31
+ - [What's New in 1.20.0](#whats-new-in-1200)
32
32
  - [Usage Examples](#usage-examples)
33
33
  - [Highlights](#highlights)
34
34
  - [Compatibility](#compatibility)
@@ -50,27 +50,49 @@
50
50
 
51
51
  ---
52
52
 
53
- ## What's New in 1.19.0
53
+ ## What's New in 1.20.0
54
54
 
55
- - **Batch/Multi-Item Support for 14 Tools** &mdash; all single-item tools now accept arrays for parallel batch operations: `board-create` (1-10), `board-share` (1-10), `board-invite` (1-20), `board-members` (1-20 ops), `workspace-create` (1-5), `write-memory` (1-20), `read-memory` (1-20), `delete-memory` (1-20), `edit-memory` (1-10), `file-read` (1-20), `file-write` (1-20), `file-diff` (1-10 pairs), `session-create` (1-10), `session-delete` (1-10). All return per-item success/failure with structured results.
56
- - **Memory Tools: Redis Pipeline Optimization** &mdash; `read-memory` and `delete-memory` batch operations use Redis pipelines instead of sequential queries, eliminating N+1 performance issues.
57
- - **5 Critical Bug Fixes** &mdash; memory leak in `sessionHistory` Map (LRU eviction), recursion context restoration in `tool-invoker`, Pub/Sub handler leak in `agent-monitor`, Redis connection leak in kanban subscriber, race condition in `claimTask` blocker validation.
58
- - **5 Performance Improvements** &mdash; session write-back throttling (dirty flag + 5min threshold), kanban `listTasks` N+1 → Redis pipeline, context `queryContext` N+1 → pipeline, rate-limit map cleanup timer, shared Redis connection pooling.
59
- - **2 Security Fixes** &mdash; hardcoded salt fallback removed (now throws on missing `SECURE_STORAGE_SALT`), command injection risk in `projectContext.enhanced.ts` fixed (switched to `execFile`).
60
- - **Template Injection Prevention** &mdash; `consensus-prompt` fixed reversed `replaceAll` order to prevent user prompt from injecting `{board_responses}` placeholder. CEO `maxTokens` capped at 32K.
61
- - **ANSI Escape Injection Protection** &mdash; new `sanitizeTerminalOutput()` utility applied to `agent-alert` and `agent-inject` to prevent terminal escape sequence injection via user-controlled strings.
62
- - **Shared Memory Module** &mdash; extracted duplicated types, constants, and helpers from 7 memory tools into `src/tools/memory/shared.ts`, eliminating 6x duplication.
63
- - **Shared Format Helpers** &mdash; new `src/utils/format-helpers.ts` with `sanitizeTerminalOutput()`, `wrapText()`, `priorityIcon()`, `statusIcon()` shared across agent tools.
64
- - **Input Validation Hardening** &mdash; prototype pollution prevention in `agent-register` metadata keys, octal mode regex validation in `file-write`, ref flag injection prevention in `git-log`, content size limits (1MB) in `queue-message`.
55
+ ### 14 New Tools
65
56
 
66
- ### What was in 1.18.0
57
+ - **Git workflow** &mdash; `git-add` (stage files), `git-commit` (create commits), `git-stash` (full stash management: push/pop/list/drop/apply/show)
58
+ - **Kanban CRUD** &mdash; `task-get` (full task details), `task-delete` (batch 1-20), `task-comment` (append-only notes with author tracking), `board-delete` (cascade option), `workspace-delete` (ownership verification)
59
+ - **File operations** &mdash; `file-delete` (security checks, critical file protection, dry-run), `file-move` (cross-filesystem), `file-copy` (overwrite protection), `file-backup-restore` (list/restore `.bak` files)
60
+ - **Orchestration** &mdash; `pipeline` (sequential tool execution with `{{stepId.result}}` interpolation, max 10 steps), `checkpoint-diff` (compare current files with saved checkpoint)
67
61
 
68
- - **Checkpoint Save/Restore** &mdash; new tools `checkpoint-save` and `checkpoint-restore` for temporary state snapshots in Redis (7-day TTL). Save progress mid-task and restore later.
69
- - **Session Resume** &mdash; new `/resume` HTTP endpoint returns the last active session with tool history, enabling post-compaction recovery. SSE connections receive a `resume` event on reconnect.
70
- - **Runtime Tool Broadcast** &mdash; dynamically registered tools now trigger `notifications/tools/list_changed` to all connected MCP clients, so IDEs see new tools without reconnecting.
71
- - **Session CWD Injection** &mdash; file tools automatically inherit the session's working directory for correct relative path resolution in multi-session setups.
72
- - **Session Cleanup** &mdash; proper cleanup of activity tracking and server references on session close, preventing memory leaks in long-running servers.
73
- - **Compact Tool Descriptions** &mdash; reduced tool description sizes across all 103 tools to slow down context compaction in long sessions.
62
+ ### Task Comments System
63
+
64
+ New append-only notes for kanban tasks &mdash; agents can add progress notes without overwriting the task description:
65
+ - `TaskNote` type: `id`, `author`, `content`, `createdAt`
66
+ - `task-comment` tool: batch 1-20 comments, shorthand mode `{ taskId, author, content }`
67
+ - `task-get` returns `notes` array and `noteCount`
68
+
69
+ ### Metadata for All 119 Tools
70
+
71
+ Every tool now has a `metadata` block with `category`, `tags`, `examples` (realistic args), and `relatedTools`. The `help` tool generates a categorized listing from this metadata. 4 new categories: `loci`, `mpc`, `session`, `rl`.
72
+
73
+ ### UX Improvements
74
+
75
+ - **Auto-sessionId** &mdash; `sessionId` is now optional in all kanban/workspace tools; auto-detected from the MCP connection
76
+ - **Name lookup** &mdash; use board/workspace names instead of UUIDs (`"name:My Board"` or just `"My Board"`)
77
+ - **Shorthand mode** &mdash; `file-read` and `write-memory` accept single-item format without array wrapper
78
+ - **git-status / git-diff** &mdash; new `format` parameter (`text` / `json`)
79
+ - **batch tool** &mdash; configurable `maxResultLength` (up to 50,000 chars, default 5,000)
80
+ - **help tool** &mdash; rewritten with categorized tool listing from registry
81
+ - **Progress reporting** &mdash; fixed in `run-lint`
82
+ - **Cross-references** &mdash; `auto-fix` ↔ `replace-content` descriptions link to each other
83
+
84
+ ### Bug Fixes
85
+
86
+ - Race condition in `task-comment` when multiple comments target the same task (Promise.all → sequential)
87
+ - Emoji fix: raw priority/status in data fields, separate `priorityIcon`/`statusIcon` fields
88
+
89
+ ### What was in 1.19.0
90
+
91
+ - **Batch/Multi-Item Support for 14 Tools** &mdash; all single-item tools now accept arrays for parallel batch operations (1-20 items each). All return per-item success/failure with structured results.
92
+ - **Memory Tools: Redis Pipeline Optimization** &mdash; `read-memory` and `delete-memory` use Redis pipelines, eliminating N+1 issues.
93
+ - **5 Critical Bug Fixes** &mdash; memory leak in `sessionHistory`, recursion context restoration, Pub/Sub handler leak, Redis connection leak, race condition in `claimTask`.
94
+ - **5 Performance Improvements** &mdash; session write-back throttling, kanban/context N+1 → pipeline, rate-limit cleanup, shared Redis pooling.
95
+ - **Security** &mdash; hardcoded salt removed, command injection fix, template injection prevention, ANSI escape protection, input validation hardening.
74
96
 
75
97
  ---
76
98
 
@@ -132,7 +154,7 @@ You: "Set up 3 agents: backend, frontend, QA. Backend works on the API, frontend
132
154
 
133
155
  | Capability | Description |
134
156
  |:-----------|:------------|
135
- | **103 MCP Tools** | Code review, refactoring, testing, git, file management, AST editing, memory, checkpoints, kanban |
157
+ | **119 MCP Tools** | Code review, refactoring, testing, git, file management, AST editing, memory, checkpoints, kanban, task comments, pipelines |
136
158
  | **7 LLM Providers** | Native SDKs for OpenAI (GPT-5), Anthropic (Claude 4.5), Gemini (Gemini 3) + OpenAI-compatible for Groq, DeepSeek, Ollama, OpenRouter |
137
159
  | **Multi-Agent** | Agents connect via HTTP, share context through Redis Pub/Sub, coordinate via kanban boards |
138
160
  | **Parallel Multi-Model** | Send one prompt to N models simultaneously; CEO-and-Board consensus pattern |
@@ -351,7 +373,7 @@ ai-config --action test
351
373
 
352
374
  ## Tool Reference
353
375
 
354
- > **103 tools** across 20 categories.
376
+ > **119 tools** across 20 categories.
355
377
 
356
378
  | Category | # | Tools |
357
379
  |:---------|:-:|:------|
@@ -361,15 +383,16 @@ ai-config --action test
361
383
  | **Line Editing** | 4 | `insert-at-line` `delete-lines` `replace-lines` `replace-content` |
362
384
  | **Symbol Editing** | 3 | `insert-before-symbol` `insert-after-symbol` `rename-symbol` |
363
385
  | **Code Modification** | 5 | `fix-bug` `refactor` `auto-fix` `auto-fix-agent` `write-tests` |
364
- | **Project Memory** | 7 | `write-memory` `read-memory` `list-memories` `edit-memory` `delete-memory` `checkpoint-save` `checkpoint-restore` |
365
- | **Git** | 5 | `git-status` `git-diff` `git-log` `git-blame` `git-branch` |
366
- | **File Operations** | 5 | `file-read` `file-write` `file-search` `file-tree` `file-diff` |
386
+ | **Project Memory** | 8 | `write-memory` `read-memory` `list-memories` `edit-memory` `delete-memory` `checkpoint-save` `checkpoint-restore` `checkpoint-diff` |
387
+ | **Git** | 8 | `git-status` `git-diff` `git-log` `git-blame` `git-branch` `git-add` `git-commit` `git-stash` |
388
+ | **File Operations** | 9 | `file-read` `file-write` `file-search` `file-tree` `file-diff` `file-delete` `file-move` `file-copy` `file-backup-restore` |
367
389
  | **Project** | 5 | `project-info` `run-script` `run-tests` `run-lint` `check-types` |
368
- | **Kanban &mdash; Tasks** | 7 | `task-create` `task-list` `task-update` `task-claim` `task-assign` `task-push-multi` `board-status` |
369
- | **Kanban &mdash; Workspaces** | 4 | `workspace-create` `workspace-list` `workspace-join` `workspace-leave` |
370
- | **Kanban &mdash; Boards** | 5 | `board-create` `board-list` `board-share` `board-members` `board-invite` |
390
+ | **Kanban &mdash; Tasks** | 10 | `task-create` `task-get` `task-list` `task-update` `task-delete` `task-comment` `task-claim` `task-assign` `task-push-multi` `board-status` |
391
+ | **Kanban &mdash; Workspaces** | 5 | `workspace-create` `workspace-list` `workspace-join` `workspace-leave` `workspace-delete` |
392
+ | **Kanban &mdash; Boards** | 6 | `board-create` `board-list` `board-share` `board-members` `board-invite` `board-delete` |
371
393
  | **Recursive** | 3 | `invoke-tool` `invoke-batch` `invocation-log` |
372
394
  | **Multi-Agent** | 13 | `agent-list` `agent-register` `agent-watch` `agent-alert` `agent-inject` `agent-history` `monitor` `agent-summary` `queue-message` `shared-thoughts` `get-shared-context` `feedback` `batch` |
395
+ | **Orchestration** | 1 | `pipeline` |
373
396
  | **Session** | 5 | `session-list` `session-info` `session-create` `session-switch` `session-delete` |
374
397
  | **MPC Security** | 4 | `mpc-split` `mpc-distribute` `mpc-reconstruct` `mpc-status` |
375
398
  | **RL Learning** | 2 | `rl-reward-stats` `rl-dopamine-log` |
@@ -387,7 +410,7 @@ ai-config --action test
387
410
  | **Clients** | Claude Code, Cursor, KiroCode, RooCode | Connect via SSE + JSON-RPC (MCP Protocol) |
388
411
  | **HTTP Server** | `:3100` (Bun or Node.js) | Routes: `/sse`, `/message`, `/resume`, `/stream` |
389
412
  | **Session Manager** | Per-client isolation | CWD injection, activity tracking, `/resume` for post-compaction recovery, SSE keep-alive |
390
- | **Tool Registry** | 103 tools, 20 categories | Zod schema validation, auto JSON Schema generation, runtime registration with `tools/list_changed` broadcast |
413
+ | **Tool Registry** | 119 tools, 20 categories | Zod schema validation, auto JSON Schema generation, runtime registration with `tools/list_changed` broadcast, full metadata (category, tags, examples, relatedTools) |
391
414
  | **Provider Registry** | 7 LLM providers | OpenAI, Anthropic, Gemini (native SDKs) + Groq, DeepSeek, Ollama, OpenRouter (OpenAI-compatible). Lazy init, hot-reload, unified thinking tokens |
392
415
  | **Tree-sitter AST** | 19 languages | WASM parsers, symbol navigation, rename, insert before/after, indentation detection |
393
416
  | **Runtime Abstraction** | Bun / Node.js | Auto-detection at startup. Unified HTTP (`Bun.serve` / `node:http`), process spawning (`Bun.spawn` / `child_process`) |
@@ -436,10 +459,11 @@ ai-config --action test
436
459
  | | `storage.ts` | Redis-based shared context store (DB 2) |
437
460
  | | `feedback-loop.ts` | Learning from iteration results |
438
461
  | | `iteration-tracker.ts` | Track fix attempts per issue |
439
- | `src/kanban/` | `kanban-store.ts` | Task CRUD with Redis `hset`/`hgetall` persistence |
462
+ | `src/kanban/` | `kanban-store.ts` | Task CRUD with Redis `hset`/`hgetall` persistence, task notes |
440
463
  | | `workspace-store.ts` | Workspace CRUD operations |
441
464
  | | `board-store.ts` | Board management and membership |
442
465
  | | `membership-store.ts` | Role-based access: owner / admin / member / viewer |
466
+ | | `resolvers.ts` | Auto-sessionId injection, board/workspace name-to-ID resolution |
443
467
  | | `migration.ts` | Lazy migration to multi-board schema |
444
468
  | `src/recursive/` | `tool-invoker.ts` | Safe recursive tool calls: max depth 2, rate-limited, parallel isolation |
445
469
  | `src/tree-sitter/` | `parser-manager.ts` | WASM parser lifecycle for 19 languages |
@@ -447,15 +471,16 @@ ai-config --action test
447
471
  | `src/session/` | `manager.ts` | Session create / destroy / cleanup lifecycle |
448
472
  | | `cwd-resolver.ts` | Project path resolution priority chain |
449
473
  | `src/tools/` | `registry.ts` | `UnifiedTool` interface, Zod &rarr; JSON Schema, broadcast on register |
450
- | | `index.ts` | Central tool registration (103 tools) |
474
+ | | `index.ts` | Central tool registration (119 tools) |
475
+ | | `pipeline.tool.ts` | Sequential tool execution with `{{stepId.result}}` interpolation |
451
476
  | `src/tools/agents/` | 9 tools | `agent-register`, `agent-watch`, `agent-alert`, `agent-inject`, `monitor`, `agent-summary`, `queue-message`, `agent-list`, `agent-history` |
452
477
  | `src/tools/code/` | 8 tools | `find-definition`, `find-references`, `find-symbols`, `code-outline`, `insert-before-symbol`, `insert-after-symbol`, `rename-symbol`, `semantic-search` |
453
478
  | `src/tools/context/` | 4 tools | `shared-thoughts`, `get-shared-context`, `feedback`, `batch` |
454
479
  | `src/tools/edit/` | 4 tools | `insert-at-line`, `delete-lines`, `replace-lines`, `replace-content` |
455
- | `src/tools/file/` | 5 tools | `file-read`, `file-write`, `file-search`, `file-tree`, `file-diff` |
456
- | `src/tools/git/` | 5 tools | `git-status`, `git-diff`, `git-log`, `git-blame`, `git-branch` |
457
- | `src/tools/kanban/` | 16 tools | Tasks (7), boards (5), workspaces (4) |
458
- | `src/tools/memory/` | 7 tools | `write-memory`, `read-memory`, `list-memories`, `edit-memory`, `delete-memory`, `checkpoint-save`, `checkpoint-restore` |
480
+ | `src/tools/file/` | 9 tools | `file-read`, `file-write`, `file-search`, `file-tree`, `file-diff`, `file-delete`, `file-move`, `file-copy`, `file-backup-restore` |
481
+ | `src/tools/git/` | 8 tools | `git-status`, `git-diff`, `git-log`, `git-blame`, `git-branch`, `git-add`, `git-commit`, `git-stash` |
482
+ | `src/tools/kanban/` | 21 tools | Tasks (10), boards (6), workspaces (5) |
483
+ | `src/tools/memory/` | 8 tools | `write-memory`, `read-memory`, `list-memories`, `edit-memory`, `delete-memory`, `checkpoint-save`, `checkpoint-restore`, `checkpoint-diff` |
459
484
  | `src/tools/multi-llm/` | 2 tools | `multi-prompt`, `consensus-prompt` |
460
485
  | `src/tools/project/` | 5 tools | `project-info`, `run-script`, `run-tests`, `run-lint`, `check-types` |
461
486
  | `src/tools/recursive/` | 3 tools | `invoke-tool`, `invoke-batch`, `invocation-log` |
@@ -557,7 +582,7 @@ task-create --tasks '[
557
582
  task-push-multi --taskIds '["t-1","t-2"]' --agents '["agent-1"]' --mode assign
558
583
  ```
559
584
 
560
- **Features:** workspaces &bull; multiple boards &bull; owner / admin / member / viewer roles &bull; batch create / update (1-20 per call) &bull; assign / clone / notify distribution modes
585
+ **Features:** workspaces &bull; multiple boards &bull; owner / admin / member / viewer roles &bull; batch create / update / delete (1-20 per call) &bull; assign / clone / notify distribution modes &bull; append-only task comments &bull; auto-sessionId &bull; board/workspace name lookup
561
586
 
562
587
  ---
563
588
 
package/dist/version.d.ts CHANGED
@@ -13,5 +13,5 @@
13
13
  *
14
14
  * @module version
15
15
  */
16
- export declare const VERSION = "1.20.0";
16
+ export declare const VERSION = "1.20.1";
17
17
  //# sourceMappingURL=version.d.ts.map
package/dist/version.js CHANGED
@@ -13,5 +13,5 @@
13
13
  *
14
14
  * @module version
15
15
  */
16
- export const VERSION = '1.20.0';
16
+ export const VERSION = '1.20.1';
17
17
  //# sourceMappingURL=version.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "kemdicode-mcp",
3
- "version": "1.20.0",
3
+ "version": "1.20.1",
4
4
  "description": "Model Context Protocol (MCP) server with 100+ tools for code analysis, AI agents, git operations, multi-agent coordination, and kanban task management",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",