kemdicode-mcp 1.20.0 → 1.21.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/README.md +46 -38
- package/dist/thinking/index.d.ts +20 -0
- package/dist/thinking/index.d.ts.map +1 -0
- package/dist/thinking/index.js +12 -0
- package/dist/thinking/index.js.map +1 -0
- package/dist/thinking/thinking-store.d.ts +79 -0
- package/dist/thinking/thinking-store.d.ts.map +1 -0
- package/dist/thinking/thinking-store.js +304 -0
- package/dist/thinking/thinking-store.js.map +1 -0
- package/dist/thinking/types.d.ts +91 -0
- package/dist/thinking/types.d.ts.map +1 -0
- package/dist/thinking/types.js +31 -0
- package/dist/thinking/types.js.map +1 -0
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +3 -0
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/registry.d.ts +1 -1
- package/dist/tools/registry.d.ts.map +1 -1
- package/dist/tools/registry.js.map +1 -1
- package/dist/tools/thinking/index.d.ts +11 -0
- package/dist/tools/thinking/index.d.ts.map +1 -0
- package/dist/tools/thinking/index.js +11 -0
- package/dist/tools/thinking/index.js.map +1 -0
- package/dist/tools/thinking/thinking-chain.tool.d.ts +20 -0
- package/dist/tools/thinking/thinking-chain.tool.d.ts.map +1 -0
- package/dist/tools/thinking/thinking-chain.tool.js +378 -0
- package/dist/tools/thinking/thinking-chain.tool.js.map +1 -0
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,378 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* KemdiCode MCP Server
|
|
3
|
+
* Copyright (C) 2025-2026 Kemdi Sp. z o.o.
|
|
4
|
+
*
|
|
5
|
+
* This program is free software: you can redistribute it and/or modify
|
|
6
|
+
* it under the terms of the GNU General Public License as published by
|
|
7
|
+
* the Free Software Foundation, either version 3 of the License, or
|
|
8
|
+
* (at your option) any later version.
|
|
9
|
+
*
|
|
10
|
+
* This program is distributed in the hope that it will be useful,
|
|
11
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
12
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
13
|
+
* GNU General Public License for more details.
|
|
14
|
+
*
|
|
15
|
+
* You should have received a copy of the GNU General Public License
|
|
16
|
+
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
17
|
+
*/
|
|
18
|
+
/**
|
|
19
|
+
* Thinking Chain Tool
|
|
20
|
+
*
|
|
21
|
+
* Registers and embeds chains of thought with branching support.
|
|
22
|
+
* Forward-only constraint: cannot backtrack until ≥90% confidence
|
|
23
|
+
* or revising the latest thought.
|
|
24
|
+
*
|
|
25
|
+
* @module tools/thinking/thinking-chain
|
|
26
|
+
*/
|
|
27
|
+
import { z } from 'zod';
|
|
28
|
+
import { Logger } from '../../utils/logger.js';
|
|
29
|
+
import { checkRateLimit } from '../../utils/validation.js';
|
|
30
|
+
import { resolveSessionId } from '../../kanban/resolvers.js';
|
|
31
|
+
import { createChain, getChain, addThought, reviseThought, branchChain, concludeChain, listChains, } from '../../thinking/index.js';
|
|
32
|
+
// --- Sub-schemas for each action ---
|
|
33
|
+
const startSchema = z.object({
|
|
34
|
+
action: z.literal('start'),
|
|
35
|
+
title: z.string().min(1).max(200).describe('Title for the thinking chain'),
|
|
36
|
+
agentId: z.string().min(1).max(100).describe('Agent ID'),
|
|
37
|
+
sessionId: z.string().optional().describe('Session ID (auto-resolved if omitted)'),
|
|
38
|
+
content: z.string().min(1).max(10000).describe('First thought content'),
|
|
39
|
+
confidence: z.number().min(0).max(100).describe('Confidence level (0-100%)'),
|
|
40
|
+
reasoning: z.string().max(2000).optional().describe('Reasoning for this confidence'),
|
|
41
|
+
tags: z.array(z.string().max(50)).max(10).optional().describe('Tags for categorization'),
|
|
42
|
+
});
|
|
43
|
+
const thinkSchema = z.object({
|
|
44
|
+
action: z.literal('think'),
|
|
45
|
+
chainId: z.string().min(1).describe('Chain ID to add thought to'),
|
|
46
|
+
content: z.string().min(1).max(10000).describe('Thought content'),
|
|
47
|
+
confidence: z.number().min(0).max(100).describe('Confidence level (0-100%)'),
|
|
48
|
+
reasoning: z.string().max(2000).optional().describe('Reasoning for this confidence'),
|
|
49
|
+
});
|
|
50
|
+
const branchSchema = z.object({
|
|
51
|
+
action: z.literal('branch'),
|
|
52
|
+
chainId: z.string().min(1).describe('Source chain ID to branch from'),
|
|
53
|
+
thoughtIndex: z.number().int().min(0).describe('Thought index to branch from'),
|
|
54
|
+
title: z.string().min(1).max(200).describe('Title for the new branch'),
|
|
55
|
+
content: z.string().min(1).max(10000).describe('First thought in the new branch'),
|
|
56
|
+
confidence: z.number().min(0).max(100).describe('Confidence level (0-100%)'),
|
|
57
|
+
reasoning: z.string().max(2000).optional().describe('Reasoning for this confidence'),
|
|
58
|
+
});
|
|
59
|
+
const reviseSchema = z.object({
|
|
60
|
+
action: z.literal('revise'),
|
|
61
|
+
chainId: z.string().min(1).describe('Chain ID'),
|
|
62
|
+
thoughtIndex: z.number().int().min(0).describe('Index of thought to revise'),
|
|
63
|
+
content: z.string().min(1).max(10000).describe('Revised thought content'),
|
|
64
|
+
confidence: z.number().min(0).max(100).describe('New confidence level (0-100%)'),
|
|
65
|
+
reasoning: z.string().max(2000).optional().describe('Reasoning for revision'),
|
|
66
|
+
});
|
|
67
|
+
const concludeSchema = z.object({
|
|
68
|
+
action: z.literal('conclude'),
|
|
69
|
+
chainId: z.string().min(1).describe('Chain ID to conclude'),
|
|
70
|
+
conclusion: z.string().min(1).max(10000).describe('Final conclusion'),
|
|
71
|
+
});
|
|
72
|
+
const getSchema = z.object({
|
|
73
|
+
action: z.literal('get'),
|
|
74
|
+
chainId: z.string().min(1).describe('Chain ID to retrieve'),
|
|
75
|
+
});
|
|
76
|
+
const listSchema = z.object({
|
|
77
|
+
action: z.literal('list'),
|
|
78
|
+
sessionId: z.string().optional().describe('Filter by session (auto-resolved if omitted)'),
|
|
79
|
+
agentId: z.string().optional().describe('Filter by agent'),
|
|
80
|
+
status: z.enum(['active', 'concluded', 'abandoned']).optional().describe('Filter by status'),
|
|
81
|
+
limit: z.number().int().min(1).max(50).optional().describe('Max results (default: 20)'),
|
|
82
|
+
});
|
|
83
|
+
const schema = z.discriminatedUnion('action', [
|
|
84
|
+
startSchema,
|
|
85
|
+
thinkSchema,
|
|
86
|
+
branchSchema,
|
|
87
|
+
reviseSchema,
|
|
88
|
+
concludeSchema,
|
|
89
|
+
getSchema,
|
|
90
|
+
listSchema,
|
|
91
|
+
]);
|
|
92
|
+
/**
|
|
93
|
+
* Format a chain for display with box-drawing characters
|
|
94
|
+
*/
|
|
95
|
+
function formatChainDisplay(chain) {
|
|
96
|
+
const lines = [];
|
|
97
|
+
const w = 72;
|
|
98
|
+
const hr = '─'.repeat(w);
|
|
99
|
+
lines.push(`┌${hr}┐`);
|
|
100
|
+
lines.push(`│ ${'THINKING CHAIN'.padEnd(w - 1)}│`);
|
|
101
|
+
lines.push(`├${hr}┤`);
|
|
102
|
+
lines.push(`│ ${'ID:'.padEnd(12)}${chain.id.padEnd(w - 13)}│`);
|
|
103
|
+
lines.push(`│ ${'Title:'.padEnd(12)}${chain.title.substring(0, w - 13).padEnd(w - 13)}│`);
|
|
104
|
+
lines.push(`│ ${'Agent:'.padEnd(12)}${chain.agentId.padEnd(w - 13)}│`);
|
|
105
|
+
lines.push(`│ ${'Status:'.padEnd(12)}${chain.status.toUpperCase().padEnd(w - 13)}│`);
|
|
106
|
+
lines.push(`│ ${'Thoughts:'.padEnd(12)}${String(chain.thoughts.length).padEnd(w - 13)}│`);
|
|
107
|
+
if (chain.parentChainId) {
|
|
108
|
+
lines.push(`│ ${'Branched:'.padEnd(12)}${(`from ${chain.parentChainId} #${chain.parentThoughtIndex}`).substring(0, w - 13).padEnd(w - 13)}│`);
|
|
109
|
+
}
|
|
110
|
+
if (chain.tags.length > 0) {
|
|
111
|
+
lines.push(`│ ${'Tags:'.padEnd(12)}${chain.tags.join(', ').substring(0, w - 13).padEnd(w - 13)}│`);
|
|
112
|
+
}
|
|
113
|
+
lines.push(`├${hr}┤`);
|
|
114
|
+
for (const thought of chain.thoughts) {
|
|
115
|
+
const prefix = thought.revisedFrom !== undefined
|
|
116
|
+
? ` [REVISION of #${thought.revisedFrom}]`
|
|
117
|
+
: '';
|
|
118
|
+
const conf = `${thought.confidence}%`;
|
|
119
|
+
const branchInfo = thought.branches && thought.branches.length > 0
|
|
120
|
+
? ` [${thought.branches.length} branch(es)]`
|
|
121
|
+
: '';
|
|
122
|
+
lines.push(`│ ${'#' + thought.index} [${conf}]${prefix}${branchInfo}`.padEnd(w) + ' │');
|
|
123
|
+
// Wrap content to fit
|
|
124
|
+
const contentLines = wrapText(thought.content, w - 6);
|
|
125
|
+
for (const cl of contentLines) {
|
|
126
|
+
lines.push(`│ ${cl.padEnd(w - 3)}│`);
|
|
127
|
+
}
|
|
128
|
+
if (thought.reasoning) {
|
|
129
|
+
const reasonLines = wrapText(`Reasoning: ${thought.reasoning}`, w - 6);
|
|
130
|
+
for (const rl of reasonLines) {
|
|
131
|
+
lines.push(`│ ${rl.padEnd(w - 3)}│`);
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
if (thought.index < chain.thoughts.length - 1) {
|
|
135
|
+
lines.push(`│${' │'.padEnd(w)} │`);
|
|
136
|
+
lines.push(`│${' ▼'.padEnd(w)} │`);
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
if (chain.conclusion) {
|
|
140
|
+
lines.push(`├${hr}┤`);
|
|
141
|
+
lines.push(`│ ${'CONCLUSION:'.padEnd(w - 1)}│`);
|
|
142
|
+
const conclusionLines = wrapText(chain.conclusion, w - 4);
|
|
143
|
+
for (const cl of conclusionLines) {
|
|
144
|
+
lines.push(`│ ${cl.padEnd(w - 2)}│`);
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
lines.push(`└${hr}┘`);
|
|
148
|
+
return lines.join('\n');
|
|
149
|
+
}
|
|
150
|
+
/**
|
|
151
|
+
* Wrap text to a maximum line width
|
|
152
|
+
*/
|
|
153
|
+
function wrapText(text, maxWidth) {
|
|
154
|
+
const words = text.split(/\s+/);
|
|
155
|
+
const lines = [];
|
|
156
|
+
let currentLine = '';
|
|
157
|
+
for (const word of words) {
|
|
158
|
+
if (currentLine.length + word.length + 1 > maxWidth) {
|
|
159
|
+
if (currentLine)
|
|
160
|
+
lines.push(currentLine);
|
|
161
|
+
currentLine = word;
|
|
162
|
+
}
|
|
163
|
+
else {
|
|
164
|
+
currentLine = currentLine ? `${currentLine} ${word}` : word;
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
if (currentLine)
|
|
168
|
+
lines.push(currentLine);
|
|
169
|
+
return lines.length > 0 ? lines : [''];
|
|
170
|
+
}
|
|
171
|
+
export const thinkingChainTool = {
|
|
172
|
+
name: 'thinking-chain',
|
|
173
|
+
description: 'Register and manage chains of thought with branching. Forward-only: cannot backtrack until ≥90% confidence or at last thought. Actions: start, think, branch, revise, conclude, get, list.',
|
|
174
|
+
zodSchema: schema,
|
|
175
|
+
metadata: {
|
|
176
|
+
category: 'thinking',
|
|
177
|
+
tags: ['thinking', 'reasoning', 'chain-of-thought', 'branching', 'confidence'],
|
|
178
|
+
examples: [
|
|
179
|
+
{
|
|
180
|
+
args: {
|
|
181
|
+
action: 'start',
|
|
182
|
+
title: 'Debug authentication issue',
|
|
183
|
+
agentId: 'agent-1',
|
|
184
|
+
content: 'The login fails with 401. First hypothesis: token expiration.',
|
|
185
|
+
confidence: 40,
|
|
186
|
+
reasoning: 'Multiple possible causes, starting with most common',
|
|
187
|
+
},
|
|
188
|
+
description: 'Start a new thinking chain',
|
|
189
|
+
},
|
|
190
|
+
{
|
|
191
|
+
args: {
|
|
192
|
+
action: 'think',
|
|
193
|
+
chainId: 'chain_123',
|
|
194
|
+
content: 'Confirmed: token expires after 1h but refresh is not called. Need to add refresh logic.',
|
|
195
|
+
confidence: 85,
|
|
196
|
+
reasoning: 'Logs show expired token in 90% of failed requests',
|
|
197
|
+
},
|
|
198
|
+
description: 'Add next thought to chain',
|
|
199
|
+
},
|
|
200
|
+
{
|
|
201
|
+
args: {
|
|
202
|
+
action: 'branch',
|
|
203
|
+
chainId: 'chain_123',
|
|
204
|
+
thoughtIndex: 0,
|
|
205
|
+
title: 'Alternative: CORS issue',
|
|
206
|
+
content: 'Could also be CORS blocking the auth header.',
|
|
207
|
+
confidence: 25,
|
|
208
|
+
},
|
|
209
|
+
description: 'Branch from a thought to explore alternative',
|
|
210
|
+
},
|
|
211
|
+
{
|
|
212
|
+
args: {
|
|
213
|
+
action: 'revise',
|
|
214
|
+
chainId: 'chain_123',
|
|
215
|
+
thoughtIndex: 0,
|
|
216
|
+
content: 'Revised: not just token expiration but also missing refresh token in storage.',
|
|
217
|
+
confidence: 92,
|
|
218
|
+
},
|
|
219
|
+
description: 'Revise earlier thought (only when confidence ≥90%)',
|
|
220
|
+
},
|
|
221
|
+
{
|
|
222
|
+
args: {
|
|
223
|
+
action: 'conclude',
|
|
224
|
+
chainId: 'chain_123',
|
|
225
|
+
conclusion: 'Root cause: refresh token not persisted. Fix: save refresh token to localStorage on login.',
|
|
226
|
+
},
|
|
227
|
+
description: 'Conclude the chain with final answer',
|
|
228
|
+
},
|
|
229
|
+
],
|
|
230
|
+
relatedTools: ['graph-query', 'loci-recall', 'shared-thoughts', 'write-memory'],
|
|
231
|
+
},
|
|
232
|
+
execute: async (args) => {
|
|
233
|
+
const input = args;
|
|
234
|
+
if (!checkRateLimit('thinking-chain', { maxRequests: 60, windowMs: 60000 })) {
|
|
235
|
+
return JSON.stringify({
|
|
236
|
+
success: false,
|
|
237
|
+
error: 'Rate limit exceeded for thinking-chain operations',
|
|
238
|
+
code: 'RATE_LIMIT_EXCEEDED',
|
|
239
|
+
});
|
|
240
|
+
}
|
|
241
|
+
try {
|
|
242
|
+
switch (input.action) {
|
|
243
|
+
case 'start': {
|
|
244
|
+
const sessionId = input.sessionId || resolveSessionId();
|
|
245
|
+
const chain = await createChain({
|
|
246
|
+
title: input.title,
|
|
247
|
+
agentId: input.agentId,
|
|
248
|
+
sessionId,
|
|
249
|
+
content: input.content,
|
|
250
|
+
confidence: input.confidence,
|
|
251
|
+
reasoning: input.reasoning,
|
|
252
|
+
tags: input.tags,
|
|
253
|
+
});
|
|
254
|
+
Logger.debug(`thinking-chain: started chain ${chain.id}`);
|
|
255
|
+
return JSON.stringify({
|
|
256
|
+
success: true,
|
|
257
|
+
chainId: chain.id,
|
|
258
|
+
title: chain.title,
|
|
259
|
+
thoughtCount: 1,
|
|
260
|
+
currentConfidence: chain.thoughts[0].confidence,
|
|
261
|
+
});
|
|
262
|
+
}
|
|
263
|
+
case 'think': {
|
|
264
|
+
const thought = await addThought(input.chainId, {
|
|
265
|
+
content: input.content,
|
|
266
|
+
confidence: input.confidence,
|
|
267
|
+
reasoning: input.reasoning,
|
|
268
|
+
});
|
|
269
|
+
Logger.debug(`thinking-chain: added thought #${thought.index} to ${input.chainId}`);
|
|
270
|
+
return JSON.stringify({
|
|
271
|
+
success: true,
|
|
272
|
+
chainId: input.chainId,
|
|
273
|
+
thoughtIndex: thought.index,
|
|
274
|
+
confidence: thought.confidence,
|
|
275
|
+
canReviseEarlier: thought.confidence >= 90,
|
|
276
|
+
});
|
|
277
|
+
}
|
|
278
|
+
case 'branch': {
|
|
279
|
+
const newChain = await branchChain({
|
|
280
|
+
sourceChainId: input.chainId,
|
|
281
|
+
thoughtIndex: input.thoughtIndex,
|
|
282
|
+
title: input.title,
|
|
283
|
+
content: input.content,
|
|
284
|
+
confidence: input.confidence,
|
|
285
|
+
reasoning: input.reasoning,
|
|
286
|
+
});
|
|
287
|
+
Logger.debug(`thinking-chain: branched ${newChain.id} from ${input.chainId}#${input.thoughtIndex}`);
|
|
288
|
+
return JSON.stringify({
|
|
289
|
+
success: true,
|
|
290
|
+
newChainId: newChain.id,
|
|
291
|
+
parentChainId: input.chainId,
|
|
292
|
+
branchedFromThought: input.thoughtIndex,
|
|
293
|
+
title: newChain.title,
|
|
294
|
+
});
|
|
295
|
+
}
|
|
296
|
+
case 'revise': {
|
|
297
|
+
const revised = await reviseThought(input.chainId, {
|
|
298
|
+
thoughtIndex: input.thoughtIndex,
|
|
299
|
+
content: input.content,
|
|
300
|
+
confidence: input.confidence,
|
|
301
|
+
reasoning: input.reasoning,
|
|
302
|
+
});
|
|
303
|
+
Logger.debug(`thinking-chain: revised thought #${input.thoughtIndex} in ${input.chainId} -> #${revised.index}`);
|
|
304
|
+
return JSON.stringify({
|
|
305
|
+
success: true,
|
|
306
|
+
chainId: input.chainId,
|
|
307
|
+
revisedThought: input.thoughtIndex,
|
|
308
|
+
newThoughtIndex: revised.index,
|
|
309
|
+
confidence: revised.confidence,
|
|
310
|
+
});
|
|
311
|
+
}
|
|
312
|
+
case 'conclude': {
|
|
313
|
+
const concluded = await concludeChain(input.chainId, input.conclusion);
|
|
314
|
+
Logger.debug(`thinking-chain: concluded chain ${input.chainId}`);
|
|
315
|
+
const finalConfidence = concluded.thoughts.length > 0
|
|
316
|
+
? concluded.thoughts[concluded.thoughts.length - 1].confidence
|
|
317
|
+
: 0;
|
|
318
|
+
return JSON.stringify({
|
|
319
|
+
success: true,
|
|
320
|
+
chainId: input.chainId,
|
|
321
|
+
status: 'concluded',
|
|
322
|
+
thoughtCount: concluded.thoughts.length,
|
|
323
|
+
finalConfidence,
|
|
324
|
+
});
|
|
325
|
+
}
|
|
326
|
+
case 'get': {
|
|
327
|
+
const chain = await getChain(input.chainId);
|
|
328
|
+
if (!chain) {
|
|
329
|
+
return JSON.stringify({
|
|
330
|
+
success: false,
|
|
331
|
+
error: `Chain not found: ${input.chainId}`,
|
|
332
|
+
code: 'NOT_FOUND',
|
|
333
|
+
});
|
|
334
|
+
}
|
|
335
|
+
return formatChainDisplay(chain);
|
|
336
|
+
}
|
|
337
|
+
case 'list': {
|
|
338
|
+
const sessionId = input.sessionId || (input.agentId ? undefined : resolveSessionId());
|
|
339
|
+
const chains = await listChains({
|
|
340
|
+
sessionId,
|
|
341
|
+
agentId: input.agentId,
|
|
342
|
+
status: input.status,
|
|
343
|
+
limit: input.limit,
|
|
344
|
+
});
|
|
345
|
+
return JSON.stringify({
|
|
346
|
+
success: true,
|
|
347
|
+
count: chains.length,
|
|
348
|
+
chains: chains.map((c) => ({
|
|
349
|
+
id: c.id,
|
|
350
|
+
title: c.title,
|
|
351
|
+
agentId: c.agentId,
|
|
352
|
+
status: c.status,
|
|
353
|
+
thoughtCount: c.thoughts.length,
|
|
354
|
+
latestConfidence: c.thoughts.length > 0 ? c.thoughts[c.thoughts.length - 1].confidence : 0,
|
|
355
|
+
parentChainId: c.parentChainId,
|
|
356
|
+
tags: c.tags,
|
|
357
|
+
updatedAt: new Date(c.updatedAt).toISOString(),
|
|
358
|
+
})),
|
|
359
|
+
});
|
|
360
|
+
}
|
|
361
|
+
default:
|
|
362
|
+
return JSON.stringify({
|
|
363
|
+
success: false,
|
|
364
|
+
error: `Unknown action: ${input.action}`,
|
|
365
|
+
code: 'INVALID_ACTION',
|
|
366
|
+
});
|
|
367
|
+
}
|
|
368
|
+
}
|
|
369
|
+
catch (error) {
|
|
370
|
+
return JSON.stringify({
|
|
371
|
+
success: false,
|
|
372
|
+
error: error instanceof Error ? error.message : String(error),
|
|
373
|
+
code: 'EXECUTION_ERROR',
|
|
374
|
+
});
|
|
375
|
+
}
|
|
376
|
+
},
|
|
377
|
+
};
|
|
378
|
+
//# sourceMappingURL=thinking-chain.tool.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"thinking-chain.tool.js","sourceRoot":"","sources":["../../../src/tools/thinking/thinking-chain.tool.ts"],"names":[],"mappings":"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"}
|
package/dist/version.d.ts
CHANGED
package/dist/version.js
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "kemdicode-mcp",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.21.0",
|
|
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",
|