mcp-probe-kit 3.0.22 → 3.0.23
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 +8 -10
- package/build/index.js +1 -5
- package/build/lib/memory-orchestration.d.ts +1 -0
- package/build/lib/memory-orchestration.js +21 -0
- package/build/schemas/index.d.ts +0 -48
- package/build/schemas/memory-tools.d.ts +0 -48
- package/build/schemas/memory-tools.js +0 -29
- package/build/tools/__tests__/cursor-history.unit.test.js +0 -49
- package/build/tools/__tests__/search_memory.unit.test.d.ts +1 -0
- package/build/tools/__tests__/search_memory.unit.test.js +83 -0
- package/build/tools/index.d.ts +0 -2
- package/build/tools/index.js +0 -2
- package/build/tools/search_memory.js +3 -2
- package/docs/data/tools.js +1 -33
- package/docs/i18n/all-tools/en.json +4 -14
- package/docs/i18n/all-tools/ja.json +3 -5
- package/docs/i18n/all-tools/ko.json +3 -5
- package/docs/i18n/all-tools/zh-CN.json +4 -14
- package/docs/i18n/en.json +10 -10
- package/docs/i18n/ja.json +9 -9
- package/docs/i18n/ko.json +9 -9
- package/docs/i18n/zh-CN.json +10 -10
- package/docs/pages/all-tools.html +4 -4
- package/docs/pages/examples.html +2 -2
- package/docs/pages/getting-started.html +1 -1
- package/docs/pages/migration.html +2 -2
- package/package.json +2 -2
- package/build/tools/cursor_list_conversations.d.ts +0 -7
- package/build/tools/cursor_list_conversations.js +0 -35
- package/build/tools/cursor_search_conversations.d.ts +0 -7
- package/build/tools/cursor_search_conversations.js +0 -36
package/README.md
CHANGED
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
|
|
16
16
|
> **Talk is cheap, show me the Context.**
|
|
17
17
|
>
|
|
18
|
-
> mcp-probe-kit is a protocol-level toolkit designed for developers who want AI to truly understand their project's intent. It's not just a collection of
|
|
18
|
+
> mcp-probe-kit is a protocol-level toolkit designed for developers who want AI to truly understand their project's intent. It's not just a collection of 27 tools—it's a context-aware system that helps AI agents grasp what you're building.
|
|
19
19
|
|
|
20
20
|
**Languages**: [English](README.md) | [简体中文](i18n/README.zh-CN.md) | [日本語](i18n/README.ja-JP.md) | [한국어](i18n/README.ko-KR.md) | [Español](i18n/README.es-ES.md) | [Français](i18n/README.fr-FR.md) | [Deutsch](i18n/README.de-DE.md) | [Português (BR)](i18n/README.pt-BR.md)
|
|
21
21
|
|
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
|
|
27
27
|
> 🚀 AI-Powered Complete Development Toolkit - Covering the Entire Development Lifecycle
|
|
28
28
|
|
|
29
|
-
A powerful MCP (Model Context Protocol) server providing **
|
|
29
|
+
A powerful MCP (Model Context Protocol) server providing **27 tools** covering the complete workflow from product analysis to final release (Requirements → Design → Development → Quality → Release), all tools support **structured output**.
|
|
30
30
|
|
|
31
31
|
**🎉 v3.0 Major Update**: Streamlined tool count, focus on core competencies, eliminate choice paralysis, let AI do more native work
|
|
32
32
|
|
|
@@ -42,7 +42,7 @@ A powerful MCP (Model Context Protocol) server providing **29 tools** covering t
|
|
|
42
42
|
|
|
43
43
|
- [Quick Start](https://mcp-probe-kit.bytezonex.com/pages/getting-started.html) - Setup in 5 minutes
|
|
44
44
|
- [Local Memory Stack (Qdrant + Nomic Embed)](docs/memory-local-setup.md) - Docker Compose, ports `50008` / `50012`, MCP env
|
|
45
|
-
- [All Tools](https://mcp-probe-kit.bytezonex.com/pages/all-tools.html) - Complete list of
|
|
45
|
+
- [All Tools](https://mcp-probe-kit.bytezonex.com/pages/all-tools.html) - Complete list of 27 tools
|
|
46
46
|
- [Best Practices](https://mcp-probe-kit.bytezonex.com/pages/examples.html) - Full development workflow guide
|
|
47
47
|
- [v3.0 Migration Guide](https://mcp-probe-kit.bytezonex.com/pages/migration.html) - Upgrade from v2.x to v3.0
|
|
48
48
|
|
|
@@ -64,8 +64,8 @@ A powerful MCP (Model Context Protocol) server providing **29 tools** covering t
|
|
|
64
64
|
- `init_project`, `init_project_context`, `add_feature`, `estimate`, `interview`, `ask_user`
|
|
65
65
|
- **🎨 UI/UX Utilities** (3 tools) - Design systems and UI data synchronization
|
|
66
66
|
- `ui_design_system`, `ui_search`, `sync_ui_data`
|
|
67
|
-
- **🧠 Memory & Cursor History** (
|
|
68
|
-
- `search_memory`, `read_memory_asset`, `memorize_asset`, `scan_and_extract_patterns`, `
|
|
67
|
+
- **🧠 Memory & Cursor History** (5 tools) - Reusable asset memory and local Cursor conversation retrieval
|
|
68
|
+
- `search_memory`, `read_memory_asset`, `memorize_asset`, `scan_and_extract_patterns`, `cursor_read_conversation`
|
|
69
69
|
|
|
70
70
|
### 🧠 Code Graph Bridge (GitNexus)
|
|
71
71
|
|
|
@@ -93,14 +93,14 @@ A powerful MCP (Model Context Protocol) server providing **29 tools** covering t
|
|
|
93
93
|
- Embedding service supports two modes:
|
|
94
94
|
- `ollama`
|
|
95
95
|
- `openai-compatible`
|
|
96
|
-
-
|
|
96
|
+
- `cursor_read_conversation` reads the local Cursor database directly through Node.js, without Python bridge
|
|
97
97
|
- Cursor history currently supports:
|
|
98
98
|
- Windows: `%APPDATA%\\Cursor\\User\\globalStorage\\state.vscdb`
|
|
99
99
|
- macOS: `~/Library/Application Support/Cursor/User/globalStorage/state.vscdb`
|
|
100
100
|
- Linux: `~/.config/Cursor/User/globalStorage/state.vscdb`
|
|
101
101
|
|
|
102
102
|
**Memory tools:**
|
|
103
|
-
- `search_memory` - Semantic search across the shared memory pool (optionally prefer `type` / `tags`)
|
|
103
|
+
- `search_memory` - Semantic search across the shared memory pool (optionally prefer `type` / `tags`); returns `id`, `score`, `summary`, and `description` in both text output and `structuredContent` (for MCP clients that only surface `content[0].text`)
|
|
104
104
|
- `memorize_asset` - Persist reusable code/spec/pattern assets into vector memory
|
|
105
105
|
- `read_memory_asset` - Read full asset content by `asset_id`
|
|
106
106
|
- `scan_and_extract_patterns` - Extract reusable patterns from code/file/directory before deciding whether to persist
|
|
@@ -194,8 +194,6 @@ ollama pull nomic-embed-text
|
|
|
194
194
|
```
|
|
195
195
|
|
|
196
196
|
**Cursor history tools:**
|
|
197
|
-
- `cursor_list_conversations` - List recent local Cursor conversations by title/workspace
|
|
198
|
-
- `cursor_search_conversations` - Search local Cursor history by keyword or request id
|
|
199
197
|
- `cursor_read_conversation` - Read a single local Cursor conversation timeline by `composer_id`
|
|
200
198
|
|
|
201
199
|
### 🎯 Structured Output
|
|
@@ -561,7 +559,7 @@ ollama pull nomic-embed-text
|
|
|
561
559
|
|
|
562
560
|
### Cursor History Support
|
|
563
561
|
|
|
564
|
-
|
|
562
|
+
`cursor_read_conversation` does not require Qdrant or embedding configuration.
|
|
565
563
|
|
|
566
564
|
Supported platforms:
|
|
567
565
|
|
package/build/index.js
CHANGED
|
@@ -5,7 +5,7 @@ import { InMemoryTaskMessageQueue, InMemoryTaskStore, } from "@modelcontextproto
|
|
|
5
5
|
import { CallToolRequestSchema, ListToolsRequestSchema, ListResourcesRequestSchema, ProgressNotificationSchema, ReadResourceRequestSchema, } from "@modelcontextprotocol/sdk/types.js";
|
|
6
6
|
import * as fs from "node:fs";
|
|
7
7
|
import * as path from "node:path";
|
|
8
|
-
import { initProject, gencommit, codeReview, codeInsight, gentest, refactor, initProjectContext, addFeature, fixBug, estimate, startFeature, startBugfix, startOnboard, startRalph, interview, askUser, uiDesignSystem, uiSearch, syncUiData, startUi, startProduct, gitWorkReport, searchMemory, readMemoryAsset, memorizeAsset, scanAndExtractPatterns,
|
|
8
|
+
import { initProject, gencommit, codeReview, codeInsight, gentest, refactor, initProjectContext, addFeature, fixBug, estimate, startFeature, startBugfix, startOnboard, startRalph, interview, askUser, uiDesignSystem, uiSearch, syncUiData, startUi, startProduct, gitWorkReport, searchMemory, readMemoryAsset, memorizeAsset, scanAndExtractPatterns, cursorReadConversation } from "./tools/index.js";
|
|
9
9
|
import { VERSION, NAME } from "./version.js";
|
|
10
10
|
import { allToolSchemas } from "./schemas/index.js";
|
|
11
11
|
import { filterTools, getToolsetFromEnv } from "./lib/toolset-manager.js";
|
|
@@ -467,10 +467,6 @@ async function executeTool(name, args, context) {
|
|
|
467
467
|
return await memorizeAsset(args);
|
|
468
468
|
case "scan_and_extract_patterns":
|
|
469
469
|
return await scanAndExtractPatterns(args);
|
|
470
|
-
case "cursor_list_conversations":
|
|
471
|
-
return await cursorListConversations(args);
|
|
472
|
-
case "cursor_search_conversations":
|
|
473
|
-
return await cursorSearchConversations(args);
|
|
474
470
|
case "cursor_read_conversation":
|
|
475
471
|
return await cursorReadConversation(args);
|
|
476
472
|
default:
|
|
@@ -13,6 +13,7 @@ export interface MemoryInjectionContext {
|
|
|
13
13
|
}
|
|
14
14
|
export declare function truncateInjectionText(value: string, maxChars: number): string;
|
|
15
15
|
export declare function loadMemoryInjectionContext(query: string, kind?: MemoryPlanKind): Promise<MemoryInjectionContext>;
|
|
16
|
+
export declare function formatSearchMemoryResultsText(results: MemorySearchResult[], config?: MemoryConfig): string;
|
|
16
17
|
export declare function shouldShowSourceInSearch(item: MemorySearchResult, config?: MemoryConfig): boolean;
|
|
17
18
|
export declare function renderMemoryGuideSection(context: MemoryInjectionContext): string;
|
|
18
19
|
export declare function buildMemoryPlanStep(kind?: MemoryPlanKind): {
|
|
@@ -77,6 +77,27 @@ function formatMemoryResultLabel(item) {
|
|
|
77
77
|
: '历史资产';
|
|
78
78
|
return `${item.name} [${item.type}] (${kind})`;
|
|
79
79
|
}
|
|
80
|
+
export function formatSearchMemoryResultsText(results, config = getMemoryConfig()) {
|
|
81
|
+
if (results.length === 0) {
|
|
82
|
+
return '未找到相关记忆';
|
|
83
|
+
}
|
|
84
|
+
const header = `找到 ${results.length} 条相关记忆`;
|
|
85
|
+
const items = results.map((item, index) => {
|
|
86
|
+
const lines = [
|
|
87
|
+
`${index + 1}. ${item.name} [${item.type}] score=${item.score.toFixed(3)}`,
|
|
88
|
+
` - id: ${item.id}`,
|
|
89
|
+
item.summary ? ` - 摘要: ${item.summary}` : '',
|
|
90
|
+
item.description ? ` - 描述: ${item.description}` : '',
|
|
91
|
+
item.tags.length > 0 ? ` - 标签: ${item.tags.join(', ')}` : '',
|
|
92
|
+
];
|
|
93
|
+
if (shouldShowSourceInSearch(item, config) && item.sourcePath) {
|
|
94
|
+
lines.push(` - 来源: ${item.sourcePath}`);
|
|
95
|
+
}
|
|
96
|
+
lines.push(` - 全文: read_memory_asset {"asset_id": "${item.id}"}`);
|
|
97
|
+
return lines.filter(Boolean).join('\n');
|
|
98
|
+
});
|
|
99
|
+
return `${header}\n\n${items.join('\n\n')}`;
|
|
100
|
+
}
|
|
80
101
|
export function shouldShowSourceInSearch(item, config = getMemoryConfig()) {
|
|
81
102
|
if (config.searchShowSource) {
|
|
82
103
|
return Boolean(item.sourcePath);
|
package/build/schemas/index.d.ts
CHANGED
|
@@ -837,54 +837,6 @@ export declare const allToolSchemas: ({
|
|
|
837
837
|
readonly required: readonly [];
|
|
838
838
|
readonly additionalProperties: true;
|
|
839
839
|
};
|
|
840
|
-
} | {
|
|
841
|
-
readonly name: "cursor_list_conversations";
|
|
842
|
-
readonly description: "读取 Cursor 本地历史会话摘要。适合按标题、工作区列出最近会话,用于续接旧上下文。";
|
|
843
|
-
readonly inputSchema: {
|
|
844
|
-
readonly type: "object";
|
|
845
|
-
readonly properties: {
|
|
846
|
-
readonly title_query: {
|
|
847
|
-
readonly type: "string";
|
|
848
|
-
readonly description: "按会话标题过滤,支持部分匹配";
|
|
849
|
-
};
|
|
850
|
-
readonly workspace_query: {
|
|
851
|
-
readonly type: "string";
|
|
852
|
-
readonly description: "按工作区路径过滤,支持部分匹配";
|
|
853
|
-
};
|
|
854
|
-
readonly include_archived: {
|
|
855
|
-
readonly type: "boolean";
|
|
856
|
-
readonly description: "是否包含已归档会话,默认 false";
|
|
857
|
-
};
|
|
858
|
-
readonly limit: {
|
|
859
|
-
readonly type: "number";
|
|
860
|
-
readonly description: "最多返回多少条,默认 20,最大 200";
|
|
861
|
-
};
|
|
862
|
-
};
|
|
863
|
-
readonly required: readonly [];
|
|
864
|
-
readonly additionalProperties: true;
|
|
865
|
-
};
|
|
866
|
-
} | {
|
|
867
|
-
readonly name: "cursor_search_conversations";
|
|
868
|
-
readonly description: "在 Cursor 本地历史消息里按关键词、request id 搜索命中内容,可选限定某个会话。";
|
|
869
|
-
readonly inputSchema: {
|
|
870
|
-
readonly type: "object";
|
|
871
|
-
readonly properties: {
|
|
872
|
-
readonly query: {
|
|
873
|
-
readonly type: "string";
|
|
874
|
-
readonly description: "搜索关键词,可传标题片段、正文片段或 request id";
|
|
875
|
-
};
|
|
876
|
-
readonly composer_id: {
|
|
877
|
-
readonly type: "string";
|
|
878
|
-
readonly description: "可选,限定某个 Cursor 会话 ID";
|
|
879
|
-
};
|
|
880
|
-
readonly limit: {
|
|
881
|
-
readonly type: "number";
|
|
882
|
-
readonly description: "最多返回多少条,默认 20,最大 200";
|
|
883
|
-
};
|
|
884
|
-
};
|
|
885
|
-
readonly required: readonly ["query"];
|
|
886
|
-
readonly additionalProperties: true;
|
|
887
|
-
};
|
|
888
840
|
} | {
|
|
889
841
|
readonly name: "cursor_read_conversation";
|
|
890
842
|
readonly description: "按 composer_id 读取一条 Cursor 本地会话的消息时间线。";
|
|
@@ -147,54 +147,6 @@ export declare const memoryToolSchemas: readonly [{
|
|
|
147
147
|
readonly required: readonly [];
|
|
148
148
|
readonly additionalProperties: true;
|
|
149
149
|
};
|
|
150
|
-
}, {
|
|
151
|
-
readonly name: "cursor_list_conversations";
|
|
152
|
-
readonly description: "读取 Cursor 本地历史会话摘要。适合按标题、工作区列出最近会话,用于续接旧上下文。";
|
|
153
|
-
readonly inputSchema: {
|
|
154
|
-
readonly type: "object";
|
|
155
|
-
readonly properties: {
|
|
156
|
-
readonly title_query: {
|
|
157
|
-
readonly type: "string";
|
|
158
|
-
readonly description: "按会话标题过滤,支持部分匹配";
|
|
159
|
-
};
|
|
160
|
-
readonly workspace_query: {
|
|
161
|
-
readonly type: "string";
|
|
162
|
-
readonly description: "按工作区路径过滤,支持部分匹配";
|
|
163
|
-
};
|
|
164
|
-
readonly include_archived: {
|
|
165
|
-
readonly type: "boolean";
|
|
166
|
-
readonly description: "是否包含已归档会话,默认 false";
|
|
167
|
-
};
|
|
168
|
-
readonly limit: {
|
|
169
|
-
readonly type: "number";
|
|
170
|
-
readonly description: "最多返回多少条,默认 20,最大 200";
|
|
171
|
-
};
|
|
172
|
-
};
|
|
173
|
-
readonly required: readonly [];
|
|
174
|
-
readonly additionalProperties: true;
|
|
175
|
-
};
|
|
176
|
-
}, {
|
|
177
|
-
readonly name: "cursor_search_conversations";
|
|
178
|
-
readonly description: "在 Cursor 本地历史消息里按关键词、request id 搜索命中内容,可选限定某个会话。";
|
|
179
|
-
readonly inputSchema: {
|
|
180
|
-
readonly type: "object";
|
|
181
|
-
readonly properties: {
|
|
182
|
-
readonly query: {
|
|
183
|
-
readonly type: "string";
|
|
184
|
-
readonly description: "搜索关键词,可传标题片段、正文片段或 request id";
|
|
185
|
-
};
|
|
186
|
-
readonly composer_id: {
|
|
187
|
-
readonly type: "string";
|
|
188
|
-
readonly description: "可选,限定某个 Cursor 会话 ID";
|
|
189
|
-
};
|
|
190
|
-
readonly limit: {
|
|
191
|
-
readonly type: "number";
|
|
192
|
-
readonly description: "最多返回多少条,默认 20,最大 200";
|
|
193
|
-
};
|
|
194
|
-
};
|
|
195
|
-
readonly required: readonly ["query"];
|
|
196
|
-
readonly additionalProperties: true;
|
|
197
|
-
};
|
|
198
150
|
}, {
|
|
199
151
|
readonly name: "cursor_read_conversation";
|
|
200
152
|
readonly description: "按 composer_id 读取一条 Cursor 本地会话的消息时间线。";
|
|
@@ -75,35 +75,6 @@ export const memoryToolSchemas = [
|
|
|
75
75
|
additionalProperties: true,
|
|
76
76
|
},
|
|
77
77
|
},
|
|
78
|
-
{
|
|
79
|
-
name: 'cursor_list_conversations',
|
|
80
|
-
description: '读取 Cursor 本地历史会话摘要。适合按标题、工作区列出最近会话,用于续接旧上下文。',
|
|
81
|
-
inputSchema: {
|
|
82
|
-
type: 'object',
|
|
83
|
-
properties: {
|
|
84
|
-
title_query: { type: 'string', description: '按会话标题过滤,支持部分匹配' },
|
|
85
|
-
workspace_query: { type: 'string', description: '按工作区路径过滤,支持部分匹配' },
|
|
86
|
-
include_archived: { type: 'boolean', description: '是否包含已归档会话,默认 false' },
|
|
87
|
-
limit: { type: 'number', description: '最多返回多少条,默认 20,最大 200' },
|
|
88
|
-
},
|
|
89
|
-
required: [],
|
|
90
|
-
additionalProperties: true,
|
|
91
|
-
},
|
|
92
|
-
},
|
|
93
|
-
{
|
|
94
|
-
name: 'cursor_search_conversations',
|
|
95
|
-
description: '在 Cursor 本地历史消息里按关键词、request id 搜索命中内容,可选限定某个会话。',
|
|
96
|
-
inputSchema: {
|
|
97
|
-
type: 'object',
|
|
98
|
-
properties: {
|
|
99
|
-
query: { type: 'string', description: '搜索关键词,可传标题片段、正文片段或 request id' },
|
|
100
|
-
composer_id: { type: 'string', description: '可选,限定某个 Cursor 会话 ID' },
|
|
101
|
-
limit: { type: 'number', description: '最多返回多少条,默认 20,最大 200' },
|
|
102
|
-
},
|
|
103
|
-
required: ['query'],
|
|
104
|
-
additionalProperties: true,
|
|
105
|
-
},
|
|
106
|
-
},
|
|
107
78
|
{
|
|
108
79
|
name: 'cursor_read_conversation',
|
|
109
80
|
description: '按 composer_id 读取一条 Cursor 本地会话的消息时间线。',
|
|
@@ -1,67 +1,18 @@
|
|
|
1
1
|
import { afterEach, beforeEach, describe, expect, test, vi } from 'vitest';
|
|
2
|
-
const listConversationsMock = vi.fn();
|
|
3
|
-
const searchHistoryMock = vi.fn();
|
|
4
2
|
const readConversationMock = vi.fn();
|
|
5
3
|
vi.mock('../../lib/cursor-history-client.js', () => ({
|
|
6
4
|
createCursorHistoryClient: () => ({
|
|
7
|
-
listConversations: listConversationsMock,
|
|
8
|
-
searchHistory: searchHistoryMock,
|
|
9
5
|
readConversation: readConversationMock,
|
|
10
6
|
}),
|
|
11
7
|
}));
|
|
12
|
-
import { cursorListConversations } from '../cursor_list_conversations.js';
|
|
13
|
-
import { cursorSearchConversations } from '../cursor_search_conversations.js';
|
|
14
8
|
import { cursorReadConversation } from '../cursor_read_conversation.js';
|
|
15
9
|
beforeEach(() => {
|
|
16
|
-
listConversationsMock.mockReset();
|
|
17
|
-
searchHistoryMock.mockReset();
|
|
18
10
|
readConversationMock.mockReset();
|
|
19
11
|
});
|
|
20
12
|
afterEach(() => {
|
|
21
13
|
vi.clearAllMocks();
|
|
22
14
|
});
|
|
23
15
|
describe('cursor history tools', () => {
|
|
24
|
-
test('cursor_list_conversations 返回摘要列表', async () => {
|
|
25
|
-
listConversationsMock.mockResolvedValue([
|
|
26
|
-
{ composerId: 'c1', name: '新需求', source: 'composerHeaders' },
|
|
27
|
-
]);
|
|
28
|
-
const result = await cursorListConversations({ title_query: '新需求', limit: 10 });
|
|
29
|
-
expect(result.isError).toBe(false);
|
|
30
|
-
expect('structuredContent' in result).toBe(true);
|
|
31
|
-
if (!('structuredContent' in result)) {
|
|
32
|
-
throw new Error('structuredContent 缺失');
|
|
33
|
-
}
|
|
34
|
-
expect(result.content[0].text).toContain('已获取 1 条 Cursor 会话摘要');
|
|
35
|
-
expect(result.structuredContent.count).toBe(1);
|
|
36
|
-
expect(listConversationsMock).toHaveBeenCalledWith({
|
|
37
|
-
titleQuery: '新需求',
|
|
38
|
-
workspaceQuery: '',
|
|
39
|
-
includeArchived: false,
|
|
40
|
-
limit: 10,
|
|
41
|
-
});
|
|
42
|
-
});
|
|
43
|
-
test('cursor_search_conversations 缺少 query 时返回错误', async () => {
|
|
44
|
-
const result = await cursorSearchConversations({});
|
|
45
|
-
expect(result.isError).toBe(true);
|
|
46
|
-
expect(result.content[0].text).toContain('缺少必填参数: query');
|
|
47
|
-
});
|
|
48
|
-
test('cursor_search_conversations 返回命中结果', async () => {
|
|
49
|
-
searchHistoryMock.mockResolvedValue([
|
|
50
|
-
{ composerId: 'c1', conversationName: '新需求', bubbleId: 'b1', type: 1, text: '我们先聊需求' },
|
|
51
|
-
]);
|
|
52
|
-
const result = await cursorSearchConversations({ query: '需求', composer_id: 'c1', limit: 5 });
|
|
53
|
-
expect(result.isError).toBe(false);
|
|
54
|
-
expect('structuredContent' in result).toBe(true);
|
|
55
|
-
if (!('structuredContent' in result)) {
|
|
56
|
-
throw new Error('structuredContent 缺失');
|
|
57
|
-
}
|
|
58
|
-
expect(result.structuredContent.count).toBe(1);
|
|
59
|
-
expect(searchHistoryMock).toHaveBeenCalledWith({
|
|
60
|
-
query: '需求',
|
|
61
|
-
composerId: 'c1',
|
|
62
|
-
limit: 5,
|
|
63
|
-
});
|
|
64
|
-
});
|
|
65
16
|
test('cursor_read_conversation 返回消息时间线', async () => {
|
|
66
17
|
readConversationMock.mockResolvedValue({
|
|
67
18
|
composerId: 'c1',
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import { afterEach, beforeEach, describe, expect, test, vi } from 'vitest';
|
|
2
|
+
const searchMock = vi.fn();
|
|
3
|
+
const isEnabledMock = vi.fn();
|
|
4
|
+
vi.mock('../../lib/memory-client.js', () => ({
|
|
5
|
+
createMemoryClient: () => ({
|
|
6
|
+
isEnabled: isEnabledMock,
|
|
7
|
+
search: searchMock,
|
|
8
|
+
}),
|
|
9
|
+
}));
|
|
10
|
+
import { searchMemory } from '../search_memory.js';
|
|
11
|
+
import { formatSearchMemoryResultsText } from '../../lib/memory-orchestration.js';
|
|
12
|
+
beforeEach(() => {
|
|
13
|
+
isEnabledMock.mockReset();
|
|
14
|
+
searchMock.mockReset();
|
|
15
|
+
});
|
|
16
|
+
afterEach(() => {
|
|
17
|
+
vi.clearAllMocks();
|
|
18
|
+
});
|
|
19
|
+
describe('formatSearchMemoryResultsText', () => {
|
|
20
|
+
test('renders id, summary, description and read hint', () => {
|
|
21
|
+
const text = formatSearchMemoryResultsText([
|
|
22
|
+
{
|
|
23
|
+
id: '6c97bd10-654e-4f25-a560-99f7469dc11a',
|
|
24
|
+
score: 0.678,
|
|
25
|
+
name: 'playwright-e2e-testing-speed-pattern',
|
|
26
|
+
type: 'pattern',
|
|
27
|
+
description: 'Speed up Playwright E2E suites',
|
|
28
|
+
summary: 'Playwright E2E parallelization pattern',
|
|
29
|
+
tags: ['pattern', 'e2e'],
|
|
30
|
+
},
|
|
31
|
+
]);
|
|
32
|
+
expect(text).toContain('找到 1 条相关记忆');
|
|
33
|
+
expect(text).toContain('id: 6c97bd10-654e-4f25-a560-99f7469dc11a');
|
|
34
|
+
expect(text).toContain('摘要: Playwright E2E parallelization pattern');
|
|
35
|
+
expect(text).toContain('描述: Speed up Playwright E2E suites');
|
|
36
|
+
expect(text).toContain('read_memory_asset {"asset_id": "6c97bd10-654e-4f25-a560-99f7469dc11a"}');
|
|
37
|
+
});
|
|
38
|
+
test('returns empty-state text', () => {
|
|
39
|
+
expect(formatSearchMemoryResultsText([])).toBe('未找到相关记忆');
|
|
40
|
+
});
|
|
41
|
+
});
|
|
42
|
+
describe('search_memory 单元测试', () => {
|
|
43
|
+
test('记忆服务未开启时返回跳过结果', async () => {
|
|
44
|
+
isEnabledMock.mockReturnValue(false);
|
|
45
|
+
const result = await searchMemory({ query: 'test' });
|
|
46
|
+
expect(result.isError).toBe(false);
|
|
47
|
+
expect('structuredContent' in result).toBe(true);
|
|
48
|
+
if (!('structuredContent' in result)) {
|
|
49
|
+
throw new Error('structuredContent 缺失');
|
|
50
|
+
}
|
|
51
|
+
expect(result.content[0].text).toContain('记忆服务未开启');
|
|
52
|
+
expect(result.structuredContent).toEqual({ enabled: false, results: [] });
|
|
53
|
+
expect(searchMock).not.toHaveBeenCalled();
|
|
54
|
+
});
|
|
55
|
+
test('命中结果时文本输出包含 asset 字段', async () => {
|
|
56
|
+
isEnabledMock.mockReturnValue(true);
|
|
57
|
+
searchMock.mockResolvedValue([
|
|
58
|
+
{
|
|
59
|
+
id: 'asset-1',
|
|
60
|
+
score: 0.88,
|
|
61
|
+
name: 'feishu-proxy-bug',
|
|
62
|
+
type: 'bugfix',
|
|
63
|
+
description: 'Feishu proxy mismatch',
|
|
64
|
+
summary: 'proxy caused 400 on HTTPS',
|
|
65
|
+
tags: ['bugfix', 'proxy'],
|
|
66
|
+
},
|
|
67
|
+
]);
|
|
68
|
+
const result = await searchMemory({ query: 'proxy', limit: 1 });
|
|
69
|
+
expect(result.isError).toBe(false);
|
|
70
|
+
expect('structuredContent' in result).toBe(true);
|
|
71
|
+
if (!('structuredContent' in result)) {
|
|
72
|
+
throw new Error('structuredContent 缺失');
|
|
73
|
+
}
|
|
74
|
+
expect(result.content[0].text).toContain('id: asset-1');
|
|
75
|
+
expect(result.content[0].text).toContain('摘要: proxy caused 400 on HTTPS');
|
|
76
|
+
expect(result.content[0].text).toContain('描述: Feishu proxy mismatch');
|
|
77
|
+
expect(result.structuredContent.results[0]).toEqual(expect.objectContaining({
|
|
78
|
+
id: 'asset-1',
|
|
79
|
+
description: 'Feishu proxy mismatch',
|
|
80
|
+
summary: 'proxy caused 400 on HTTPS',
|
|
81
|
+
}));
|
|
82
|
+
});
|
|
83
|
+
});
|
package/build/tools/index.d.ts
CHANGED
|
@@ -20,8 +20,6 @@ export { searchMemory } from "./search_memory.js";
|
|
|
20
20
|
export { readMemoryAsset } from "./read_memory_asset.js";
|
|
21
21
|
export { memorizeAsset } from "./memorize_asset.js";
|
|
22
22
|
export { scanAndExtractPatterns } from "./scan_and_extract_patterns.js";
|
|
23
|
-
export { cursorListConversations } from "./cursor_list_conversations.js";
|
|
24
|
-
export { cursorSearchConversations } from "./cursor_search_conversations.js";
|
|
25
23
|
export { cursorReadConversation } from "./cursor_read_conversation.js";
|
|
26
24
|
export { startProduct } from "./start_product.js";
|
|
27
25
|
export { gitWorkReport } from "./git_work_report.js";
|
package/build/tools/index.js
CHANGED
|
@@ -24,8 +24,6 @@ export { searchMemory } from "./search_memory.js";
|
|
|
24
24
|
export { readMemoryAsset } from "./read_memory_asset.js";
|
|
25
25
|
export { memorizeAsset } from "./memorize_asset.js";
|
|
26
26
|
export { scanAndExtractPatterns } from "./scan_and_extract_patterns.js";
|
|
27
|
-
export { cursorListConversations } from "./cursor_list_conversations.js";
|
|
28
|
-
export { cursorSearchConversations } from "./cursor_search_conversations.js";
|
|
29
27
|
export { cursorReadConversation } from "./cursor_read_conversation.js";
|
|
30
28
|
// 产品设计工作流
|
|
31
29
|
export { startProduct } from "./start_product.js";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { parseArgs, getString, getNumber } from '../utils/parseArgs.js';
|
|
2
2
|
import { okStructured } from '../lib/response.js';
|
|
3
3
|
import { createMemoryClient } from '../lib/memory-client.js';
|
|
4
|
-
import { shouldShowSourceInSearch } from '../lib/memory-orchestration.js';
|
|
4
|
+
import { formatSearchMemoryResultsText, shouldShowSourceInSearch, } from '../lib/memory-orchestration.js';
|
|
5
5
|
import { getMemoryConfig } from '../lib/memory-config.js';
|
|
6
6
|
import { handleToolError } from '../utils/error-handler.js';
|
|
7
7
|
export async function searchMemory(args) {
|
|
@@ -40,11 +40,12 @@ export async function searchMemory(args) {
|
|
|
40
40
|
score: item.score,
|
|
41
41
|
name: item.name,
|
|
42
42
|
type: item.type,
|
|
43
|
+
description: item.description,
|
|
43
44
|
summary: item.summary,
|
|
44
45
|
tags: item.tags,
|
|
45
46
|
sourcePath: shouldShowSourceInSearch(item, config) ? item.sourcePath : undefined,
|
|
46
47
|
}));
|
|
47
|
-
return okStructured(results
|
|
48
|
+
return okStructured(formatSearchMemoryResultsText(results, config), {
|
|
48
49
|
enabled: true,
|
|
49
50
|
query,
|
|
50
51
|
count: results.length,
|
package/docs/data/tools.js
CHANGED
|
@@ -412,7 +412,7 @@ verbose: true`
|
|
|
412
412
|
{ name: 'tags', type: 'array', required: false, desc: '优先匹配的标签' },
|
|
413
413
|
{ name: 'limit', type: 'number', required: false, desc: '返回条数' }
|
|
414
414
|
],
|
|
415
|
-
usage: '在 start_* 之外主动查找历史 Bug
|
|
415
|
+
usage: '在 start_* 之外主动查找历史 Bug 修复或可复用模式;返回文本含 id/score/summary/description,并附带 structuredContent.results',
|
|
416
416
|
example: `// 使用示例
|
|
417
417
|
你: 请使用 search_memory 搜索 proxy 相关 bugfix
|
|
418
418
|
|
|
@@ -466,38 +466,6 @@ kind: "pattern"`
|
|
|
466
466
|
|
|
467
467
|
path: "src/auth"
|
|
468
468
|
max_patterns: 5`
|
|
469
|
-
},
|
|
470
|
-
{
|
|
471
|
-
name: 'cursor_list_conversations',
|
|
472
|
-
description: '读取本地 Cursor 对话摘要,支持按标题或工作区过滤',
|
|
473
|
-
schema: 'CursorConversationListSchema',
|
|
474
|
-
params: [
|
|
475
|
-
{ name: 'workspace', type: 'string', required: false, desc: '工作区路径过滤' },
|
|
476
|
-
{ name: 'query', type: 'string', required: false, desc: '标题或摘要关键词' },
|
|
477
|
-
{ name: 'limit', type: 'number', required: false, desc: '返回数量,默认 20' }
|
|
478
|
-
],
|
|
479
|
-
usage: '用于恢复历史工作,快速定位某个工作区下最近的 Cursor 对话',
|
|
480
|
-
example: `// 使用示例
|
|
481
|
-
你: 请使用 cursor_list_conversations 工具列出最近对话
|
|
482
|
-
|
|
483
|
-
workspace: "e:/workspace/github/mcp-probe-kit"
|
|
484
|
-
limit: 10`
|
|
485
|
-
},
|
|
486
|
-
{
|
|
487
|
-
name: 'cursor_search_conversations',
|
|
488
|
-
description: '按关键词或 request id 搜索本地 Cursor 历史消息',
|
|
489
|
-
schema: 'CursorConversationSearchSchema',
|
|
490
|
-
params: [
|
|
491
|
-
{ name: 'query', type: 'string', required: true, desc: '关键词、日志片段或 request id' },
|
|
492
|
-
{ name: 'workspace', type: 'string', required: false, desc: '工作区路径过滤' },
|
|
493
|
-
{ name: 'limit', type: 'number', required: false, desc: '返回数量,默认 20' }
|
|
494
|
-
],
|
|
495
|
-
usage: '适合按日志片段、问题关键词或 request id 追溯历史证据',
|
|
496
|
-
example: `// 使用示例
|
|
497
|
-
你: 请使用 cursor_search_conversations 工具搜索历史记录
|
|
498
|
-
|
|
499
|
-
query: "GitNexus"
|
|
500
|
-
limit: 10`
|
|
501
469
|
},
|
|
502
470
|
{
|
|
503
471
|
name: 'cursor_read_conversation',
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"meta": {
|
|
3
|
-
"title": "All Tools - Complete List of
|
|
4
|
-
"description": "MCP Probe Kit complete tool list: 6 workflow orchestration tools, 4 code analysis tools, 2 Git tools, 1 generation tool, 6 project management tools, 3 UI/UX tools, and
|
|
3
|
+
"title": "All Tools - Complete List of 27 AI Development Tools | MCP Probe Kit",
|
|
4
|
+
"description": "MCP Probe Kit complete tool list: 6 workflow orchestration tools, 4 code analysis tools, 2 Git tools, 1 generation tool, 6 project management tools, 3 UI/UX tools, and 5 memory/Cursor history tools.",
|
|
5
5
|
"keywords": "AI development tools, code generation tools, code review tools, Git automation, UI generation, code refactoring, performance optimization, security scanning"
|
|
6
6
|
},
|
|
7
7
|
"page": {
|
|
8
|
-
"subtitle": "MCP Probe Kit provides
|
|
8
|
+
"subtitle": "MCP Probe Kit provides 27 practical tools with structured output support for core and orchestration tools"
|
|
9
9
|
},
|
|
10
10
|
"search": {
|
|
11
11
|
"placeholder": "🔍 Search tool name or description...",
|
|
@@ -45,8 +45,6 @@
|
|
|
45
45
|
"read_memory_asset": "Read Memory",
|
|
46
46
|
"memorize_asset": "Store Memory",
|
|
47
47
|
"scan_and_extract_patterns": "Extract Patterns",
|
|
48
|
-
"cursor_list_conversations": "List Chats",
|
|
49
|
-
"cursor_search_conversations": "Search Chats",
|
|
50
48
|
"cursor_read_conversation": "Read Chat"
|
|
51
49
|
},
|
|
52
50
|
"categories": {
|
|
@@ -170,7 +168,7 @@
|
|
|
170
168
|
},
|
|
171
169
|
"search_memory": {
|
|
172
170
|
"description": "Semantic search across the shared memory pool, with optional type/tags preference",
|
|
173
|
-
"usage": "Use outside start_* to find historical bugfixes or patterns; follow with read_memory_asset for full content"
|
|
171
|
+
"usage": "Use outside start_* to find historical bugfixes or patterns; text output includes id/score/summary/description; follow with read_memory_asset for full content"
|
|
174
172
|
},
|
|
175
173
|
"read_memory_asset": {
|
|
176
174
|
"description": "Read the full content and metadata of a stored memory asset by asset ID",
|
|
@@ -184,14 +182,6 @@
|
|
|
184
182
|
"description": "Extract reusable patterns from a code snippet, file, or directory before deciding whether to store them into memory",
|
|
185
183
|
"usage": "Use for pattern mining first, then optionally follow with memorize_asset to persist the best candidates"
|
|
186
184
|
},
|
|
187
|
-
"cursor_list_conversations": {
|
|
188
|
-
"description": "Read local Cursor conversation summaries, with optional filtering by title or workspace",
|
|
189
|
-
"usage": "Useful for resuming previous work and locating recent conversations in a specific workspace"
|
|
190
|
-
},
|
|
191
|
-
"cursor_search_conversations": {
|
|
192
|
-
"description": "Search local Cursor history messages by keyword or request id",
|
|
193
|
-
"usage": "Useful for tracing prior evidence by log snippet, issue keyword, or request id"
|
|
194
|
-
},
|
|
195
185
|
"cursor_read_conversation": {
|
|
196
186
|
"description": "Read the full local Cursor conversation timeline for a single composer_id",
|
|
197
187
|
"usage": "Useful for precisely resuming a specific historical conversation and reviewing message order and context"
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"meta": {
|
|
3
|
-
"title": "すべてのツール -
|
|
4
|
-
"description": "MCP Probe Kit 完全ツールリスト:6個のワークフローオーケストレーションツール、4個のコード分析ツール、2個のGitツール、1個の生成ツール、6個のプロジェクト管理ツール、3個のUI/UXツール、
|
|
3
|
+
"title": "すべてのツール - 27個のAI開発ツール完全リスト | MCP Probe Kit",
|
|
4
|
+
"description": "MCP Probe Kit 完全ツールリスト:6個のワークフローオーケストレーションツール、4個のコード分析ツール、2個のGitツール、1個の生成ツール、6個のプロジェクト管理ツール、3個のUI/UXツール、5個の Memory / Cursor History ツール。",
|
|
5
5
|
"keywords": "AI開発ツール, コード生成ツール, コードレビューツール, Git自動化, UI生成, コードリファクタリング, パフォーマンス最適化, セキュリティスキャン"
|
|
6
6
|
},
|
|
7
7
|
"page": {
|
|
8
|
-
"subtitle": "MCP Probe Kitは
|
|
8
|
+
"subtitle": "MCP Probe Kitは27個の実用的なツールを提供し、コアおよびオーケストレーションツールは構造化出力をサポートします"
|
|
9
9
|
},
|
|
10
10
|
"search": {
|
|
11
11
|
"placeholder": "🔍 ツール名または説明を検索...",
|
|
@@ -46,8 +46,6 @@
|
|
|
46
46
|
"read_memory_asset": "メモリ読取",
|
|
47
47
|
"memorize_asset": "メモリ保存",
|
|
48
48
|
"scan_and_extract_patterns": "パターン抽出",
|
|
49
|
-
"cursor_list_conversations": "会話一覧",
|
|
50
|
-
"cursor_search_conversations": "会話検索",
|
|
51
49
|
"cursor_read_conversation": "会話読取"
|
|
52
50
|
},
|
|
53
51
|
"categories": {
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"meta": {
|
|
3
|
-
"title": "모든 도구 -
|
|
4
|
-
"description": "MCP Probe Kit 전체 도구 목록: 6개의 워크플로우 오케스트레이션 도구, 4개의 코드 분석 도구, 2개의 Git 도구, 1개의 생성 도구, 6개의 프로젝트 관리 도구, 3개의 UI/UX 도구.",
|
|
3
|
+
"title": "모든 도구 - 27개 AI 개발 도구 전체 목록 | MCP Probe Kit",
|
|
4
|
+
"description": "MCP Probe Kit 전체 도구 목록: 6개의 워크플로우 오케스트레이션 도구, 4개의 코드 분석 도구, 2개의 Git 도구, 1개의 생성 도구, 6개의 프로젝트 관리 도구, 3개의 UI/UX 도구, 5개의 Memory/Cursor History 도구.",
|
|
5
5
|
"keywords": "AI 개발 도구, 코드 생성 도구, 코드 리뷰 도구, Git 자동화, UI 생성, 코드 리팩토링, 성능 최적화, 보안 스캔"
|
|
6
6
|
},
|
|
7
7
|
"page": {
|
|
8
|
-
"subtitle": "MCP Probe Kit은
|
|
8
|
+
"subtitle": "MCP Probe Kit은 27개의 실용적인 도구를 제공하며, 핵심 및 오케스트레이션 도구는 구조화된 출력을 지원합니다"
|
|
9
9
|
},
|
|
10
10
|
"search": {
|
|
11
11
|
"placeholder": "🔍 도구 이름 또는 설명 검색...",
|
|
@@ -46,8 +46,6 @@
|
|
|
46
46
|
"read_memory_asset": "메모리 읽기",
|
|
47
47
|
"memorize_asset": "메모리 저장",
|
|
48
48
|
"scan_and_extract_patterns": "패턴 추출",
|
|
49
|
-
"cursor_list_conversations": "대화 목록",
|
|
50
|
-
"cursor_search_conversations": "대화 검색",
|
|
51
49
|
"cursor_read_conversation": "대화 읽기"
|
|
52
50
|
},
|
|
53
51
|
"categories": {
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"meta": {
|
|
3
|
-
"title": "所有工具 -
|
|
4
|
-
"description": "MCP Probe Kit 完整工具列表:6个工作流编排工具、4个代码分析工具、2个Git工具、1个生成工具、6个项目管理工具、3个UI/UX工具、
|
|
3
|
+
"title": "所有工具 - 27个AI研发工具完整列表 | MCP Probe Kit",
|
|
4
|
+
"description": "MCP Probe Kit 完整工具列表:6个工作流编排工具、4个代码分析工具、2个Git工具、1个生成工具、6个项目管理工具、3个UI/UX工具、5个记忆与 Cursor 历史工具。",
|
|
5
5
|
"keywords": "AI 开发工具, 代码生成工具, 代码审查工具, Git 自动化, UI 生成, 代码重构, 性能优化, 安全扫描"
|
|
6
6
|
},
|
|
7
7
|
"page": {
|
|
8
|
-
"subtitle": "MCP Probe Kit 提供
|
|
8
|
+
"subtitle": "MCP Probe Kit 提供 27 个实用工具,核心与编排工具支持结构化输出"
|
|
9
9
|
},
|
|
10
10
|
"search": {
|
|
11
11
|
"placeholder": "🔍 搜索工具名称或描述...",
|
|
@@ -45,8 +45,6 @@
|
|
|
45
45
|
"read_memory_asset": "读取记忆",
|
|
46
46
|
"memorize_asset": "沉淀记忆",
|
|
47
47
|
"scan_and_extract_patterns": "抽取模式",
|
|
48
|
-
"cursor_list_conversations": "列会话",
|
|
49
|
-
"cursor_search_conversations": "搜会话",
|
|
50
48
|
"cursor_read_conversation": "读会话"
|
|
51
49
|
},
|
|
52
50
|
"categories": {
|
|
@@ -170,7 +168,7 @@
|
|
|
170
168
|
},
|
|
171
169
|
"search_memory": {
|
|
172
170
|
"description": "按语义检索共享记忆库,支持 type/tags 优先排序",
|
|
173
|
-
"usage": "在 start_* 之外主动查找历史 Bug
|
|
171
|
+
"usage": "在 start_* 之外主动查找历史 Bug 修复或可复用模式;文本输出含 id/score/摘要/描述,命中后用 read_memory_asset 读全文"
|
|
174
172
|
},
|
|
175
173
|
"read_memory_asset": {
|
|
176
174
|
"description": "按资产 ID 读取已沉淀记忆的完整内容与元数据",
|
|
@@ -184,14 +182,6 @@
|
|
|
184
182
|
"description": "从单段代码、单文件或整个目录中抽取可复用模式,再决定是否沉淀到记忆系统",
|
|
185
183
|
"usage": "适合先做模式归纳,再按需调用 memorize_asset 写入记忆"
|
|
186
184
|
},
|
|
187
|
-
"cursor_list_conversations": {
|
|
188
|
-
"description": "读取 Cursor 本地历史会话摘要,可按标题或工作区过滤最近会话",
|
|
189
|
-
"usage": "用于恢复旧上下文、定位某个工作区最近做过的会话"
|
|
190
|
-
},
|
|
191
|
-
"cursor_search_conversations": {
|
|
192
|
-
"description": "在 Cursor 本地历史消息里按关键词或 request id 搜索命中内容",
|
|
193
|
-
"usage": "用于按问题、日志片段、request id 回溯过往会话证据"
|
|
194
|
-
},
|
|
195
185
|
"cursor_read_conversation": {
|
|
196
186
|
"description": "按 composer_id 读取一条 Cursor 本地会话的完整消息时间线",
|
|
197
187
|
"usage": "用于精确续接某一条历史会话,查看消息顺序、上下文和关键输出"
|
package/docs/i18n/en.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"meta": {
|
|
3
|
-
"title": "MCP Probe Kit - AI-Powered Complete Development Toolkit |
|
|
4
|
-
"description": "MCP Probe Kit provides
|
|
3
|
+
"title": "MCP Probe Kit - AI-Powered Complete Development Toolkit | 27 Tools Covering Entire Development Lifecycle",
|
|
4
|
+
"description": "MCP Probe Kit provides 27 AI-powered development tools covering requirements analysis, code development, quality assurance, bug fixing, and release management. Supports Cursor, Cline, Claude Desktop with 100% structured output.",
|
|
5
5
|
"keywords": "MCP Probe Kit, AI development tools, code generation, code review, Git tools, UI development, development efficiency, Cursor, Cline, Claude, MCP Server"
|
|
6
6
|
},
|
|
7
7
|
"nav": {
|
|
@@ -14,19 +14,19 @@
|
|
|
14
14
|
"hero": {
|
|
15
15
|
"title": "🚀 MCP Probe Kit",
|
|
16
16
|
"subtitle": "AI Development Enhancement Toolkit · Documentation Center",
|
|
17
|
-
"version": "v3.0.
|
|
17
|
+
"version": "v3.0.23",
|
|
18
18
|
"quickStart": "Quick Start",
|
|
19
19
|
"visitMainSite": "Visit ByteZoneX"
|
|
20
20
|
},
|
|
21
21
|
"sections": {
|
|
22
22
|
"quickStart": {
|
|
23
23
|
"title": "Quick Start",
|
|
24
|
-
"description": "Get started with MCP Probe Kit v3.0.
|
|
24
|
+
"description": "Get started with MCP Probe Kit v3.0.23 in 5 minutes",
|
|
25
25
|
"installConfig": "Installation & Configuration"
|
|
26
26
|
},
|
|
27
27
|
"tools": {
|
|
28
28
|
"title": "Tools Documentation",
|
|
29
|
-
"description": "Complete reference for
|
|
29
|
+
"description": "Complete reference for 27 practical tools, including code graph insight and orchestration workflows",
|
|
30
30
|
"allTools": "All Tools"
|
|
31
31
|
},
|
|
32
32
|
"guides": {
|
|
@@ -63,7 +63,7 @@
|
|
|
63
63
|
},
|
|
64
64
|
"gettingStarted": {
|
|
65
65
|
"title": "Installation & Configuration",
|
|
66
|
-
"subtitle": "Get started with MCP Probe Kit v3.0.
|
|
66
|
+
"subtitle": "Get started with MCP Probe Kit v3.0.23 in 5 minutes. Supports Cursor, Cline, and Claude Desktop",
|
|
67
67
|
"breadcrumb": {
|
|
68
68
|
"home": "Documentation",
|
|
69
69
|
"quickStart": "Quick Start",
|
|
@@ -273,7 +273,7 @@
|
|
|
273
273
|
"subtitle": "Smoothly migrate from v2.x to v3.0, understand breaking changes and new features",
|
|
274
274
|
"overview": {
|
|
275
275
|
"title": "Overview",
|
|
276
|
-
"description": "MCP Probe Kit v3.0 is a major version update, streamlined to
|
|
276
|
+
"description": "MCP Probe Kit v3.0 is a major version update, streamlined to 27 tools, bringing more powerful features and better development experience.",
|
|
277
277
|
"migrationTime": "Migration Time:",
|
|
278
278
|
"migrationTimeText": "Most projects can complete migration in 10-15 minutes, v2.x core tools remain compatible in v3.0."
|
|
279
279
|
},
|
|
@@ -281,7 +281,7 @@
|
|
|
281
281
|
"title": "Major Changes",
|
|
282
282
|
"toolsOptimization": {
|
|
283
283
|
"title": "1. Tools Streamlining",
|
|
284
|
-
"description": "v2.x: 39 tools → v3.x:
|
|
284
|
+
"description": "v2.x: 39 tools → v3.x: 27 tools (removed low-frequency tools, kept high-value tools)"
|
|
285
285
|
},
|
|
286
286
|
"workflows": {
|
|
287
287
|
"title": "2. New Workflow Orchestration",
|
|
@@ -353,7 +353,7 @@
|
|
|
353
353
|
"subtitle": "MCP Probe Kit integrates complete development process, best practices guide from requirements to deployment",
|
|
354
354
|
"overview": {
|
|
355
355
|
"title": "Complete Development Process",
|
|
356
|
-
"description": "MCP Probe Kit's
|
|
356
|
+
"description": "MCP Probe Kit's 27 tools cover the complete development process from requirements analysis to code deployment. Here are the recommended best practices.",
|
|
357
357
|
"coreIdea": "Core Philosophy:",
|
|
358
358
|
"coreIdeaText": "Chain the entire development process through workflow orchestration tools (start_*), making AI your development assistant."
|
|
359
359
|
},
|
|
@@ -608,7 +608,7 @@
|
|
|
608
608
|
"resources": {
|
|
609
609
|
"title": "More Resources",
|
|
610
610
|
"allTools": "Complete Tools Reference",
|
|
611
|
-
"allToolsDesc": "View detailed descriptions of all
|
|
611
|
+
"allToolsDesc": "View detailed descriptions of all 27 tools",
|
|
612
612
|
"gettingStarted": "Installation & Configuration",
|
|
613
613
|
"gettingStartedDesc": "Quick start guide",
|
|
614
614
|
"migration": "Migration Guide",
|
package/docs/i18n/ja.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"meta": {
|
|
3
|
-
"title": "MCP Probe Kit - AI駆動の完全開発ツールキット | 開発ライフサイクル全体をカバーする
|
|
4
|
-
"description": "MCP Probe Kitは、要件分析、コード開発、品質保証、バグ修正、リリース管理をカバーする
|
|
3
|
+
"title": "MCP Probe Kit - AI駆動の完全開発ツールキット | 開発ライフサイクル全体をカバーする27のツール",
|
|
4
|
+
"description": "MCP Probe Kitは、要件分析、コード開発、品質保証、バグ修正、リリース管理をカバーする27のAI駆動開発ツールを提供します。Cursor、Cline、Claude Desktopをサポートし、100%構造化出力を実現。",
|
|
5
5
|
"keywords": "MCP Probe Kit, AI開発ツール, コード生成, コードレビュー, Gitツール, UI開発, 開発効率, Cursor, Cline, Claude, MCPサーバー"
|
|
6
6
|
},
|
|
7
7
|
"nav": {
|
|
@@ -14,19 +14,19 @@
|
|
|
14
14
|
"hero": {
|
|
15
15
|
"title": "🚀 MCP Probe Kit",
|
|
16
16
|
"subtitle": "AI開発強化ツールキット · ドキュメントセンター",
|
|
17
|
-
"version": "v3.0.
|
|
17
|
+
"version": "v3.0.23",
|
|
18
18
|
"quickStart": "クイックスタート",
|
|
19
19
|
"visitMainSite": "ByteZoneXを訪問"
|
|
20
20
|
},
|
|
21
21
|
"sections": {
|
|
22
22
|
"quickStart": {
|
|
23
23
|
"title": "クイックスタート",
|
|
24
|
-
"description": "5分でMCP Probe Kit v3.0.
|
|
24
|
+
"description": "5分でMCP Probe Kit v3.0.23を始める",
|
|
25
25
|
"installConfig": "インストールと設定"
|
|
26
26
|
},
|
|
27
27
|
"tools": {
|
|
28
28
|
"title": "ツールドキュメント",
|
|
29
|
-
"description": "
|
|
29
|
+
"description": "27の実用的なツールの完全なリファレンス。コードグラフ洞察とオーケストレーションを含む",
|
|
30
30
|
"allTools": "すべてのツール"
|
|
31
31
|
},
|
|
32
32
|
"guides": {
|
|
@@ -249,7 +249,7 @@
|
|
|
249
249
|
"subtitle": "v2.xからv3.0へスムーズに移行し、重大な変更と新機能を理解する",
|
|
250
250
|
"overview": {
|
|
251
251
|
"title": "概要",
|
|
252
|
-
"description": "MCP Probe Kit v3.0は大規模なバージョンアップデートで、
|
|
252
|
+
"description": "MCP Probe Kit v3.0は大規模なバージョンアップデートで、27ツールに最適化され、より強力な機能とより良い開発体験をもたらします。",
|
|
253
253
|
"migrationTime": "移行時間:",
|
|
254
254
|
"migrationTimeText": "ほとんどのプロジェクトは10〜15分で移行を完了でき、v2.xのコアツールはv3.0で互換性を維持しています。"
|
|
255
255
|
},
|
|
@@ -257,7 +257,7 @@
|
|
|
257
257
|
"title": "主な変更点",
|
|
258
258
|
"toolsOptimization": {
|
|
259
259
|
"title": "1. ツールの最適化",
|
|
260
|
-
"description": "v2.x: 39ツール → v3.x:
|
|
260
|
+
"description": "v2.x: 39ツール → v3.x: 27ツール(低頻度ツールを削除、高価値ツールを保持)"
|
|
261
261
|
},
|
|
262
262
|
"workflows": {
|
|
263
263
|
"title": "2. 新しいワークフローオーケストレーション",
|
|
@@ -329,7 +329,7 @@
|
|
|
329
329
|
"subtitle": "MCP Probe Kitは完全な開発プロセスを統合、要件からデプロイまでのベストプラクティスガイド",
|
|
330
330
|
"overview": {
|
|
331
331
|
"title": "完全な開発プロセス",
|
|
332
|
-
"description": "MCP Probe Kitの
|
|
332
|
+
"description": "MCP Probe Kitの27のツールは、要件分析からコードデプロイまでの完全な開発プロセスをカバーしています。以下は推奨されるベストプラクティスです。",
|
|
333
333
|
"coreIdea": "コア哲学:",
|
|
334
334
|
"coreIdeaText": "ワークフローオーケストレーションツール(start_*)を通じて開発プロセス全体を連携し、AIを開発アシスタントにします。"
|
|
335
335
|
},
|
|
@@ -584,7 +584,7 @@
|
|
|
584
584
|
"resources": {
|
|
585
585
|
"title": "その他のリソース",
|
|
586
586
|
"allTools": "完全なツールリファレンス",
|
|
587
|
-
"allToolsDesc": "全
|
|
587
|
+
"allToolsDesc": "全27ツールの詳細説明を表示",
|
|
588
588
|
"gettingStarted": "インストールと設定",
|
|
589
589
|
"gettingStartedDesc": "クイックスタートガイド",
|
|
590
590
|
"migration": "移行ガイド",
|
package/docs/i18n/ko.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"meta": {
|
|
3
|
-
"title": "MCP Probe Kit - AI 기반 완전한 개발 툴킷 | 전체 개발 라이프사이클을 커버하는
|
|
4
|
-
"description": "MCP Probe Kit은 요구사항 분석, 코드 개발, 품질 보증, 버그 수정, 릴리스 관리를 커버하는
|
|
3
|
+
"title": "MCP Probe Kit - AI 기반 완전한 개발 툴킷 | 전체 개발 라이프사이클을 커버하는 27개 도구",
|
|
4
|
+
"description": "MCP Probe Kit은 요구사항 분석, 코드 개발, 품질 보증, 버그 수정, 릴리스 관리를 커버하는 27개의 AI 기반 개발 도구를 제공합니다. Cursor, Cline, Claude Desktop을 지원하며 100% 구조화된 출력을 제공합니다.",
|
|
5
5
|
"keywords": "MCP Probe Kit, AI 개발 도구, 코드 생성, 코드 리뷰, Git 도구, UI 개발, 개발 효율성, Cursor, Cline, Claude, MCP 서버"
|
|
6
6
|
},
|
|
7
7
|
"nav": {
|
|
@@ -14,19 +14,19 @@
|
|
|
14
14
|
"hero": {
|
|
15
15
|
"title": "🚀 MCP Probe Kit",
|
|
16
16
|
"subtitle": "AI 개발 강화 툴킷 · 문서 센터",
|
|
17
|
-
"version": "v3.0.
|
|
17
|
+
"version": "v3.0.23",
|
|
18
18
|
"quickStart": "빠른 시작",
|
|
19
19
|
"visitMainSite": "ByteZoneX 방문"
|
|
20
20
|
},
|
|
21
21
|
"sections": {
|
|
22
22
|
"quickStart": {
|
|
23
23
|
"title": "빠른 시작",
|
|
24
|
-
"description": "5분 안에 MCP Probe Kit v3.0.
|
|
24
|
+
"description": "5분 안에 MCP Probe Kit v3.0.23 시작하기",
|
|
25
25
|
"installConfig": "설치 및 구성"
|
|
26
26
|
},
|
|
27
27
|
"tools": {
|
|
28
28
|
"title": "도구 문서",
|
|
29
|
-
"description": "
|
|
29
|
+
"description": "27개 실용 도구의 완전한 참조. 코드 그래프 인사이트와 오케스트레이션 포함",
|
|
30
30
|
"allTools": "모든 도구"
|
|
31
31
|
},
|
|
32
32
|
"guides": {
|
|
@@ -249,7 +249,7 @@
|
|
|
249
249
|
"subtitle": "v2.x에서 v3.0으로 원활하게 마이그레이션하고 주요 변경 사항 및 새로운 기능 이해",
|
|
250
250
|
"overview": {
|
|
251
251
|
"title": "개요",
|
|
252
|
-
"description": "MCP Probe Kit v3.0은 주요 버전 업데이트로,
|
|
252
|
+
"description": "MCP Probe Kit v3.0은 주요 버전 업데이트로, 27개 도구로 최적화되어 더 강력한 기능과 더 나은 개발 경험을 제공합니다.",
|
|
253
253
|
"migrationTime": "마이그레이션 시간:",
|
|
254
254
|
"migrationTimeText": "대부분의 프로젝트는 10-15분 내에 마이그레이션을 완료할 수 있으며, v2.x의 핵심 도구는 v3.0에서 호환성을 유지합니다."
|
|
255
255
|
},
|
|
@@ -257,7 +257,7 @@
|
|
|
257
257
|
"title": "주요 변경 사항",
|
|
258
258
|
"toolsOptimization": {
|
|
259
259
|
"title": "1. 도구 최적화",
|
|
260
|
-
"description": "v2.x: 39개 도구 → v3.x:
|
|
260
|
+
"description": "v2.x: 39개 도구 → v3.x: 27개 도구 (저빈도 도구 제거, 고가치 도구 유지)"
|
|
261
261
|
},
|
|
262
262
|
"workflows": {
|
|
263
263
|
"title": "2. 새로운 워크플로 오케스트레이션",
|
|
@@ -329,7 +329,7 @@
|
|
|
329
329
|
"subtitle": "MCP Probe Kit은 완전한 개발 프로세스를 통합, 요구사항부터 배포까지의 모범 사례 가이드",
|
|
330
330
|
"overview": {
|
|
331
331
|
"title": "완전한 개발 프로세스",
|
|
332
|
-
"description": "MCP Probe Kit의
|
|
332
|
+
"description": "MCP Probe Kit의 27개 도구는 요구사항 분석부터 코드 배포까지의 완전한 개발 프로세스를 커버합니다. 다음은 권장되는 모범 사례입니다.",
|
|
333
333
|
"coreIdea": "핵심 철학:",
|
|
334
334
|
"coreIdeaText": "워크플로 오케스트레이션 도구(start_*)를 통해 전체 개발 프로세스를 연결하여 AI를 개발 어시스턴트로 만듭니다."
|
|
335
335
|
},
|
|
@@ -584,7 +584,7 @@
|
|
|
584
584
|
"resources": {
|
|
585
585
|
"title": "추가 리소스",
|
|
586
586
|
"allTools": "완전한 도구 참조",
|
|
587
|
-
"allToolsDesc": "모든
|
|
587
|
+
"allToolsDesc": "모든 27개 도구의 자세한 설명 보기",
|
|
588
588
|
"gettingStarted": "설치 및 구성",
|
|
589
589
|
"gettingStartedDesc": "빠른 시작 가이드",
|
|
590
590
|
"migration": "마이그레이션 가이드",
|
package/docs/i18n/zh-CN.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"meta": {
|
|
3
|
-
"title": "MCP Probe Kit - AI 驱动的完整研发工具集 |
|
|
4
|
-
"description": "MCP Probe Kit 提供
|
|
3
|
+
"title": "MCP Probe Kit - AI 驱动的完整研发工具集 | 27个工具覆盖开发全流程",
|
|
4
|
+
"description": "MCP Probe Kit 提供 27 个 AI 驱动的研发工具,覆盖需求分析、代码开发、质量保障、Bug修复、版本发布全流程。支持 Cursor、Cline、Claude Desktop,100% 结构化输出。",
|
|
5
5
|
"keywords": "MCP Probe Kit, AI开发工具, 代码生成, 代码审查, Git工具, UI开发, 研发效率, Cursor, Cline, Claude, MCP Server"
|
|
6
6
|
},
|
|
7
7
|
"nav": {
|
|
@@ -14,19 +14,19 @@
|
|
|
14
14
|
"hero": {
|
|
15
15
|
"title": "🚀 MCP Probe Kit",
|
|
16
16
|
"subtitle": "AI 开发增强工具集 · 文档中心",
|
|
17
|
-
"version": "v3.0.
|
|
17
|
+
"version": "v3.0.23",
|
|
18
18
|
"quickStart": "快速开始",
|
|
19
19
|
"visitMainSite": "访问主站 ByteZoneX"
|
|
20
20
|
},
|
|
21
21
|
"sections": {
|
|
22
22
|
"quickStart": {
|
|
23
23
|
"title": "快速开始",
|
|
24
|
-
"description": "5 分钟快速上手 MCP Probe Kit v3.0.
|
|
24
|
+
"description": "5 分钟快速上手 MCP Probe Kit v3.0.23",
|
|
25
25
|
"installConfig": "安装配置"
|
|
26
26
|
},
|
|
27
27
|
"tools": {
|
|
28
28
|
"title": "工具文档",
|
|
29
|
-
"description": "
|
|
29
|
+
"description": "27 个实用工具的完整参考,含图谱洞察与编排工作流",
|
|
30
30
|
"allTools": "所有工具"
|
|
31
31
|
},
|
|
32
32
|
"guides": {
|
|
@@ -63,7 +63,7 @@
|
|
|
63
63
|
},
|
|
64
64
|
"gettingStarted": {
|
|
65
65
|
"title": "安装配置",
|
|
66
|
-
"subtitle": "5 分钟快速上手 MCP Probe Kit v3.0.
|
|
66
|
+
"subtitle": "5 分钟快速上手 MCP Probe Kit v3.0.23,支持 Cursor、Cline 和 Claude Desktop",
|
|
67
67
|
"breadcrumb": {
|
|
68
68
|
"home": "文档首页",
|
|
69
69
|
"quickStart": "快速开始",
|
|
@@ -273,7 +273,7 @@
|
|
|
273
273
|
"subtitle": "从 v2.x 平滑迁移到 v3.0,了解重大变更和新特性",
|
|
274
274
|
"overview": {
|
|
275
275
|
"title": "概述",
|
|
276
|
-
"description": "MCP Probe Kit v3.0 是一个重大版本更新,精简优化到
|
|
276
|
+
"description": "MCP Probe Kit v3.0 是一个重大版本更新,精简优化到 27 个工具,带来了更强大的功能和更好的开发体验。",
|
|
277
277
|
"migrationTime": "迁移时间:",
|
|
278
278
|
"migrationTimeText": "大多数项目可以在 10-15 分钟内完成迁移,v2.x 的核心工具在 v3.0 中都保持兼容。"
|
|
279
279
|
},
|
|
@@ -281,7 +281,7 @@
|
|
|
281
281
|
"title": "主要变更",
|
|
282
282
|
"toolsOptimization": {
|
|
283
283
|
"title": "1. 工具精简优化",
|
|
284
|
-
"description": "v2.x: 39 个工具 → v3.x:
|
|
284
|
+
"description": "v2.x: 39 个工具 → v3.x: 27 个工具(移除低频工具,保留高价值工具)"
|
|
285
285
|
},
|
|
286
286
|
"workflows": {
|
|
287
287
|
"title": "2. 新增工作流编排",
|
|
@@ -353,7 +353,7 @@
|
|
|
353
353
|
"subtitle": "MCP Probe Kit 融合完整研发流程,从需求到上线的最佳实践指南",
|
|
354
354
|
"overview": {
|
|
355
355
|
"title": "完整研发流程",
|
|
356
|
-
"description": "MCP Probe Kit 的
|
|
356
|
+
"description": "MCP Probe Kit 的 27 个工具覆盖了从需求分析到代码上线的完整研发流程。以下是推荐的最佳实践。",
|
|
357
357
|
"coreIdea": "核心理念:",
|
|
358
358
|
"coreIdeaText": "通过工作流编排工具(start_*)串联整个开发流程,让 AI 成为你的研发助手。"
|
|
359
359
|
},
|
|
@@ -608,7 +608,7 @@
|
|
|
608
608
|
"resources": {
|
|
609
609
|
"title": "更多资源",
|
|
610
610
|
"allTools": "完整工具参考",
|
|
611
|
-
"allToolsDesc": "查看所有
|
|
611
|
+
"allToolsDesc": "查看所有 27 个工具的详细说明",
|
|
612
612
|
"gettingStarted": "安装配置",
|
|
613
613
|
"gettingStartedDesc": "快速开始使用",
|
|
614
614
|
"migration": "迁移指南",
|
|
@@ -3,10 +3,10 @@
|
|
|
3
3
|
<head>
|
|
4
4
|
<meta charset="UTF-8">
|
|
5
5
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
6
|
-
<title>所有工具 -
|
|
7
|
-
<meta name="i18n-title" content="所有工具 -
|
|
6
|
+
<title>所有工具 - 27个AI研发工具完整列表 | MCP Probe Kit</title>
|
|
7
|
+
<meta name="i18n-title" content="所有工具 - 27个AI研发工具完整列表 | MCP Probe Kit">
|
|
8
8
|
|
|
9
|
-
<meta name="description" content="MCP Probe Kit 完整工具列表:6个工作流编排工具、4个代码分析工具、2个Git工具、1个生成工具、6个项目管理工具、3个UI/UX工具、
|
|
9
|
+
<meta name="description" content="MCP Probe Kit 完整工具列表:6个工作流编排工具、4个代码分析工具、2个Git工具、1个生成工具、6个项目管理工具、3个UI/UX工具、5个 Memory 与 Cursor History 工具。">
|
|
10
10
|
<meta name="keywords" content="AI 开发工具, 代码生成工具, 代码审查工具, Git 自动化, UI 生成, 代码重构, 性能优化, 安全扫描">
|
|
11
11
|
<meta name="author" content="小墨 (Kyle) - ByteZoneX">
|
|
12
12
|
<meta name="robots" content="index, follow">
|
|
@@ -154,7 +154,7 @@
|
|
|
154
154
|
<!-- 页面标题 -->
|
|
155
155
|
<div class="mb-6">
|
|
156
156
|
<h1 class="text-2xl sm:text-3xl font-bold text-text-primary mb-2" data-i18n="sidebar.allTools">所有工具</h1>
|
|
157
|
-
<p class="text-sm sm:text-base text-text-secondary" id="page-subtitle">MCP Probe Kit 提供
|
|
157
|
+
<p class="text-sm sm:text-base text-text-secondary" id="page-subtitle">MCP Probe Kit 提供 27 个实用工具,核心与编排工具支持结构化输出</p>
|
|
158
158
|
<div class="flex flex-wrap items-center gap-2 mt-3 text-xs text-text-tertiary">
|
|
159
159
|
<span class="bg-blue-100 text-blue-700 px-2 py-0.5 rounded">v3.0.10</span>
|
|
160
160
|
<span>MCP 2025-11-25</span>
|
package/docs/pages/examples.html
CHANGED
|
@@ -157,7 +157,7 @@
|
|
|
157
157
|
<!-- 研发流程概览 -->
|
|
158
158
|
<section class="bg-white rounded-xl border border-border p-4 sm:p-6 mb-6 shadow-sm">
|
|
159
159
|
<h2 class="text-lg sm:text-xl font-semibold text-text-primary mb-4" data-i18n="examples.overview.title">完整研发流程</h2>
|
|
160
|
-
<p class="text-text-secondary mb-4 text-sm" data-i18n="examples.overview.description">MCP Probe Kit 的
|
|
160
|
+
<p class="text-text-secondary mb-4 text-sm" data-i18n="examples.overview.description">MCP Probe Kit 的 27 个工具覆盖了从需求分析到代码上线的完整研发流程。以下是推荐的最佳实践。</p>
|
|
161
161
|
<div class="p-3 bg-blue-50 border-l-3 border-blue-500 rounded-r text-sm">
|
|
162
162
|
<strong>💡 <span data-i18n="examples.overview.coreIdea">核心理念:</span></strong><span data-i18n="examples.overview.coreIdeaText">通过工作流编排工具(start_*)串联整个开发流程,让 AI 成为你的研发助手。</span>
|
|
163
163
|
</div>
|
|
@@ -667,7 +667,7 @@ max_minutes: 25
|
|
|
667
667
|
<section class="bg-white rounded-xl border border-border p-4 sm:p-6 mb-6 shadow-sm">
|
|
668
668
|
<h2 class="text-lg sm:text-xl font-semibold text-text-primary mb-4" data-i18n="examples.resources.title">更多资源</h2>
|
|
669
669
|
<ul class="list-disc list-inside space-y-2 text-sm text-text-primary">
|
|
670
|
-
<li><a href="./all-tools.html" class="text-primary hover:underline" data-i18n="examples.resources.allTools">完整工具参考</a> - <span data-i18n="examples.resources.allToolsDesc">查看所有
|
|
670
|
+
<li><a href="./all-tools.html" class="text-primary hover:underline" data-i18n="examples.resources.allTools">完整工具参考</a> - <span data-i18n="examples.resources.allToolsDesc">查看所有 27 个工具的详细说明</span></li>
|
|
671
671
|
<li><a href="./getting-started.html" class="text-primary hover:underline" data-i18n="examples.resources.gettingStarted">安装配置</a> - <span data-i18n="examples.resources.gettingStartedDesc">快速开始使用</span></li>
|
|
672
672
|
<li><a href="./migration.html" class="text-primary hover:underline" data-i18n="examples.resources.migration">迁移指南</a> - <span data-i18n="examples.resources.migrationDesc">从 v2.x 迁移到 v3.0</span></li>
|
|
673
673
|
<li><a href="https://github.com/mybolide/mcp-probe-kit" target="_blank" rel="noopener" class="text-primary hover:underline" data-i18n="examples.resources.github">GitHub 仓库</a>
|
|
@@ -513,7 +513,7 @@ ollama pull nomic-embed-text</code></pre>
|
|
|
513
513
|
<div class="mt-3">
|
|
514
514
|
<p class="font-medium mb-1" data-i18n="gettingStarted.step1.memory.cursor.title">Cursor History Tools</p>
|
|
515
515
|
<ul class="list-disc list-inside space-y-1">
|
|
516
|
-
<li><code class="bg-gray-200 px-1 rounded text-xs">
|
|
516
|
+
<li><code class="bg-gray-200 px-1 rounded text-xs">cursor_read_conversation</code><span data-i18n="gettingStarted.step1.memory.cursor.item1"> do not depend on Qdrant or embeddings</span></li>
|
|
517
517
|
<li data-i18n="gettingStarted.step1.memory.cursor.item2">Supports local Cursor installations on Windows / macOS / Linux</li>
|
|
518
518
|
<li><span data-i18n="gettingStarted.step1.memory.cursor.item3Prefix">Reads the local Cursor database from </span><code class="bg-gray-200 px-1 rounded text-xs">User/globalStorage/state.vscdb</code></li>
|
|
519
519
|
</ul>
|
|
@@ -157,7 +157,7 @@
|
|
|
157
157
|
<!-- 概述 -->
|
|
158
158
|
<section class="bg-white rounded-xl border border-border p-4 sm:p-6 mb-6 shadow-sm">
|
|
159
159
|
<h2 class="text-lg sm:text-xl font-semibold text-text-primary mb-4" data-i18n="migration.overview.title">概述</h2>
|
|
160
|
-
<p class="text-text-secondary mb-4 text-sm" data-i18n="migration.overview.description">MCP Probe Kit v3.0 是一个重大版本更新,精简优化到
|
|
160
|
+
<p class="text-text-secondary mb-4 text-sm" data-i18n="migration.overview.description">MCP Probe Kit v3.0 是一个重大版本更新,精简优化到 27 个工具,带来了更强大的功能和更好的开发体验。</p>
|
|
161
161
|
<div class="p-3 bg-blue-50 border-l-3 border-blue-500 rounded-r text-sm">
|
|
162
162
|
<strong>💡 <span data-i18n="migration.overview.migrationTime">迁移时间:</span></strong><span data-i18n="migration.overview.migrationTimeText">大多数项目可以在 10-15 分钟内完成迁移,v2.x 的核心工具在 v3.0 中都保持兼容。</span>
|
|
163
163
|
</div>
|
|
@@ -172,7 +172,7 @@
|
|
|
172
172
|
<span>🛠️</span>
|
|
173
173
|
<span data-i18n="migration.changes.toolsOptimization.title">1. 工具精简优化</span>
|
|
174
174
|
</h3>
|
|
175
|
-
<p class="text-text-secondary text-sm pl-7" data-i18n="migration.changes.toolsOptimization.description">v2.x: 39 个工具 → v3.x:
|
|
175
|
+
<p class="text-text-secondary text-sm pl-7" data-i18n="migration.changes.toolsOptimization.description">v2.x: 39 个工具 → v3.x: 27 个工具(移除低频工具,保留高价值工具)</p>
|
|
176
176
|
</div>
|
|
177
177
|
|
|
178
178
|
<div class="mb-4">
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "mcp-probe-kit",
|
|
3
|
-
"version": "3.0.
|
|
4
|
-
"description": "AI-Powered Development Toolkit - MCP Server with
|
|
3
|
+
"version": "3.0.23",
|
|
4
|
+
"description": "AI-Powered Development Toolkit - MCP Server with 27 tools covering code quality, development efficiency, project management, and UI/UX design. Features: Structured Output, Workflow Orchestration, UI/UX Pro Max, and Requirements Interview.",
|
|
5
5
|
"mcpName": "io.github.mybolide/mcp-probe-kit",
|
|
6
6
|
"type": "module",
|
|
7
7
|
"main": "build/index.js",
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
import { parseArgs, getString, getNumber, getBoolean } from '../utils/parseArgs.js';
|
|
2
|
-
import { okStructured } from '../lib/response.js';
|
|
3
|
-
import { handleToolError } from '../utils/error-handler.js';
|
|
4
|
-
import { createCursorHistoryClient } from '../lib/cursor-history-client.js';
|
|
5
|
-
export async function cursorListConversations(args) {
|
|
6
|
-
try {
|
|
7
|
-
const parsed = parseArgs(args, {
|
|
8
|
-
defaultValues: {
|
|
9
|
-
title_query: '',
|
|
10
|
-
workspace_query: '',
|
|
11
|
-
include_archived: false,
|
|
12
|
-
limit: 20,
|
|
13
|
-
},
|
|
14
|
-
fieldAliases: {
|
|
15
|
-
title_query: ['title', 'name_query', 'query'],
|
|
16
|
-
workspace_query: ['workspace', 'workspace_path'],
|
|
17
|
-
include_archived: ['archived'],
|
|
18
|
-
},
|
|
19
|
-
});
|
|
20
|
-
const client = createCursorHistoryClient();
|
|
21
|
-
const conversations = await client.listConversations({
|
|
22
|
-
titleQuery: getString(parsed.title_query),
|
|
23
|
-
workspaceQuery: getString(parsed.workspace_query),
|
|
24
|
-
includeArchived: getBoolean(parsed.include_archived, false),
|
|
25
|
-
limit: getNumber(parsed.limit, 20),
|
|
26
|
-
});
|
|
27
|
-
return okStructured(`已获取 ${conversations.length} 条 Cursor 会话摘要。`, {
|
|
28
|
-
count: conversations.length,
|
|
29
|
-
conversations,
|
|
30
|
-
});
|
|
31
|
-
}
|
|
32
|
-
catch (error) {
|
|
33
|
-
return handleToolError(error, 'cursor_list_conversations');
|
|
34
|
-
}
|
|
35
|
-
}
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
import { parseArgs, getString, getNumber } from '../utils/parseArgs.js';
|
|
2
|
-
import { okStructured } from '../lib/response.js';
|
|
3
|
-
import { handleToolError } from '../utils/error-handler.js';
|
|
4
|
-
import { createCursorHistoryClient } from '../lib/cursor-history-client.js';
|
|
5
|
-
export async function cursorSearchConversations(args) {
|
|
6
|
-
try {
|
|
7
|
-
const parsed = parseArgs(args, {
|
|
8
|
-
defaultValues: {
|
|
9
|
-
query: '',
|
|
10
|
-
composer_id: '',
|
|
11
|
-
limit: 20,
|
|
12
|
-
},
|
|
13
|
-
primaryField: 'query',
|
|
14
|
-
fieldAliases: {
|
|
15
|
-
composer_id: ['conversation_id', 'chat_id'],
|
|
16
|
-
},
|
|
17
|
-
});
|
|
18
|
-
const query = getString(parsed.query).trim();
|
|
19
|
-
if (!query) {
|
|
20
|
-
throw new Error('缺少必填参数: query');
|
|
21
|
-
}
|
|
22
|
-
const client = createCursorHistoryClient();
|
|
23
|
-
const matches = await client.searchHistory({
|
|
24
|
-
query,
|
|
25
|
-
composerId: getString(parsed.composer_id),
|
|
26
|
-
limit: getNumber(parsed.limit, 20),
|
|
27
|
-
});
|
|
28
|
-
return okStructured(`已找到 ${matches.length} 条 Cursor 历史命中。`, {
|
|
29
|
-
count: matches.length,
|
|
30
|
-
matches,
|
|
31
|
-
});
|
|
32
|
-
}
|
|
33
|
-
catch (error) {
|
|
34
|
-
return handleToolError(error, 'cursor_search_conversations');
|
|
35
|
-
}
|
|
36
|
-
}
|