@jrmc/adonis-mcp 1.0.0-alpha.2 → 1.0.0-alpha.20

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 (211) hide show
  1. package/README.md +1064 -0
  2. package/build/commands/commands.json +1 -1
  3. package/build/commands/inspector.d.ts +16 -0
  4. package/build/commands/inspector.d.ts.map +1 -0
  5. package/build/commands/inspector.js +54 -0
  6. package/build/commands/make/prompt.d.ts +2 -0
  7. package/build/commands/make/prompt.d.ts.map +1 -1
  8. package/build/commands/make/prompt.js +6 -1
  9. package/build/commands/make/resource.d.ts +2 -0
  10. package/build/commands/make/resource.d.ts.map +1 -1
  11. package/build/commands/make/resource.js +6 -1
  12. package/build/commands/make/tool.d.ts +2 -0
  13. package/build/commands/make/tool.d.ts.map +1 -1
  14. package/build/commands/make/tool.js +6 -1
  15. package/build/commands/start.d.ts +16 -0
  16. package/build/commands/start.d.ts.map +1 -0
  17. package/build/commands/start.js +30 -0
  18. package/build/configure.d.ts.map +1 -1
  19. package/build/configure.js +7 -0
  20. package/build/index.d.ts +5 -0
  21. package/build/index.d.ts.map +1 -1
  22. package/build/index.js +5 -0
  23. package/build/providers/mcp_provider.d.ts +3 -2
  24. package/build/providers/mcp_provider.d.ts.map +1 -1
  25. package/build/providers/mcp_provider.js +35 -29
  26. package/build/src/define_config.d.ts +1 -1
  27. package/build/src/define_config.d.ts.map +1 -1
  28. package/build/src/define_config.js +0 -3
  29. package/build/src/enums/error.d.ts +16 -0
  30. package/build/src/enums/error.d.ts.map +1 -0
  31. package/build/src/enums/error.js +17 -0
  32. package/build/src/enums/role.d.ts +12 -0
  33. package/build/src/enums/role.d.ts.map +1 -0
  34. package/build/src/enums/role.js +12 -0
  35. package/build/src/request.d.ts +18 -0
  36. package/build/src/request.d.ts.map +1 -0
  37. package/build/src/request.js +12 -0
  38. package/build/src/response.d.ts +33 -0
  39. package/build/src/response.d.ts.map +1 -0
  40. package/build/src/response.js +69 -0
  41. package/build/src/server/annotations/annotations.d.ts +10 -0
  42. package/build/src/server/annotations/annotations.d.ts.map +1 -0
  43. package/build/src/server/annotations/annotations.js +9 -0
  44. package/build/src/server/annotations/audience.d.ts +22 -0
  45. package/build/src/server/annotations/audience.d.ts.map +1 -0
  46. package/build/src/server/annotations/audience.js +28 -0
  47. package/build/src/server/annotations/is_destructive.d.ts +17 -0
  48. package/build/src/server/annotations/is_destructive.d.ts.map +1 -0
  49. package/build/src/server/annotations/is_destructive.js +24 -0
  50. package/build/src/server/annotations/is_idempotent.d.ts +17 -0
  51. package/build/src/server/annotations/is_idempotent.d.ts.map +1 -0
  52. package/build/src/server/annotations/is_idempotent.js +24 -0
  53. package/build/src/server/annotations/is_open_world.d.ts +17 -0
  54. package/build/src/server/annotations/is_open_world.d.ts.map +1 -0
  55. package/build/src/server/annotations/is_open_world.js +24 -0
  56. package/build/src/server/annotations/is_read_only.d.ts +17 -0
  57. package/build/src/server/annotations/is_read_only.d.ts.map +1 -0
  58. package/build/src/server/annotations/is_read_only.js +24 -0
  59. package/build/src/server/annotations/last_modified.d.ts +21 -0
  60. package/build/src/server/annotations/last_modified.d.ts.map +1 -0
  61. package/build/src/server/annotations/last_modified.js +28 -0
  62. package/build/src/server/annotations/priority.d.ts +21 -0
  63. package/build/src/server/annotations/priority.d.ts.map +1 -0
  64. package/build/src/server/annotations/priority.js +31 -0
  65. package/build/src/server/annotations/tool_annotations.d.ts +11 -0
  66. package/build/src/server/annotations/tool_annotations.d.ts.map +1 -0
  67. package/build/src/server/annotations/tool_annotations.js +10 -0
  68. package/build/src/server/contents/audio.d.ts +24 -0
  69. package/build/src/server/contents/audio.d.ts.map +1 -0
  70. package/build/src/server/contents/audio.js +57 -0
  71. package/build/src/server/contents/blob.d.ts +20 -0
  72. package/build/src/server/contents/blob.d.ts.map +1 -0
  73. package/build/src/server/contents/blob.js +42 -0
  74. package/build/src/server/contents/embedded_resource.d.ts +25 -0
  75. package/build/src/server/contents/embedded_resource.d.ts.map +1 -0
  76. package/build/src/server/contents/embedded_resource.js +72 -0
  77. package/build/src/server/contents/error.d.ts +15 -0
  78. package/build/src/server/contents/error.d.ts.map +1 -0
  79. package/build/src/server/contents/error.js +16 -0
  80. package/build/src/server/contents/image.d.ts +24 -0
  81. package/build/src/server/contents/image.d.ts.map +1 -0
  82. package/build/src/server/contents/image.js +57 -0
  83. package/build/src/server/contents/resource_link.d.ts +22 -0
  84. package/build/src/server/contents/resource_link.d.ts.map +1 -0
  85. package/build/src/server/contents/resource_link.js +55 -0
  86. package/build/src/server/contents/structured.d.ts +20 -0
  87. package/build/src/server/contents/structured.d.ts.map +1 -0
  88. package/build/src/server/contents/structured.js +26 -0
  89. package/build/src/server/contents/text.d.ts +24 -0
  90. package/build/src/server/contents/text.d.ts.map +1 -0
  91. package/build/src/server/contents/text.js +61 -0
  92. package/build/src/server/context.d.ts +32 -0
  93. package/build/src/server/context.d.ts.map +1 -0
  94. package/build/src/server/context.js +61 -0
  95. package/build/src/server/contracts/content.d.ts +16 -0
  96. package/build/src/server/contracts/content.d.ts.map +1 -0
  97. package/build/src/server/contracts/content.js +8 -0
  98. package/build/src/server/contracts/context.d.ts +29 -0
  99. package/build/src/server/contracts/context.d.ts.map +1 -0
  100. package/build/src/server/contracts/context.js +7 -0
  101. package/build/src/server/contracts/response.d.ts +26 -0
  102. package/build/src/server/contracts/response.d.ts.map +1 -0
  103. package/build/src/server/contracts/response.js +7 -0
  104. package/build/src/server/contracts/transport.d.ts +14 -0
  105. package/build/src/server/contracts/transport.d.ts.map +1 -0
  106. package/build/src/server/contracts/transport.js +7 -0
  107. package/build/src/{controllers → server/controllers}/mcp_controller.d.ts +0 -2
  108. package/build/src/server/controllers/mcp_controller.d.ts.map +1 -0
  109. package/build/src/server/controllers/mcp_controller.js +15 -0
  110. package/build/src/server/exceptions/jsonrpc_exception.d.ts +10 -0
  111. package/build/src/server/exceptions/jsonrpc_exception.d.ts.map +1 -0
  112. package/build/src/server/exceptions/jsonrpc_exception.js +31 -0
  113. package/build/src/server/methods/call_tool.d.ts +12 -0
  114. package/build/src/server/methods/call_tool.d.ts.map +1 -0
  115. package/build/src/server/methods/call_tool.js +65 -0
  116. package/build/src/server/methods/completion.d.ts +12 -0
  117. package/build/src/server/methods/completion.d.ts.map +1 -0
  118. package/build/src/server/methods/completion.js +45 -0
  119. package/build/src/server/methods/get_prompt.d.ts +12 -0
  120. package/build/src/server/methods/get_prompt.d.ts.map +1 -0
  121. package/build/src/server/methods/get_prompt.js +65 -0
  122. package/build/src/server/methods/initialize.d.ts +12 -0
  123. package/build/src/server/methods/initialize.d.ts.map +1 -0
  124. package/build/src/server/methods/initialize.js +34 -0
  125. package/build/src/server/methods/list_prompts.d.ts +12 -0
  126. package/build/src/server/methods/list_prompts.d.ts.map +1 -0
  127. package/build/src/server/methods/list_prompts.js +34 -0
  128. package/build/src/server/methods/list_resource_templates.d.ts +12 -0
  129. package/build/src/server/methods/list_resource_templates.d.ts.map +1 -0
  130. package/build/src/server/methods/list_resource_templates.js +34 -0
  131. package/build/src/server/methods/list_resources.d.ts +12 -0
  132. package/build/src/server/methods/list_resources.d.ts.map +1 -0
  133. package/build/src/server/methods/list_resources.js +34 -0
  134. package/build/src/server/methods/list_tools.d.ts +12 -0
  135. package/build/src/server/methods/list_tools.d.ts.map +1 -0
  136. package/build/src/server/methods/list_tools.js +34 -0
  137. package/build/src/server/methods/ping.d.ts +12 -0
  138. package/build/src/server/methods/ping.d.ts.map +1 -0
  139. package/build/src/server/methods/ping.js +12 -0
  140. package/build/src/server/methods/read_resource.d.ts +12 -0
  141. package/build/src/server/methods/read_resource.d.ts.map +1 -0
  142. package/build/src/server/methods/read_resource.js +30 -0
  143. package/build/src/server/pagination/cursor_paginator.d.ts +10 -0
  144. package/build/src/server/pagination/cursor_paginator.d.ts.map +1 -0
  145. package/build/src/server/pagination/cursor_paginator.js +45 -0
  146. package/build/src/server/prompt.d.ts +27 -0
  147. package/build/src/server/prompt.d.ts.map +1 -0
  148. package/build/src/server/prompt.js +32 -0
  149. package/build/src/server/resource.d.ts +23 -0
  150. package/build/src/server/resource.d.ts.map +1 -0
  151. package/build/src/server/resource.js +40 -0
  152. package/build/src/server/tool.d.ts +28 -0
  153. package/build/src/server/tool.d.ts.map +1 -0
  154. package/build/src/server/tool.js +29 -0
  155. package/build/src/server/transports/fake_transport.d.ts +20 -0
  156. package/build/src/server/transports/fake_transport.d.ts.map +1 -0
  157. package/build/src/server/transports/fake_transport.js +28 -0
  158. package/build/src/server/transports/http_transport.d.ts +19 -0
  159. package/build/src/server/transports/http_transport.d.ts.map +1 -0
  160. package/build/src/server/transports/http_transport.js +32 -0
  161. package/build/src/server/transports/stdio_transport.d.ts +17 -0
  162. package/build/src/server/transports/stdio_transport.d.ts.map +1 -0
  163. package/build/src/server/transports/stdio_transport.js +36 -0
  164. package/build/src/server.d.ts +46 -0
  165. package/build/src/server.d.ts.map +1 -0
  166. package/build/src/server.js +139 -0
  167. package/build/src/types/config.d.ts +16 -0
  168. package/build/src/types/config.d.ts.map +1 -0
  169. package/build/src/types/config.js +7 -0
  170. package/build/src/types/content.d.ts +35 -0
  171. package/build/src/types/content.d.ts.map +1 -0
  172. package/build/src/types/content.js +7 -0
  173. package/build/src/types/context.d.ts +39 -0
  174. package/build/src/types/context.d.ts.map +1 -0
  175. package/build/src/types/context.js +7 -0
  176. package/build/src/types/jsonrpc.d.ts +406 -0
  177. package/build/src/types/jsonrpc.d.ts.map +1 -0
  178. package/build/src/types/jsonrpc.js +7 -0
  179. package/build/src/types/method.d.ts +37 -0
  180. package/build/src/types/method.d.ts.map +1 -0
  181. package/build/src/types/method.js +7 -0
  182. package/build/src/types/request.d.ts +10 -0
  183. package/build/src/types/request.d.ts.map +1 -0
  184. package/build/src/types/request.js +7 -0
  185. package/build/src/types/response.d.ts +17 -0
  186. package/build/src/types/response.d.ts.map +1 -0
  187. package/build/src/types/response.js +7 -0
  188. package/build/src/utils/find_resource_pattern.d.ts +19 -0
  189. package/build/src/utils/find_resource_pattern.d.ts.map +1 -0
  190. package/build/src/utils/find_resource_pattern.js +35 -0
  191. package/build/src/utils/stdio.d.ts +19 -0
  192. package/build/src/utils/stdio.d.ts.map +1 -0
  193. package/build/src/utils/stdio.js +36 -0
  194. package/build/src/utils/uri_template.d.ts +25 -0
  195. package/build/src/utils/uri_template.d.ts.map +1 -0
  196. package/build/src/utils/uri_template.js +241 -0
  197. package/build/stubs/config.ts.stub +2 -1
  198. package/build/stubs/make/mcp/prompts/main.ts.stub +31 -16
  199. package/build/stubs/make/mcp/resources/main.ts.stub +13 -19
  200. package/build/stubs/make/mcp/tools/main.ts.stub +29 -9
  201. package/build/stubs/make/middleware/mcp_middleware.ts.stub +31 -0
  202. package/build/tsconfig.tsbuildinfo +1 -1
  203. package/package.json +15 -7
  204. package/build/src/controllers/mcp_controller.d.ts.map +0 -1
  205. package/build/src/controllers/mcp_controller.js +0 -70
  206. package/build/src/mcp.d.ts +0 -22
  207. package/build/src/mcp.d.ts.map +0 -1
  208. package/build/src/mcp.js +0 -32
  209. package/build/src/types.d.ts +0 -49
  210. package/build/src/types.d.ts.map +0 -1
  211. package/build/src/types.js +0 -8
@@ -1 +1 @@
1
- {"commands":[{"commandName":"make:mcp-prompt","description":"Create a new MCP prompt","help":"","namespace":"make","aliases":[],"flags":[],"args":[{"name":"name","argumentName":"name","required":true,"description":"Name of the prompt","type":"string"}],"options":{},"filePath":"make/prompt.js"},{"commandName":"make:mcp-resource","description":"Create a new MCP resource","help":"","namespace":"make","aliases":[],"flags":[],"args":[{"name":"name","argumentName":"name","required":true,"description":"Name of the resource","type":"string"}],"options":{},"filePath":"make/resource.js"},{"commandName":"make:mcp-tool","description":"Create a new MCP tool","help":"","namespace":"make","aliases":[],"flags":[],"args":[{"name":"name","argumentName":"name","required":true,"description":"Name of the tool","type":"string"}],"options":{},"filePath":"make/tool.js"}],"version":1}
1
+ {"commands":[{"commandName":"mcp:inspector","description":"Open the MCP Inspector tool to debug and test MCP Servers.","help":"","namespace":"mcp","aliases":[],"flags":[],"args":[{"name":"transport","argumentName":"transport","required":true,"description":"Transport type","default":"http","type":"string"}],"options":{"startApp":true},"filePath":"inspector.js"},{"commandName":"make:mcp-prompt","description":"Create a new MCP prompt","help":"","namespace":"make","aliases":[],"flags":[],"args":[{"name":"name","argumentName":"name","required":true,"description":"Name of the prompt","type":"string"}],"options":{"startApp":true},"filePath":"make/prompt.js"},{"commandName":"make:mcp-resource","description":"Create a new MCP resource","help":"","namespace":"make","aliases":[],"flags":[],"args":[{"name":"name","argumentName":"name","required":true,"description":"Name of the resource","type":"string"}],"options":{"startApp":true},"filePath":"make/resource.js"},{"commandName":"make:mcp-tool","description":"Create a new MCP tool","help":"","namespace":"make","aliases":[],"flags":[],"args":[{"name":"name","argumentName":"name","required":true,"description":"Name of the tool","type":"string"}],"options":{"startApp":true},"filePath":"make/tool.js"},{"commandName":"mcp:start","description":"Start the MCP server stdio transport","help":"","namespace":"mcp","aliases":[],"flags":[],"args":[],"options":{"startApp":true},"filePath":"start.js"}],"version":1}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * @jrmc/adonis-mcp
3
+ *
4
+ * @license MIT
5
+ * @copyright Jeremy Chaufourier <jeremy@chaufourier.fr>
6
+ */
7
+ import type { CommandOptions } from '@adonisjs/core/types/ace';
8
+ import { BaseCommand } from '@adonisjs/core/ace';
9
+ export default class Inspector extends BaseCommand {
10
+ static commandName: string;
11
+ static description: string;
12
+ static options: CommandOptions;
13
+ transport: string;
14
+ run(): Promise<void>;
15
+ }
16
+ //# sourceMappingURL=inspector.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inspector.d.ts","sourceRoot":"","sources":["../../commands/inspector.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAA;AAG9D,OAAO,EAAQ,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAEtD,MAAM,CAAC,OAAO,OAAO,SAAU,SAAQ,WAAW;IAChD,MAAM,CAAC,WAAW,SAAkB;IACpC,MAAM,CAAC,WAAW,SAA+D;IAEjF,MAAM,CAAC,OAAO,EAAE,cAAc,CAE7B;IAGO,SAAS,EAAE,MAAM,CAAA;IAEnB,GAAG;CAoCV"}
@@ -0,0 +1,54 @@
1
+ /**
2
+ * @jrmc/adonis-mcp
3
+ *
4
+ * @license MIT
5
+ * @copyright Jeremy Chaufourier <jeremy@chaufourier.fr>
6
+ */
7
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
8
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
9
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
10
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
11
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
12
+ };
13
+ import { $ } from 'execa';
14
+ import { args, BaseCommand } from '@adonisjs/core/ace';
15
+ export default class Inspector extends BaseCommand {
16
+ static commandName = 'mcp:inspector';
17
+ static description = 'Open the MCP Inspector tool to debug and test MCP Servers.';
18
+ static options = {
19
+ startApp: true,
20
+ };
21
+ async run() {
22
+ if (this.app.inProduction) {
23
+ this.logger.error('Cannot open MCP inspector in production environment');
24
+ return;
25
+ }
26
+ if (this.transport !== 'http' && this.transport !== 'stdio') {
27
+ this.logger.error('Invalid transport type');
28
+ return;
29
+ }
30
+ if (this.transport === 'http') {
31
+ const router = await this.app.container.make('router');
32
+ const serverUrl = router
33
+ .builder()
34
+ .prefixUrl(`http://${process.env.HOST}:${process.env.PORT}`)
35
+ .disableRouteLookup()
36
+ .make('/mcp');
37
+ const inspectorProcess = $({
38
+ stdio: 'inherit',
39
+ }) `npx @modelcontextprotocol/inspector --transport http --server-url ${serverUrl}`;
40
+ await inspectorProcess;
41
+ }
42
+ else {
43
+ const nodeBinary = process.execPath;
44
+ const acePath = this.app.makePath('ace.js');
45
+ const inspectorProcess = $({
46
+ stdio: 'inherit',
47
+ }) `npx @modelcontextprotocol/inspector --transport stdio ${nodeBinary} ${acePath} mcp:start`;
48
+ await inspectorProcess;
49
+ }
50
+ }
51
+ }
52
+ __decorate([
53
+ args.string({ description: 'Transport type', default: 'http' })
54
+ ], Inspector.prototype, "transport", void 0);
@@ -4,10 +4,12 @@
4
4
  * @license MIT
5
5
  * @copyright Jeremy Chaufourier <jeremy@chaufourier.fr>
6
6
  */
7
+ import type { CommandOptions } from '@adonisjs/core/types/ace';
7
8
  import { BaseCommand } from '@adonisjs/core/ace';
8
9
  export default class MakePrompt extends BaseCommand {
9
10
  static commandName: string;
10
11
  static description: string;
12
+ static options: CommandOptions;
11
13
  name: string;
12
14
  run(): Promise<void>;
13
15
  }
@@ -1 +1 @@
1
- {"version":3,"file":"prompt.d.ts","sourceRoot":"","sources":["../../../commands/make/prompt.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAQ,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAItD,MAAM,CAAC,OAAO,OAAO,UAAW,SAAQ,WAAW;IACjD,MAAM,CAAC,WAAW,SAAoB;IACtC,MAAM,CAAC,WAAW,SAA4B;IAGtC,IAAI,EAAE,MAAM,CAAA;IAEd,GAAG;CAUV"}
1
+ {"version":3,"file":"prompt.d.ts","sourceRoot":"","sources":["../../../commands/make/prompt.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAA;AAG9D,OAAO,EAAQ,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAItD,MAAM,CAAC,OAAO,OAAO,UAAW,SAAQ,WAAW;IACjD,MAAM,CAAC,WAAW,SAAoB;IACtC,MAAM,CAAC,WAAW,SAA4B;IAE9C,MAAM,CAAC,OAAO,EAAE,cAAc,CAE7B;IAGO,IAAI,EAAE,MAAM,CAAA;IAEd,GAAG;CAYV"}
@@ -16,11 +16,16 @@ import { stubsRoot } from '../../stubs/main.js';
16
16
  export default class MakePrompt extends BaseCommand {
17
17
  static commandName = 'make:mcp-prompt';
18
18
  static description = 'Create a new MCP prompt';
19
+ static options = {
20
+ startApp: true,
21
+ };
19
22
  async run() {
23
+ const config = this.app.config.get('mcp', { path: 'app/mcp' });
20
24
  const codemods = await this.createCodemods();
21
25
  const stubPath = `make/mcp/prompts/main.ts.stub`;
22
26
  await codemods.makeUsingStub(stubsRoot, stubPath, {
23
- className: `${string.snakeCase(this.name)}Prompt`
27
+ name: string.pascalCase(this.name),
28
+ basePath: config.path,
24
29
  });
25
30
  this.logger.success(`Prompt created successfully for: ${this.name}`);
26
31
  }
@@ -4,10 +4,12 @@
4
4
  * @license MIT
5
5
  * @copyright Jeremy Chaufourier <jeremy@chaufourier.fr>
6
6
  */
7
+ import type { CommandOptions } from '@adonisjs/core/types/ace';
7
8
  import { BaseCommand } from '@adonisjs/core/ace';
8
9
  export default class MakeResource extends BaseCommand {
9
10
  static commandName: string;
10
11
  static description: string;
12
+ static options: CommandOptions;
11
13
  name: string;
12
14
  run(): Promise<void>;
13
15
  }
@@ -1 +1 @@
1
- {"version":3,"file":"resource.d.ts","sourceRoot":"","sources":["../../../commands/make/resource.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAQ,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAItD,MAAM,CAAC,OAAO,OAAO,YAAa,SAAQ,WAAW;IACnD,MAAM,CAAC,WAAW,SAAsB;IACxC,MAAM,CAAC,WAAW,SAA8B;IAGxC,IAAI,EAAE,MAAM,CAAA;IAEd,GAAG;CAUV"}
1
+ {"version":3,"file":"resource.d.ts","sourceRoot":"","sources":["../../../commands/make/resource.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAA;AAG9D,OAAO,EAAQ,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAItD,MAAM,CAAC,OAAO,OAAO,YAAa,SAAQ,WAAW;IACnD,MAAM,CAAC,WAAW,SAAsB;IACxC,MAAM,CAAC,WAAW,SAA8B;IAEhD,MAAM,CAAC,OAAO,EAAE,cAAc,CAE7B;IAGO,IAAI,EAAE,MAAM,CAAA;IAEd,GAAG;CAYV"}
@@ -16,11 +16,16 @@ import { stubsRoot } from '../../stubs/main.js';
16
16
  export default class MakeResource extends BaseCommand {
17
17
  static commandName = 'make:mcp-resource';
18
18
  static description = 'Create a new MCP resource';
19
+ static options = {
20
+ startApp: true,
21
+ };
19
22
  async run() {
23
+ const config = this.app.config.get('mcp', { path: 'app/mcp' });
20
24
  const codemods = await this.createCodemods();
21
25
  const stubPath = `make/mcp/resources/main.ts.stub`;
22
26
  await codemods.makeUsingStub(stubsRoot, stubPath, {
23
- className: `${string.snakeCase(this.name)}Resource`
27
+ name: string.pascalCase(this.name),
28
+ basePath: config.path,
24
29
  });
25
30
  this.logger.success(`Resource created successfully for: ${this.name}`);
26
31
  }
@@ -4,10 +4,12 @@
4
4
  * @license MIT
5
5
  * @copyright Jeremy Chaufourier <jeremy@chaufourier.fr>
6
6
  */
7
+ import type { CommandOptions } from '@adonisjs/core/types/ace';
7
8
  import { BaseCommand } from '@adonisjs/core/ace';
8
9
  export default class MakeTool extends BaseCommand {
9
10
  static commandName: string;
10
11
  static description: string;
12
+ static options: CommandOptions;
11
13
  name: string;
12
14
  run(): Promise<void>;
13
15
  }
@@ -1 +1 @@
1
- {"version":3,"file":"tool.d.ts","sourceRoot":"","sources":["../../../commands/make/tool.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAQ,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAItD,MAAM,CAAC,OAAO,OAAO,QAAS,SAAQ,WAAW;IAC/C,MAAM,CAAC,WAAW,SAAkB;IACpC,MAAM,CAAC,WAAW,SAA0B;IAGpC,IAAI,EAAE,MAAM,CAAA;IAEd,GAAG;CAUV"}
1
+ {"version":3,"file":"tool.d.ts","sourceRoot":"","sources":["../../../commands/make/tool.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAA;AAG9D,OAAO,EAAQ,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAItD,MAAM,CAAC,OAAO,OAAO,QAAS,SAAQ,WAAW;IAC/C,MAAM,CAAC,WAAW,SAAkB;IACpC,MAAM,CAAC,WAAW,SAA0B;IAE5C,MAAM,CAAC,OAAO,EAAE,cAAc,CAE7B;IAGO,IAAI,EAAE,MAAM,CAAA;IAEd,GAAG;CAYV"}
@@ -16,11 +16,16 @@ import { stubsRoot } from '../../stubs/main.js';
16
16
  export default class MakeTool extends BaseCommand {
17
17
  static commandName = 'make:mcp-tool';
18
18
  static description = 'Create a new MCP tool';
19
+ static options = {
20
+ startApp: true,
21
+ };
19
22
  async run() {
23
+ const config = this.app.config.get('mcp', { path: 'app/mcp' });
20
24
  const codemods = await this.createCodemods();
21
25
  const stubPath = `make/mcp/tools/main.ts.stub`;
22
26
  await codemods.makeUsingStub(stubsRoot, stubPath, {
23
- className: `${string.snakeCase(this.name)}Tool`
27
+ name: string.pascalCase(this.name),
28
+ basePath: config.path,
24
29
  });
25
30
  this.logger.success(`Tool created successfully for: ${this.name}`);
26
31
  }
@@ -0,0 +1,16 @@
1
+ /**
2
+ * @jrmc/adonis-mcp
3
+ *
4
+ * @license MIT
5
+ * @copyright Jeremy Chaufourier <jeremy@chaufourier.fr>
6
+ */
7
+ import type { CommandOptions } from '@adonisjs/core/types/ace';
8
+ import { BaseCommand } from '@adonisjs/core/ace';
9
+ export default class MakeTool extends BaseCommand {
10
+ #private;
11
+ static commandName: string;
12
+ static description: string;
13
+ static options: CommandOptions;
14
+ run(): Promise<void>;
15
+ }
16
+ //# sourceMappingURL=start.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"start.d.ts","sourceRoot":"","sources":["../../commands/start.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAA;AAG9D,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAKhD,MAAM,CAAC,OAAO,OAAO,QAAS,SAAQ,WAAW;;IAC/C,MAAM,CAAC,WAAW,SAAc;IAChC,MAAM,CAAC,WAAW,SAAyC;IAE3D,MAAM,CAAC,OAAO,EAAE,cAAc,CAG7B;IAIK,GAAG;CAaV"}
@@ -0,0 +1,30 @@
1
+ /**
2
+ * @jrmc/adonis-mcp
3
+ *
4
+ * @license MIT
5
+ * @copyright Jeremy Chaufourier <jeremy@chaufourier.fr>
6
+ */
7
+ import { BaseCommand } from '@adonisjs/core/ace';
8
+ import StdioTransport from '../src/server/transports/stdio_transport.js';
9
+ export default class MakeTool extends BaseCommand {
10
+ static commandName = 'mcp:start';
11
+ static description = 'Start the MCP server stdio transport';
12
+ static options = {
13
+ startApp: true,
14
+ // stayAlive: true,
15
+ };
16
+ #server = null;
17
+ async run() {
18
+ try {
19
+ this.#server = await this.app.container.make('jrmc.mcp');
20
+ const transport = new StdioTransport();
21
+ await this.#server.connect(transport);
22
+ transport.on('mcp:stdio:transport:message', async (message) => {
23
+ await this.#server?.handle(message);
24
+ });
25
+ }
26
+ catch (error) {
27
+ throw error;
28
+ }
29
+ }
30
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"configure.d.ts","sourceRoot":"","sources":["../configure.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,SAAS,MAAM,mCAAmC,CAAA;AAG9D,wBAAsB,SAAS,CAAC,OAAO,EAAE,SAAS,iBAejD"}
1
+ {"version":3,"file":"configure.d.ts","sourceRoot":"","sources":["../configure.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,SAAS,MAAM,mCAAmC,CAAA;AAG9D,wBAAsB,SAAS,CAAC,OAAO,EAAE,SAAS,iBAuBjD"}
@@ -11,6 +11,13 @@ export async function configure(command) {
11
11
  * Create default config file
12
12
  */
13
13
  await codemods.makeUsingStub(stubsRoot, 'config.ts.stub', {});
14
+ /**
15
+ * Create and configuredefault middleware file
16
+ */
17
+ await codemods.makeUsingStub(stubsRoot, 'make/middleware/mcp_middleware.ts.stub', {});
18
+ await codemods.registerMiddleware('router', [
19
+ { path: '#middleware/mcp_middleware', position: 'after' },
20
+ ]);
14
21
  /**
15
22
  * Register provider
16
23
  */
package/build/index.d.ts CHANGED
@@ -1,2 +1,7 @@
1
1
  export { configure } from './configure.js';
2
+ export { Tool } from './src/server/tool.js';
3
+ export { Resource } from './src/server/resource.js';
4
+ export { Prompt } from './src/server/prompt.js';
5
+ export * as McpResponse from './src/response.js';
6
+ export { defineConfig } from './src/define_config.js';
2
7
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC1C,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAA;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAA;AACnD,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAA;AAC/C,OAAO,KAAK,WAAW,MAAM,mBAAmB,CAAA;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAA"}
package/build/index.js CHANGED
@@ -1 +1,6 @@
1
1
  export { configure } from './configure.js';
2
+ export { Tool } from './src/server/tool.js';
3
+ export { Resource } from './src/server/resource.js';
4
+ export { Prompt } from './src/server/prompt.js';
5
+ export * as McpResponse from './src/response.js';
6
+ export { defineConfig } from './src/define_config.js';
@@ -6,7 +6,7 @@
6
6
  */
7
7
  import type { ApplicationService } from '@adonisjs/core/types';
8
8
  import type { RouteGroup } from '@adonisjs/core/http';
9
- import Mcp from '../src/mcp.js';
9
+ import McpServer from '../src/server.js';
10
10
  export default class McpProvider {
11
11
  protected app: ApplicationService;
12
12
  constructor(app: ApplicationService);
@@ -15,6 +15,7 @@ export default class McpProvider {
15
15
  registerTools(): Promise<void>;
16
16
  registerResources(): Promise<void>;
17
17
  registerPrompts(): Promise<void>;
18
+ registerMethods(type: 'tool' | 'resource' | 'prompt'): Promise<void>;
18
19
  }
19
20
  declare module '@adonisjs/core/http' {
20
21
  interface Router {
@@ -23,7 +24,7 @@ declare module '@adonisjs/core/http' {
23
24
  }
24
25
  declare module '@adonisjs/core/types' {
25
26
  interface ContainerBindings {
26
- 'jrmc.mcp': Mcp;
27
+ 'jrmc.mcp': McpServer;
27
28
  }
28
29
  }
29
30
  //# sourceMappingURL=mcp_provider.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"mcp_provider.d.ts","sourceRoot":"","sources":["../../providers/mcp_provider.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AAC9D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAIrD,OAAO,GAAG,MAAM,eAAe,CAAA;AAE/B,MAAM,CAAC,OAAO,OAAO,WAAW;IAClB,SAAS,CAAC,GAAG,EAAE,kBAAkB;gBAAvB,GAAG,EAAE,kBAAkB;IAE7C,QAAQ;IAOF,KAAK;IAiBL,aAAa;IAab,iBAAiB;IAajB,eAAe;CAYtB;AAED,OAAO,QAAQ,qBAAqB,CAAC;IACnC,UAAU,MAAM;QACd,GAAG,EAAE,CAAC,OAAO,CAAC,EAAE,MAAM,KAAK,UAAU,CAAA;KACtC;CACF;AAED,OAAO,QAAQ,sBAAsB,CAAC;IACpC,UAAU,iBAAiB;QACzB,UAAU,EAAE,GAAG,CAAA;KAChB;CACF"}
1
+ {"version":3,"file":"mcp_provider.d.ts","sourceRoot":"","sources":["../../providers/mcp_provider.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AAC9D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAIrD,OAAO,SAAS,MAAM,kBAAkB,CAAA;AAExC,MAAM,CAAC,OAAO,OAAO,WAAW;IAClB,SAAS,CAAC,GAAG,EAAE,kBAAkB;gBAAvB,GAAG,EAAE,kBAAkB;IAE7C,QAAQ;IAQF,KAAK;IAeL,aAAa;IAIb,iBAAiB;IAIjB,eAAe;IAIf,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,QAAQ;CAiC3D;AAED,OAAO,QAAQ,qBAAqB,CAAC;IACnC,UAAU,MAAM;QACd,GAAG,EAAE,CAAC,OAAO,CAAC,EAAE,MAAM,KAAK,UAAU,CAAA;KACtC;CACF;AAED,OAAO,QAAQ,sBAAsB,CAAC;IACpC,UAAU,iBAAiB;QACzB,UAAU,EAAE,SAAS,CAAA;KACtB;CACF"}
@@ -4,8 +4,8 @@
4
4
  * @license MIT
5
5
  * @copyright Jeremy Chaufourier <jeremy@chaufourier.fr>
6
6
  */
7
- import { fsImportAll } from '@adonisjs/core/helpers';
8
- import Mcp from '../src/mcp.js';
7
+ import { fsReadAll } from '@adonisjs/core/helpers';
8
+ import McpServer from '../src/server.js';
9
9
  export default class McpProvider {
10
10
  app;
11
11
  constructor(app) {
@@ -14,17 +14,15 @@ export default class McpProvider {
14
14
  register() {
15
15
  this.app.container.singleton('jrmc.mcp', async () => {
16
16
  const config = this.app.config.get('mcp', {});
17
- return new Mcp(config);
17
+ return new McpServer(config);
18
18
  });
19
19
  }
20
20
  async start() {
21
21
  const router = await this.app.container.make('router');
22
- const McpController = () => import('../src/controllers/mcp_controller.js');
22
+ const McpController = () => import('../src/server/controllers/mcp_controller.js');
23
23
  router.mcp = (pattern = '/mcp') => {
24
24
  return router.group(() => {
25
- router.get(pattern, [McpController, 'get']);
26
25
  router.post(pattern, [McpController, 'post']);
27
- router.delete(pattern, [McpController, 'delete']);
28
26
  });
29
27
  };
30
28
  await this.registerTools();
@@ -32,33 +30,41 @@ export default class McpProvider {
32
30
  await this.registerPrompts();
33
31
  }
34
32
  async registerTools() {
35
- const mcp = await this.app.container.make('jrmc.mcp');
36
- const collection = await fsImportAll(new URL(this.app.makePath(mcp.config.path), import.meta.url), {
37
- filter: (filePath) => filePath.includes('_tool.ts')
38
- });
39
- Object.values(collection).map((item) => {
40
- const toolMcp = new item();
41
- mcp.getServer().registerTool(toolMcp.name, toolMcp.config, toolMcp.handle);
42
- });
33
+ this.registerMethods('tool');
43
34
  }
44
35
  async registerResources() {
45
- const mcp = await this.app.container.make('jrmc.mcp');
46
- const collection = await fsImportAll(new URL(this.app.makePath(mcp.config.path), import.meta.url), {
47
- filter: (filePath) => filePath.includes('_resource.ts')
48
- });
49
- Object.values(collection).map((item) => {
50
- const resourceMcp = new item();
51
- mcp.getServer().registerResource(resourceMcp.name, resourceMcp.uriOrTemplate, resourceMcp.config, resourceMcp.handle);
52
- });
36
+ this.registerMethods('resource');
53
37
  }
54
38
  async registerPrompts() {
55
- const mcp = await this.app.container.make('jrmc.mcp');
56
- const collection = await fsImportAll(new URL(this.app.makePath(mcp.config.path), import.meta.url), {
57
- filter: (filePath) => filePath.includes('_prompt.ts')
58
- });
59
- Object.values(collection).map((item) => {
60
- const promptMcp = new item();
61
- mcp.getServer().registerPrompt(promptMcp.name, promptMcp.config, promptMcp.handle);
39
+ this.registerMethods('prompt');
40
+ }
41
+ async registerMethods(type) {
42
+ const server = await this.app.container.make('jrmc.mcp');
43
+ const mcpPath = this.app.makePath(this.app.rcFile.directories['mcp'] || 'app/mcp/');
44
+ const files = await fsReadAll(mcpPath, {
45
+ filter: (filePath) => filePath.includes(`_${type}.ts`),
62
46
  });
47
+ await Promise.all(files.map(async (file) => {
48
+ const path = this.app.makePath(mcpPath, file);
49
+ const { default: Method } = await import(path);
50
+ const instance = new Method();
51
+ switch (type) {
52
+ case 'tool':
53
+ server.addTool({
54
+ [instance.name]: path,
55
+ });
56
+ break;
57
+ case 'resource':
58
+ server.addResource({
59
+ [instance.uri]: path,
60
+ });
61
+ break;
62
+ case 'prompt':
63
+ server.addPrompt({
64
+ [instance.name]: path,
65
+ });
66
+ break;
67
+ }
68
+ }));
63
69
  }
64
70
  }
@@ -4,6 +4,6 @@
4
4
  * @license MIT
5
5
  * @copyright Jeremy Chaufourier <jeremy@chaufourier.fr>
6
6
  */
7
- import type { McpConfig } from './types.js';
7
+ import type { McpConfig } from './types/config.js';
8
8
  export declare function defineConfig<T extends McpConfig>(config: T): T;
9
9
  //# sourceMappingURL=define_config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"define_config.d.ts","sourceRoot":"","sources":["../../src/define_config.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AAE3C,wBAAgB,YAAY,CAAC,CAAC,SAAS,SAAS,EAAE,MAAM,EAAE,CAAC,GAAG,CAAC,CAK9D"}
1
+ {"version":3,"file":"define_config.d.ts","sourceRoot":"","sources":["../../src/define_config.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAElD,wBAAgB,YAAY,CAAC,CAAC,SAAS,SAAS,EAAE,MAAM,EAAE,CAAC,GAAG,CAAC,CAE9D"}
@@ -5,8 +5,5 @@
5
5
  * @copyright Jeremy Chaufourier <jeremy@chaufourier.fr>
6
6
  */
7
7
  export function defineConfig(config) {
8
- if (!config.path) {
9
- config.path = 'app/mcp';
10
- }
11
8
  return config;
12
9
  }
@@ -0,0 +1,16 @@
1
+ /**
2
+ * @jrmc/adonis-mcp
3
+ *
4
+ * @license MIT
5
+ * @copyright Jeremy Chaufourier <jeremy@chaufourier.fr>
6
+ */
7
+ export declare enum ErrorCode {
8
+ ConnectionClosed = -32000,
9
+ RequestTimeout = -32001,
10
+ ParseError = -32700,
11
+ InvalidRequest = -32600,
12
+ MethodNotFound = -32601,
13
+ InvalidParams = -32602,
14
+ InternalError = -32603
15
+ }
16
+ //# sourceMappingURL=error.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error.d.ts","sourceRoot":"","sources":["../../../src/enums/error.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,oBAAY,SAAS;IACnB,gBAAgB,SAAS;IACzB,cAAc,SAAS;IAGvB,UAAU,SAAS;IACnB,cAAc,SAAS;IACvB,cAAc,SAAS;IACvB,aAAa,SAAS;IACtB,aAAa,SAAS;CACvB"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * @jrmc/adonis-mcp
3
+ *
4
+ * @license MIT
5
+ * @copyright Jeremy Chaufourier <jeremy@chaufourier.fr>
6
+ */
7
+ export var ErrorCode;
8
+ (function (ErrorCode) {
9
+ ErrorCode[ErrorCode["ConnectionClosed"] = -32000] = "ConnectionClosed";
10
+ ErrorCode[ErrorCode["RequestTimeout"] = -32001] = "RequestTimeout";
11
+ // Standard JSON-RPC error codes
12
+ ErrorCode[ErrorCode["ParseError"] = -32700] = "ParseError";
13
+ ErrorCode[ErrorCode["InvalidRequest"] = -32600] = "InvalidRequest";
14
+ ErrorCode[ErrorCode["MethodNotFound"] = -32601] = "MethodNotFound";
15
+ ErrorCode[ErrorCode["InvalidParams"] = -32602] = "InvalidParams";
16
+ ErrorCode[ErrorCode["InternalError"] = -32603] = "InternalError";
17
+ })(ErrorCode || (ErrorCode = {}));
@@ -0,0 +1,12 @@
1
+ /**
2
+ * @jrmc/adonis-mcp
3
+ *
4
+ * @license MIT
5
+ * @copyright Jeremy Chaufourier <jeremy@chaufourier.fr>
6
+ */
7
+ declare enum Role {
8
+ USER = "user",
9
+ ASSISTANT = "assistant"
10
+ }
11
+ export default Role;
12
+ //# sourceMappingURL=role.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"role.d.ts","sourceRoot":"","sources":["../../../src/enums/role.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,aAAK,IAAI;IACP,IAAI,SAAS;IACb,SAAS,cAAc;CACxB;AAED,eAAe,IAAI,CAAA"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * @jrmc/adonis-mcp
3
+ *
4
+ * @license MIT
5
+ * @copyright Jeremy Chaufourier <jeremy@chaufourier.fr>
6
+ */
7
+ var Role;
8
+ (function (Role) {
9
+ Role["USER"] = "user";
10
+ Role["ASSISTANT"] = "assistant";
11
+ })(Role || (Role = {}));
12
+ export default Role;
@@ -0,0 +1,18 @@
1
+ /**
2
+ * @jrmc/adonis-mcp
3
+ *
4
+ * @license MIT
5
+ * @copyright Jeremy Chaufourier <jeremy@chaufourier.fr>
6
+ */
7
+ import type { JsonRpcRequest } from './types/jsonrpc.js';
8
+ export default class Request implements JsonRpcRequest {
9
+ jsonrpc: '2.0';
10
+ id: string | number;
11
+ method: string;
12
+ params?: {
13
+ cursor?: string;
14
+ [key: string]: unknown;
15
+ };
16
+ constructor(request: JsonRpcRequest);
17
+ }
18
+ //# sourceMappingURL=request.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"request.d.ts","sourceRoot":"","sources":["../../src/request.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AAExD,MAAM,CAAC,OAAO,OAAO,OAAQ,YAAW,cAAc;IACpD,OAAO,EAAE,KAAK,CAAA;IACd,EAAE,EAAE,MAAM,GAAG,MAAM,CAAA;IACnB,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE;QACP,MAAM,CAAC,EAAE,MAAM,CAAA;QACf,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;KACvB,CAAA;gBAEW,OAAO,EAAE,cAAc;CAMpC"}
@@ -0,0 +1,12 @@
1
+ export default class Request {
2
+ jsonrpc;
3
+ id;
4
+ method;
5
+ params;
6
+ constructor(request) {
7
+ this.jsonrpc = request.jsonrpc;
8
+ this.id = request.id;
9
+ this.method = request.method;
10
+ this.params = request.params;
11
+ }
12
+ }
@@ -0,0 +1,33 @@
1
+ /**
2
+ * @jrmc/adonis-mcp
3
+ *
4
+ * @license MIT
5
+ * @copyright Jeremy Chaufourier <jeremy@chaufourier.fr>
6
+ */
7
+ import type { JsonRpcResponse, Completion } from './types/jsonrpc.js';
8
+ import type { Response } from './server/contracts/response.js';
9
+ import type { McpRequestType } from './types/request.js';
10
+ import type { JsonRpcRequest } from './types/jsonrpc.js';
11
+ import Text from './server/contents/text.js';
12
+ import Blob from './server/contents/blob.js';
13
+ import Image from './server/contents/image.js';
14
+ import Audio from './server/contents/audio.js';
15
+ import Structured from './server/contents/structured.js';
16
+ import ResourceLink from './server/contents/resource_link.js';
17
+ import EmbeddedResource from './server/contents/embedded_resource.js';
18
+ import Error from './server/contents/error.js';
19
+ export default class<T extends McpRequestType = McpRequestType> implements Response {
20
+ readonly type: T;
21
+ constructor(jsonRpcRequest: JsonRpcRequest);
22
+ text(text: string): Text;
23
+ blob(text: string): Blob;
24
+ image(data: string, mimeType: string): Image;
25
+ audio(data: string, mimeType: string): Audio;
26
+ structured(object: Record<string, unknown>): Structured;
27
+ resourceLink(uri: string): ResourceLink;
28
+ embeddedResource(uri: string): EmbeddedResource;
29
+ error(message: string): Error;
30
+ complete(completion: Completion): Completion;
31
+ static toJsonRpc({ id, result, error }: Omit<JsonRpcResponse, 'jsonrpc'>): JsonRpcResponse;
32
+ }
33
+ //# sourceMappingURL=response.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"response.d.ts","sourceRoot":"","sources":["../../src/response.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AACrE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAA;AAC9D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AACxD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AAExD,OAAO,IAAI,MAAM,2BAA2B,CAAA;AAC5C,OAAO,IAAI,MAAM,2BAA2B,CAAA;AAC5C,OAAO,KAAK,MAAM,4BAA4B,CAAA;AAC9C,OAAO,KAAK,MAAM,4BAA4B,CAAA;AAC9C,OAAO,UAAU,MAAM,iCAAiC,CAAA;AACxD,OAAO,YAAY,MAAM,oCAAoC,CAAA;AAC7D,OAAO,gBAAgB,MAAM,wCAAwC,CAAA;AACrE,OAAO,KAAK,MAAM,4BAA4B,CAAA;AAE9C,MAAM,CAAC,OAAO,OAAO,CAAC,SAAS,cAAc,GAAG,cAAc,CAAE,YAAW,QAAQ;IACjF,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAA;gBAEJ,cAAc,EAAE,cAAc;IAc1C,IAAI,CAAC,IAAI,EAAE,MAAM;IAIjB,IAAI,CAAC,IAAI,EAAE,MAAM;IAIjB,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM;IAIpC,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM;IAIpC,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAI1C,YAAY,CAAC,GAAG,EAAE,MAAM;IAIxB,gBAAgB,CAAC,GAAG,EAAE,MAAM;IAI5B,KAAK,CAAC,OAAO,EAAE,MAAM;IAIrB,QAAQ,CAAC,UAAU,EAAE,UAAU;IAI/B,MAAM,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,IAAI,CAAC,eAAe,EAAE,SAAS,CAAC,GAAG,eAAe;CAQ3F"}