vite-plugin-swagger-mcp 0.0.6 → 0.0.8

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/dist/cjs/index.js CHANGED
@@ -24,9 +24,9 @@ __export(src_exports, {
24
24
  });
25
25
  module.exports = __toCommonJS(src_exports);
26
26
  var import_mcp = require("@modelcontextprotocol/sdk/server/mcp.js");
27
- var import_zod = require("zod");
28
27
  var import_streamableHttp = require("@modelcontextprotocol/sdk/server/streamableHttp.js");
29
28
  var import_node_crypto = require("node:crypto");
29
+ var import_zod = require("zod");
30
30
  var SwaggerMcpServer = class {
31
31
  constructor(swaggerUrl, token) {
32
32
  this.swaggerUrl = swaggerUrl;
@@ -217,15 +217,20 @@ function vitePluginSwaggerMcp({
217
217
  );
218
218
  server.middlewares.use(
219
219
  async (req, res, next) => {
220
- var _a2;
221
- if (req.method === "POST" && ((_a2 = req.url) == null ? void 0 : _a2.startsWith("/_mcp/sse/swagger"))) {
222
- if (!req.headers["mcp-session-id"] && transport.sessionId) {
223
- req.headers["mcp-session-id"] = transport.sessionId;
220
+ const url = new URL(req.url || "", `http://${req.headers.host}`);
221
+ if (url.pathname === "/_mcp/sse/swagger") {
222
+ if (req.method === "GET" || req.method === "POST") {
223
+ try {
224
+ await transport.handleRequest(req, res);
225
+ } catch (err) {
226
+ console.error("MCP Transport Error:", err);
227
+ res.statusCode = 500;
228
+ res.end("Internal Server Error");
229
+ }
230
+ return;
224
231
  }
225
- await transport.handleRequest(req, res);
226
- } else {
227
- next();
228
232
  }
233
+ next();
229
234
  }
230
235
  );
231
236
  } catch (error) {
package/dist/esm/index.js CHANGED
@@ -11,9 +11,9 @@ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key i
11
11
  function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
12
12
  function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
13
13
  import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
14
- import { z } from "zod";
15
14
  import { StreamableHTTPServerTransport } from "@modelcontextprotocol/sdk/server/streamableHttp.js";
16
15
  import { randomUUID } from "node:crypto";
16
+ import { z } from "zod";
17
17
  export var SwaggerMcpServer = /*#__PURE__*/function () {
18
18
  function SwaggerMcpServer(swaggerUrl, token) {
19
19
  _classCallCheck(this, SwaggerMcpServer);
@@ -374,31 +374,42 @@ export default function vitePluginSwaggerMcp(_ref) {
374
374
  console.log("MCP server connected:", "http://localhost:".concat((_server$config = server.config) === null || _server$config === void 0 || (_server$config = _server$config.server) === null || _server$config === void 0 ? void 0 : _server$config.port, "/_mcp/sse/swagger"));
375
375
  server.middlewares.use( /*#__PURE__*/function () {
376
376
  var _ref6 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee8(req, res, next) {
377
- var _req$url;
377
+ var url;
378
378
  return _regeneratorRuntime().wrap(function _callee8$(_context8) {
379
379
  while (1) switch (_context8.prev = _context8.next) {
380
380
  case 0:
381
- if (!(req.method === "POST" && (_req$url = req.url) !== null && _req$url !== void 0 && _req$url.startsWith("/_mcp/sse/swagger"))) {
382
- _context8.next = 6;
381
+ // 1. 检查路径
382
+ url = new URL(req.url || "", "http://".concat(req.headers.host));
383
+ if (!(url.pathname === "/_mcp/sse/swagger")) {
384
+ _context8.next = 14;
383
385
  break;
384
386
  }
385
- if (!req.headers["mcp-session-id"] && transport.sessionId) {
386
- // 自动补充
387
- req.headers["mcp-session-id"] = transport.sessionId;
387
+ if (!(req.method === "GET" || req.method === "POST")) {
388
+ _context8.next = 14;
389
+ break;
388
390
  }
389
- // Handle the request
390
- _context8.next = 4;
391
+ _context8.prev = 3;
392
+ _context8.next = 6;
391
393
  return transport.handleRequest(req, res);
392
- case 4:
393
- _context8.next = 7;
394
- break;
395
394
  case 6:
395
+ _context8.next = 13;
396
+ break;
397
+ case 8:
398
+ _context8.prev = 8;
399
+ _context8.t0 = _context8["catch"](3);
400
+ console.error("MCP Transport Error:", _context8.t0);
401
+ res.statusCode = 500;
402
+ res.end("Internal Server Error");
403
+ case 13:
404
+ return _context8.abrupt("return");
405
+ case 14:
406
+ // 如果不是 MCP 的请求,交给 Vite 处理
396
407
  next();
397
- case 7:
408
+ case 15:
398
409
  case "end":
399
410
  return _context8.stop();
400
411
  }
401
- }, _callee8);
412
+ }, _callee8, null, [[3, 8]]);
402
413
  }));
403
414
  return function (_x6, _x7, _x8) {
404
415
  return _ref6.apply(this, arguments);
package/package.json CHANGED
@@ -1,11 +1,11 @@
1
1
  {
2
2
  "name": "vite-plugin-swagger-mcp",
3
- "version": "0.0.6",
3
+ "version": "0.0.8",
4
4
  "description": "vite plugin for swagger mcp",
5
- "homepage": "https://github.com/mmctjj/vite-plugin-swagger-mcp",
5
+ "homepage": "https://github.com/mmdctjj/vite-plugin-swagger-mcp",
6
6
  "repository": {
7
7
  "type": "git",
8
- "url": "https://github.com/mmctjj/vite-plugin-swagger-mcp.git"
8
+ "url": "https://github.com/mmdctjj/vite-plugin-swagger-mcp.git"
9
9
  },
10
10
  "type": "module",
11
11
  "main": "dist/cjs/index.js",