@jrmc/adonis-mcp 1.0.0-alpha.9 → 1.0.0-beta.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (187) hide show
  1. package/README.md +811 -26
  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 +16 -0
  7. package/build/commands/make/prompt.d.ts.map +1 -0
  8. package/build/commands/make/prompt.js +33 -0
  9. package/build/commands/make/resource.d.ts +16 -0
  10. package/build/commands/make/resource.d.ts.map +1 -0
  11. package/build/commands/make/resource.js +33 -0
  12. package/build/commands/make/tool.d.ts.map +1 -1
  13. package/build/commands/make/tool.js +0 -2
  14. package/build/configure.d.ts.map +1 -1
  15. package/build/configure.js +7 -0
  16. package/build/index.d.ts +2 -0
  17. package/build/index.d.ts.map +1 -1
  18. package/build/index.js +2 -0
  19. package/build/providers/mcp_provider.d.ts +3 -0
  20. package/build/providers/mcp_provider.d.ts.map +1 -1
  21. package/build/providers/mcp_provider.js +35 -12
  22. package/build/src/define_config.d.ts.map +1 -1
  23. package/build/src/define_config.js +0 -3
  24. package/build/src/enums/error.d.ts.map +1 -1
  25. package/build/src/enums/error.js +0 -1
  26. package/build/src/request.d.ts +1 -1
  27. package/build/src/response.d.ts +24 -23
  28. package/build/src/response.d.ts.map +1 -1
  29. package/build/src/response.js +49 -13
  30. package/build/src/server/annotations/annotations.d.ts +10 -0
  31. package/build/src/server/annotations/annotations.d.ts.map +1 -0
  32. package/build/src/server/annotations/annotations.js +9 -0
  33. package/build/src/server/annotations/audience.d.ts +22 -0
  34. package/build/src/server/annotations/audience.d.ts.map +1 -0
  35. package/build/src/server/annotations/audience.js +28 -0
  36. package/build/src/server/annotations/is_destructive.d.ts +17 -0
  37. package/build/src/server/annotations/is_destructive.d.ts.map +1 -0
  38. package/build/src/server/annotations/is_destructive.js +24 -0
  39. package/build/src/server/annotations/is_idempotent.d.ts +17 -0
  40. package/build/src/server/annotations/is_idempotent.d.ts.map +1 -0
  41. package/build/src/server/annotations/is_idempotent.js +24 -0
  42. package/build/src/server/annotations/is_open_world.d.ts +17 -0
  43. package/build/src/server/annotations/is_open_world.d.ts.map +1 -0
  44. package/build/src/server/annotations/is_open_world.js +24 -0
  45. package/build/src/server/annotations/is_read_only.d.ts +17 -0
  46. package/build/src/server/annotations/is_read_only.d.ts.map +1 -0
  47. package/build/src/server/annotations/is_read_only.js +24 -0
  48. package/build/src/server/annotations/last_modified.d.ts +21 -0
  49. package/build/src/server/annotations/last_modified.d.ts.map +1 -0
  50. package/build/src/server/annotations/last_modified.js +28 -0
  51. package/build/src/server/annotations/priority.d.ts +21 -0
  52. package/build/src/server/annotations/priority.d.ts.map +1 -0
  53. package/build/src/server/annotations/priority.js +31 -0
  54. package/build/src/server/annotations/tool_annotations.d.ts +11 -0
  55. package/build/src/server/annotations/tool_annotations.d.ts.map +1 -0
  56. package/build/src/server/annotations/tool_annotations.js +10 -0
  57. package/build/src/server/contents/audio.d.ts +24 -0
  58. package/build/src/server/contents/audio.d.ts.map +1 -0
  59. package/build/src/server/contents/audio.js +57 -0
  60. package/build/src/server/contents/blob.d.ts +20 -0
  61. package/build/src/server/contents/blob.d.ts.map +1 -0
  62. package/build/src/server/contents/blob.js +42 -0
  63. package/build/src/server/contents/embedded_resource.d.ts +25 -0
  64. package/build/src/server/contents/embedded_resource.d.ts.map +1 -0
  65. package/build/src/server/contents/embedded_resource.js +72 -0
  66. package/build/src/server/contents/error.d.ts +15 -0
  67. package/build/src/server/contents/error.d.ts.map +1 -0
  68. package/build/src/server/contents/error.js +16 -0
  69. package/build/src/server/contents/image.d.ts +24 -0
  70. package/build/src/server/contents/image.d.ts.map +1 -0
  71. package/build/src/server/contents/image.js +57 -0
  72. package/build/src/server/contents/resource_link.d.ts +22 -0
  73. package/build/src/server/contents/resource_link.d.ts.map +1 -0
  74. package/build/src/server/contents/resource_link.js +55 -0
  75. package/build/src/server/contents/structured.d.ts +20 -0
  76. package/build/src/server/contents/structured.d.ts.map +1 -0
  77. package/build/src/server/contents/structured.js +26 -0
  78. package/build/src/server/contents/text.d.ts +24 -0
  79. package/build/src/server/contents/text.d.ts.map +1 -0
  80. package/build/src/server/contents/text.js +61 -0
  81. package/build/src/server/context.d.ts +11 -6
  82. package/build/src/server/context.d.ts.map +1 -1
  83. package/build/src/server/context.js +30 -2
  84. package/build/src/server/contracts/content.d.ts +16 -0
  85. package/build/src/server/contracts/content.d.ts.map +1 -0
  86. package/build/src/server/contracts/content.js +8 -0
  87. package/build/src/server/contracts/context.d.ts +29 -0
  88. package/build/src/server/contracts/context.d.ts.map +1 -0
  89. package/build/src/server/contracts/response.d.ts +26 -0
  90. package/build/src/server/contracts/response.d.ts.map +1 -0
  91. package/build/src/{types → server/contracts}/transport.d.ts +2 -2
  92. package/build/src/server/contracts/transport.d.ts.map +1 -0
  93. package/build/src/server/contracts/transport.js +7 -0
  94. package/build/src/server/controllers/mcp_controller.d.ts.map +1 -1
  95. package/build/src/server/controllers/mcp_controller.js +0 -3
  96. package/build/src/server/exceptions/jsonrpc_exception.d.ts +6 -5
  97. package/build/src/server/exceptions/jsonrpc_exception.d.ts.map +1 -1
  98. package/build/src/server/exceptions/jsonrpc_exception.js +18 -9
  99. package/build/src/server/methods/call_tool.d.ts +2 -2
  100. package/build/src/server/methods/call_tool.d.ts.map +1 -1
  101. package/build/src/server/methods/call_tool.js +42 -17
  102. package/build/src/server/methods/completion.d.ts +12 -0
  103. package/build/src/server/methods/completion.d.ts.map +1 -0
  104. package/build/src/server/methods/completion.js +45 -0
  105. package/build/src/server/methods/get_prompt.d.ts +2 -2
  106. package/build/src/server/methods/get_prompt.d.ts.map +1 -1
  107. package/build/src/server/methods/get_prompt.js +55 -2
  108. package/build/src/server/methods/initialize.d.ts +2 -2
  109. package/build/src/server/methods/initialize.d.ts.map +1 -1
  110. package/build/src/server/methods/initialize.js +4 -1
  111. package/build/src/server/methods/list_prompts.d.ts +2 -2
  112. package/build/src/server/methods/list_prompts.d.ts.map +1 -1
  113. package/build/src/server/methods/list_prompts.js +24 -3
  114. package/build/src/server/methods/list_resource_templates.d.ts +12 -0
  115. package/build/src/server/methods/list_resource_templates.d.ts.map +1 -0
  116. package/build/src/server/methods/list_resource_templates.js +34 -0
  117. package/build/src/server/methods/list_resources.d.ts +2 -2
  118. package/build/src/server/methods/list_resources.d.ts.map +1 -1
  119. package/build/src/server/methods/list_resources.js +24 -3
  120. package/build/src/server/methods/list_tools.d.ts +2 -2
  121. package/build/src/server/methods/list_tools.d.ts.map +1 -1
  122. package/build/src/server/methods/list_tools.js +5 -17
  123. package/build/src/server/methods/ping.d.ts +2 -2
  124. package/build/src/server/methods/ping.d.ts.map +1 -1
  125. package/build/src/server/methods/ping.js +1 -1
  126. package/build/src/server/methods/read_resource.d.ts +2 -2
  127. package/build/src/server/methods/read_resource.d.ts.map +1 -1
  128. package/build/src/server/methods/read_resource.js +20 -2
  129. package/build/src/server/pagination/cursor_paginator.d.ts +2 -4
  130. package/build/src/server/pagination/cursor_paginator.d.ts.map +1 -1
  131. package/build/src/server/pagination/cursor_paginator.js +11 -11
  132. package/build/src/server/prompt.d.ts +27 -0
  133. package/build/src/server/prompt.d.ts.map +1 -0
  134. package/build/src/server/prompt.js +32 -0
  135. package/build/src/server/resource.d.ts +23 -0
  136. package/build/src/server/resource.d.ts.map +1 -0
  137. package/build/src/server/resource.js +40 -0
  138. package/build/src/server/tool.d.ts +19 -9
  139. package/build/src/server/tool.d.ts.map +1 -1
  140. package/build/src/server/tool.js +21 -0
  141. package/build/src/server/transports/fake_transport.d.ts +19 -1
  142. package/build/src/server/transports/fake_transport.d.ts.map +1 -1
  143. package/build/src/server/transports/fake_transport.js +28 -1
  144. package/build/src/server/transports/http_transport.d.ts +4 -3
  145. package/build/src/server/transports/http_transport.d.ts.map +1 -1
  146. package/build/src/server/transports/http_transport.js +14 -9
  147. package/build/src/server/transports/stdio_transport.d.ts +2 -2
  148. package/build/src/server/transports/stdio_transport.d.ts.map +1 -1
  149. package/build/src/server/transports/stdio_transport.js +0 -3
  150. package/build/src/server.d.ts +4 -3
  151. package/build/src/server.d.ts.map +1 -1
  152. package/build/src/server.js +15 -9
  153. package/build/src/types/config.d.ts +1 -0
  154. package/build/src/types/config.d.ts.map +1 -1
  155. package/build/src/types/content.d.ts +35 -0
  156. package/build/src/types/content.d.ts.map +1 -0
  157. package/build/src/types/content.js +7 -0
  158. package/build/src/types/context.d.ts +30 -18
  159. package/build/src/types/context.d.ts.map +1 -1
  160. package/build/src/types/jsonrpc.d.ts +406 -0
  161. package/build/src/types/jsonrpc.d.ts.map +1 -0
  162. package/build/src/types/jsonrpc.js +7 -0
  163. package/build/src/types/request.d.ts +3 -37
  164. package/build/src/types/request.d.ts.map +1 -1
  165. package/build/src/types/response.d.ts +10 -39
  166. package/build/src/types/response.d.ts.map +1 -1
  167. package/build/src/utils/find_resource_pattern.d.ts +19 -0
  168. package/build/src/utils/find_resource_pattern.d.ts.map +1 -0
  169. package/build/src/utils/find_resource_pattern.js +35 -0
  170. package/build/src/utils/stdio.d.ts +2 -3
  171. package/build/src/utils/stdio.d.ts.map +1 -1
  172. package/build/src/utils/stdio.js +7 -7
  173. package/build/src/utils/uri_template.d.ts +25 -0
  174. package/build/src/utils/uri_template.d.ts.map +1 -0
  175. package/build/src/utils/uri_template.js +241 -0
  176. package/build/stubs/config.ts.stub +0 -1
  177. package/build/stubs/make/mcp/prompts/main.ts.stub +32 -16
  178. package/build/stubs/make/mcp/resources/main.ts.stub +13 -19
  179. package/build/stubs/make/mcp/tools/main.ts.stub +11 -13
  180. package/build/stubs/make/middleware/mcp_middleware.ts.stub +48 -0
  181. package/build/tsconfig.tsbuildinfo +1 -1
  182. package/package.json +21 -4
  183. package/build/src/types/notification.d.ts +0 -14
  184. package/build/src/types/notification.d.ts.map +0 -1
  185. package/build/src/types/transport.d.ts.map +0 -1
  186. /package/build/src/{types/notification.js → server/contracts/context.js} +0 -0
  187. /package/build/src/{types/transport.js → server/contracts/response.js} +0 -0
@@ -0,0 +1,57 @@
1
+ /**
2
+ * @jrmc/adonis-mcp
3
+ *
4
+ * @license MIT
5
+ * @copyright Jeremy Chaufourier <jeremy@chaufourier.fr>
6
+ */
7
+ import { createError } from '@adonisjs/core/exceptions';
8
+ import Role from '../../enums/role.js';
9
+ export default class Image {
10
+ #data;
11
+ #mimeType;
12
+ #role;
13
+ #meta;
14
+ constructor(data, mimeType) {
15
+ this.#data = data;
16
+ this.#mimeType = mimeType;
17
+ this.#role = Role.USER;
18
+ }
19
+ async toTool(_tool) {
20
+ return this.#mergeMeta({
21
+ type: 'image',
22
+ data: this.#data,
23
+ mimeType: this.#mimeType,
24
+ });
25
+ }
26
+ async toPrompt(_prompt) {
27
+ return this.#mergeMeta({
28
+ type: 'image',
29
+ data: this.#data,
30
+ mimeType: this.#mimeType,
31
+ });
32
+ }
33
+ async toResource(_resource) {
34
+ throw createError('Image content may not be used in resources.', 'E_IMAGE_NOT_SUPPORTED');
35
+ }
36
+ asAssistant() {
37
+ this.#role = Role.ASSISTANT;
38
+ return this;
39
+ }
40
+ asUser() {
41
+ this.#role = Role.USER;
42
+ return this;
43
+ }
44
+ get role() {
45
+ return this.#role;
46
+ }
47
+ withMeta(meta) {
48
+ this.#meta = meta;
49
+ return this;
50
+ }
51
+ #mergeMeta(object) {
52
+ if (this.#meta) {
53
+ return { ...object, _meta: this.#meta };
54
+ }
55
+ return object;
56
+ }
57
+ }
@@ -0,0 +1,22 @@
1
+ /**
2
+ * @jrmc/adonis-mcp
3
+ *
4
+ * @license MIT
5
+ * @copyright Jeremy Chaufourier <jeremy@chaufourier.fr>
6
+ */
7
+ import type { Content } from '../contracts/content.js';
8
+ import type { ResourceLink as ResourceLinkContent } from '../../types/jsonrpc.js';
9
+ import type { Tool } from '../tool.js';
10
+ import type { Prompt } from '../prompt.js';
11
+ import type { Resource } from '../resource.js';
12
+ import type { ResourceContext } from '../../types/context.js';
13
+ export default class ResourceLink implements Content {
14
+ #private;
15
+ constructor(uri: string);
16
+ preProcess(ctx: ResourceContext): Promise<this>;
17
+ toTool(_tool: Tool): Promise<ResourceLinkContent>;
18
+ toPrompt(_prompt: Prompt): Promise<never>;
19
+ toResource(_resource: Resource): Promise<never>;
20
+ withMeta(meta: Record<string, unknown>): this;
21
+ }
22
+ //# sourceMappingURL=resource_link.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resource_link.d.ts","sourceRoot":"","sources":["../../../../src/server/contents/resource_link.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAA;AACtD,OAAO,KAAK,EAAE,YAAY,IAAI,mBAAmB,EAAE,MAAM,wBAAwB,CAAA;AACjF,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAA;AACtC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AAC1C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAC9C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AAK7D,MAAM,CAAC,OAAO,OAAO,YAAa,YAAW,OAAO;;gBAKtC,GAAG,EAAE,MAAM;IAKjB,UAAU,CAAC,GAAG,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IAU/C,MAAM,CAAC,KAAK,EAAE,IAAI,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAgBjD,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;IAOzC,UAAU,CAAC,SAAS,EAAE,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC;IAOrD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;CAY9C"}
@@ -0,0 +1,55 @@
1
+ /**
2
+ * @jrmc/adonis-mcp
3
+ *
4
+ * @license MIT
5
+ * @copyright Jeremy Chaufourier <jeremy@chaufourier.fr>
6
+ */
7
+ import { createError } from '@adonisjs/core/exceptions';
8
+ import { findResource } from '../../utils/find_resource_pattern.js';
9
+ export default class ResourceLink {
10
+ #uri;
11
+ #resource;
12
+ #meta;
13
+ constructor(uri) {
14
+ this.#uri = uri;
15
+ this.#resource = null;
16
+ }
17
+ async preProcess(ctx) {
18
+ this.#resource = await findResource({
19
+ uri: this.#uri,
20
+ resourceList: ctx.resources,
21
+ ctx,
22
+ });
23
+ return this;
24
+ }
25
+ async toTool(_tool) {
26
+ if (!this.#resource) {
27
+ throw createError('Resource not found.', 'E_RESOURCE_NOT_FOUND');
28
+ }
29
+ return this.#mergeMeta({
30
+ type: 'resource_link',
31
+ name: this.#resource.name,
32
+ uri: this.#uri,
33
+ mimeType: this.#resource.mimeType,
34
+ title: this.#resource.title,
35
+ description: this.#resource.description,
36
+ size: this.#resource.size,
37
+ });
38
+ }
39
+ async toPrompt(_prompt) {
40
+ throw createError('Resource link content may not be used in prompts.', 'E_RESOURCE_LINK_NOT_SUPPORTED');
41
+ }
42
+ async toResource(_resource) {
43
+ throw createError('Resource link content may not be used in resources.', 'E_RESOURCE_LINK_NOT_SUPPORTED');
44
+ }
45
+ withMeta(meta) {
46
+ this.#meta = meta;
47
+ return this;
48
+ }
49
+ #mergeMeta(object) {
50
+ if (this.#meta) {
51
+ return { ...object, _meta: this.#meta };
52
+ }
53
+ return object;
54
+ }
55
+ }
@@ -0,0 +1,20 @@
1
+ /**
2
+ * @jrmc/adonis-mcp
3
+ *
4
+ * @license MIT
5
+ * @copyright Jeremy Chaufourier <jeremy@chaufourier.fr>
6
+ */
7
+ import type { Content } from '../contracts/content.js';
8
+ import type { TextContent } from '../../types/jsonrpc.js';
9
+ import type { Resource } from '../resource.js';
10
+ import type { Tool } from '../tool.js';
11
+ import type { Prompt } from '../prompt.js';
12
+ export default class Structured implements Content {
13
+ #private;
14
+ constructor(object: Record<string, unknown>);
15
+ get structuredContent(): Record<string, unknown>;
16
+ toTool(_tool: Tool): Promise<TextContent>;
17
+ toPrompt(_prompt: Prompt): Promise<never>;
18
+ toResource(_resource: Resource): Promise<never>;
19
+ }
20
+ //# sourceMappingURL=structured.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"structured.d.ts","sourceRoot":"","sources":["../../../../src/server/contents/structured.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAA;AACtD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAA;AACzD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAC9C,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAA;AACtC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AAI1C,MAAM,CAAC,OAAO,OAAO,UAAW,YAAW,OAAO;;gBAGpC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAI3C,IAAI,iBAAiB,4BAEpB;IAEK,MAAM,CAAC,KAAK,EAAE,IAAI,GAAG,OAAO,CAAC,WAAW,CAAC;IAIzC,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;IAOzC,UAAU,CAAC,SAAS,EAAE,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC;CAMtD"}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * @jrmc/adonis-mcp
3
+ *
4
+ * @license MIT
5
+ * @copyright Jeremy Chaufourier <jeremy@chaufourier.fr>
6
+ */
7
+ import { createError } from '@adonisjs/core/exceptions';
8
+ import Text from './text.js';
9
+ export default class Structured {
10
+ #object;
11
+ constructor(object) {
12
+ this.#object = object;
13
+ }
14
+ get structuredContent() {
15
+ return this.#object;
16
+ }
17
+ async toTool(_tool) {
18
+ return new Text(JSON.stringify(this.#object)).toTool(_tool);
19
+ }
20
+ async toPrompt(_prompt) {
21
+ throw createError('Structured content may not be used in prompts.', 'E_STRUCTURED_NOT_SUPPORTED');
22
+ }
23
+ async toResource(_resource) {
24
+ throw createError('Structured content may not be used in resources.', 'E_STRUCTURED_NOT_SUPPORTED');
25
+ }
26
+ }
@@ -0,0 +1,24 @@
1
+ /**
2
+ * @jrmc/adonis-mcp
3
+ *
4
+ * @license MIT
5
+ * @copyright Jeremy Chaufourier <jeremy@chaufourier.fr>
6
+ */
7
+ import type { Content } from '../contracts/content.js';
8
+ import type { TextContent, TextResourceContents } from '../../types/jsonrpc.js';
9
+ import type { Tool } from '../tool.js';
10
+ import type { Prompt } from '../prompt.js';
11
+ import type { Resource } from '../resource.js';
12
+ import Role from '../../enums/role.js';
13
+ export default class Text implements Content {
14
+ #private;
15
+ constructor(text: string | unknown);
16
+ toTool(_tool: Tool): Promise<TextContent>;
17
+ toPrompt(_prompt: Prompt): Promise<TextContent>;
18
+ toResource(resource: Resource): Promise<TextResourceContents>;
19
+ asAssistant(): this;
20
+ asUser(): this;
21
+ get role(): Role;
22
+ withMeta(meta: Record<string, unknown>): this;
23
+ }
24
+ //# sourceMappingURL=text.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"text.d.ts","sourceRoot":"","sources":["../../../../src/server/contents/text.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAA;AACtD,OAAO,KAAK,EAAE,WAAW,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAA;AAC/E,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAA;AACtC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AAC1C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAE9C,OAAO,IAAI,MAAM,qBAAqB,CAAA;AAEtC,MAAM,CAAC,OAAO,OAAO,IAAK,YAAW,OAAO;;gBAK9B,IAAI,EAAE,MAAM,GAAG,OAAO;IAS5B,MAAM,CAAC,KAAK,EAAE,IAAI,GAAG,OAAO,CAAC,WAAW,CAAC;IAOzC,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAO/C,UAAU,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAQnE,WAAW,IAAI,IAAI;IAKnB,MAAM,IAAI,IAAI;IAKd,IAAI,IAAI,SAEP;IAED,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;CAY9C"}
@@ -0,0 +1,61 @@
1
+ /**
2
+ * @jrmc/adonis-mcp
3
+ *
4
+ * @license MIT
5
+ * @copyright Jeremy Chaufourier <jeremy@chaufourier.fr>
6
+ */
7
+ import Role from '../../enums/role.js';
8
+ export default class Text {
9
+ #text;
10
+ #role;
11
+ #meta;
12
+ constructor(text) {
13
+ if (typeof text === 'string') {
14
+ this.#text = text;
15
+ }
16
+ else {
17
+ this.#text = JSON.stringify(text);
18
+ }
19
+ this.#role = Role.USER;
20
+ }
21
+ async toTool(_tool) {
22
+ return this.#mergeMeta({
23
+ type: 'text',
24
+ text: this.#text,
25
+ });
26
+ }
27
+ async toPrompt(_prompt) {
28
+ return this.#mergeMeta({
29
+ type: 'text',
30
+ text: this.#text,
31
+ });
32
+ }
33
+ async toResource(resource) {
34
+ return this.#mergeMeta({
35
+ text: this.#text,
36
+ uri: resource.uri,
37
+ mimeType: resource.mimeType,
38
+ });
39
+ }
40
+ asAssistant() {
41
+ this.#role = Role.ASSISTANT;
42
+ return this;
43
+ }
44
+ asUser() {
45
+ this.#role = Role.USER;
46
+ return this;
47
+ }
48
+ get role() {
49
+ return this.#role;
50
+ }
51
+ withMeta(meta) {
52
+ this.#meta = meta;
53
+ return this;
54
+ }
55
+ #mergeMeta(object) {
56
+ if (this.#meta) {
57
+ return { ...object, _meta: this.#meta };
58
+ }
59
+ return object;
60
+ }
61
+ }
@@ -4,11 +4,14 @@
4
4
  * @license MIT
5
5
  * @copyright Jeremy Chaufourier <jeremy@chaufourier.fr>
6
6
  */
7
- import type { McpContext, ServerContextOptions } from '../types/context.js';
7
+ import type { Context } from './contracts/context.js';
8
+ import type { McpResponse } from '../types/response.js';
9
+ import type { ServerContextOptions } from '../types/context.js';
8
10
  import type { ToolList, ResourceList, PromptList } from '../types/method.js';
9
- import type { McpRequest } from '../types/request.js';
10
- import McpResponse from '../response.js';
11
- export default class ServerContext implements McpContext {
11
+ import type { McpRequest, McpRequestType } from '../types/request.js';
12
+ export default class ServerContext implements Context {
13
+ #private;
14
+ readonly requestMethod: McpRequestType;
12
15
  supportedProtocolVersions: string[];
13
16
  serverCapabilities: Record<string, any>;
14
17
  serverName: string;
@@ -19,9 +22,11 @@ export default class ServerContext implements McpContext {
19
22
  tools: ToolList;
20
23
  resources: ResourceList;
21
24
  prompts: PromptList;
22
- request: McpRequest;
23
- response: McpResponse;
25
+ request: McpRequest<this['requestMethod']>;
26
+ response: McpResponse<this['requestMethod']>;
24
27
  constructor(options: ServerContextOptions);
25
28
  getPerPage(requestedPerPage?: number): number;
29
+ getResources(): Promise<ResourceList>;
30
+ getResourceTemplates(): Promise<ResourceList>;
26
31
  }
27
32
  //# sourceMappingURL=context.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../src/server/context.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,EAAE,UAAU,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAA;AAC3E,OAAO,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AAC5E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAGrD,OAAO,WAAW,MAAM,gBAAgB,CAAA;AAExC,MAAM,CAAC,OAAO,OAAO,aAAc,YAAW,UAAU;IACtD,yBAAyB,EAAE,MAAM,EAAE,CAAA;IACnC,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IACvC,UAAU,EAAE,MAAM,CAAA;IAClB,aAAa,EAAE,MAAM,CAAA;IACrB,YAAY,EAAE,MAAM,CAAA;IACpB,mBAAmB,EAAE,MAAM,CAAA;IAC3B,uBAAuB,EAAE,MAAM,CAAA;IAC/B,KAAK,EAAE,QAAQ,CAAA;IACf,SAAS,EAAE,YAAY,CAAA;IACvB,OAAO,EAAE,UAAU,CAAA;IACnB,OAAO,EAAE,UAAU,CAAA;IACnB,QAAQ,EAAE,WAAW,CAAA;gBAET,OAAO,EAAE,oBAAoB;IAelC,UAAU,CAAC,gBAAgB,CAAC,EAAE,MAAM,GAAG,MAAM;CAGrD"}
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../src/server/context.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAA;AACrD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AACvD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAA;AAC/D,OAAO,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AAC5E,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAMrE,MAAM,CAAC,OAAO,OAAO,aAAc,YAAW,OAAO;;IACnD,QAAQ,CAAC,aAAa,EAAE,cAAc,CAAA;IAEtC,yBAAyB,EAAE,MAAM,EAAE,CAAA;IACnC,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IACvC,UAAU,EAAE,MAAM,CAAA;IAClB,aAAa,EAAE,MAAM,CAAA;IACrB,YAAY,EAAE,MAAM,CAAA;IACpB,mBAAmB,EAAE,MAAM,CAAA;IAC3B,uBAAuB,EAAE,MAAM,CAAA;IAC/B,KAAK,EAAE,QAAQ,CAAA;IACf,SAAS,EAAE,YAAY,CAAA;IACvB,OAAO,EAAE,UAAU,CAAA;IACnB,OAAO,EAAE,UAAU,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAA;IAC1C,QAAQ,EAAE,WAAW,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAA;gBAEhC,OAAO,EAAE,oBAAoB;IAoBzC,UAAU,CAAC,gBAAgB,CAAC,EAAE,MAAM,GAAG,MAAM;IAIvC,YAAY,IAAI,OAAO,CAAC,YAAY,CAAC;IAIrC,oBAAoB,IAAI,OAAO,CAAC,YAAY,CAAC;CA2BpD"}
@@ -1,6 +1,14 @@
1
+ /**
2
+ * @jrmc/adonis-mcp
3
+ *
4
+ * @license MIT
5
+ * @copyright Jeremy Chaufourier <jeremy@chaufourier.fr>
6
+ */
1
7
  import Request from '../request.js';
2
- import McpResponse from '../response.js';
8
+ import Response from '../response.js';
9
+ import { UriTemplate } from '../utils/uri_template.js';
3
10
  export default class ServerContext {
11
+ requestMethod;
4
12
  supportedProtocolVersions;
5
13
  serverCapabilities;
6
14
  serverName;
@@ -14,6 +22,7 @@ export default class ServerContext {
14
22
  request;
15
23
  response;
16
24
  constructor(options) {
25
+ this.requestMethod = options.jsonRpcRequest.method;
17
26
  this.supportedProtocolVersions = options.supportedProtocolVersions;
18
27
  this.serverCapabilities = options.serverCapabilities;
19
28
  this.serverName = options.serverName;
@@ -25,9 +34,28 @@ export default class ServerContext {
25
34
  this.resources = options.resources;
26
35
  this.prompts = options.prompts;
27
36
  this.request = new Request(options.jsonRpcRequest);
28
- this.response = new McpResponse();
37
+ this.response = new Response(options.jsonRpcRequest);
29
38
  }
30
39
  getPerPage(requestedPerPage) {
31
40
  return Math.min(requestedPerPage ?? this.defaultPaginationLength, this.maxPaginationLength);
32
41
  }
42
+ async getResources() {
43
+ return this.#filterResources({ includeTemplates: false });
44
+ }
45
+ async getResourceTemplates() {
46
+ return this.#filterResources({ includeTemplates: true });
47
+ }
48
+ async #filterResources({ includeTemplates, }) {
49
+ const resourceEntries = Object.entries(this.resources);
50
+ const filteredEntries = await Promise.all(resourceEntries.map(async ([key, resource]) => {
51
+ const { default: Resource } = await import(resource);
52
+ const resourceInstance = new Resource();
53
+ const isTemplate = this.#isResourceTemplate(resourceInstance);
54
+ return (includeTemplates ? isTemplate : !isTemplate) ? [key, resource] : null;
55
+ }));
56
+ return Object.fromEntries(filteredEntries.filter((entry) => entry !== null));
57
+ }
58
+ #isResourceTemplate(resource) {
59
+ return UriTemplate.isTemplate(resource.uri);
60
+ }
33
61
  }
@@ -0,0 +1,16 @@
1
+ /**
2
+ * @jrmc/adonis-mcp
3
+ *
4
+ * @license MIT
5
+ * @copyright Jeremy Chaufourier <jeremy@chaufourier.fr>
6
+ */
7
+ import type { ToolResponse, ResourceResponse, PromptResponse } from '../../types/response.js';
8
+ import type { Resource } from '../resource.js';
9
+ import type { Tool } from '../tool.js';
10
+ import type { Prompt } from '../prompt.js';
11
+ export declare abstract class Content {
12
+ abstract toTool(tool: Tool): ToolResponse;
13
+ abstract toPrompt(prompt: Prompt): PromptResponse;
14
+ abstract toResource(resource: Resource): ResourceResponse;
15
+ }
16
+ //# sourceMappingURL=content.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"content.d.ts","sourceRoot":"","sources":["../../../../src/server/contracts/content.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAA;AAC7F,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAC9C,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAA;AACtC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AAE1C,8BAAsB,OAAO;IAC3B,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,GAAG,YAAY;IACzC,QAAQ,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,cAAc;IACjD,QAAQ,CAAC,UAAU,CAAC,QAAQ,EAAE,QAAQ,GAAG,gBAAgB;CAC1D"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * @jrmc/adonis-mcp
3
+ *
4
+ * @license MIT
5
+ * @copyright Jeremy Chaufourier <jeremy@chaufourier.fr>
6
+ */
7
+ export class Content {
8
+ }
@@ -0,0 +1,29 @@
1
+ /**
2
+ * @jrmc/adonis-mcp
3
+ *
4
+ * @license MIT
5
+ * @copyright Jeremy Chaufourier <jeremy@chaufourier.fr>
6
+ */
7
+ import type { ToolList, ResourceList, PromptList } from '../../types/method.js';
8
+ import type { McpRequest, McpRequestType } from '../../types/request.js';
9
+ import type { McpResponse } from '../../types/response.js';
10
+ export interface Context {
11
+ requestMethod: McpRequestType;
12
+ supportedProtocolVersions: string[];
13
+ serverCapabilities: Record<string, any>;
14
+ serverName: string;
15
+ serverVersion: string;
16
+ instructions: string;
17
+ maxPaginationLength: number;
18
+ defaultPaginationLength: number;
19
+ tools: ToolList;
20
+ resources: ResourceList;
21
+ resourceTemplates?: string[];
22
+ prompts: PromptList;
23
+ request: McpRequest<this['requestMethod']>;
24
+ response: McpResponse<this['requestMethod']>;
25
+ getPerPage(requestedPerPage?: number): number;
26
+ getResources(): Promise<ResourceList>;
27
+ getResourceTemplates(): Promise<ResourceList>;
28
+ }
29
+ //# sourceMappingURL=context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../../src/server/contracts/context.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAC/E,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AACxE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAA;AAE1D,MAAM,WAAW,OAAO;IACtB,aAAa,EAAE,cAAc,CAAA;IAE7B,yBAAyB,EAAE,MAAM,EAAE,CAAA;IACnC,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IACvC,UAAU,EAAE,MAAM,CAAA;IAClB,aAAa,EAAE,MAAM,CAAA;IACrB,YAAY,EAAE,MAAM,CAAA;IACpB,mBAAmB,EAAE,MAAM,CAAA;IAC3B,uBAAuB,EAAE,MAAM,CAAA;IAC/B,KAAK,EAAE,QAAQ,CAAA;IACf,SAAS,EAAE,YAAY,CAAA;IACvB,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAA;IAC5B,OAAO,EAAE,UAAU,CAAA;IACnB,OAAO,EAAE,UAAU,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAA;IAC1C,QAAQ,EAAE,WAAW,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAA;IAE5C,UAAU,CAAC,gBAAgB,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IAC7C,YAAY,IAAI,OAAO,CAAC,YAAY,CAAC,CAAA;IACrC,oBAAoB,IAAI,OAAO,CAAC,YAAY,CAAC,CAAA;CAC9C"}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * @jrmc/adonis-mcp
3
+ *
4
+ * @license MIT
5
+ * @copyright Jeremy Chaufourier <jeremy@chaufourier.fr>
6
+ */
7
+ import type { McpRequestType } from '../../types/request.js';
8
+ import type { Completion } from '../../types/jsonrpc.js';
9
+ import type { Text, TextPrompt, Blob, Image, ImagePrompt, Audio, AudioPrompt, Structured, Error, ResourceLink as ResourceLinkContent, EmbeddedResource as EmbeddedResourceContent } from '../../types/content.js';
10
+ type TextResponseType<T extends McpRequestType> = T extends 'prompts/get' ? TextPrompt : Text;
11
+ type ImageResponseType<T extends McpRequestType> = T extends 'prompts/get' ? ImagePrompt : Image;
12
+ type AudioResponseType<T extends McpRequestType> = T extends 'prompts/get' ? AudioPrompt : Audio;
13
+ export interface Response<T extends McpRequestType = McpRequestType> {
14
+ readonly type: T;
15
+ text(text: string): TextResponseType<T>;
16
+ blob(text: string): Blob;
17
+ image(data: string, mimeType: string, _meta?: Record<string, unknown>): ImageResponseType<T>;
18
+ audio(data: string, mimeType: string, _meta?: Record<string, unknown>): AudioResponseType<T>;
19
+ structured(object: Record<string, unknown>): Structured;
20
+ resourceLink(uri: string): ResourceLinkContent;
21
+ embeddedResource(uri: string): EmbeddedResourceContent;
22
+ error(message: string): Error;
23
+ complete(completion: Completion): Completion;
24
+ }
25
+ export {};
26
+ //# sourceMappingURL=response.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"response.d.ts","sourceRoot":"","sources":["../../../../src/server/contracts/response.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AAC5D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAA;AACxD,OAAO,KAAK,EACV,IAAI,EACJ,UAAU,EACV,IAAI,EACJ,KAAK,EACL,WAAW,EACX,KAAK,EACL,WAAW,EACX,UAAU,EACV,KAAK,EACL,YAAY,IAAI,mBAAmB,EACnC,gBAAgB,IAAI,uBAAuB,EAC5C,MAAM,wBAAwB,CAAA;AAE/B,KAAK,gBAAgB,CAAC,CAAC,SAAS,cAAc,IAAI,CAAC,SAAS,aAAa,GAAG,UAAU,GAAG,IAAI,CAAA;AAC7F,KAAK,iBAAiB,CAAC,CAAC,SAAS,cAAc,IAAI,CAAC,SAAS,aAAa,GAAG,WAAW,GAAG,KAAK,CAAA;AAChG,KAAK,iBAAiB,CAAC,CAAC,SAAS,cAAc,IAAI,CAAC,SAAS,aAAa,GAAG,WAAW,GAAG,KAAK,CAAA;AAEhG,MAAM,WAAW,QAAQ,CAAC,CAAC,SAAS,cAAc,GAAG,cAAc;IACjE,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAA;IAChB,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAA;IACvC,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAA;IAC5F,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAA;IAC5F,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,UAAU,CAAA;IACvD,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,mBAAmB,CAAA;IAC9C,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,uBAAuB,CAAA;IACtD,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,KAAK,CAAA;IAC7B,QAAQ,CAAC,UAAU,EAAE,UAAU,GAAG,UAAU,CAAA;CAC7C"}
@@ -4,8 +4,8 @@
4
4
  * @license MIT
5
5
  * @copyright Jeremy Chaufourier <jeremy@chaufourier.fr>
6
6
  */
7
- import type { McpContext } from './context.js';
8
- import type { JsonRpcResponse } from './response.js';
7
+ import type { McpContext } from '../../types/context.js';
8
+ import type { JsonRpcResponse } from '../../types/jsonrpc.js';
9
9
  export interface Transport {
10
10
  bindBouncer?(mcpContext: McpContext): void;
11
11
  bindAuth?(mcpContext: McpContext): void;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transport.d.ts","sourceRoot":"","sources":["../../../../src/server/contracts/transport.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAA;AACxD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AAE7D,MAAM,WAAW,SAAS;IACxB,WAAW,CAAC,CAAC,UAAU,EAAE,UAAU,GAAG,IAAI,CAAA;IAC1C,QAAQ,CAAC,CAAC,UAAU,EAAE,UAAU,GAAG,IAAI,CAAA;IACvC,IAAI,CAAC,OAAO,EAAE,eAAe,GAAG,IAAI,CAAA;CACrC"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * @jrmc/adonis-mcp
3
+ *
4
+ * @license MIT
5
+ * @copyright Jeremy Chaufourier <jeremy@chaufourier.fr>
6
+ */
7
+ export {};
@@ -1 +1 @@
1
- {"version":3,"file":"mcp_controller.d.ts","sourceRoot":"","sources":["../../../../src/server/controllers/mcp_controller.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AAGtD,MAAM,CAAC,OAAO,OAAO,aAAa;IAC1B,IAAI,CAAC,GAAG,EAAE,WAAW;CAW5B"}
1
+ {"version":3,"file":"mcp_controller.d.ts","sourceRoot":"","sources":["../../../../src/server/controllers/mcp_controller.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AAGtD,MAAM,CAAC,OAAO,OAAO,aAAa;IAC1B,IAAI,CAAC,GAAG,EAAE,WAAW;CAO5B"}
@@ -8,9 +8,6 @@ import HttpTransport from '../transports/http_transport.js';
8
8
  export default class McpController {
9
9
  async post(ctx) {
10
10
  const body = ctx.request.body();
11
- const method = body.method;
12
- console.log('body', body);
13
- console.log('method:', method);
14
11
  const mcp = await ctx.containerResolver.make('jrmc.mcp');
15
12
  await mcp.connect(new HttpTransport(ctx));
16
13
  await mcp.handle(body);
@@ -1,9 +1,10 @@
1
- import type { JsonRpcResponse } from '../../types/response.js';
1
+ import type { JsonRpcResponse } from '../../types/jsonrpc.js';
2
2
  export default class JsonRpcException extends Error {
3
- protected code: number;
4
- protected requestId: string | number;
5
- protected data?: Record<string, unknown> | undefined;
6
- constructor(message: string, code: number, requestId: string | number, data?: Record<string, unknown> | undefined);
3
+ #private;
4
+ constructor(message: string, code: number, requestId: string | number, data?: Record<string, unknown>);
5
+ get code(): number;
6
+ get requestId(): string | number;
7
+ get data(): Record<string, unknown> | undefined;
7
8
  toJsonRpcResponse(): JsonRpcResponse;
8
9
  }
9
10
  //# sourceMappingURL=jsonrpc_exception.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"jsonrpc_exception.d.ts","sourceRoot":"","sources":["../../../../src/server/exceptions/jsonrpc_exception.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;AAI9D,MAAM,CAAC,OAAO,OAAO,gBAAiB,SAAQ,KAAK;IAG/C,SAAS,CAAC,IAAI,EAAE,MAAM;IACtB,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM;IACpC,SAAS,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;gBAHxC,OAAO,EAAE,MAAM,EACL,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,MAAM,GAAG,MAAM,EAC1B,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,YAAA;IAM1C,iBAAiB,IAAI,eAAe;CAUrC"}
1
+ {"version":3,"file":"jsonrpc_exception.d.ts","sourceRoot":"","sources":["../../../../src/server/exceptions/jsonrpc_exception.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AAI7D,MAAM,CAAC,OAAO,OAAO,gBAAiB,SAAQ,KAAK;;gBAM/C,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,MAAM,GAAG,MAAM,EAC1B,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAShC,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,IAAI,SAAS,IAAI,MAAM,GAAG,MAAM,CAE/B;IAED,IAAI,IAAI,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAE9C;IAED,iBAAiB,IAAI,eAAe;CAUrC"}
@@ -1,21 +1,30 @@
1
1
  import Response from '../../response.js';
2
2
  export default class JsonRpcException extends Error {
3
- code;
4
- requestId;
5
- data;
3
+ #code;
4
+ #requestId;
5
+ #data;
6
6
  constructor(message, code, requestId, data) {
7
7
  super(message);
8
- this.code = code;
9
- this.requestId = requestId;
10
- this.data = data;
8
+ this.#code = code;
9
+ this.#requestId = requestId;
10
+ this.#data = data;
11
+ }
12
+ get code() {
13
+ return this.#code;
14
+ }
15
+ get requestId() {
16
+ return this.#requestId;
17
+ }
18
+ get data() {
19
+ return this.#data;
11
20
  }
12
21
  toJsonRpcResponse() {
13
22
  return Response.toJsonRpc({
14
- id: this.requestId,
23
+ id: this.#requestId,
15
24
  error: {
16
- code: this.code,
25
+ code: this.#code,
17
26
  message: this.message,
18
- data: this.data,
27
+ data: this.#data,
19
28
  },
20
29
  });
21
30
  }
@@ -5,8 +5,8 @@
5
5
  * @copyright Jeremy Chaufourier <jeremy@chaufourier.fr>
6
6
  */
7
7
  import type { Method } from '../../types/method.js';
8
- import type { McpContext } from '../../types/context.js';
8
+ import type { ToolContext } from '../../types/context.js';
9
9
  export default class CallTool implements Method {
10
- handle(ctx: McpContext): Promise<import("../../types/response.js").JsonRpcResponse>;
10
+ handle(ctx: ToolContext): Promise<import("../../types/jsonrpc.js").JsonRpcResponse>;
11
11
  }
12
12
  //# sourceMappingURL=call_tool.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"call_tool.d.ts","sourceRoot":"","sources":["../../../../src/server/methods/call_tool.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAA;AACnD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAA;AAMxD,MAAM,CAAC,OAAO,OAAO,QAAS,YAAW,MAAM;IACvC,MAAM,CAAC,GAAG,EAAE,UAAU;CAyC7B"}
1
+ {"version":3,"file":"call_tool.d.ts","sourceRoot":"","sources":["../../../../src/server/methods/call_tool.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAA;AACnD,OAAO,KAAK,EAAE,WAAW,EAAmB,MAAM,wBAAwB,CAAA;AAW1E,MAAM,CAAC,OAAO,OAAO,QAAS,YAAW,MAAM;IACvC,MAAM,CAAC,GAAG,EAAE,WAAW;CAoE9B"}