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>
n8n-MCP Documentation
Welcome to the n8n-MCP documentation. This directory contains comprehensive guides for installation, configuration, and troubleshooting.
📚 Documentation Index
Getting Started
- Installation Guide - All installation methods including Docker, manual, and development setup
- Claude Desktop Setup - Configure Claude Desktop to use n8n-MCP
- Quick Start Tutorial - Basic overview and quick start instructions
Deployment
- HTTP Deployment Guide - Deploy n8n-MCP as an HTTP server for remote access
- Docker Deployment - Comprehensive Docker deployment guide
- Docker Optimization Guide - Optimized Docker build (200MB vs 2.6GB)
- Docker Testing Results - Docker implementation test results and findings
Development
- Implementation Plan - Technical implementation details
- HTTP Implementation Guide - HTTP server implementation details
- Development Setup - Set up development environment
- Release Guide - How to create releases and manage Docker tags
Reference
- Troubleshooting Guide - Solutions for common issues
- API Reference - MCP tools and API documentation (if available)
- Environment Variables - Configuration options
🚀 Quick Links
For Users
- First Time Setup: Start with the Installation Guide
- Claude Desktop Users: Follow Claude Desktop Setup
- Remote Deployment: See HTTP Deployment Guide
For Developers
- Local Development: See Development Setup
- Docker Development: Check Docker README
- Contributing: Read the implementation plans and guides
🐳 Docker Quick Start
# Quick start with Docker
echo "AUTH_TOKEN=$(openssl rand -base64 32)" > .env
docker compose up -d
# Check health
curl http://localhost:3000/health
📖 Documentation Updates
This documentation is actively maintained. Recent updates include:
- ✅ Docker deployment support (Phase 1 complete)
- ✅ Simplified installation process
- ✅ Enhanced troubleshooting guide
- ✅ Multiple deployment options
🤝 Getting Help
- Issues: GitHub Issues
- Discussions: GitHub Discussions
- Troubleshooting: Troubleshooting Guide
📝 License
This project is licensed under the Sustainable Use License. See LICENSE for details.