fix: complete solution for MCP HTTP server stream errors (v2.3.2)
Root Cause Analysis: - Express.json() middleware was consuming request stream before StreamableHTTPServerTransport - StreamableHTTPServerTransport has initialization issues with stateless usage Two-Phase Solution: 1. Removed all body parsing middleware to preserve raw streams 2. Created http-server-fixed.ts with direct JSON-RPC implementation Key Changes: - Remove express.json() from all HTTP server implementations - Add http-server-fixed.ts that bypasses StreamableHTTPServerTransport - Implement initialize, tools/list, and tools/call methods directly - Add USE_FIXED_HTTP=true environment variable to enable fixed server - Update logging to not access req.body The fixed implementation: - Handles JSON-RPC protocol directly without transport complications - Maintains full MCP compatibility - Works reliably without stream or initialization errors - Provides better performance and debugging capabilities Usage: MCP_MODE=http USE_FIXED_HTTP=true npm start This provides a stable, production-ready HTTP server for n8n-MCP. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "n8n-mcp",
|
||||
"version": "2.3.1",
|
||||
"version": "2.3.2",
|
||||
"description": "Integration between n8n workflow automation and Model Context Protocol (MCP)",
|
||||
"main": "dist/index.js",
|
||||
"scripts": {
|
||||
@@ -11,8 +11,9 @@
|
||||
"test-nodes": "node dist/scripts/test-nodes.js",
|
||||
"start": "node dist/mcp/index.js",
|
||||
"start:http": "MCP_MODE=http node dist/mcp/index.js",
|
||||
"start:http:fixed": "MCP_MODE=http USE_FIXED_HTTP=true node dist/mcp/index.js",
|
||||
"start:http:legacy": "MCP_MODE=http node dist/http-server.js",
|
||||
"http": "npm run build && npm run start:http",
|
||||
"http": "npm run build && npm run start:http:fixed",
|
||||
"dev": "npm run build && npm run rebuild && npm run validate",
|
||||
"dev:http": "MCP_MODE=http nodemon --watch src --ext ts --exec 'npm run build && npm run start:http'",
|
||||
"test:single-session": "./scripts/test-single-session.sh",
|
||||
|
||||
Reference in New Issue
Block a user