@iludolf/mcp-adapter 1.0.0 → 1.0.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.
package/README.md CHANGED
@@ -2,6 +2,14 @@
2
2
 
3
3
  NestJS module for Model Context Protocol (MCP) integration. Enables your NestJS application to act as an MCP server, exposing tools, resources, and prompts to AI assistants.
4
4
 
5
+ ## Features
6
+
7
+ - 🔧 **Decorator-based API** - Use `@McpTool`, `@McpResource`, `@McpPrompt` decorators
8
+ - 🚀 **Multiple transports** - STDIO, SSE, HTTP support
9
+ - 🔄 **SSE Keep-alive** - Automatic ping to prevent connection timeouts
10
+ - 📦 **NestJS integration** - Full support for dependency injection
11
+ - 🔌 **Async configuration** - Use `forRootAsync` with ConfigService
12
+
5
13
  ## Installation
6
14
 
7
15
  ```bash
@@ -17,9 +25,18 @@ yarn add @iludolf/mcp-adapter
17
25
  Make sure you have these peer dependencies installed:
18
26
 
19
27
  ```bash
20
- npm install @modelcontextprotocol/sdk @nestjs/common @nestjs/core reflect-metadata rxjs zod
28
+ npm install @modelcontextprotocol/sdk@^1.10.0 @nestjs/common @nestjs/core reflect-metadata rxjs zod
21
29
  ```
22
30
 
31
+ | Package | Version |
32
+ |---------|---------|
33
+ | `@modelcontextprotocol/sdk` | `^1.10.0` |
34
+ | `@nestjs/common` | `^10.0.0 \|\| ^11.0.0` |
35
+ | `@nestjs/core` | `^10.0.0 \|\| ^11.0.0` |
36
+ | `reflect-metadata` | `^0.1.13 \|\| ^0.2.0` |
37
+ | `rxjs` | `^7.0.0` |
38
+ | `zod` | `^3.0.0` |
39
+
23
40
  ## Quick Start
24
41
 
25
42
  ### 1. Import the module
@@ -141,9 +158,15 @@ McpModule.forRootAsync({
141
158
 
142
159
  When using SSE or HTTP transport, the following endpoints are available:
143
160
 
144
- - `GET /{basePath}/sse` - SSE connection endpoint
145
- - `POST /{basePath}/messages` - Message handling endpoint
146
- - `GET /{basePath}/health` - Health check endpoint
161
+ | Endpoint | Method | Description |
162
+ |----------|--------|-------------|
163
+ | `/{basePath}/sse` | GET | SSE connection endpoint |
164
+ | `/{basePath}/messages` | POST | Message handling endpoint |
165
+ | `/{basePath}/health` | GET | Health check endpoint |
166
+
167
+ ### SSE Keep-alive
168
+
169
+ SSE connections automatically send keep-alive pings every 30 seconds to prevent timeout errors (`Body Timeout Error`). This is handled transparently - no configuration needed.
147
170
 
148
171
  ## Custom Logger
149
172
 
@@ -163,6 +186,12 @@ McpModule.forRoot({
163
186
  })
164
187
  ```
165
188
 
189
+ ## Compatibility
190
+
191
+ - **MCP SDK**: Uses the new `registerTool`, `registerPrompt`, `registerResource` API (SDK 1.10.0+)
192
+ - **NestJS**: Compatible with v10 and v11
193
+ - **Node.js**: Requires Node.js 18+
194
+
166
195
  ## License
167
196
 
168
197
  MIT
@@ -6,6 +6,7 @@ export declare class McpHttpService {
6
6
  private readonly logger;
7
7
  private readonly loggerCtx;
8
8
  private transports;
9
+ private keepAliveIntervals;
9
10
  constructor(mcpService: McpService, logger: McpLogger);
10
11
  handleSSE(res: Response, messagesPath?: string): Promise<void>;
11
12
  handleMessage(req: Request, res: Response): Promise<void>;
@@ -17,12 +17,14 @@ const sse_js_1 = require("@modelcontextprotocol/sdk/server/sse.js");
17
17
  const common_1 = require("@nestjs/common");
18
18
  const constants_1 = require("../constants");
19
19
  const mcp_service_1 = require("./mcp.service");
20
+ const KEEP_ALIVE_INTERVAL = 30000;
20
21
  let McpHttpService = class McpHttpService {
21
22
  constructor(mcpService, logger) {
22
23
  this.mcpService = mcpService;
23
24
  this.logger = logger;
24
25
  this.loggerCtx = "McpHttpService";
25
26
  this.transports = {};
27
+ this.keepAliveIntervals = {};
26
28
  }
27
29
  async handleSSE(res, messagesPath) {
28
30
  const basePath = this.mcpService.getOptions().basePath || "mcp";
@@ -31,8 +33,17 @@ let McpHttpService = class McpHttpService {
31
33
  const sessionId = transport.sessionId;
32
34
  this.transports[sessionId] = transport;
33
35
  this.logger.info(`New SSE connection established: ${sessionId}`, this.loggerCtx);
36
+ this.keepAliveIntervals[sessionId] = setInterval(() => {
37
+ if (!res.writableEnded) {
38
+ res.write(": ping\n\n");
39
+ }
40
+ }, KEEP_ALIVE_INTERVAL);
34
41
  res.on("close", () => {
35
42
  this.logger.info(`SSE connection closed: ${sessionId}`, this.loggerCtx);
43
+ if (this.keepAliveIntervals[sessionId]) {
44
+ clearInterval(this.keepAliveIntervals[sessionId]);
45
+ delete this.keepAliveIntervals[sessionId];
46
+ }
36
47
  delete this.transports[sessionId];
37
48
  transport
38
49
  .close()
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-http.service.js","sourceRoot":"","sources":["../../src/services/mcp-http.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mcp-http.service.js","sourceRoot":"","sources":["../../src/services/mcp-http.service.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,6 @@
1
- import { McpServer, PromptCallback, ReadResourceCallback, ReadResourceTemplateCallback, ToolCallback } from "@modelcontextprotocol/sdk/server/mcp.js";
1
+ import { McpServer, ReadResourceCallback, ReadResourceTemplateCallback } from "@modelcontextprotocol/sdk/server/mcp.js";
2
2
  import { Prompt as PromptType } from "@modelcontextprotocol/sdk/types.js";
3
- import { ZodOptional, ZodRawShape, ZodType, ZodTypeDef } from "zod";
4
3
  import { McpLogger, McpModuleOptions, ResourceOptions, ToolOptions } from "../interfaces";
5
- type PromptArgsRawShape = {
6
- [k: string]: ZodType<string, ZodTypeDef, string> | ZodOptional<ZodType<string, ZodTypeDef, string>>;
7
- };
8
4
  export declare class McpService {
9
5
  private readonly options;
10
6
  private readonly logger;
@@ -14,8 +10,7 @@ export declare class McpService {
14
10
  getServer(): McpServer;
15
11
  getOptions(): McpModuleOptions;
16
12
  registerResource(definition: ResourceOptions, handler: ReadResourceCallback | ReadResourceTemplateCallback): import("@modelcontextprotocol/sdk/server/mcp").RegisteredResourceTemplate | import("@modelcontextprotocol/sdk/server/mcp").RegisteredResource | undefined;
17
- registerPrompt(definition: PromptType, handler: PromptCallback<undefined> | PromptCallback<PromptArgsRawShape>): import("@modelcontextprotocol/sdk/server/mcp").RegisteredPrompt | undefined;
18
- registerTool(definition: ToolOptions, handler: ToolCallback | ToolCallback<ZodRawShape>): import("@modelcontextprotocol/sdk/server/mcp").RegisteredTool | undefined;
13
+ registerPrompt(definition: PromptType, handler: any): any;
14
+ registerTool(definition: ToolOptions, handler: any): any;
19
15
  private isTemplateResource;
20
16
  }
21
- export {};
@@ -46,10 +46,10 @@ let McpService = class McpService {
46
46
  const template = new mcp_js_1.ResourceTemplate(definition.uriTemplate, {
47
47
  list: undefined,
48
48
  });
49
- return this.server.resource(definition.name, template, metadata, handler);
49
+ return this.server.registerResource(definition.name, template, metadata, handler);
50
50
  }
51
51
  else if (definition.uriTemplate instanceof mcp_js_1.ResourceTemplate) {
52
- return this.server.resource(definition.name, definition.uriTemplate, metadata, handler);
52
+ return this.server.registerResource(definition.name, definition.uriTemplate, metadata, handler);
53
53
  }
54
54
  else {
55
55
  this.logger.error("Invalid uriTemplate type for template resource.", this.loggerCtx);
@@ -57,7 +57,7 @@ let McpService = class McpService {
57
57
  }
58
58
  }
59
59
  else {
60
- return this.server.resource(definition.name, definition.uri, metadata, handler);
60
+ return this.server.registerResource(definition.name, definition.uri, metadata, handler);
61
61
  }
62
62
  }
63
63
  registerPrompt(definition, handler) {
@@ -68,7 +68,7 @@ let McpService = class McpService {
68
68
  this.logger.info(`Registering prompt: ${definition.name}`, this.loggerCtx);
69
69
  const description = definition.description || "";
70
70
  if (!definition.arguments || definition.arguments.length === 0) {
71
- return this.server.prompt(definition.name, description, handler);
71
+ return this.server.registerPrompt(definition.name, { description }, handler);
72
72
  }
73
73
  const argsSchema = {};
74
74
  for (const arg of definition.arguments) {
@@ -89,9 +89,9 @@ let McpService = class McpService {
89
89
  }
90
90
  if (Object.keys(argsSchema).length === 0) {
91
91
  this.logger.warn(`Prompt "${definition.name}" arguments processing resulted in empty schema. Registering as no-argument prompt.`, this.loggerCtx);
92
- return this.server.prompt(definition.name, description, handler);
92
+ return this.server.registerPrompt(definition.name, { description }, handler);
93
93
  }
94
- return this.server.prompt(definition.name, description, argsSchema, handler);
94
+ return this.server.registerPrompt(definition.name, { description, argsSchema }, handler);
95
95
  }
96
96
  registerTool(definition, handler) {
97
97
  if (!definition || !definition.name) {
@@ -99,26 +99,14 @@ let McpService = class McpService {
99
99
  return;
100
100
  }
101
101
  this.logger.info(`Registering tool: ${definition.name}`, this.loggerCtx);
102
- const description = definition.description;
103
- const paramsSchema = definition.paramsSchema;
104
- if (paramsSchema && Object.keys(paramsSchema).length > 0) {
105
- const specificHandler = handler;
106
- if (description) {
107
- return this.server.tool(definition.name, description, paramsSchema, specificHandler);
108
- }
109
- else {
110
- this.server.tool(definition.name, paramsSchema, specificHandler);
111
- }
102
+ const config = {};
103
+ if (definition.description) {
104
+ config.description = definition.description;
112
105
  }
113
- else {
114
- const specificHandler = handler;
115
- if (description) {
116
- this.server.tool(definition.name, description, specificHandler);
117
- }
118
- else {
119
- this.server.tool(definition.name, specificHandler);
120
- }
106
+ if (definition.paramsSchema && Object.keys(definition.paramsSchema).length > 0) {
107
+ config.inputSchema = definition.paramsSchema;
121
108
  }
109
+ return this.server.registerTool(definition.name, config, handler);
122
110
  }
123
111
  isTemplateResource(options) {
124
112
  return "uriTemplate" in options;
@@ -1 +1 @@
1
- {"version":3,"file":"mcp.service.js","sourceRoot":"","sources":["../../src/services/mcp.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mcp.service.js","sourceRoot":"","sources":["../../src/services/mcp.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,oEAMgD;AAEhD,2CAAmD;AACnD,6BAAoE;AAEpE,4CAA6D;AAC7D,8CAOsB;AAaf,IAAM,UAAU,GAAhB,MAAM,UAAU;IAIrB,YAC8B,OAA0C,EAClD,MAAkC;QADT,YAAO,GAAP,OAAO,CAAkB;QACjC,WAAM,GAAN,MAAM,CAAW;QALvC,cAAS,GAAG,YAAY,CAAA;QAOvC,MAAM,EAAE,UAAU,EAAE,aAAa,EAAE,SAAS,EAAE,GAAG,OAAO,CAAA;QAExD,IAAI,CAAC,MAAM,GAAG,IAAI,kBAAS,CAAC,UAAU,EAAE,aAAa,CAAC,CAAA;QAEtD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,6BAA6B,EAAE,IAAI,CAAC,SAAS,CAAC,CAAA;QAC/D,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,yBAAyB,SAAS,IAAI,0BAAa,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,CAAA;IAC/F,CAAC;IAKD,SAAS;QACP,OAAO,IAAI,CAAC,MAAM,CAAA;IACpB,CAAC;IAKD,UAAU;QACR,OAAO,IAAI,CAAC,OAAO,CAAA;IACrB,CAAC;IAKD,gBAAgB,CACd,UAA2B,EAC3B,OAA4D;QAE5D,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;YACrB,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,wDAAwD,EACxD,IAAI,CAAC,SAAS,CACf,CAAA;YACD,OAAM;QACR,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,yBAAyB,UAAU,CAAC,IAAI,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,CAAA;QAC5E,MAAM,QAAQ,GAAqB,UAAU,CAAC,QAAQ,IAAI,EAAE,CAAA;QAE5D,IAAI,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,EAAE,CAAC;YACxC,IAAI,OAAO,UAAU,CAAC,WAAW,KAAK,QAAQ,EAAE,CAAC;gBAC/C,MAAM,QAAQ,GAAG,IAAI,yBAAgB,CAAC,UAAU,CAAC,WAAW,EAAE;oBAC5D,IAAI,EAAE,SAAS;iBAChB,CAAC,CAAA;gBAEF,OAAO,IAAI,CAAC,MAAM,CAAC,gBAAgB,CACjC,UAAU,CAAC,IAAI,EACf,QAAQ,EACR,QAAQ,EACR,OAAuC,CACxC,CAAA;YACH,CAAC;iBAAM,IAAI,UAAU,CAAC,WAAW,YAAY,yBAAgB,EAAE,CAAC;gBAC9D,OAAO,IAAI,CAAC,MAAM,CAAC,gBAAgB,CACjC,UAAU,CAAC,IAAI,EACf,UAAU,CAAC,WAAW,EACtB,QAAQ,EACR,OAAuC,CACxC,CAAA;YACH,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,iDAAiD,EAAE,IAAI,CAAC,SAAS,CAAC,CAAA;gBACpF,OAAM;YACR,CAAC;QACH,CAAC;aAAM,CAAC;YACN,OAAO,IAAI,CAAC,MAAM,CAAC,gBAAgB,CACjC,UAAU,CAAC,IAAI,EACf,UAAU,CAAC,GAAG,EACd,QAAQ,EACR,OAA+B,CAChC,CAAA;QACH,CAAC;IACH,CAAC;IAKD,cAAc,CACZ,UAAsB,EACtB,OAAY;QAEZ,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;YACrB,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,sDAAsD,EACtD,IAAI,CAAC,SAAS,CACf,CAAA;YACD,OAAM;QACR,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,uBAAuB,UAAU,CAAC,IAAI,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,CAAA;QAC1E,MAAM,WAAW,GAAG,UAAU,CAAC,WAAW,IAAI,EAAE,CAAA;QAEhD,IAAI,CAAC,UAAU,CAAC,SAAS,IAAI,UAAU,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC/D,OAAQ,IAAI,CAAC,MAAM,CAAC,cAAsB,CACxC,UAAU,CAAC,IAAI,EACf,EAAE,WAAW,EAAE,EACf,OAAO,CACR,CAAA;QACH,CAAC;QAED,MAAM,UAAU,GAAuB,EAAE,CAAA;QACzC,KAAK,MAAM,GAAG,IAAI,UAAU,CAAC,SAAS,EAAE,CAAC;YACvC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;gBACd,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,WAAW,UAAU,CAAC,IAAI,sDAAsD,EAChF,IAAI,CAAC,SAAS,CACf,CAAA;gBACD,SAAQ;YACV,CAAC;YACD,IAAI,MAAM,GAAuC,OAAC,CAAC,MAAM,EAAE,CAAA;YAC3D,IAAI,GAAG,CAAC,WAAW,EAAE,CAAC;gBACpB,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC,CAAA;YAC3C,CAAC;YACD,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC;gBACjB,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,MAAM,CAAA;YAC/B,CAAC;iBAAM,CAAC;gBACN,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAA;YAC1C,CAAC;QACH,CAAC;QAED,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzC,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,WAAW,UAAU,CAAC,IAAI,qFAAqF,EAC/G,IAAI,CAAC,SAAS,CACf,CAAA;YACD,OAAQ,IAAI,CAAC,MAAM,CAAC,cAAsB,CACxC,UAAU,CAAC,IAAI,EACf,EAAE,WAAW,EAAE,EACf,OAAO,CACR,CAAA;QACH,CAAC;QAED,OAAQ,IAAI,CAAC,MAAM,CAAC,cAAsB,CACxC,UAAU,CAAC,IAAI,EACf,EAAE,WAAW,EAAE,UAAU,EAAE,EAC3B,OAAO,CACR,CAAA;IACH,CAAC;IAKD,YAAY,CACV,UAAuB,EACvB,OAAY;QAEZ,IAAI,CAAC,UAAU,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;YACpC,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,+DAA+D,EAC/D,IAAI,CAAC,SAAS,CACf,CAAA;YACD,OAAM;QACR,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,qBAAqB,UAAU,CAAC,IAAI,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,CAAA;QAExE,MAAM,MAAM,GAA2E,EAAE,CAAA;QAEzF,IAAI,UAAU,CAAC,WAAW,EAAE,CAAC;YAC3B,MAAM,CAAC,WAAW,GAAG,UAAU,CAAC,WAAW,CAAA;QAC7C,CAAC;QAED,IAAI,UAAU,CAAC,YAAY,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC/E,MAAM,CAAC,WAAW,GAAG,UAAU,CAAC,YAAY,CAAA;QAC9C,CAAC;QAED,OAAQ,IAAI,CAAC,MAAM,CAAC,YAAoB,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,CAAA;IAC5E,CAAC;IAEO,kBAAkB,CACxB,OAAwB;QAExB,OAAO,aAAa,IAAI,OAAO,CAAA;IACjC,CAAC;CACF,CAAA;AArLY,gCAAU;qBAAV,UAAU;IADtB,IAAA,mBAAU,GAAE;IAMR,WAAA,IAAA,eAAM,EAAC,8BAAkB,CAAC,CAAA;IAC1B,WAAA,IAAA,eAAM,EAAC,sBAAU,CAAC,CAAA;;GANV,UAAU,CAqLtB"}