@enokdev/springdocs-mcp 1.2.8 → 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 +83 -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 +182 -68
  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 +14 -9
  25. package/build/services/advanced-features.d.ts.map +1 -1
  26. package/build/services/advanced-features.js +205 -195
  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 +26 -33
  73. package/build/services/spring-projects-config.d.ts.map +1 -1
  74. package/build/services/spring-projects-config.js +248 -79
  75. package/build/services/spring-projects-config.js.map +1 -1
  76. package/build/services/springboot-docs-optimized.d.ts +57 -16
  77. package/build/services/springboot-docs-optimized.d.ts.map +1 -1
  78. package/build/services/springboot-docs-optimized.js +315 -197
  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 +376 -2
  85. package/build/tools/index.d.ts.map +1 -1
  86. package/build/tools/index.js +178 -11
  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 +6 -6
  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,12 +232,12 @@ class SpringBootMCPServerAdvanced {
174
232
  };
175
233
  }
176
234
  async handleGetReference(args) {
177
- const { project = "boot", 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
239
  // Use new multi-project method
182
- const reference = await this.docsService.getSpringReference(project, section, subsection);
240
+ const reference = await this.docsService.getSpringReference(project, section, subsection, offset, version);
183
241
  return {
184
242
  content: [
185
243
  {
@@ -190,16 +248,16 @@ class SpringBootMCPServerAdvanced {
190
248
  };
191
249
  }
192
250
  async handleSearchConcepts(args) {
193
- const { concept, category } = args;
251
+ const { concept, version } = args;
194
252
  if (!concept || typeof concept !== "string") {
195
253
  throw new Error("The 'concept' parameter is required and must be a string");
196
254
  }
197
- const results = await this.docsService.searchConcepts(concept, category);
255
+ const results = await this.docsService.searchConcepts(concept, version);
198
256
  return {
199
257
  content: [
200
258
  {
201
259
  type: "text",
202
- text: this.formatConceptResults(results),
260
+ text: results,
203
261
  },
204
262
  ],
205
263
  };
@@ -250,6 +308,65 @@ class SpringBootMCPServerAdvanced {
250
308
  ],
251
309
  };
252
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
+ }
253
370
  async handleGetBestPractices(args) {
254
371
  const { category, experience_level = "intermediate" } = args;
255
372
  if (!category || typeof category !== "string") {
@@ -281,40 +398,6 @@ class SpringBootMCPServerAdvanced {
281
398
  };
282
399
  }
283
400
  // Formatting methods
284
- formatSearchResults(results) {
285
- if (results.length === 0) {
286
- return "No results found.";
287
- }
288
- return results
289
- .map((result, index) => {
290
- return `${index + 1}. **${result.title}**
291
- Type: ${result.type}
292
- URL: ${result.url}
293
- Description: ${result.description || "No description available"}
294
-
295
- `;
296
- })
297
- .join("\n");
298
- }
299
- formatConceptResults(results) {
300
- if (!results || Object.keys(results).length === 0) {
301
- return "No concepts found.";
302
- }
303
- let formatted = `# Spring Boot Concepts\n\n`;
304
- for (const [category, concepts] of Object.entries(results)) {
305
- formatted += `## ${category}\n\n`;
306
- if (Array.isArray(concepts)) {
307
- concepts.forEach((concept) => {
308
- formatted += `- **${concept.name}**: ${concept.description}\n`;
309
- if (concept.examples && concept.examples.length > 0) {
310
- formatted += ` Examples: ${concept.examples.join(", ")}\n`;
311
- }
312
- });
313
- }
314
- formatted += "\n";
315
- }
316
- return formatted;
317
- }
318
401
  formatEcosystemResults(results) {
319
402
  if (!results || results.totalResults === 0) {
320
403
  return `# Spring Ecosystem Search Results
@@ -345,11 +428,26 @@ No results found for "${results.query}" in scope "${results.scope}".`;
345
428
  }
346
429
  return formatted;
347
430
  }
348
- async run() {
431
+ httpServer;
432
+ async run(config) {
349
433
  try {
350
- 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();
351
449
  console.error("🚀 Advanced Spring Boot MCP Server started on stdio");
352
- await this.server.connect(transport);
450
+ await server.connect(new StdioServerTransport());
353
451
  console.error("✅ Server connected successfully");
354
452
  }
355
453
  catch (error) {
@@ -357,24 +455,40 @@ No results found for "${results.query}" in scope "${results.scope}".`;
357
455
  throw error;
358
456
  }
359
457
  }
458
+ async stop() {
459
+ await this.httpServer?.close();
460
+ }
360
461
  }
361
462
  // Main entry point
463
+ let app;
362
464
  async function main() {
363
- const server = new SpringBootMCPServerAdvanced();
364
- 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);
365
475
  }
366
476
  // Error handling
367
- process.on("SIGINT", async () => {
368
- console.error("🛑 Shutting down server...");
369
- process.exit(0);
370
- });
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);
371
487
  process.on("unhandledRejection", (reason, promise) => {
372
488
  console.error("💥 Unhandled promise rejection:", reason);
373
- process.exit(1);
374
489
  });
375
490
  process.on("uncaughtException", (error) => {
376
491
  console.error("💥 Uncaught exception:", error);
377
- process.exit(1);
378
492
  });
379
493
  // Start server
380
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"}