feat(server): refactor mcp (#14579)

#### PR Dependency Tree


* **PR #14579** 👈

This tree was auto-generated by
[Charcoal](https://github.com/danerwilliams/charcoal)

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

* **New Features**
* Full JSON-RPC MCP endpoint with batch requests, per-message
validation, method dispatch (initialize, ping, tools/list, tools/call)
and request cancellation
* Tool listing and execution with input validation, standardized
results, and improved error responses

* **Chores**
  * Removed an external protocol dependency
  * Bumped MCP server version to 1.0.1
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
This commit is contained in:
DarkSky
2026-03-06 06:35:34 +08:00
committed by GitHub
parent fff04395bc
commit 7f5f7e79df
4 changed files with 536 additions and 396 deletions
+7 -112
View File
@@ -969,7 +969,6 @@ __metadata:
"@fal-ai/serverless-client": "npm:^0.15.0"
"@google-cloud/opentelemetry-cloud-trace-exporter": "npm:^3.0.0"
"@google-cloud/opentelemetry-resource-util": "npm:^3.0.0"
"@modelcontextprotocol/sdk": "npm:^1.26.0"
"@nestjs-cls/transactional": "npm:^2.7.0"
"@nestjs-cls/transactional-adapter-prisma": "npm:^1.2.24"
"@nestjs/apollo": "npm:^13.0.4"
@@ -6413,15 +6412,6 @@ __metadata:
languageName: node
linkType: hard
"@hono/node-server@npm:^1.19.9":
version: 1.19.9
resolution: "@hono/node-server@npm:1.19.9"
peerDependencies:
hono: ^4
checksum: 10/d4915c2e736ee1e3934b5538cde92b19914dc71346340528a04e4c7219afc7367965080cd1a5291ac9cbda7b0780b89b6ca93472a9418aa105d6d1183033dc8a
languageName: node
linkType: hard
"@html-validate/stylish@npm:^4.1.0":
version: 4.2.0
resolution: "@html-validate/stylish@npm:4.2.0"
@@ -7632,39 +7622,6 @@ __metadata:
languageName: node
linkType: hard
"@modelcontextprotocol/sdk@npm:^1.26.0":
version: 1.26.0
resolution: "@modelcontextprotocol/sdk@npm:1.26.0"
dependencies:
"@hono/node-server": "npm:^1.19.9"
ajv: "npm:^8.17.1"
ajv-formats: "npm:^3.0.1"
content-type: "npm:^1.0.5"
cors: "npm:^2.8.5"
cross-spawn: "npm:^7.0.5"
eventsource: "npm:^3.0.2"
eventsource-parser: "npm:^3.0.0"
express: "npm:^5.2.1"
express-rate-limit: "npm:^8.2.1"
hono: "npm:^4.11.4"
jose: "npm:^6.1.3"
json-schema-typed: "npm:^8.0.2"
pkce-challenge: "npm:^5.0.0"
raw-body: "npm:^3.0.0"
zod: "npm:^3.25 || ^4.0"
zod-to-json-schema: "npm:^3.25.1"
peerDependencies:
"@cfworker/json-schema": ^4.1.1
zod: ^3.25 || ^4.0
peerDependenciesMeta:
"@cfworker/json-schema":
optional: true
zod:
optional: false
checksum: 10/a206b2a4d61a23be8b8f4c886528dd9348d11b17ce36013b350edf5c082b1c1f07941d52ea098f721daf3828085b6f6276bb844c484a0e9913edbc028517a3d5
languageName: node
linkType: hard
"@module-federation/error-codes@npm:0.22.0":
version: 0.22.0
resolution: "@module-federation/error-codes@npm:0.22.0"
@@ -18306,20 +18263,6 @@ __metadata:
languageName: node
linkType: hard
"ajv-formats@npm:^3.0.1":
version: 3.0.1
resolution: "ajv-formats@npm:3.0.1"
dependencies:
ajv: "npm:^8.0.0"
peerDependencies:
ajv: ^8.0.0
peerDependenciesMeta:
ajv:
optional: true
checksum: 10/5679b9f9ced9d0213a202a37f3aa91efcffe59a6de1a6e3da5c873344d3c161820a1f11cc29899661fee36271fd2895dd3851b6461c902a752ad661d1c1e8722
languageName: node
linkType: hard
"ajv-keywords@npm:^3.4.1":
version: 3.5.2
resolution: "ajv-keywords@npm:3.5.2"
@@ -18364,7 +18307,7 @@ __metadata:
languageName: node
linkType: hard
"ajv@npm:^8.0.0, ajv@npm:^8.11.0, ajv@npm:^8.17.1, ajv@npm:^8.9.0":
"ajv@npm:^8.0.0, ajv@npm:^8.11.0, ajv@npm:^8.9.0":
version: 8.18.0
resolution: "ajv@npm:8.18.0"
dependencies:
@@ -20906,7 +20849,7 @@ __metadata:
languageName: node
linkType: hard
"cross-spawn@npm:^7.0.1, cross-spawn@npm:^7.0.3, cross-spawn@npm:^7.0.5, cross-spawn@npm:^7.0.6":
"cross-spawn@npm:^7.0.1, cross-spawn@npm:^7.0.3, cross-spawn@npm:^7.0.6":
version: 7.0.6
resolution: "cross-spawn@npm:7.0.6"
dependencies:
@@ -23260,22 +23203,13 @@ __metadata:
languageName: node
linkType: hard
"eventsource-parser@npm:^3.0.0, eventsource-parser@npm:^3.0.1, eventsource-parser@npm:^3.0.6":
"eventsource-parser@npm:^3.0.6":
version: 3.0.6
resolution: "eventsource-parser@npm:3.0.6"
checksum: 10/febf7058b9c2168ecbb33e92711a1646e06bd1568f60b6eb6a01a8bf9f8fcd29cc8320d57247059cacf657a296280159f21306d2e3ff33309a9552b2ef889387
languageName: node
linkType: hard
"eventsource@npm:^3.0.2":
version: 3.0.7
resolution: "eventsource@npm:3.0.7"
dependencies:
eventsource-parser: "npm:^3.0.1"
checksum: 10/e034915bc97068d1d38617951afd798e6776d6a3a78e36a7569c235b177c7afc2625c9fe82656f7341ab72c7eeecb3fd507b7f88e9328f2448872ff9c4742bb6
languageName: node
linkType: hard
"exa-js@npm:^2.4.0":
version: 2.4.0
resolution: "exa-js@npm:2.4.0"
@@ -23364,18 +23298,7 @@ __metadata:
languageName: node
linkType: hard
"express-rate-limit@npm:^8.2.1":
version: 8.2.1
resolution: "express-rate-limit@npm:8.2.1"
dependencies:
ip-address: "npm:10.0.1"
peerDependencies:
express: ">= 4.11"
checksum: 10/7cbf70df2e88e590e463d2d8f93380775b2ea181d97f2c50c2ff9f2c666c247f83109a852b21d9c99ccc5762119101f281f54a27252a2f1a0a918be6d71f955b
languageName: node
linkType: hard
"express@npm:5.2.1, express@npm:^5.0.0, express@npm:^5.0.1, express@npm:^5.2.1":
"express@npm:5.2.1, express@npm:^5.0.0, express@npm:^5.0.1":
version: 5.2.1
resolution: "express@npm:5.2.1"
dependencies:
@@ -25067,13 +24990,6 @@ __metadata:
languageName: node
linkType: hard
"hono@npm:^4.11.4":
version: 4.12.0
resolution: "hono@npm:4.12.0"
checksum: 10/8a4de1ac4394816cbdbc87ef813ce3fb767953dff4cd88fa519bec66df8d7d801dcfddea815677440c5b0fbed636ee7fbdab834f589154550d83ea4de713e769
languageName: node
linkType: hard
"hosted-git-info@npm:^2.1.4":
version: 2.8.9
resolution: "hosted-git-info@npm:2.8.9"
@@ -25833,13 +25749,6 @@ __metadata:
languageName: node
linkType: hard
"ip-address@npm:10.0.1":
version: 10.0.1
resolution: "ip-address@npm:10.0.1"
checksum: 10/09731acda32cd8e14c46830c137e7e5940f47b36d63ffb87c737331270287d631cf25aa95570907a67d3f919fdb25f4470c404eda21e62f22e0a55927f4dd0fb
languageName: node
linkType: hard
"ip-address@npm:^9.0.5":
version: 9.0.5
resolution: "ip-address@npm:9.0.5"
@@ -26641,13 +26550,6 @@ __metadata:
languageName: node
linkType: hard
"json-schema-typed@npm:^8.0.2":
version: 8.0.2
resolution: "json-schema-typed@npm:8.0.2"
checksum: 10/fa866d1fe91e3a94aa4fe007861475cd03dcaf47b719861cab171ef2f8598478007c634d29ae45de94ee34ddff4e13414c63ea5ff06c5b868b613142c699d511
languageName: node
linkType: hard
"json-schema@npm:^0.4.0":
version: 0.4.0
resolution: "json-schema@npm:0.4.0"
@@ -30744,13 +30646,6 @@ __metadata:
languageName: node
linkType: hard
"pkce-challenge@npm:^5.0.0":
version: 5.0.0
resolution: "pkce-challenge@npm:5.0.0"
checksum: 10/e60c06a0e0481cb82f80072053d5c479a7490758541c4226460450285dd5d72a995c44b3c553731ca7c2f64cc34b35f1d2e5f9de08d276b59899298f9efe1ddf
languageName: node
linkType: hard
"pkg-types@npm:^1.2.0, pkg-types@npm:^1.3.0, pkg-types@npm:^1.3.1":
version: 1.3.1
resolution: "pkg-types@npm:1.3.1"
@@ -31648,7 +31543,7 @@ __metadata:
languageName: node
linkType: hard
"raw-body@npm:^3.0.0, raw-body@npm:^3.0.1":
"raw-body@npm:^3.0.1":
version: 3.0.2
resolution: "raw-body@npm:3.0.2"
dependencies:
@@ -36901,7 +36796,7 @@ __metadata:
languageName: node
linkType: hard
"zod-to-json-schema@npm:^3.20.0, zod-to-json-schema@npm:^3.25.1":
"zod-to-json-schema@npm:^3.20.0":
version: 3.25.1
resolution: "zod-to-json-schema@npm:3.25.1"
peerDependencies:
@@ -36926,7 +36821,7 @@ __metadata:
languageName: node
linkType: hard
"zod@npm:^3.25 || ^4.0, zod@npm:^3.25.0 || ^4.0.0":
"zod@npm:^3.25.0 || ^4.0.0":
version: 4.3.6
resolution: "zod@npm:4.3.6"
checksum: 10/25fc0f62e01b557b4644bf0b393bbaf47542ab30877c37837ea8caf314a8713d220c7d7fe51f68ffa72f0e1018ddfa34d96f1973d23033f5a2a5a9b6b9d9da01