kiri-mcp-server 0.20.1 → 0.20.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -3
- package/dist/package.json +1 -1
- package/dist/src/server/prompts.js +61 -61
- package/dist/src/server/prompts.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
> Intelligent code context extraction for LLMs via Model Context Protocol
|
|
4
4
|
|
|
5
|
-
[](package.json)
|
|
6
6
|
[](LICENSE)
|
|
7
7
|
[](https://www.typescriptlang.org/)
|
|
8
8
|
[](https://modelcontextprotocol.io/)
|
|
@@ -139,10 +139,10 @@ See [CHANGELOG.md](CHANGELOG.md) for release notes.
|
|
|
139
139
|
|
|
140
140
|
**Recent highlights:**
|
|
141
141
|
|
|
142
|
+
- **v0.20.2**: Build artifact fix (dist/ contained stale Japanese text)
|
|
142
143
|
- **v0.20.1**: MCP Prompts translation fix (Japanese to English)
|
|
143
144
|
- **v0.20.0**: MCP Prompts/Resources support
|
|
144
145
|
- **v0.19.0**: MCP Structured Output support (outputSchema field)
|
|
145
|
-
- **v0.18.2**: Defensive JSON sanitization for metadata persistence
|
|
146
146
|
|
|
147
147
|
---
|
|
148
148
|
|
|
@@ -221,4 +221,4 @@ Built with [Model Context Protocol](https://modelcontextprotocol.io/), [DuckDB](
|
|
|
221
221
|
|
|
222
222
|
---
|
|
223
223
|
|
|
224
|
-
**Status**: v0.20.
|
|
224
|
+
**Status**: v0.20.2 (Beta) - Production-ready for MCP clients
|
package/dist/package.json
CHANGED
|
@@ -16,56 +16,56 @@ import { fileExistsAsync } from "../shared/utils/path.js";
|
|
|
16
16
|
export const PRESET_PROMPTS = [
|
|
17
17
|
{
|
|
18
18
|
name: "debug-error",
|
|
19
|
-
description: "
|
|
19
|
+
description: "Search for related code from an error message",
|
|
20
20
|
arguments: [
|
|
21
21
|
{
|
|
22
22
|
name: "error_message",
|
|
23
23
|
required: true,
|
|
24
|
-
description: "
|
|
24
|
+
description: "Error message",
|
|
25
25
|
},
|
|
26
26
|
],
|
|
27
27
|
},
|
|
28
28
|
{
|
|
29
29
|
name: "find-tests",
|
|
30
|
-
description: "
|
|
30
|
+
description: "Search for tests for the specified file",
|
|
31
31
|
arguments: [
|
|
32
32
|
{
|
|
33
33
|
name: "file_path",
|
|
34
34
|
required: true,
|
|
35
|
-
description: "
|
|
35
|
+
description: "File path",
|
|
36
36
|
},
|
|
37
37
|
],
|
|
38
38
|
},
|
|
39
39
|
{
|
|
40
40
|
name: "explain-function",
|
|
41
|
-
description: "
|
|
41
|
+
description: "Search for function implementation and usage locations",
|
|
42
42
|
arguments: [
|
|
43
43
|
{
|
|
44
44
|
name: "function_name",
|
|
45
45
|
required: true,
|
|
46
|
-
description: "
|
|
46
|
+
description: "Function name",
|
|
47
47
|
},
|
|
48
48
|
],
|
|
49
49
|
},
|
|
50
50
|
{
|
|
51
51
|
name: "find-implementations",
|
|
52
|
-
description: "
|
|
52
|
+
description: "Search for implementations of an interface or type",
|
|
53
53
|
arguments: [
|
|
54
54
|
{
|
|
55
55
|
name: "type_name",
|
|
56
56
|
required: true,
|
|
57
|
-
description: "
|
|
57
|
+
description: "Type name",
|
|
58
58
|
},
|
|
59
59
|
],
|
|
60
60
|
},
|
|
61
61
|
{
|
|
62
62
|
name: "trace-dependency",
|
|
63
|
-
description: "
|
|
63
|
+
description: "Trace file dependencies",
|
|
64
64
|
arguments: [
|
|
65
65
|
{
|
|
66
66
|
name: "file_path",
|
|
67
67
|
required: true,
|
|
68
|
-
description: "
|
|
68
|
+
description: "Starting file path",
|
|
69
69
|
},
|
|
70
70
|
{
|
|
71
71
|
name: "direction",
|
|
@@ -84,93 +84,93 @@ export const PRESET_PROMPTS = [
|
|
|
84
84
|
const PRESET_TEMPLATES = {
|
|
85
85
|
"debug-error": (args) => {
|
|
86
86
|
const errorMessage = args.error_message ?? "";
|
|
87
|
-
return
|
|
87
|
+
return `Please search for code related to the following error message.
|
|
88
88
|
|
|
89
|
-
##
|
|
89
|
+
## Error Message
|
|
90
90
|
\`\`\`
|
|
91
91
|
${errorMessage}
|
|
92
92
|
\`\`\`
|
|
93
93
|
|
|
94
|
-
##
|
|
95
|
-
1. \`context_bundle\`
|
|
96
|
-
2.
|
|
97
|
-
3.
|
|
94
|
+
## Search Steps
|
|
95
|
+
1. Use \`context_bundle\` to search for keywords in the error message (function names, file names, class names, etc.)
|
|
96
|
+
2. If there is related stack trace information, check the relevant files with \`snippets_get\`
|
|
97
|
+
3. Identify code that may be causing the error
|
|
98
98
|
|
|
99
|
-
##
|
|
100
|
-
-
|
|
101
|
-
-
|
|
99
|
+
## Expected Output
|
|
100
|
+
- Identification of the error source
|
|
101
|
+
- Suggested fixes`;
|
|
102
102
|
},
|
|
103
103
|
"find-tests": (args) => {
|
|
104
104
|
const filePath = args.file_path ?? "";
|
|
105
|
-
return
|
|
105
|
+
return `Please search for test files corresponding to the following file.
|
|
106
106
|
|
|
107
|
-
##
|
|
107
|
+
## Target File
|
|
108
108
|
\`${filePath}\`
|
|
109
109
|
|
|
110
|
-
##
|
|
111
|
-
1. \`files_search\`
|
|
112
|
-
-
|
|
113
|
-
2.
|
|
114
|
-
3. \`deps_closure\`
|
|
110
|
+
## Search Steps
|
|
111
|
+
1. Use \`files_search\` to search for test files based on the target file name
|
|
112
|
+
- Example: \`foo.ts\` → \`foo.spec.ts\`, \`foo.test.ts\`, \`__tests__/foo.ts\`
|
|
113
|
+
2. Once test files are found, check their contents with \`snippets_get\`
|
|
114
|
+
3. Also check the target file's dependencies with \`deps_closure\` to identify related tests
|
|
115
115
|
|
|
116
|
-
##
|
|
117
|
-
-
|
|
118
|
-
-
|
|
116
|
+
## Expected Output
|
|
117
|
+
- List of test file paths
|
|
118
|
+
- Test coverage overview (functions/methods being tested)`;
|
|
119
119
|
},
|
|
120
120
|
"explain-function": (args) => {
|
|
121
121
|
const functionName = args.function_name ?? "";
|
|
122
|
-
return
|
|
122
|
+
return `Please search for and explain the implementation and usage locations of the following function.
|
|
123
123
|
|
|
124
|
-
##
|
|
124
|
+
## Function Name
|
|
125
125
|
\`${functionName}\`
|
|
126
126
|
|
|
127
|
-
##
|
|
128
|
-
1. \`context_bundle\`
|
|
129
|
-
2. \`snippets_get\`
|
|
130
|
-
3. \`files_search\`
|
|
127
|
+
## Search Steps
|
|
128
|
+
1. Use \`context_bundle\` to search for the function definition
|
|
129
|
+
2. Get the complete implementation with \`snippets_get\`
|
|
130
|
+
3. Identify usage locations with \`files_search\` or \`deps_closure\` (direction: inbound)
|
|
131
131
|
|
|
132
|
-
##
|
|
133
|
-
-
|
|
134
|
-
-
|
|
135
|
-
-
|
|
132
|
+
## Expected Output
|
|
133
|
+
- Explanation of the function signature and implementation
|
|
134
|
+
- Primary usage locations
|
|
135
|
+
- Dependencies (other functions being called)`;
|
|
136
136
|
},
|
|
137
137
|
"find-implementations": (args) => {
|
|
138
138
|
const typeName = args.type_name ?? "";
|
|
139
|
-
return
|
|
139
|
+
return `Please search for implementations of the following interface/type.
|
|
140
140
|
|
|
141
|
-
##
|
|
141
|
+
## Type Name
|
|
142
142
|
\`${typeName}\`
|
|
143
143
|
|
|
144
|
-
##
|
|
145
|
-
1. \`context_bundle\`
|
|
146
|
-
2.
|
|
147
|
-
3.
|
|
144
|
+
## Search Steps
|
|
145
|
+
1. Use \`context_bundle\` to search for the type definition
|
|
146
|
+
2. Search for "implements ${typeName}" or "extends ${typeName}" with \`files_search\`
|
|
147
|
+
3. Check an overview of each implementing class/object with \`snippets_get\`
|
|
148
148
|
|
|
149
|
-
##
|
|
150
|
-
-
|
|
151
|
-
-
|
|
152
|
-
-
|
|
149
|
+
## Expected Output
|
|
150
|
+
- Location and content of the type definition
|
|
151
|
+
- List of implementations (class names, file paths)
|
|
152
|
+
- Features and differences of each implementation`;
|
|
153
153
|
},
|
|
154
154
|
"trace-dependency": (args) => {
|
|
155
155
|
const filePath = args.file_path ?? "";
|
|
156
156
|
const direction = args.direction ?? "both";
|
|
157
|
-
return
|
|
157
|
+
return `Please trace the dependencies of the following file.
|
|
158
158
|
|
|
159
|
-
##
|
|
159
|
+
## Starting File
|
|
160
160
|
\`${filePath}\`
|
|
161
161
|
|
|
162
|
-
##
|
|
163
|
-
${direction === "both" ? "
|
|
162
|
+
## Direction
|
|
163
|
+
${direction === "both" ? "Bidirectional (inbound + outbound)" : direction}
|
|
164
164
|
|
|
165
|
-
##
|
|
166
|
-
1. \`deps_closure\`
|
|
167
|
-
${direction === "both" ? "- direction: outbound
|
|
168
|
-
2.
|
|
165
|
+
## Search Steps
|
|
166
|
+
1. Use \`deps_closure\` to get dependencies
|
|
167
|
+
${direction === "both" ? "- direction: outbound (modules this file uses)\n - direction: inbound (modules that use this file)" : `- direction: ${direction}`}
|
|
168
|
+
2. Check details of important dependencies with \`snippets_get\`
|
|
169
169
|
|
|
170
|
-
##
|
|
171
|
-
-
|
|
172
|
-
-
|
|
173
|
-
-
|
|
170
|
+
## Expected Output
|
|
171
|
+
- Overview of the dependency graph
|
|
172
|
+
- Explanation of major dependencies
|
|
173
|
+
- Presence of circular dependencies`;
|
|
174
174
|
},
|
|
175
175
|
};
|
|
176
176
|
// =============================================================================
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prompts.js","sourceRoot":"","sources":["../../../src/server/prompts.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAE,KAAK,IAAI,SAAS,EAAE,MAAM,MAAM,CAAC;AAE1C,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAiE1D,gFAAgF;AAChF,eAAe;AACf,gFAAgF;AAEhF;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAAuB;IAChD;QACE,IAAI,EAAE,aAAa;QACnB,WAAW,EAAE
|
|
1
|
+
{"version":3,"file":"prompts.js","sourceRoot":"","sources":["../../../src/server/prompts.ts"],"names":[],"mappings":"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"}
|