@hoshikawashiro/ide-mcp-server 1.0.6 → 1.0.9

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.
@@ -13,6 +13,11 @@ export declare class MCPServer {
13
13
  * 确保每两次刷新之间不小于 5 秒
14
14
  */
15
15
  private refreshInstancesWithThrottle;
16
+ /**
17
+ * 统一的实例查找方法
18
+ * 根据当前工作目录查找对应的 IDE 实例,如果找不到则抛出统一的错误
19
+ */
20
+ private findInstanceOrThrow;
16
21
  private registerTools;
17
22
  private handleShowPopup;
18
23
  private handleListInstances;
@@ -23,7 +28,12 @@ export declare class MCPServer {
23
28
  private handleFetchContentFromIdentifier;
24
29
  private handleTriggerGradleSync;
25
30
  private handleSemanticsCodeSearch;
31
+ private handleLookupDeclaration;
26
32
  private handleFindUsage;
33
+ private handleAnalyzeImage;
34
+ private callImageAnalyzeAPI;
35
+ private handleReadLarkDoc;
36
+ private callReadLarkDocAPI;
27
37
  start(): Promise<void>;
28
38
  stop(): Promise<void>;
29
39
  isServerRunning(): boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-server.d.ts","sourceRoot":"","sources":["../src/mcp-server.ts"],"names":[],"mappings":";AAeA,qBAAa,SAAS;IACpB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,eAAe,CAAkB;IACzC,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,SAAS,CAAkB;IACnC,OAAO,CAAC,SAAS,CAAa;IAC9B,OAAO,CAAC,eAAe,CAAa;IACpC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAQ;;IAsBzC;;;OAGG;YACW,4BAA4B;IAmB1C,OAAO,CAAC,aAAa;YA4KP,eAAe;YA4Bf,mBAAmB;YAqBnB,mBAAmB;YA2BnB,oBAAoB;YA+BpB,iBAAiB;YAmCjB,iBAAiB;YAmCjB,gCAAgC;YAmChC,uBAAuB;YA+BvB,yBAAyB;YAmCzB,eAAe;IAmCvB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAqBtB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAgB3B,eAAe,IAAI,OAAO;CAG3B"}
1
+ {"version":3,"file":"mcp-server.d.ts","sourceRoot":"","sources":["../src/mcp-server.ts"],"names":[],"mappings":";AAgBA,qBAAa,SAAS;IACpB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,eAAe,CAAkB;IACzC,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,SAAS,CAAkB;IACnC,OAAO,CAAC,SAAS,CAAa;IAC9B,OAAO,CAAC,eAAe,CAAa;IACpC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAQ;;IAsBzC;;;OAGG;YACW,4BAA4B;IAmB1C;;;OAGG;YACW,mBAAmB;IAcjC,OAAO,CAAC,aAAa;YAqRP,eAAe;YAuBf,mBAAmB;YAqBnB,mBAAmB;YA2BnB,oBAAoB;YA0BpB,iBAAiB;YA8BjB,iBAAiB;YA8BjB,gCAAgC;YA8ChC,uBAAuB;YA0BvB,yBAAyB;YA8BzB,uBAAuB;YA8BvB,eAAe;YA8Bf,kBAAkB;YA2BlB,mBAAmB;YAkBnB,iBAAiB;YA2BjB,kBAAkB;IAiB1B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAqBtB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAgB3B,eAAe,IAAI,OAAO;CAG3B"}
@@ -5,6 +5,8 @@ import { CallToolRequestSchema, ListToolsRequestSchema, } from '@modelcontextpro
5
5
  import { InstanceManager } from './utils/instance-manager.js';
6
6
  import { IDEConnector } from './services/ide-connector.js';
7
7
  import * as os from 'os';
8
+ import axios from 'axios';
9
+ import { snippetParser } from "./utils/snippet-parser.js";
8
10
  export class MCPServer {
9
11
  constructor() {
10
12
  this.isRunning = false;
@@ -47,6 +49,21 @@ export class MCPServer {
47
49
  console.log('Failed to refresh instances:', error);
48
50
  }
49
51
  }
52
+ /**
53
+ * 统一的实例查找方法
54
+ * 根据当前工作目录查找对应的 IDE 实例,如果找不到则抛出统一的错误
55
+ */
56
+ async findInstanceOrThrow() {
57
+ const cwd = process.cwd();
58
+ const instance = await this.instanceManager.findInstanceByProjectPath(cwd);
59
+ if (!instance) {
60
+ throw new Error(`No IDE instance found for project path: ${cwd}. You may not have started this project in IDEA/Android Studio, or not installed *IDE-use* plugin in the corresponding IDE.
61
+ - Plugin documentation: 📚 https://v2ig.cn/OyldV8sfxWI/
62
+ - Quick installation command: \`bash <(curl -s "https://v2mg.cn/Kw3Wx4hxHKs/")\`
63
+ `);
64
+ }
65
+ return instance;
66
+ }
50
67
  registerTools() {
51
68
  // 注册 showPopup 工具
52
69
  this.server.setRequestHandler(ListToolsRequestSchema, async () => {
@@ -54,13 +71,13 @@ export class MCPServer {
54
71
  tools: [
55
72
  {
56
73
  name: 'show_popup',
57
- description: '在当前工程对应的 IDE 实例中显示弹窗消息,IDE 实例由当前工作目录自动匹配工程路径无需提供',
74
+ description: 'Show a popup message in the IDE instance corresponding to the current project. The IDE instance is automatically matched by the current working directory and does not need to be provided.',
58
75
  inputSchema: {
59
76
  type: 'object',
60
77
  properties: {
61
78
  message: {
62
79
  type: 'string',
63
- description: '要显示的消息内容'
80
+ description: 'The message content to be displayed'
64
81
  }
65
82
  },
66
83
  required: ['message']
@@ -84,7 +101,7 @@ export class MCPServer {
84
101
  },
85
102
  {
86
103
  name: 'code_inspect',
87
- description: `A tool for lightweight syntax checking of Java and Kotlin code files at the specified path.`,
104
+ description: `A tool for lightweight compilation checking of Java and Kotlin code files at the specified path.`,
88
105
  inputSchema: {
89
106
  type: 'object',
90
107
  properties: {
@@ -98,30 +115,43 @@ export class MCPServer {
98
115
  },
99
116
  {
100
117
  name: 'search_class',
101
- description: `Find exact class name in current project visible scope. Return a list of json object which declares files with this class.
102
- - identifier: an identifier to target class, use 'fetch_content_from_identifier' to get its real content. The content will be source code if it's a project class or source jar class, and it will be a class abi declaration if it's a binary class.
118
+ description: `
119
+ Search exact java or kotlin classes in current project visible scope by its class name. There could be several classes with the same name in different packages, so this tool willreturn a list of json object which declares files with this class. Each class result item contains:
120
+ - identifier: an identifier of target class, MUST use 'fetch_content_from_identifier' to get its real content. Attention: The identifier does not equals to file path.
103
121
  - dependencyInfo: tell which module the class belongs to (use for confirm whether has class visibility).
122
+ ** This tool can also be used to validate whether a class is visible in current project.
104
123
  `,
105
124
  inputSchema: {
106
125
  type: 'object',
107
126
  properties: {
108
127
  keyword: {
109
128
  type: 'string',
110
- description: 'className to be find'
129
+ description: 'java simple class name without package name. Accept any valid java or kotlin class, interface, enum, annotation, etc. Not accept package name, method name and field name.'
111
130
  }
112
131
  },
113
- required: ['className']
132
+ required: ['keyword']
114
133
  }
115
134
  },
116
135
  {
117
136
  name: 'fetch_content_from_identifier',
118
- description: `This tool is only used to accept the identifier list returned by the search_class tool, and return the corresponding content. The identifier is not the same as the file path, and cannot be used to read the files under the file path.`,
137
+ description: `
138
+ This tool is only used to accept the identifier list returned by the 'search_class', 'find_usage', "lookup_declaration" tool, and return the corresponding content. Never use this tool to read a file path directly.
139
+ The content of an identifier could be *source code* if it's a project class or source jar class, and it will be a *class ABI declaration* if it's a binary class in jar file.
140
+ `,
119
141
  inputSchema: {
120
142
  type: 'object',
121
143
  properties: {
122
144
  identifier: {
123
145
  type: 'string',
124
- description: 'identifier from search_class tool'
146
+ description: 'class identifier from accepted tools'
147
+ },
148
+ startLine: {
149
+ type: 'number',
150
+ description: 'Start line number of file identifier which need to be read (start from 1). When read whole file, donnot pass this parameter.'
151
+ },
152
+ endLine: {
153
+ type: 'number',
154
+ description: 'End line number of file identifier which need to be read (start from 1). When read whole file, donnot pass this parameter.'
125
155
  }
126
156
  },
127
157
  required: ['identifier']
@@ -129,7 +159,7 @@ export class MCPServer {
129
159
  },
130
160
  {
131
161
  name: 'trigger_gradle_sync',
132
- description: '同步触发 Gradle Sync 以重建工程信息,返回 sync 的成功与报错信息',
162
+ description: 'Trigger Gradle Sync synchronization to rebuild project information, return the success status and error information (if failed) of the sync',
133
163
  inputSchema: {
134
164
  type: 'object',
135
165
  properties: {}
@@ -137,42 +167,117 @@ export class MCPServer {
137
167
  },
138
168
  {
139
169
  name: 'semantics_code_search',
140
- description: '通过给定的语义描述,搜索当前工程中相关的代码片段',
170
+ description: `
171
+ Performs semantic search across the project to find topK code snippets relevant to a given query. Used to find business-related code, base method usages, and reusable examples through short feature descriptions with qualifiers. Not intended for exploring code logic relationships or API call flows.
172
+ Query must be functionality targeting which includes: [functionality description (like ban user, show popup, encrypt user id etc)] + [business scope qualifier (optional, like live, feed, global example etc)] + [technical or framework qualifier (optional, like Retrofit, Dagger, etc)].
173
+ `,
141
174
  inputSchema: {
142
175
  type: 'object',
143
176
  properties: {
144
177
  codeDescription: {
145
178
  type: 'string',
146
- description: '需要搜索的代码片段的简要描述'
179
+ description: 'A brief description of the code snippet to be searched'
147
180
  },
148
181
  topK: {
149
182
  type: 'number',
150
- description: '相关性的前n位数据,默认为3'
183
+ description: 'The number of code snippets to return, default is 3'
151
184
  }
152
185
  },
153
186
  required: ['codeDescription']
154
187
  }
155
188
  },
189
+ {
190
+ name: 'lookup_declaration',
191
+ description: `
192
+ Look up the precise declaration of a specific java or kotlin symbol (could be class, method, variable) in the current project. Valid cases to use this tool to find declaration like Class use, method call and variable access (get or set).
193
+ This tool return a json object describe declaration which contains:
194
+ - identifier: an identifier contains target declaration, MUST use 'fetch_content_from_identifier' to get its real content;
195
+ - codeRange: code line range which contains the declaration;
196
+ `,
197
+ inputSchema: {
198
+ type: 'object',
199
+ properties: {
200
+ filePath: {
201
+ type: 'string',
202
+ description: 'File path which contains symbol usage'
203
+ },
204
+ line: {
205
+ type: 'number',
206
+ description: 'line number which contains the target symbol (start from 1)'
207
+ },
208
+ symbolIndex: {
209
+ type: 'number',
210
+ description: 'If there are multiple target symbols with the same name in this line, this parameter specifies the index (start from 1) of which target symbol. If the target symbol is unique in this line, this parameter is not needed.'
211
+ },
212
+ symbol: {
213
+ type: 'string',
214
+ description: "The name of the target symbol."
215
+ }
216
+ },
217
+ required: ['filePath', 'line', 'symbol']
218
+ }
219
+ },
156
220
  {
157
221
  name: 'find_usage',
158
- description: '查找类、方法、字段的引用点,通过文件路径和位置定位目标元素',
222
+ description: `
223
+ Find all usage specs of a specific java or kotlin symbol (could be class, method, variable) in the current project. Given the position coordinates where the symbol is declared, this tool will return a list of json object where it was used. Each usage result item contains:
224
+ - identifier: an identifier of target usage class, MUST use 'fetch_content_from_identifier' to get its real content. Attention: The identifier does not equals to file path;
225
+ - line: the line number of the usage point;
226
+ - preview: a brief content context of the usage point (2 lines above and below the usage point);
227
+ `,
159
228
  inputSchema: {
160
229
  type: 'object',
161
230
  properties: {
162
231
  filePath: {
163
232
  type: 'string',
164
- description: '目标文件的路径'
233
+ description: 'File path which contains symbol usage'
165
234
  },
166
- lineNumber: {
235
+ line: {
167
236
  type: 'number',
168
- description: '目标元素所在的行号(从1开始)'
237
+ description: 'line number which contains the target symbol (start from 1)'
169
238
  },
170
- columnNumber: {
239
+ symbolIndex: {
171
240
  type: 'number',
172
- description: '目标元素所在的列号(从1开始)'
241
+ description: 'If there are multiple target symbols with the same name in this line, this parameter specifies the index (start from 1) of which target symbol. If the target symbol is unique in this line, this parameter is not needed.'
242
+ },
243
+ symbol: {
244
+ type: 'string',
245
+ description: "The name of the target symbol."
173
246
  }
174
247
  },
175
- required: ['filePath', 'lineNumber', 'columnNumber']
248
+ required: ['filePath', 'line', 'symbol']
249
+ }
250
+ },
251
+ {
252
+ name: 'analyze_image',
253
+ description: 'Analyze an image using advanced AI vision models with comprehensive understanding capabilities. Only accepts remote image URLs (HTTP/HTTPS).',
254
+ inputSchema: {
255
+ type: 'object',
256
+ properties: {
257
+ image_source: {
258
+ type: 'string',
259
+ description: 'Accept only remote uploaded imageURL'
260
+ },
261
+ prompt: {
262
+ type: 'string',
263
+ description: 'A detail description of infomation want to extract from this image or the purpose of analyzing'
264
+ }
265
+ },
266
+ required: ['image_source', 'prompt']
267
+ }
268
+ },
269
+ {
270
+ name: 'read_lark_doc',
271
+ description: 'Read and retrieve content of a Lark document from its web link. The link MUST contains /wiki/ or /docx/ in its path. NEVER use this tool if the link not matches the pattern.',
272
+ inputSchema: {
273
+ type: 'object',
274
+ properties: {
275
+ docLink: {
276
+ type: 'string',
277
+ description: 'A valid http/https link to a Lark document.'
278
+ }
279
+ },
280
+ required: ['docLink']
176
281
  }
177
282
  },
178
283
  ]
@@ -203,8 +308,26 @@ export class MCPServer {
203
308
  return await this.handleTriggerGradleSync();
204
309
  case 'semantics_code_search':
205
310
  return await this.handleSemanticsCodeSearch(args);
206
- case 'find_usage':
207
- return await this.handleFindUsage(args);
311
+ case 'lookup_declaration': {
312
+ const { filePath, line, symbolIndex, symbol } = args;
313
+ const lookupResult = snippetParser.parse(filePath, line, symbol, symbolIndex);
314
+ if (!lookupResult.success) {
315
+ throw new Error(`Failed to parse snippet for lookup_declaration: ${lookupResult.error}`);
316
+ }
317
+ return await this.handleLookupDeclaration({ filePath, line: lookupResult.line, column: lookupResult.column });
318
+ }
319
+ case 'find_usage': {
320
+ const { filePath, line, symbolIndex, symbol } = args;
321
+ const findUsageResult = snippetParser.parse(filePath, line, symbol, symbolIndex);
322
+ if (!findUsageResult.success) {
323
+ throw new Error(`Failed to parse snippet for find_usage: ${findUsageResult.error}`);
324
+ }
325
+ return await this.handleFindUsage({ filePath, line: findUsageResult.line, column: findUsageResult.column });
326
+ }
327
+ case 'analyze_image':
328
+ return await this.handleAnalyzeImage(args);
329
+ case 'read_lark_doc':
330
+ return await this.handleReadLarkDoc(args);
208
331
  default:
209
332
  throw new Error(`Unknown tool: ${name}`);
210
333
  }
@@ -218,12 +341,8 @@ export class MCPServer {
218
341
  if (!params.message) {
219
342
  throw new Error('Invalid params: message are required');
220
343
  }
221
- let cwd = process.cwd();
222
344
  // 查找对应的 IDE 实例
223
- const instance = await this.instanceManager.findInstanceByProjectPath(cwd);
224
- if (!instance) {
225
- throw new Error(`No IDE instance found for project path: ${cwd}`);
226
- }
345
+ const instance = await this.findInstanceOrThrow();
227
346
  try {
228
347
  await this.ideConnector.showPopup(instance, params.message);
229
348
  return {
@@ -282,12 +401,8 @@ export class MCPServer {
282
401
  }
283
402
  }
284
403
  async handleGetCurrentFile() {
285
- let cwd = process.cwd();
286
404
  // 查找对应的 IDE 实例
287
- const instance = await this.instanceManager.findInstanceByProjectPath(cwd);
288
- if (!instance) {
289
- throw new Error(`No IDE instance found for project path: ${cwd}`);
290
- }
405
+ const instance = await this.findInstanceOrThrow();
291
406
  try {
292
407
  const response = await this.ideConnector.getCurrentFile(instance);
293
408
  if (response.error) {
@@ -311,12 +426,8 @@ export class MCPServer {
311
426
  if (!params.filePath) {
312
427
  throw new Error('Invalid params: filePath is required');
313
428
  }
314
- let cwd = process.cwd();
315
429
  // 查找对应的 IDE 实例
316
- const instance = await this.instanceManager.findInstanceByProjectPath(cwd);
317
- if (!instance) {
318
- throw new Error(`No IDE instance found for project path: ${cwd}`);
319
- }
430
+ const instance = await this.findInstanceOrThrow();
320
431
  try {
321
432
  const response = await this.ideConnector.codeInspect(instance, params.filePath);
322
433
  if (response.error) {
@@ -340,12 +451,8 @@ export class MCPServer {
340
451
  if (!params.keyword) {
341
452
  throw new Error('Invalid params: keyword is required');
342
453
  }
343
- let cwd = process.cwd();
344
454
  // 查找对应的 IDE 实例
345
- const instance = await this.instanceManager.findInstanceByProjectPath(cwd);
346
- if (!instance) {
347
- throw new Error(`No IDE instance found for project path: ${cwd}`);
348
- }
455
+ const instance = await this.findInstanceOrThrow();
349
456
  try {
350
457
  const response = await this.ideConnector.searchClass(instance, params.keyword);
351
458
  if (response.error) {
@@ -369,38 +476,45 @@ export class MCPServer {
369
476
  if (!params.identifier) {
370
477
  throw new Error('Invalid params: identifier is required');
371
478
  }
372
- let cwd = process.cwd();
373
479
  // 查找对应的 IDE 实例
374
- const instance = await this.instanceManager.findInstanceByProjectPath(cwd);
375
- if (!instance) {
376
- throw new Error(`No IDE instance found for project path: ${cwd}`);
377
- }
480
+ const instance = await this.findInstanceOrThrow();
481
+ // 设置默认值
482
+ const startLine = params.startLine ?? 0;
483
+ const endLine = params.endLine ?? 10000;
378
484
  try {
379
- const response = await this.ideConnector.fetchContentFromIdentifier(instance, params.identifier);
485
+ const response = await this.ideConnector.fetchContentFromIdentifier(instance, params.identifier, startLine, endLine);
380
486
  if (response.error) {
381
487
  throw new Error(`Failed to fetch content from identifier: ${response.error.message}`);
382
488
  }
383
489
  const contentResult = response.result;
384
- return {
385
- content: [
386
- {
387
- type: 'text',
388
- text: `Content for identifier "${params.identifier}":\n${JSON.stringify(contentResult, null, 2)}`
389
- }
390
- ]
391
- };
490
+ if (contentResult.success) {
491
+ return {
492
+ content: [
493
+ {
494
+ type: 'text',
495
+ text: `${contentResult.content}`
496
+ }
497
+ ]
498
+ };
499
+ }
500
+ else {
501
+ return {
502
+ content: [
503
+ {
504
+ type: 'text',
505
+ text: `${JSON.stringify(contentResult)}`
506
+ }
507
+ ]
508
+ };
509
+ }
392
510
  }
393
511
  catch (error) {
394
512
  throw new Error(`Failed to fetch content from identifier: ${error instanceof Error ? error.message : 'Unknown error'}`);
395
513
  }
396
514
  }
397
515
  async handleTriggerGradleSync() {
398
- let cwd = process.cwd();
399
516
  // 查找对应的 IDE 实例
400
- const instance = await this.instanceManager.findInstanceByProjectPath(cwd);
401
- if (!instance) {
402
- throw new Error(`No IDE instance found for project path: ${cwd}`);
403
- }
517
+ const instance = await this.findInstanceOrThrow();
404
518
  try {
405
519
  const response = await this.ideConnector.triggerGradleSync(instance);
406
520
  if (response.error) {
@@ -424,12 +538,8 @@ export class MCPServer {
424
538
  if (!params.codeDescription) {
425
539
  throw new Error('Invalid params: codeDescription is required');
426
540
  }
427
- let cwd = process.cwd();
428
541
  // 查找对应的 IDE 实例
429
- const instance = await this.instanceManager.findInstanceByProjectPath(cwd);
430
- if (!instance) {
431
- throw new Error(`No IDE instance found for project path: ${cwd}`);
432
- }
542
+ const instance = await this.findInstanceOrThrow();
433
543
  try {
434
544
  const response = await this.ideConnector.semanticsCodeSearch(instance, params.codeDescription, params.topK || 3);
435
545
  if (response.error) {
@@ -449,18 +559,39 @@ export class MCPServer {
449
559
  throw new Error(`Failed to perform semantic code search: ${error instanceof Error ? error.message : 'Unknown error'}`);
450
560
  }
451
561
  }
452
- async handleFindUsage(params) {
453
- if (!params.filePath || params.lineNumber === undefined || params.columnNumber === undefined) {
454
- throw new Error('Invalid params: filePath, lineNumber, and columnNumber are required');
562
+ async handleLookupDeclaration(params) {
563
+ if (!params.filePath || params.line === undefined || params.column === undefined) {
564
+ throw new Error('Invalid params: filePath, line, and column are required');
455
565
  }
456
- let cwd = process.cwd();
457
566
  // 查找对应的 IDE 实例
458
- const instance = await this.instanceManager.findInstanceByProjectPath(cwd);
459
- if (!instance) {
460
- throw new Error(`No IDE instance found for project path: ${cwd}`);
567
+ const instance = await this.findInstanceOrThrow();
568
+ try {
569
+ const response = await this.ideConnector.lookupDeclaration(instance, params.filePath, params.line, params.column);
570
+ if (response.error) {
571
+ throw new Error(`Failed to lookup declaration: ${response.error.message}`);
572
+ }
573
+ const declarationResult = response.result;
574
+ return {
575
+ content: [
576
+ {
577
+ type: 'text',
578
+ text: `Declaration lookup result:\n${JSON.stringify(declarationResult, null, 2)}`
579
+ }
580
+ ]
581
+ };
461
582
  }
583
+ catch (error) {
584
+ throw new Error(`Failed to lookup declaration: ${error instanceof Error ? error.message : 'Unknown error'}`);
585
+ }
586
+ }
587
+ async handleFindUsage(params) {
588
+ if (!params.filePath || params.line === undefined || params.column === undefined) {
589
+ throw new Error('Invalid params: filePath, line, and column are required');
590
+ }
591
+ // 查找对应的 IDE 实例
592
+ const instance = await this.findInstanceOrThrow();
462
593
  try {
463
- const response = await this.ideConnector.findUsage(instance, params.filePath, params.lineNumber, params.columnNumber);
594
+ const response = await this.ideConnector.findUsage(instance, params.filePath, params.line, params.column);
464
595
  if (response.error) {
465
596
  throw new Error(`Failed to find usage: ${response.error.message}`);
466
597
  }
@@ -469,7 +600,7 @@ export class MCPServer {
469
600
  content: [
470
601
  {
471
602
  type: 'text',
472
- text: `Usage results for element at ${params.filePath}:${params.lineNumber}:${params.columnNumber}:\n${JSON.stringify(usageResult, null, 2)}`
603
+ text: `Usage search result:\n${JSON.stringify(usageResult, null, 2)}`
473
604
  }
474
605
  ]
475
606
  };
@@ -478,6 +609,87 @@ export class MCPServer {
478
609
  throw new Error(`Failed to find usage: ${error instanceof Error ? error.message : 'Unknown error'}`);
479
610
  }
480
611
  }
612
+ async handleAnalyzeImage(params) {
613
+ if (!params.image_source || !params.prompt) {
614
+ throw new Error('Invalid params: image_source and prompt are required');
615
+ }
616
+ // Validate that it's a valid URL
617
+ if (!params.image_source.startsWith('http://') && !params.image_source.startsWith('https://')) {
618
+ throw new Error('image_source must be a valid HTTP or HTTPS URL');
619
+ }
620
+ try {
621
+ // Call image analysis API
622
+ const analysisResult = await this.callImageAnalyzeAPI(params.image_source, params.prompt);
623
+ return {
624
+ content: [
625
+ {
626
+ type: 'text',
627
+ text: `Image Analysis Result:\n\n${JSON.stringify(analysisResult)}`
628
+ }
629
+ ]
630
+ };
631
+ }
632
+ catch (error) {
633
+ throw new Error(`Failed to analyze image: ${error instanceof Error ? error.message : 'Unknown error'}`);
634
+ }
635
+ }
636
+ async callImageAnalyzeAPI(imageUrl, prompt) {
637
+ try {
638
+ const response = await axios.post('https://v45b0i5r.fn.bytedance.net/chat/imageAnalyze', {
639
+ imageUrl: imageUrl,
640
+ prompt: prompt
641
+ }, {
642
+ headers: {
643
+ 'Content-Type': 'application/json'
644
+ },
645
+ timeout: 60000 // 60秒超时
646
+ });
647
+ return response.data;
648
+ }
649
+ catch (error) {
650
+ throw new Error(`Image analysis API request failed (${error.response?.status})`);
651
+ }
652
+ }
653
+ async handleReadLarkDoc(params) {
654
+ if (!params.docLink) {
655
+ throw new Error('Invalid params: docLink is required');
656
+ }
657
+ // Validate that it's a valid URL
658
+ if (!params.docLink.startsWith('http://') && !params.docLink.startsWith('https://')) {
659
+ throw new Error('docLink must be a valid HTTP or HTTPS URL');
660
+ }
661
+ try {
662
+ // Call Lark doc reading API
663
+ const docContent = await this.callReadLarkDocAPI(params.docLink);
664
+ return {
665
+ content: [
666
+ {
667
+ type: 'text',
668
+ text: `Lark Document Content:\n\n${JSON.stringify(docContent)}`
669
+ }
670
+ ]
671
+ };
672
+ }
673
+ catch (error) {
674
+ throw new Error(`Failed to read Lark document: ${error instanceof Error ? error.message : 'Unknown error'}`);
675
+ }
676
+ }
677
+ async callReadLarkDocAPI(docLink) {
678
+ try {
679
+ const response = await axios.post('https://v45b0i5r.fn.bytedance.net/chat/readLarkDoc', {
680
+ docLink: docLink
681
+ }, {
682
+ headers: {
683
+ 'Content-Type': 'application/json'
684
+ },
685
+ timeout: 60000 // 60秒超时
686
+ });
687
+ return response.data;
688
+ }
689
+ catch (error) {
690
+ throw new Error(`Lark doc reading API request failed (${JSON.stringify(error.response?.data)})`);
691
+ }
692
+ }
481
693
  async start() {
482
694
  if (this.isRunning) {
483
695
  console.error('MCP Server is already running');
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-server.js","sourceRoot":"","sources":["../src/mcp-server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mcp-server.js","sourceRoot":"","sources":["../src/mcp-server.ts"],"names":[],"mappings":"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"}
@@ -33,7 +33,7 @@ export declare class IDEConnector {
33
33
  /**
34
34
  * 从标识符获取内容
35
35
  */
36
- fetchContentFromIdentifier(instance: IDEInstanceInfo, identifier: string): Promise<MCPResponse>;
36
+ fetchContentFromIdentifier(instance: IDEInstanceInfo, identifier: string, startLine: number, endLine: number): Promise<MCPResponse>;
37
37
  /**
38
38
  * 触发 Gradle 同步
39
39
  */
@@ -43,13 +43,17 @@ export declare class IDEConnector {
43
43
  */
44
44
  semanticsCodeSearch(instance: IDEInstanceInfo, codeDescription: string, topK: number): Promise<MCPResponse>;
45
45
  /**
46
- * 关闭所有连接
46
+ * 查找符号定义
47
47
  */
48
- closeAllConnections(): void;
48
+ lookupDeclaration(instance: IDEInstanceInfo, filePath: string, line: number, column: number): Promise<MCPResponse>;
49
+ /**
50
+ * 查找符号使用位置
51
+ */
52
+ findUsage(instance: IDEInstanceInfo, filePath: string, line: number, column: number): Promise<MCPResponse>;
49
53
  /**
50
- * 查找引用
54
+ * 关闭所有连接
51
55
  */
52
- findUsage(instance: IDEInstanceInfo, filePath: string, lineNumber: number, columnNumber: number): Promise<MCPResponse>;
56
+ closeAllConnections(): void;
53
57
  /**
54
58
  * 生成请求 ID
55
59
  */
@@ -1 +1 @@
1
- {"version":3,"file":"ide-connector.d.ts","sourceRoot":"","sources":["../../src/services/ide-connector.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,IAAI,CAAC;AAC3B,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,WAAW,EAAmB,MAAM,mBAAmB,CAAC;AAE9F,qBAAa,YAAY;IACvB,OAAO,CAAC,WAAW,CAAqC;IAExD;;OAEG;IACG,iBAAiB,CAAC,QAAQ,EAAE,eAAe,GAAG,OAAO,CAAC,SAAS,CAAC;IAuCtE;;OAEG;IACG,WAAW,CAAC,QAAQ,EAAE,eAAe,EAAE,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,WAAW,CAAC;IAiCvF;;OAEG;IACG,SAAS,CAAC,QAAQ,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAajF;;OAEG;IACG,cAAc,CAAC,QAAQ,EAAE,eAAe,GAAG,OAAO,CAAC,WAAW,CAAC;IAYrE;;OAEG;IACG,aAAa,CAAC,QAAQ,EAAE,eAAe,GAAG,OAAO,CAAC,WAAW,CAAC;IAUpE;;OAEG;IACG,WAAW,CAAC,QAAQ,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAapF;;OAEG;IACG,WAAW,CAAC,QAAQ,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAanF;;OAEG;IACG,0BAA0B,CAAC,QAAQ,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAarG;;OAEG;IACG,iBAAiB,CAAC,QAAQ,EAAE,eAAe,GAAG,OAAO,CAAC,WAAW,CAAC;IAUxE;;OAEG;IACG,mBAAmB,CAAC,QAAQ,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAcjH;;OAEG;IACH,mBAAmB,IAAI,IAAI;IAS3B;;OAEG;IACG,SAAS,CAAC,QAAQ,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAoC5H;;OAEG;IACH,OAAO,CAAC,iBAAiB;CAG1B"}
1
+ {"version":3,"file":"ide-connector.d.ts","sourceRoot":"","sources":["../../src/services/ide-connector.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,IAAI,CAAC;AAC3B,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,WAAW,EAAmB,MAAM,mBAAmB,CAAC;AAE9F,qBAAa,YAAY;IACvB,OAAO,CAAC,WAAW,CAAqC;IAExD;;OAEG;IACG,iBAAiB,CAAC,QAAQ,EAAE,eAAe,GAAG,OAAO,CAAC,SAAS,CAAC;IAuCtE;;OAEG;IACG,WAAW,CAAC,QAAQ,EAAE,eAAe,EAAE,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,WAAW,CAAC;IAiCvF;;OAEG;IACG,SAAS,CAAC,QAAQ,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAajF;;OAEG;IACG,cAAc,CAAC,QAAQ,EAAE,eAAe,GAAG,OAAO,CAAC,WAAW,CAAC;IAYrE;;OAEG;IACG,aAAa,CAAC,QAAQ,EAAE,eAAe,GAAG,OAAO,CAAC,WAAW,CAAC;IAUpE;;OAEG;IACG,WAAW,CAAC,QAAQ,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAapF;;OAEG;IACG,WAAW,CAAC,QAAQ,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAanF;;OAEG;IACG,0BAA0B,CAAC,QAAQ,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAezI;;OAEG;IACG,iBAAiB,CAAC,QAAQ,EAAE,eAAe,GAAG,OAAO,CAAC,WAAW,CAAC;IAUxE;;OAEG;IACG,mBAAmB,CAAC,QAAQ,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAcjH;;OAEG;IACG,iBAAiB,CAAC,QAAQ,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAexH;;OAEG;IACG,SAAS,CAAC,QAAQ,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAehH;;OAEG;IACH,mBAAmB,IAAI,IAAI;IAS3B;;OAEG;IACH,OAAO,CAAC,iBAAiB;CAG1B"}
@@ -137,12 +137,14 @@ export class IDEConnector {
137
137
  /**
138
138
  * 从标识符获取内容
139
139
  */
140
- async fetchContentFromIdentifier(instance, identifier) {
140
+ async fetchContentFromIdentifier(instance, identifier, startLine, endLine) {
141
141
  const request = {
142
142
  jsonrpc: '2.0',
143
143
  method: 'fetchContentFromIdentifier',
144
144
  params: {
145
- identifier
145
+ identifier,
146
+ startLine,
147
+ endLine
146
148
  },
147
149
  id: this.generateRequestId()
148
150
  };
@@ -174,6 +176,38 @@ export class IDEConnector {
174
176
  };
175
177
  return this.sendRequest(instance, request);
176
178
  }
179
+ /**
180
+ * 查找符号定义
181
+ */
182
+ async lookupDeclaration(instance, filePath, line, column) {
183
+ const request = {
184
+ jsonrpc: '2.0',
185
+ method: 'lookupDeclaration',
186
+ params: {
187
+ filePath,
188
+ line,
189
+ column
190
+ },
191
+ id: this.generateRequestId()
192
+ };
193
+ return this.sendRequest(instance, request);
194
+ }
195
+ /**
196
+ * 查找符号使用位置
197
+ */
198
+ async findUsage(instance, filePath, line, column) {
199
+ const request = {
200
+ jsonrpc: '2.0',
201
+ method: 'findUsage',
202
+ params: {
203
+ filePath,
204
+ line,
205
+ column
206
+ },
207
+ id: this.generateRequestId()
208
+ };
209
+ return this.sendRequest(instance, request);
210
+ }
177
211
  /**
178
212
  * 关闭所有连接
179
213
  */
@@ -185,41 +219,6 @@ export class IDEConnector {
185
219
  }
186
220
  this.connections.clear();
187
221
  }
188
- /**
189
- * 查找引用
190
- */
191
- async findUsage(instance, filePath, lineNumber, columnNumber) {
192
- const ws = await this.connectToInstance(instance);
193
- return new Promise((resolve, reject) => {
194
- const requestId = this.generateRequestId();
195
- const request = {
196
- jsonrpc: '2.0',
197
- method: 'findUsage',
198
- params: { filePath, lineNumber, columnNumber },
199
- id: requestId
200
- };
201
- const timer = setTimeout(() => {
202
- reject(new Error('Request timeout'));
203
- }, 30000);
204
- const messageHandler = (data) => {
205
- try {
206
- const response = JSON.parse(data.toString());
207
- if (response.id === requestId) {
208
- clearTimeout(timer);
209
- ws.removeListener('message', messageHandler);
210
- resolve(response);
211
- }
212
- }
213
- catch (error) {
214
- clearTimeout(timer);
215
- ws.removeListener('message', messageHandler);
216
- reject(error);
217
- }
218
- };
219
- ws.on('message', messageHandler);
220
- ws.send(JSON.stringify(request));
221
- });
222
- }
223
222
  /**
224
223
  * 生成请求 ID
225
224
  */
@@ -1 +1 @@
1
- {"version":3,"file":"ide-connector.js","sourceRoot":"","sources":["../../src/services/ide-connector.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ide-connector.js","sourceRoot":"","sources":["../../src/services/ide-connector.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,55 @@
1
+ /**
2
+ * 简化的 Snippet 解析结果
3
+ */
4
+ export interface ParseResult {
5
+ /** 目标符号的精确行号 */
6
+ line: number;
7
+ /** 目标符号的精确列号 (从1开始) */
8
+ column: number;
9
+ /** 是否解析成功 */
10
+ success: boolean;
11
+ /** 错误信息 */
12
+ error?: string;
13
+ }
14
+ /**
15
+ * Snippet 解析器
16
+ * 1. 从 snippet 中确定目标符号是第几个
17
+ * 2. 在实际文件行中找到对应的列号
18
+ */
19
+ export declare class SnippetParser {
20
+ /**
21
+ * 解析 snippet,获取精确行列号
22
+ * @param filePath 文件路径
23
+ * @param line 目标行号
24
+ * @param symbol 符号名称
25
+ * @param symbolIndex
26
+ * @returns 解析结果
27
+ */
28
+ parse(filePath: string, line: number, symbol: string, symbolIndex?: number): ParseResult;
29
+ /**
30
+ * 获取符号的上下文信息(前后各n个字符)
31
+ */
32
+ private getSymbolContexts;
33
+ /**
34
+ * 统计符号在行中出现的次数
35
+ * @param line 代码行
36
+ * @param symbol 目标符号
37
+ * @returns 出现次数
38
+ */
39
+ private countSymbolOccurrences;
40
+ /**
41
+ * 将代码行分割为 word 映射列表
42
+ * 避免字符串包含问题,使用更严格的 word 边界
43
+ */
44
+ private splitIntoWords;
45
+ /**
46
+ * 在实际文件行中找到第 symbolIndex 个符号的列号
47
+ * @param line 实际文件行
48
+ * @param symbol 目标符号名称
49
+ * @param symbolIndex 第几个出现(从1开始)
50
+ * @returns 列号,从1开始,没找到返回0
51
+ */
52
+ private findSymbolColumn;
53
+ }
54
+ export declare const snippetParser: SnippetParser;
55
+ //# sourceMappingURL=snippet-parser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"snippet-parser.d.ts","sourceRoot":"","sources":["../../src/utils/snippet-parser.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,WAAW,WAAW;IACxB,gBAAgB;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,uBAAuB;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,aAAa;IACb,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW;IACX,KAAK,CAAC,EAAE,MAAM,CAAC;CAClB;AAWD;;;;GAIG;AACH,qBAAa,aAAa;IAEtB;;;;;;;OAOG;IACH,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,WAAW;IAuExF;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAgBzB;;;;;OAKG;IACH,OAAO,CAAC,sBAAsB;IAK9B;;;OAGG;IACH,OAAO,CAAC,cAAc;IAmBtB;;;;;;OAMG;IACH,OAAO,CAAC,gBAAgB;CAe3B;AAED,eAAO,MAAM,aAAa,eAAsB,CAAC"}
@@ -0,0 +1,146 @@
1
+ import fs from 'fs';
2
+ /**
3
+ * Snippet 解析器
4
+ * 1. 从 snippet 中确定目标符号是第几个
5
+ * 2. 在实际文件行中找到对应的列号
6
+ */
7
+ export class SnippetParser {
8
+ /**
9
+ * 解析 snippet,获取精确行列号
10
+ * @param filePath 文件路径
11
+ * @param line 目标行号
12
+ * @param symbol 符号名称
13
+ * @param symbolIndex
14
+ * @returns 解析结果
15
+ */
16
+ parse(filePath, line, symbol, symbolIndex) {
17
+ try {
18
+ // 1. 验证参数
19
+ if (!filePath || !fs.existsSync(filePath)) {
20
+ return {
21
+ line: 0,
22
+ column: 0,
23
+ success: false,
24
+ error: 'File not found or path is empty'
25
+ };
26
+ }
27
+ const fileContent = fs.readFileSync(filePath, 'utf-8');
28
+ const lines = fileContent.split('\n');
29
+ const actualLine = lines[line - 1]; // 转换为0索引
30
+ // 如果未提供 symbolIndex,检查是否存在多个同名符号
31
+ if (symbolIndex == null) {
32
+ const symbolCount = this.countSymbolOccurrences(actualLine, symbol);
33
+ if (symbolCount === 0) {
34
+ return {
35
+ line: 0,
36
+ column: 0,
37
+ success: false,
38
+ error: `Symbol '${symbol}' not found in line ${line}`
39
+ };
40
+ }
41
+ else if (symbolCount > 1) {
42
+ const contexts = this.getSymbolContexts(actualLine, symbol);
43
+ return {
44
+ line: 0,
45
+ column: 0,
46
+ success: false,
47
+ error: `找到 ${symbolCount} 个 '${symbol}' 符号,请使用 symbolIndex 参数指定:\n` +
48
+ contexts.map((context, index) => ` ${index + 1}.上下文: "...${context}..."`).join('\n') +
49
+ `\n示例:如需选择第一个,使用 symbolIndex=1`
50
+ };
51
+ }
52
+ // 如果只有一个匹配项,默认使用第一个
53
+ symbolIndex = 1;
54
+ }
55
+ // 在实际文件行中找到第 symbolIndex 个符号的列号
56
+ const column = this.findSymbolColumn(actualLine, symbol, symbolIndex);
57
+ if (column === 0) {
58
+ return {
59
+ line: 0,
60
+ column: 0,
61
+ success: false,
62
+ error: `Symbol '${symbol}' not found in line ${line} as the ${symbolIndex}th occurrence`
63
+ };
64
+ }
65
+ return {
66
+ line,
67
+ column,
68
+ success: true
69
+ };
70
+ }
71
+ catch (error) {
72
+ return {
73
+ line: 0,
74
+ column: 0,
75
+ success: false,
76
+ error: `Parse error: ${error instanceof Error ? error.message : String(error)}`
77
+ };
78
+ }
79
+ }
80
+ /**
81
+ * 获取符号的上下文信息(前后各n个字符)
82
+ */
83
+ getSymbolContexts(line, symbol, contextLength = 15) {
84
+ const contexts = [];
85
+ const words = this.splitIntoWords(line);
86
+ const symbolWords = words.filter(word => word.symbol === symbol);
87
+ for (const word of symbolWords) {
88
+ const start = Math.max(0, word.startColumn - 1 - contextLength);
89
+ const end = Math.min(line.length, word.endColumn + contextLength);
90
+ const context = line.substring(start, end);
91
+ contexts.push(context);
92
+ }
93
+ return contexts;
94
+ }
95
+ /**
96
+ * 统计符号在行中出现的次数
97
+ * @param line 代码行
98
+ * @param symbol 目标符号
99
+ * @returns 出现次数
100
+ */
101
+ countSymbolOccurrences(line, symbol) {
102
+ const words = this.splitIntoWords(line);
103
+ return words.filter(word => word.symbol === symbol).length;
104
+ }
105
+ /**
106
+ * 将代码行分割为 word 映射列表
107
+ * 避免字符串包含问题,使用更严格的 word 边界
108
+ */
109
+ splitIntoWords(line) {
110
+ const words = [];
111
+ // 使用正则表达式匹配代码中的标识符(变量名、方法名等)
112
+ // 匹配:字母、数字、下划线、$的组合,但不能以数字开头
113
+ const regex = /\b[a-zA-Z_$][a-zA-Z0-9_$]*\b/g;
114
+ let match;
115
+ while ((match = regex.exec(line)) !== null) {
116
+ words.push({
117
+ symbol: match[0],
118
+ startColumn: match.index + 1, // 列号从1开始
119
+ endColumn: match.index + match[0].length
120
+ });
121
+ }
122
+ return words;
123
+ }
124
+ /**
125
+ * 在实际文件行中找到第 symbolIndex 个符号的列号
126
+ * @param line 实际文件行
127
+ * @param symbol 目标符号名称
128
+ * @param symbolIndex 第几个出现(从1开始)
129
+ * @returns 列号,从1开始,没找到返回0
130
+ */
131
+ findSymbolColumn(line, symbol, symbolIndex) {
132
+ const words = this.splitIntoWords(line);
133
+ let currentIndex = 1;
134
+ for (const word of words) {
135
+ if (word.symbol === symbol) {
136
+ if (currentIndex === symbolIndex) {
137
+ return word.startColumn;
138
+ }
139
+ currentIndex++;
140
+ }
141
+ }
142
+ return 0; // 没找到足够数量的符号
143
+ }
144
+ }
145
+ export const snippetParser = new SnippetParser();
146
+ //# sourceMappingURL=snippet-parser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"snippet-parser.js","sourceRoot":"","sources":["../../src/utils/snippet-parser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AAyBpB;;;;GAIG;AACH,MAAM,OAAO,aAAa;IAEtB;;;;;;;OAOG;IACH,KAAK,CAAC,QAAgB,EAAE,IAAY,EAAE,MAAc,EAAE,WAAoB;QACtE,IAAI,CAAC;YACD,UAAU;YACV,IAAI,CAAC,QAAQ,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACxC,OAAO;oBACH,IAAI,EAAE,CAAC;oBACP,MAAM,EAAE,CAAC;oBACT,OAAO,EAAE,KAAK;oBACd,KAAK,EAAE,iCAAiC;iBAC3C,CAAC;YACN,CAAC;YACD,MAAM,WAAW,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YACvD,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACtC,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS;YAE7C,iCAAiC;YACjC,IAAI,WAAW,IAAI,IAAI,EAAE,CAAC;gBACtB,MAAM,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;gBAEpE,IAAI,WAAW,KAAK,CAAC,EAAE,CAAC;oBACpB,OAAO;wBACH,IAAI,EAAE,CAAC;wBACP,MAAM,EAAE,CAAC;wBACT,OAAO,EAAE,KAAK;wBACd,KAAK,EAAE,WAAW,MAAM,uBAAuB,IAAI,EAAE;qBACxD,CAAC;gBACN,CAAC;qBAAM,IAAI,WAAW,GAAG,CAAC,EAAE,CAAC;oBACzB,MAAM,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;oBAC5D,OAAO;wBACH,IAAI,EAAE,CAAC;wBACP,MAAM,EAAE,CAAC;wBACT,OAAO,EAAE,KAAK;wBACd,KAAK,EAAE,MAAM,WAAW,OAAO,MAAM,8BAA8B;4BAC/D,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,GAAG,CAAC,aAAa,OAAO,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;4BACrF,+BAA+B;qBACtC,CAAC;gBACN,CAAC;gBAED,oBAAoB;gBACpB,WAAW,GAAG,CAAC,CAAC;YACpB,CAAC;YAED,gCAAgC;YAChC,MAAM,MAAM,GAAG,IAAI,CAAC,gBAAgB,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;YAEtE,IAAI,MAAM,KAAK,CAAC,EAAE,CAAC;gBACf,OAAO;oBACH,IAAI,EAAE,CAAC;oBACP,MAAM,EAAE,CAAC;oBACT,OAAO,EAAE,KAAK;oBACd,KAAK,EAAE,WAAW,MAAM,uBAAuB,IAAI,WAAW,WAAW,eAAe;iBAC3F,CAAC;YACN,CAAC;YAED,OAAO;gBACH,IAAI;gBACJ,MAAM;gBACN,OAAO,EAAE,IAAI;aAChB,CAAC;QAEN,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,OAAO;gBACH,IAAI,EAAE,CAAC;gBACP,MAAM,EAAE,CAAC;gBACT,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,gBAAgB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;aAClF,CAAC;QACN,CAAC;IACL,CAAC;IAGD;;OAEG;IACK,iBAAiB,CAAC,IAAY,EAAE,MAAc,EAAE,gBAAwB,EAAE;QAC9E,MAAM,QAAQ,GAAa,EAAE,CAAC;QAC9B,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;QAExC,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC;QAEjE,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE,CAAC;YAC7B,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,WAAW,GAAG,CAAC,GAAG,aAAa,CAAC,CAAC;YAChE,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,GAAG,aAAa,CAAC,CAAC;YAClE,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;YAC3C,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC3B,CAAC;QAED,OAAO,QAAQ,CAAC;IACpB,CAAC;IAED;;;;;OAKG;IACK,sBAAsB,CAAC,IAAY,EAAE,MAAc;QACvD,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;QACxC,OAAO,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,CAAC;IAC/D,CAAC;IAED;;;OAGG;IACK,cAAc,CAAC,IAAY;QAC/B,MAAM,KAAK,GAAkB,EAAE,CAAC;QAEhC,6BAA6B;QAC7B,6BAA6B;QAC7B,MAAM,KAAK,GAAG,+BAA+B,CAAC;QAC9C,IAAI,KAAK,CAAC;QAEV,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;YACzC,KAAK,CAAC,IAAI,CAAC;gBACP,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;gBAChB,WAAW,EAAE,KAAK,CAAC,KAAK,GAAG,CAAC,EAAE,SAAS;gBACvC,SAAS,EAAE,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM;aAC3C,CAAC,CAAC;QACP,CAAC;QAED,OAAO,KAAK,CAAC;IACjB,CAAC;IAED;;;;;;OAMG;IACK,gBAAgB,CAAC,IAAY,EAAE,MAAc,EAAE,WAAmB;QACtE,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;QAExC,IAAI,YAAY,GAAG,CAAC,CAAC;QACrB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACvB,IAAI,IAAI,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;gBACzB,IAAI,YAAY,KAAK,WAAW,EAAE,CAAC;oBAC/B,OAAO,IAAI,CAAC,WAAW,CAAC;gBAC5B,CAAC;gBACD,YAAY,EAAE,CAAC;YACnB,CAAC;QACL,CAAC;QAED,OAAO,CAAC,CAAC,CAAC,aAAa;IAC3B,CAAC;CACJ;AAED,MAAM,CAAC,MAAM,aAAa,GAAG,IAAI,aAAa,EAAE,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hoshikawashiro/ide-mcp-server",
3
- "version": "1.0.6",
3
+ "version": "1.0.9",
4
4
  "description": "MCP Server for enhance IntelliJ IDEA abilities",
5
5
  "type": "module",
6
6
  "main": "dist/mcp-server.js",
@@ -31,6 +31,7 @@
31
31
  "author": "TikTok",
32
32
  "license": "MIT",
33
33
  "dependencies": {
34
+ "axios": "^1.13.2",
34
35
  "@modelcontextprotocol/sdk": "^0.4.0",
35
36
  "ws": "^8.14.2",
36
37
  "commander": "^11.1.0",