@enokdev/springdocs-mcp 1.2.7 → 1.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (112) hide show
  1. package/README.md +108 -40
  2. package/build/config.d.ts +9 -0
  3. package/build/config.d.ts.map +1 -0
  4. package/build/config.js +32 -0
  5. package/build/config.js.map +1 -0
  6. package/build/format.d.ts +6 -0
  7. package/build/format.d.ts.map +1 -0
  8. package/build/format.js +23 -0
  9. package/build/format.js.map +1 -0
  10. package/build/http-server.d.ts +15 -0
  11. package/build/http-server.d.ts.map +1 -0
  12. package/build/http-server.js +131 -0
  13. package/build/http-server.js.map +1 -0
  14. package/build/index.js +184 -69
  15. package/build/index.js.map +1 -1
  16. package/build/prompts.d.ts +23 -0
  17. package/build/prompts.d.ts.map +1 -0
  18. package/build/prompts.js +112 -0
  19. package/build/prompts.js.map +1 -0
  20. package/build/resources.d.ts +31 -0
  21. package/build/resources.d.ts.map +1 -0
  22. package/build/resources.js +66 -0
  23. package/build/resources.js.map +1 -0
  24. package/build/services/advanced-features.d.ts +19 -9
  25. package/build/services/advanced-features.d.ts.map +1 -1
  26. package/build/services/advanced-features.js +266 -191
  27. package/build/services/advanced-features.js.map +1 -1
  28. package/build/services/boot-wiki.d.ts +25 -0
  29. package/build/services/boot-wiki.d.ts.map +1 -0
  30. package/build/services/boot-wiki.js +103 -0
  31. package/build/services/boot-wiki.js.map +1 -0
  32. package/build/services/cache.d.ts +18 -3
  33. package/build/services/cache.d.ts.map +1 -1
  34. package/build/services/cache.js +84 -3
  35. package/build/services/cache.js.map +1 -1
  36. package/build/services/dependency-finder.d.ts +46 -0
  37. package/build/services/dependency-finder.d.ts.map +1 -0
  38. package/build/services/dependency-finder.js +181 -0
  39. package/build/services/dependency-finder.js.map +1 -0
  40. package/build/services/diagnosis.d.ts +46 -0
  41. package/build/services/diagnosis.d.ts.map +1 -0
  42. package/build/services/diagnosis.js +481 -0
  43. package/build/services/diagnosis.js.map +1 -0
  44. package/build/services/guides-list.d.ts +16 -0
  45. package/build/services/guides-list.d.ts.map +1 -0
  46. package/build/services/guides-list.js +45 -0
  47. package/build/services/guides-list.js.map +1 -0
  48. package/build/services/http.d.ts +21 -0
  49. package/build/services/http.d.ts.map +1 -0
  50. package/build/services/http.js +168 -0
  51. package/build/services/http.js.map +1 -0
  52. package/build/services/initializr.d.ts +41 -0
  53. package/build/services/initializr.d.ts.map +1 -0
  54. package/build/services/initializr.js +135 -0
  55. package/build/services/initializr.js.map +1 -0
  56. package/build/services/markdown.d.ts +56 -0
  57. package/build/services/markdown.d.ts.map +1 -0
  58. package/build/services/markdown.js +146 -0
  59. package/build/services/markdown.js.map +1 -0
  60. package/build/services/migration-sources.d.ts +13 -0
  61. package/build/services/migration-sources.d.ts.map +1 -0
  62. package/build/services/migration-sources.js +48 -0
  63. package/build/services/migration-sources.js.map +1 -0
  64. package/build/services/release-notes.d.ts +23 -0
  65. package/build/services/release-notes.d.ts.map +1 -0
  66. package/build/services/release-notes.js +94 -0
  67. package/build/services/release-notes.js.map +1 -0
  68. package/build/services/search-index.d.ts +33 -0
  69. package/build/services/search-index.d.ts.map +1 -0
  70. package/build/services/search-index.js +147 -0
  71. package/build/services/search-index.js.map +1 -0
  72. package/build/services/spring-projects-config.d.ts +98 -0
  73. package/build/services/spring-projects-config.d.ts.map +1 -0
  74. package/build/services/spring-projects-config.js +397 -0
  75. package/build/services/spring-projects-config.js.map +1 -0
  76. package/build/services/springboot-docs-optimized.d.ts +72 -21
  77. package/build/services/springboot-docs-optimized.d.ts.map +1 -1
  78. package/build/services/springboot-docs-optimized.js +354 -208
  79. package/build/services/springboot-docs-optimized.js.map +1 -1
  80. package/build/services/url.d.ts +15 -0
  81. package/build/services/url.d.ts.map +1 -0
  82. package/build/services/url.js +40 -0
  83. package/build/services/url.js.map +1 -0
  84. package/build/tools/index.d.ts +393 -2
  85. package/build/tools/index.d.ts.map +1 -1
  86. package/build/tools/index.js +188 -15
  87. package/build/tools/index.js.map +1 -1
  88. package/build/validation.d.ts +7 -0
  89. package/build/validation.d.ts.map +1 -0
  90. package/build/validation.js +50 -0
  91. package/build/validation.js.map +1 -0
  92. package/build/version.d.ts +3 -0
  93. package/build/version.d.ts.map +1 -0
  94. package/build/version.js +6 -0
  95. package/build/version.js.map +1 -0
  96. package/package.json +9 -7
  97. package/build/debug.d.ts +0 -3
  98. package/build/debug.d.ts.map +0 -1
  99. package/build/debug.js +0 -292
  100. package/build/debug.js.map +0 -1
  101. package/build/services/advanced-features-old.d.ts +0 -45
  102. package/build/services/advanced-features-old.d.ts.map +0 -1
  103. package/build/services/advanced-features-old.js +0 -792
  104. package/build/services/advanced-features-old.js.map +0 -1
  105. package/build/services/springboot-docs-optimized-old.d.ts +0 -55
  106. package/build/services/springboot-docs-optimized-old.d.ts.map +0 -1
  107. package/build/services/springboot-docs-optimized-old.js +0 -588
  108. package/build/services/springboot-docs-optimized-old.js.map +0 -1
  109. package/build/services/springboot-docs.d.ts +0 -65
  110. package/build/services/springboot-docs.d.ts.map +0 -1
  111. package/build/services/springboot-docs.js +0 -708
  112. package/build/services/springboot-docs.js.map +0 -1
package/build/index.js CHANGED
@@ -1,43 +1,86 @@
1
1
  #!/usr/bin/env node
2
2
  import { Server } from "@modelcontextprotocol/sdk/server/index.js";
3
3
  import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
4
- import { CallToolRequestSchema, ListToolsRequestSchema } from "@modelcontextprotocol/sdk/types.js";
4
+ import { CallToolRequestSchema, ListToolsRequestSchema, ListPromptsRequestSchema, GetPromptRequestSchema, ListResourcesRequestSchema, ListResourceTemplatesRequestSchema, ReadResourceRequestSchema } from "@modelcontextprotocol/sdk/types.js";
5
5
  import { SpringBootDocsServiceOptimized } from "./services/springboot-docs-optimized.js";
6
6
  import { AdvancedFeaturesService } from "./services/advanced-features.js";
7
+ import { CacheService } from "./services/cache.js";
8
+ import { InitializrService } from "./services/initializr.js";
7
9
  import { ToolDefinitions } from "./tools/index.js";
10
+ import { validateToolArguments } from "./validation.js";
11
+ import { VERSION } from "./version.js";
12
+ import { formatSearchResults } from "./format.js";
13
+ import { listPrompts, getPrompt } from "./prompts.js";
14
+ import { ResourcesService } from "./resources.js";
15
+ import { parseConfig } from "./config.js";
16
+ import { startHttpServer } from "./http-server.js";
8
17
  /**
9
18
  * Enhanced Spring Documentation MCP Server with advanced features and optimizations
10
19
  */
11
20
  class SpringBootMCPServerAdvanced {
12
- server;
13
21
  docsService;
14
22
  advancedService;
23
+ cache;
24
+ initializrService;
25
+ resourcesService;
15
26
  constructor() {
16
- this.server = new Server({
27
+ this.cache = new CacheService();
28
+ this.docsService = new SpringBootDocsServiceOptimized(undefined, this.cache);
29
+ this.resourcesService = new ResourcesService(this.docsService);
30
+ this.advancedService = new AdvancedFeaturesService(this.cache);
31
+ this.initializrService = new InitializrService(this.cache);
32
+ }
33
+ /** Builds a fresh MCP server bound to the shared services (once for stdio, once per request for HTTP). */
34
+ createServer() {
35
+ const server = new Server({
17
36
  name: "springboot-mcp-server-advanced",
18
- version: "1.2.4",
37
+ version: VERSION,
19
38
  }, {
20
39
  capabilities: {
21
40
  tools: {},
41
+ prompts: {},
42
+ resources: {},
22
43
  },
23
44
  });
24
- this.docsService = new SpringBootDocsServiceOptimized();
25
- this.advancedService = new AdvancedFeaturesService();
26
- this.setupToolHandlers();
45
+ this.setupToolHandlers(server);
46
+ this.setupPromptHandlers(server);
47
+ this.setupResourceHandlers(server);
48
+ return server;
49
+ }
50
+ setupResourceHandlers(server) {
51
+ server.setRequestHandler(ListResourcesRequestSchema, async () => ({
52
+ resources: this.resourcesService.listResources(),
53
+ }));
54
+ server.setRequestHandler(ListResourceTemplatesRequestSchema, async () => ({
55
+ resourceTemplates: this.resourcesService.listTemplates(),
56
+ }));
57
+ server.setRequestHandler(ReadResourceRequestSchema, async (request) => {
58
+ return this.resourcesService.readResource(request.params.uri);
59
+ });
60
+ }
61
+ setupPromptHandlers(server) {
62
+ server.setRequestHandler(ListPromptsRequestSchema, async () => ({
63
+ prompts: listPrompts(),
64
+ }));
65
+ server.setRequestHandler(GetPromptRequestSchema, async (request) => {
66
+ const { name, arguments: args } = request.params;
67
+ return getPrompt(name, args);
68
+ });
27
69
  }
28
- setupToolHandlers() {
70
+ setupToolHandlers(server) {
29
71
  // Handler for listing available tools
30
- this.server.setRequestHandler(ListToolsRequestSchema, async (request) => {
72
+ server.setRequestHandler(ListToolsRequestSchema, async (request) => {
31
73
  return {
32
74
  tools: ToolDefinitions.getToolList(),
33
75
  };
34
76
  });
35
77
  // Handler for executing tools
36
- this.server.setRequestHandler(CallToolRequestSchema, async (request) => {
37
- const { name, arguments: args } = request.params;
78
+ server.setRequestHandler(CallToolRequestSchema, async (request) => {
79
+ const { name, arguments: rawArgs } = request.params;
38
80
  try {
39
81
  const startTime = Date.now();
40
82
  console.error(`🔧 Executing tool: ${name}`);
83
+ const args = validateToolArguments(name, rawArgs);
41
84
  let result;
42
85
  switch (name) {
43
86
  // Original tools
@@ -72,12 +115,27 @@ class SpringBootMCPServerAdvanced {
72
115
  case "compare_spring_versions":
73
116
  result = await this.handleCompareVersions(args);
74
117
  break;
118
+ case "get_release_notes":
119
+ result = await this.handleGetReleaseNotes(args);
120
+ break;
121
+ case "get_migration_guide":
122
+ result = await this.handleGetMigrationGuide(args);
123
+ break;
75
124
  case "get_spring_best_practices":
76
125
  result = await this.handleGetBestPractices(args);
77
126
  break;
78
127
  case "diagnose_spring_issues":
79
128
  result = await this.handleDiagnoseIssues(args);
80
129
  break;
130
+ case "spring_cache_stats":
131
+ result = this.handleCacheStats(args);
132
+ break;
133
+ case "get_spring_initializr":
134
+ result = await this.handleGetInitializr(args);
135
+ break;
136
+ case "find_spring_dependency":
137
+ result = await this.handleFindDependency(args);
138
+ break;
81
139
  default:
82
140
  throw new Error(`Unknown tool: ${name}`);
83
141
  }
@@ -102,16 +160,16 @@ class SpringBootMCPServerAdvanced {
102
160
  }
103
161
  // Original tool handlers (optimized)
104
162
  async handleSearchDocs(args) {
105
- const { query, docType = "all", limit = 10 } = args;
163
+ const { query, docType = "all", limit = 10, version } = args;
106
164
  if (!query || typeof query !== "string") {
107
165
  throw new Error("The 'query' parameter is required and must be a string");
108
166
  }
109
- const results = await this.docsService.searchDocumentation(query, docType, limit);
167
+ const results = await this.docsService.searchDocumentation(query, docType, limit, version);
110
168
  return {
111
169
  content: [
112
170
  {
113
171
  type: "text",
114
- text: `Search results for "${query}":\n\n${this.formatSearchResults(results)}`,
172
+ text: `Search results for "${query}":\n\n${formatSearchResults(results)}`,
115
173
  },
116
174
  ],
117
175
  };
@@ -126,17 +184,17 @@ class SpringBootMCPServerAdvanced {
126
184
  content: [
127
185
  {
128
186
  type: "text",
129
- text: `Spring projects found for "${query}":\n\n${this.formatSearchResults(results)}`,
187
+ text: `Spring projects found for "${query}":\n\n${formatSearchResults(results)}`,
130
188
  },
131
189
  ],
132
190
  };
133
191
  }
134
192
  async handleGetProject(args) {
135
- const { projectName } = args;
193
+ const { projectName, offset = 0 } = args;
136
194
  if (!projectName || typeof projectName !== "string") {
137
195
  throw new Error("The 'projectName' parameter is required and must be a string");
138
196
  }
139
- const project = await this.docsService.getSpringProject(projectName);
197
+ const project = await this.docsService.getSpringProject(projectName, offset);
140
198
  return {
141
199
  content: [
142
200
  {
@@ -153,7 +211,7 @@ class SpringBootMCPServerAdvanced {
153
211
  content: [
154
212
  {
155
213
  type: "text",
156
- text: `Available Spring guides${category ? ` in category "${category}"` : ""}:\n\n${this.formatSearchResults(results)}`,
214
+ text: `Available Spring guides${category ? ` in category "${category}"` : ""}:\n\n${formatSearchResults(results)}`,
157
215
  },
158
216
  ],
159
217
  };
@@ -174,11 +232,12 @@ class SpringBootMCPServerAdvanced {
174
232
  };
175
233
  }
176
234
  async handleGetReference(args) {
177
- const { section, subsection } = args;
235
+ const { project = "boot", section, subsection, offset = 0, version } = args;
178
236
  if (!section || typeof section !== "string") {
179
237
  throw new Error("The 'section' parameter is required and must be a string");
180
238
  }
181
- const reference = await this.docsService.getReference(section, subsection);
239
+ // Use new multi-project method
240
+ const reference = await this.docsService.getSpringReference(project, section, subsection, offset, version);
182
241
  return {
183
242
  content: [
184
243
  {
@@ -189,16 +248,16 @@ class SpringBootMCPServerAdvanced {
189
248
  };
190
249
  }
191
250
  async handleSearchConcepts(args) {
192
- const { concept, category } = args;
251
+ const { concept, version } = args;
193
252
  if (!concept || typeof concept !== "string") {
194
253
  throw new Error("The 'concept' parameter is required and must be a string");
195
254
  }
196
- const results = await this.docsService.searchConcepts(concept, category);
255
+ const results = await this.docsService.searchConcepts(concept, version);
197
256
  return {
198
257
  content: [
199
258
  {
200
259
  type: "text",
201
- text: this.formatConceptResults(results),
260
+ text: results,
202
261
  },
203
262
  ],
204
263
  };
@@ -214,7 +273,7 @@ class SpringBootMCPServerAdvanced {
214
273
  content: [
215
274
  {
216
275
  type: "text",
217
- text: this.formatEcosystemResults(results),
276
+ text: results, // Already formatted by advancedService
218
277
  },
219
278
  ],
220
279
  };
@@ -249,6 +308,65 @@ class SpringBootMCPServerAdvanced {
249
308
  ],
250
309
  };
251
310
  }
311
+ async handleGetReleaseNotes(args) {
312
+ const { project = "boot", version, focus = "all" } = args;
313
+ const notes = await this.advancedService.getReleaseNotes(project, version, focus);
314
+ return {
315
+ content: [
316
+ {
317
+ type: "text",
318
+ text: notes,
319
+ },
320
+ ],
321
+ };
322
+ }
323
+ async handleGetMigrationGuide(args) {
324
+ const { version, document = "auto", section, offset = 0, project = "spring-boot" } = args;
325
+ const guide = await this.docsService.getMigrationGuide(version, document, section, offset, project);
326
+ return {
327
+ content: [
328
+ {
329
+ type: "text",
330
+ text: guide,
331
+ },
332
+ ],
333
+ };
334
+ }
335
+ async handleGetInitializr(args) {
336
+ const { section = "options", query } = args;
337
+ const text = await this.initializrService.getInitializr(section, query);
338
+ return {
339
+ content: [
340
+ {
341
+ type: "text",
342
+ text,
343
+ },
344
+ ],
345
+ };
346
+ }
347
+ async handleFindDependency(args) {
348
+ const { need, build = "both", bootVersion } = args;
349
+ const text = await this.initializrService.findDependency(need, build, bootVersion);
350
+ return {
351
+ content: [
352
+ {
353
+ type: "text",
354
+ text,
355
+ },
356
+ ],
357
+ };
358
+ }
359
+ handleCacheStats(args) {
360
+ const { purge = "none" } = args;
361
+ return {
362
+ content: [
363
+ {
364
+ type: "text",
365
+ text: this.cache.statsReport(purge),
366
+ },
367
+ ],
368
+ };
369
+ }
252
370
  async handleGetBestPractices(args) {
253
371
  const { category, experience_level = "intermediate" } = args;
254
372
  if (!category || typeof category !== "string") {
@@ -280,40 +398,6 @@ class SpringBootMCPServerAdvanced {
280
398
  };
281
399
  }
282
400
  // Formatting methods
283
- formatSearchResults(results) {
284
- if (results.length === 0) {
285
- return "No results found.";
286
- }
287
- return results
288
- .map((result, index) => {
289
- return `${index + 1}. **${result.title}**
290
- Type: ${result.type}
291
- URL: ${result.url}
292
- Description: ${result.description || "No description available"}
293
-
294
- `;
295
- })
296
- .join("\n");
297
- }
298
- formatConceptResults(results) {
299
- if (!results || Object.keys(results).length === 0) {
300
- return "No concepts found.";
301
- }
302
- let formatted = `# Spring Boot Concepts\n\n`;
303
- for (const [category, concepts] of Object.entries(results)) {
304
- formatted += `## ${category}\n\n`;
305
- if (Array.isArray(concepts)) {
306
- concepts.forEach((concept) => {
307
- formatted += `- **${concept.name}**: ${concept.description}\n`;
308
- if (concept.examples && concept.examples.length > 0) {
309
- formatted += ` Examples: ${concept.examples.join(", ")}\n`;
310
- }
311
- });
312
- }
313
- formatted += "\n";
314
- }
315
- return formatted;
316
- }
317
401
  formatEcosystemResults(results) {
318
402
  if (!results || results.totalResults === 0) {
319
403
  return `# Spring Ecosystem Search Results
@@ -344,11 +428,26 @@ No results found for "${results.query}" in scope "${results.scope}".`;
344
428
  }
345
429
  return formatted;
346
430
  }
347
- async run() {
431
+ httpServer;
432
+ async run(config) {
348
433
  try {
349
- const transport = new StdioServerTransport();
434
+ if (config.transport === "http") {
435
+ const loopback = ["127.0.0.1", "localhost", "::1"].includes(config.host);
436
+ if (!loopback) {
437
+ console.error(`⚠️ Listening on ${config.host}: the HTTP transport has no authentication, restrict access at the network level`);
438
+ }
439
+ this.httpServer = await startHttpServer({
440
+ host: config.host,
441
+ port: config.port,
442
+ allowedHosts: config.allowedHosts,
443
+ createServer: () => this.createServer(),
444
+ });
445
+ console.error(`🚀 HTTP server listening on http://${this.httpServer.address}/mcp`);
446
+ return;
447
+ }
448
+ const server = this.createServer();
350
449
  console.error("🚀 Advanced Spring Boot MCP Server started on stdio");
351
- await this.server.connect(transport);
450
+ await server.connect(new StdioServerTransport());
352
451
  console.error("✅ Server connected successfully");
353
452
  }
354
453
  catch (error) {
@@ -356,24 +455,40 @@ No results found for "${results.query}" in scope "${results.scope}".`;
356
455
  throw error;
357
456
  }
358
457
  }
458
+ async stop() {
459
+ await this.httpServer?.close();
460
+ }
359
461
  }
360
462
  // Main entry point
463
+ let app;
361
464
  async function main() {
362
- const server = new SpringBootMCPServerAdvanced();
363
- await server.run();
465
+ let config;
466
+ try {
467
+ config = parseConfig(process.argv.slice(2), process.env);
468
+ }
469
+ catch (error) {
470
+ console.error(`💥 ${error instanceof Error ? error.message : error}`);
471
+ process.exit(1);
472
+ }
473
+ app = new SpringBootMCPServerAdvanced();
474
+ await app.run(config);
364
475
  }
365
476
  // Error handling
366
- process.on("SIGINT", async () => {
367
- console.error("🛑 Shutting down server...");
368
- process.exit(0);
369
- });
477
+ function shutdown(signal) {
478
+ console.error(`🛑 Shutting down server (${signal})...`);
479
+ const done = () => process.exit(0);
480
+ // Close the HTTP server first (bounded), then exit
481
+ const bound = setTimeout(done, 3000);
482
+ bound.unref();
483
+ (app?.stop() ?? Promise.resolve()).then(done, done);
484
+ }
485
+ process.on("SIGINT", shutdown);
486
+ process.on("SIGTERM", shutdown);
370
487
  process.on("unhandledRejection", (reason, promise) => {
371
488
  console.error("💥 Unhandled promise rejection:", reason);
372
- process.exit(1);
373
489
  });
374
490
  process.on("uncaughtException", (error) => {
375
491
  console.error("💥 Uncaught exception:", error);
376
- process.exit(1);
377
492
  });
378
493
  // Start server
379
494
  main().catch((error) => {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ interface PromptArgument {
2
+ name: string;
3
+ description: string;
4
+ required: boolean;
5
+ }
6
+ interface PromptDefinition {
7
+ name: string;
8
+ description: string;
9
+ arguments: PromptArgument[];
10
+ }
11
+ export declare function listPrompts(): PromptDefinition[];
12
+ export declare function getPrompt(name: string, rawArgs: Record<string, string> | undefined): {
13
+ description: string;
14
+ messages: {
15
+ role: "user";
16
+ content: {
17
+ type: "text";
18
+ text: string;
19
+ };
20
+ }[];
21
+ };
22
+ export {};
23
+ //# sourceMappingURL=prompts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../src/prompts.ts"],"names":[],"mappings":"AAKA,UAAU,cAAc;IAAG,IAAI,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,OAAO,CAAA;CAAE;AACjF,UAAU,gBAAgB;IAAG,IAAI,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,cAAc,EAAE,CAAA;CAAE;AAwB7F,wBAAgB,WAAW,IAAI,gBAAgB,EAAE,CAEhD;AAwCD,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS;;;;;;;;;EAsDlF"}
@@ -0,0 +1,112 @@
1
+ import { ErrorCode, McpError } from "@modelcontextprotocol/sdk/types.js";
2
+ const VERSION_PATTERN = /^\d+\.\d+(\.\d+)?$/;
3
+ const LIMITS = { error_message: 2000, stack_trace: 10000, version: 20 };
4
+ const PROMPTS = [
5
+ {
6
+ name: "migrate-boot-version",
7
+ description: "Plan a Spring Boot upgrade: migration guide, breaking changes and a checklist",
8
+ arguments: [
9
+ { name: "to_version", description: "Target Spring Boot version (e.g. 3.0, 3.4 or 4.0)", required: true },
10
+ { name: "from_version", description: "Current Spring Boot version (e.g. 2.7)", required: false },
11
+ ],
12
+ },
13
+ {
14
+ name: "explain-error",
15
+ description: "Explain a Spring error: root cause, likely fixes and the matching reference sections",
16
+ arguments: [
17
+ { name: "error_message", description: "Error message or issue description", required: true },
18
+ { name: "stack_trace", description: "Stack trace (optional, for a more specific diagnosis)", required: false },
19
+ ],
20
+ },
21
+ ];
22
+ export function listPrompts() {
23
+ return PROMPTS.map((p) => ({ ...p, arguments: p.arguments.map((a) => ({ ...a })) }));
24
+ }
25
+ function invalid(message) {
26
+ throw new McpError(ErrorCode.InvalidParams, message);
27
+ }
28
+ function requiredText(args, name, max) {
29
+ const value = args[name];
30
+ if (typeof value !== "string" || value.trim() === "")
31
+ invalid(`The '${name}' argument is required`);
32
+ if (value.length > max)
33
+ invalid(`The '${name}' argument must not exceed ${max} characters`);
34
+ return value;
35
+ }
36
+ function optionalText(args, name, max) {
37
+ const value = args[name];
38
+ if (value === undefined || value === null || value === "")
39
+ return undefined;
40
+ if (typeof value !== "string")
41
+ invalid(`The '${name}' argument must be a string`);
42
+ if (value.length > max)
43
+ invalid(`The '${name}' argument must not exceed ${max} characters`);
44
+ return value;
45
+ }
46
+ function version(value, name) {
47
+ const trimmed = value.trim();
48
+ if (!VERSION_PATTERN.test(trimmed) || trimmed.length > LIMITS.version) {
49
+ invalid(`The '${name}' argument must be a version like 3.0 or 3.4.2`);
50
+ }
51
+ return trimmed;
52
+ }
53
+ /** Wraps user text in a tilde fence longer than any run of tildes it contains. */
54
+ function fenced(text) {
55
+ const longest = Math.max(0, ...(text.match(/~+/g) ?? []).map((run) => run.length));
56
+ const fence = "~".repeat(Math.max(4, longest + 1));
57
+ return `${fence}text\n${text}\n${fence}`;
58
+ }
59
+ function userMessage(description, text) {
60
+ return { description, messages: [{ role: "user", content: { type: "text", text } }] };
61
+ }
62
+ export function getPrompt(name, rawArgs) {
63
+ const args = rawArgs ?? {};
64
+ if (name === "migrate-boot-version") {
65
+ const to = version(requiredText(args, "to_version", LIMITS.version), "to_version");
66
+ const fromRaw = optionalText(args, "from_version", LIMITS.version);
67
+ const from = fromRaw === undefined ? undefined : version(fromRaw, "from_version");
68
+ const release = to.split(".").length === 2 ? `${to}.0` : to;
69
+ const major = (v) => Number(v.split(".")[0]);
70
+ const toMajor = major(to);
71
+ const fromMajor = from === undefined ? undefined : major(from);
72
+ // Major versions crossed by the upgrade (3.0 and 4.0 have their own migration guide)
73
+ const crossed = [];
74
+ if (fromMajor !== undefined) {
75
+ for (let m = fromMajor + 1; m <= toMajor; m++) {
76
+ if (m >= 3 && `${m}.0` !== to)
77
+ crossed.push(`${m}.0`);
78
+ }
79
+ }
80
+ const jakarta = (fromMajor === undefined || fromMajor < 3) && toMajor >= 3;
81
+ const steps = [
82
+ `Help me upgrade a Spring Boot application${from ? ` from ${from}` : ""} to ${to}. Use the Spring documentation tools, in this order:`,
83
+ "",
84
+ `Call \`get_migration_guide\` with version "${to}" and read the migration steps.`,
85
+ ...crossed.map((v) => `Also call \`get_migration_guide\` with version "${v}": the upgrade crosses that major version.`),
86
+ `Call \`get_release_notes\` with project "boot", version "${release}" and focus "breaking-changes".`,
87
+ "Call `get_spring_reference` for the configuration sections affected by the changes you found.",
88
+ ...(jakarta ? ["Check the javax -> jakarta namespace migration: call `get_migration_guide` with version \"3.0\" and section \"jakarta\"."] : []),
89
+ ].map((line, i) => (i >= 2 ? `${i - 1}. ${line}` : line));
90
+ steps.push("", "Finish with an ordered upgrade checklist: dependency and property changes first, then code changes, then verification steps. Cite which tool each point comes from.");
91
+ return userMessage(`Spring Boot upgrade plan to ${to}`, steps.join("\n"));
92
+ }
93
+ if (name === "explain-error") {
94
+ const message = requiredText(args, "error_message", LIMITS.error_message);
95
+ const trace = optionalText(args, "stack_trace", LIMITS.stack_trace);
96
+ const steps = [
97
+ "Explain this Spring error and tell me how to fix it. Use the Spring documentation tools, in this order:",
98
+ "",
99
+ "1. Call `diagnose_spring_issues` with the error message below" + (trace ? " and the stack trace" : "") + ".",
100
+ "2. Call `get_spring_reference` for the reference sections the diagnosis points to.",
101
+ "",
102
+ "Then explain the root cause in plain language and give the most likely fixes, most probable first.",
103
+ "",
104
+ "Error message:",
105
+ fenced(message),
106
+ ...(trace ? ["", "Stack trace:", fenced(trace)] : []),
107
+ ];
108
+ return userMessage("Spring error explanation", steps.join("\n"));
109
+ }
110
+ invalid(`Unknown prompt: ${name}`);
111
+ }
112
+ //# sourceMappingURL=prompts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prompts.js","sourceRoot":"","sources":["../src/prompts.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,31 @@
1
+ import { SpringBootDocsServiceOptimized } from "./services/springboot-docs-optimized.js";
2
+ export type ParsedResource = {
3
+ kind: "project" | "guide";
4
+ id: string;
5
+ };
6
+ /** Strict parsing of the raw string: no URL normalization, so nothing but the two accepted forms gets through. */
7
+ export declare function parseResourceUri(uri: string): ParsedResource;
8
+ export declare class ResourcesService {
9
+ private docs;
10
+ constructor(docs: SpringBootDocsServiceOptimized);
11
+ listResources(): {
12
+ uri: string;
13
+ name: string;
14
+ description: string;
15
+ mimeType: string;
16
+ }[];
17
+ listTemplates(): {
18
+ uriTemplate: string;
19
+ name: string;
20
+ description: string;
21
+ mimeType: string;
22
+ }[];
23
+ readResource(uri: string): Promise<{
24
+ contents: {
25
+ uri: string;
26
+ mimeType: string;
27
+ text: string;
28
+ }[];
29
+ }>;
30
+ }
31
+ //# sourceMappingURL=resources.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resources.d.ts","sourceRoot":"","sources":["../src/resources.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,8BAA8B,EAAE,MAAM,yCAAyC,CAAC;AAWzF,MAAM,MAAM,cAAc,GAAG;IAAE,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,CAAC;AAEvE,kHAAkH;AAClH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,CAQ5D;AAED,qBAAa,gBAAgB;IACf,OAAO,CAAC,IAAI;gBAAJ,IAAI,EAAE,8BAA8B;IAExD,aAAa;;;;;;IASb,aAAa;;;;;;IAiBP,YAAY,CAAC,GAAG,EAAE,MAAM;;;;;;;CAe/B"}