diff --git a/.vscode/launch.json b/.vscode/launch.json index bbc2970..e265494 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -2,78 +2,31 @@ "version": "0.2.0", "configurations": [ { - "name": "Debug MCP Server (tsx watch)", "type": "node", - "request": "launch", - "program": "${workspaceFolder}/node_modules/.bin/tsx", - "args": ["watch", "src/index.ts"], - "console": "integratedTerminal", + "request": "attach", + "name": "Attach to Dev Server", + "port": 9229, "restart": true, "skipFiles": ["/**"], - "env": { - "NODE_ENV": "development" - } + "sourceMaps": true, + "resolveSourceMapLocations": [ + "${workspaceFolder}/**", + "!**/node_modules/**" + ] }, { - "name": "Debug Jest Tests", "type": "node", "request": "launch", - "runtimeArgs": [ - "--experimental-vm-modules", - "--inspect-brk", - "${workspaceFolder}/node_modules/.bin/jest", - "--runInBand" - ], - "console": "integratedTerminal", - "internalConsoleOptions": "neverOpen", + "name": "Debug Dev Server", + "runtimeExecutable": "npm", + "runtimeArgs": ["run", "dev"], "skipFiles": ["/**"], - "env": { - "NODE_OPTIONS": "--experimental-vm-modules" - } - }, - { - "name": "Debug Current Jest Test File", - "type": "node", - "request": "launch", - "runtimeArgs": [ - "--experimental-vm-modules", - "--inspect-brk", - "${workspaceFolder}/node_modules/.bin/jest", - "--runInBand", - "${relativeFile}" + "sourceMaps": true, + "resolveSourceMapLocations": [ + "${workspaceFolder}/**", + "!**/node_modules/**" ], - "console": "integratedTerminal", - "internalConsoleOptions": "neverOpen", - "skipFiles": ["/**"], - "env": { - "NODE_OPTIONS": "--experimental-vm-modules" - } - }, - { - "name": "Debug Jest Test by Pattern", - "type": "node", - "request": "launch", - "runtimeArgs": [ - "--experimental-vm-modules", - "--inspect-brk", - "${workspaceFolder}/node_modules/.bin/jest", - "--runInBand", - "--testNamePattern", - "${input:testNamePattern}" - ], - "console": "integratedTerminal", - "internalConsoleOptions": "neverOpen", - "skipFiles": ["/**"], - "env": { - "NODE_OPTIONS": "--experimental-vm-modules" - } - } - ], - "inputs": [ - { - "id": "testNamePattern", - "type": "promptString", - "description": "Test name pattern to match (e.g., 'should trigger onsessionclosed')" + "console": "integratedTerminal" } ] } \ No newline at end of file diff --git a/package.json b/package.json index da588bb..793ab33 100644 --- a/package.json +++ b/package.json @@ -6,7 +6,8 @@ "main": "dist/index.js", "scripts": { "start": "node dist/index.js", - "dev": "tsx watch src/index.ts", + "dev": "tsx watch --inspect src/index.ts", + "dev:break": "tsx --inspect-brk watch src/index.ts", "build": "tsc && npm run copy-static", "copy-static": "mkdir -p dist/static && cp -r src/static/* dist/static/", "lint": "eslint src/", diff --git a/src/handlers/sse.ts b/src/handlers/sse.ts index e80c67a..9788d0b 100644 --- a/src/handlers/sse.ts +++ b/src/handlers/sse.ts @@ -2,14 +2,11 @@ import { AuthInfo } from "@modelcontextprotocol/sdk/server/auth/types.js"; import { SSEServerTransport } from "@modelcontextprotocol/sdk/server/sse.js"; import contentType from "content-type"; import { Request, Response } from "express"; -import getRawBody from "raw-body"; import { redisClient } from "../redis.js"; import { createMcpServer } from "../services/mcp.js"; import { logMcpMessage } from "./common.js"; import { logger } from "../utils/logger.js"; -const MAXIMUM_MESSAGE_SIZE = "4mb"; - declare module "express-serve-static-core" { interface Request { /** @@ -90,10 +87,7 @@ export async function handleMessage(req: Request, res: Response) { throw new Error(`Unsupported content-type: ${ct}`); } - body = await getRawBody(req, { - limit: MAXIMUM_MESSAGE_SIZE, - encoding: ct.parameters.charset ?? "utf-8", - }); + body = JSON.stringify(req.body); } catch (error) { res.status(400).json(error); logger.error('Bad POST request', error as Error, {