@candide/nestjs-mcp-server 1.1.0

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 (79) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +1065 -0
  3. package/dist/decorators/index.d.ts +5 -0
  4. package/dist/decorators/index.js +22 -0
  5. package/dist/decorators/index.js.map +1 -0
  6. package/dist/decorators/prompt.decorator.d.ts +15 -0
  7. package/dist/decorators/prompt.decorator.js +16 -0
  8. package/dist/decorators/prompt.decorator.js.map +1 -0
  9. package/dist/decorators/resolver.decorator.d.ts +2 -0
  10. package/dist/decorators/resolver.decorator.js +14 -0
  11. package/dist/decorators/resolver.decorator.js.map +1 -0
  12. package/dist/decorators/resource.decorator.d.ts +18 -0
  13. package/dist/decorators/resource.decorator.js +16 -0
  14. package/dist/decorators/resource.decorator.js.map +1 -0
  15. package/dist/decorators/tool.decorator.d.ts +30 -0
  16. package/dist/decorators/tool.decorator.js +16 -0
  17. package/dist/decorators/tool.decorator.js.map +1 -0
  18. package/dist/decorators/user-guard.decorator.d.ts +2 -0
  19. package/dist/decorators/user-guard.decorator.js +10 -0
  20. package/dist/decorators/user-guard.decorator.js.map +1 -0
  21. package/dist/index.d.ts +6 -0
  22. package/dist/index.js +23 -0
  23. package/dist/index.js.map +1 -0
  24. package/dist/interfaces/context.interface.d.ts +11 -0
  25. package/dist/interfaces/context.interface.js +3 -0
  26. package/dist/interfaces/context.interface.js.map +1 -0
  27. package/dist/interfaces/index.d.ts +1 -0
  28. package/dist/interfaces/index.js +18 -0
  29. package/dist/interfaces/index.js.map +1 -0
  30. package/dist/mcp-core.module.d.ts +11 -0
  31. package/dist/mcp-core.module.js +218 -0
  32. package/dist/mcp-core.module.js.map +1 -0
  33. package/dist/mcp.constants.d.ts +6 -0
  34. package/dist/mcp.constants.js +10 -0
  35. package/dist/mcp.constants.js.map +1 -0
  36. package/dist/mcp.module.d.ts +11 -0
  37. package/dist/mcp.module.js +40 -0
  38. package/dist/mcp.module.js.map +1 -0
  39. package/dist/mcp.types.d.ts +62 -0
  40. package/dist/mcp.types.js +3 -0
  41. package/dist/mcp.types.js.map +1 -0
  42. package/dist/services/discovery.service.d.ts +16 -0
  43. package/dist/services/discovery.service.js +85 -0
  44. package/dist/services/discovery.service.js.map +1 -0
  45. package/dist/services/index.d.ts +3 -0
  46. package/dist/services/index.js +20 -0
  47. package/dist/services/index.js.map +1 -0
  48. package/dist/services/logger.service.d.ts +16 -0
  49. package/dist/services/logger.service.js +98 -0
  50. package/dist/services/logger.service.js.map +1 -0
  51. package/dist/services/registry.service.d.ts +23 -0
  52. package/dist/services/registry.service.js +284 -0
  53. package/dist/services/registry.service.js.map +1 -0
  54. package/dist/services/session.manager.d.ts +18 -0
  55. package/dist/services/session.manager.js +46 -0
  56. package/dist/services/session.manager.js.map +1 -0
  57. package/dist/transports/sse/index.d.ts +2 -0
  58. package/dist/transports/sse/index.js +19 -0
  59. package/dist/transports/sse/index.js.map +1 -0
  60. package/dist/transports/sse/sse.controller.d.ts +3 -0
  61. package/dist/transports/sse/sse.controller.js +61 -0
  62. package/dist/transports/sse/sse.controller.js.map +1 -0
  63. package/dist/transports/sse/sse.service.d.ts +29 -0
  64. package/dist/transports/sse/sse.service.js +174 -0
  65. package/dist/transports/sse/sse.service.js.map +1 -0
  66. package/dist/transports/streamable/index.d.ts +2 -0
  67. package/dist/transports/streamable/index.js +19 -0
  68. package/dist/transports/streamable/index.js.map +1 -0
  69. package/dist/transports/streamable/streamable.controller.d.ts +3 -0
  70. package/dist/transports/streamable/streamable.controller.js +66 -0
  71. package/dist/transports/streamable/streamable.controller.js.map +1 -0
  72. package/dist/transports/streamable/streamable.service.d.ts +30 -0
  73. package/dist/transports/streamable/streamable.service.js +238 -0
  74. package/dist/transports/streamable/streamable.service.js.map +1 -0
  75. package/dist/tsconfig.build.tsbuildinfo +1 -0
  76. package/dist/types/handler-args.types.d.ts +23 -0
  77. package/dist/types/handler-args.types.js +3 -0
  78. package/dist/types/handler-args.types.js.map +1 -0
  79. package/package.json +151 -0
@@ -0,0 +1,23 @@
1
+ import type { RequestHandlerExtra } from '../mcp.types';
2
+ export interface ResourceUriHandlerArgs {
3
+ readonly type: 'resource:uri';
4
+ readonly uri: URL;
5
+ readonly extra: RequestHandlerExtra;
6
+ }
7
+ export interface ResourceTemplateHandlerArgs {
8
+ readonly type: 'resource:template';
9
+ readonly uri: URL;
10
+ readonly variables?: Record<string, string>;
11
+ readonly extra: RequestHandlerExtra;
12
+ }
13
+ export interface PromptHandlerArgs {
14
+ readonly type: 'prompt';
15
+ readonly args?: any;
16
+ readonly extra: RequestHandlerExtra;
17
+ }
18
+ export interface ToolHandlerArgs {
19
+ readonly type: 'tool';
20
+ readonly params?: any;
21
+ readonly extra: RequestHandlerExtra;
22
+ }
23
+ export type McpHandlerArgs = ResourceUriHandlerArgs | ResourceTemplateHandlerArgs | PromptHandlerArgs | ToolHandlerArgs;
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=handler-args.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handler-args.types.js","sourceRoot":"","sources":["../../src/types/handler-args.types.ts"],"names":[],"mappings":""}
package/package.json ADDED
@@ -0,0 +1,151 @@
1
+ {
2
+ "name": "@candide/nestjs-mcp-server",
3
+ "version": "1.1.0",
4
+ "description": "Modular library for building scalable MCP servers with NestJS, providing decorators and integration patterns as a wrapper for the official MCP TypeScript SDK.",
5
+ "author": "Adrián Darío Hidalgo Flores",
6
+ "license": "MIT",
7
+ "packageManager": "pnpm@10.12.1",
8
+ "engines": {
9
+ "node": ">=18",
10
+ "pnpm": ">=10"
11
+ },
12
+ "publishConfig": {
13
+ "access": "public"
14
+ },
15
+ "files": [
16
+ "dist",
17
+ "README.md",
18
+ "LICENSE"
19
+ ],
20
+ "main": "dist/index.js",
21
+ "types": "dist/index.d.ts",
22
+ "repository": {
23
+ "type": "git",
24
+ "url": "https://github.com/adrian-d-hidalgo/nestjs-mcp-server.git"
25
+ },
26
+ "homepage": "https://github.com/adrian-d-hidalgo/nestjs-mcp-server#readme",
27
+ "bugs": {
28
+ "url": "https://github.com/adrian-d-hidalgo/nestjs-mcp-server/issues"
29
+ },
30
+ "keywords": [
31
+ "decorators",
32
+ "integration",
33
+ "large-language-models",
34
+ "llm",
35
+ "mcp",
36
+ "model-context-protocol",
37
+ "module",
38
+ "nestjs",
39
+ "npm",
40
+ "pnpm",
41
+ "sdk",
42
+ "server",
43
+ "typescript",
44
+ "yarn"
45
+ ],
46
+ "scripts": {
47
+ "build": "nest build",
48
+ "prepare": "is-ci || husky",
49
+ "start:example": "npx -y ts-node-dev --respawn examples/$EXAMPLE/main.ts",
50
+ "start:inspector": "npx -y @modelcontextprotocol/inspector",
51
+ "lint:check": "eslint \"{src,test,examples}/**/*.ts\"",
52
+ "lint:fix": "eslint \"{src,test,examples}/**/*.ts\" --fix",
53
+ "format:check": "prettier --check \"{src,test,examples}/**/*.ts\"",
54
+ "format:fix": "prettier --write \"{src,test,examples}/**/*.ts\"",
55
+ "typecheck": "tsc --noEmit",
56
+ "quality:check": "pnpm lint:check && pnpm format:check && pnpm typecheck",
57
+ "quality:fix": "pnpm lint:fix && pnpm format:fix",
58
+ "test": "jest",
59
+ "test:watch": "jest --watch",
60
+ "test:cov": "jest --coverage",
61
+ "test:debug": "node --inspect-brk -r tsconfig-paths/register -r ts-node/register node_modules/.bin/jest --runInBand",
62
+ "test:e2e": "jest --config ./test/jest-e2e.json"
63
+ },
64
+ "peerDependencies": {
65
+ "@nestjs/common": ">=10.0.0",
66
+ "@nestjs/core": ">=10.0.0",
67
+ "@nestjs/platform-express": ">=10.0.0",
68
+ "reflect-metadata": "^0.2.2",
69
+ "rxjs": "^7.8.2"
70
+ },
71
+ "dependencies": {
72
+ "@modelcontextprotocol/sdk": "^1.26.0",
73
+ "zod": ">=3.25.0"
74
+ },
75
+ "devDependencies": {
76
+ "@commitlint/cli": "^20.4.1",
77
+ "@commitlint/config-conventional": "^20.4.1",
78
+ "@commitlint/types": "^20.4.0",
79
+ "@eslint/eslintrc": "^3.3.3",
80
+ "@eslint/js": "^9.39.2",
81
+ "@nestjs/cli": "^11.0.16",
82
+ "@nestjs/config": "^4.0.3",
83
+ "@nestjs/schematics": "^11.0.9",
84
+ "@nestjs/testing": "^11.1.13",
85
+ "@semantic-release/changelog": "^6.0.3",
86
+ "@semantic-release/git": "^10.0.1",
87
+ "@semantic-release/github": "^12.0.6",
88
+ "@swc/cli": "^0.7.10",
89
+ "@swc/core": "^1.15.11",
90
+ "@swc/jest": "^0.2.39",
91
+ "@types/express": "^5.0.6",
92
+ "@types/jest": "^30.0.0",
93
+ "@types/node": "^25.0.3",
94
+ "@types/supertest": "^6.0.3",
95
+ "eslint": "^9.39.2",
96
+ "eslint-config-prettier": "^10.1.8",
97
+ "eslint-plugin-prettier": "^5.5.4",
98
+ "globals": "^16.5.0",
99
+ "husky": "^9.1.7",
100
+ "is-ci": "^4.1.0",
101
+ "jest": "^30.2.0",
102
+ "lint-staged": "^16.2.7",
103
+ "prettier": "^3.8.1",
104
+ "semantic-release": "^25.0.3",
105
+ "source-map-support": "^0.5.21",
106
+ "supertest": "^7.1.4",
107
+ "ts-loader": "^9.5.4",
108
+ "ts-node": "^10.9.2",
109
+ "tsconfig-paths": "^4.2.0",
110
+ "typescript": "^5.9.3",
111
+ "typescript-eslint": "^8.51.0"
112
+ },
113
+ "lint-staged": {
114
+ "{src,test,examples}/**/*.ts": [
115
+ "eslint --fix",
116
+ "prettier --write"
117
+ ]
118
+ },
119
+ "jest": {
120
+ "moduleFileExtensions": [
121
+ "js",
122
+ "json",
123
+ "ts"
124
+ ],
125
+ "rootDir": "src",
126
+ "testRegex": ".*\\.spec\\.ts$",
127
+ "transform": {
128
+ "^.+\\.(t|j)s$": [
129
+ "@swc/jest"
130
+ ]
131
+ },
132
+ "collectCoverageFrom": [
133
+ "**/*.(t|j)s"
134
+ ],
135
+ "coverageDirectory": "../coverage",
136
+ "testEnvironment": "node",
137
+ "coverageThreshold": {
138
+ "global": {
139
+ "statements": 80,
140
+ "branches": 55,
141
+ "functions": 70,
142
+ "lines": 85
143
+ }
144
+ },
145
+ "coveragePathIgnorePatterns": [
146
+ "/index\\.ts$",
147
+ "\\.interface\\.ts$",
148
+ "\\.types\\.ts$"
149
+ ]
150
+ }
151
+ }