@debugmcp/mcp-debugger
Version:
Run-time step-through debugging for LLM agents.
72 lines (55 loc) • 2.27 kB
Markdown
# SSE Connection Testing Summary
## Current State - FIXED ✅
1. **SSE Server is Running**
- Port: 3001
- Endpoint: http://localhost:3001/sse
- Started with: `.\start-sse-server.cmd`
2. **Cline Configuration**
```json
"mcp-debugger-sse": {
"transportType": "sse",
"url": "http://localhost:3001/sse",
"disabled": false
}
```
## What We Fixed
### Fix 1: Session ID Location
The issue was that our server was looking for the session ID in the wrong place:
- ❌ **Wrong**: Looking for session ID in `X-Session-ID` header
- ✅ **Correct**: Session ID should be in the `sessionId` query parameter
### Fix 2: Request Body Parsing
The server had a middleware conflict:
- ❌ **Wrong**: Using `express.json()` middleware which consumed the request stream
- ✅ **Correct**: Removed `express.json()` to let SSEServerTransport handle the raw body
## How the MCP SDK SSE Protocol Works
1. Client connects to `/sse` endpoint
2. Server sends an `endpoint` event with data: `/sse?sessionId=<uuid>`
3. Client extracts the session ID from this URL
4. Client sends subsequent POST requests to `/sse?sessionId=<uuid>`
5. The SSEServerTransport handles parsing the raw request body
## Testing Through Cline
To test the SSE connection:
1. Stop and restart the SSE server:
- Stop: Ctrl+C in the terminal
- Start: `.\start-sse-server.cmd`
2. In Cline, use one of these MCP tools from `mcp-debugger-sse`:
- `list_debug_sessions` - Lists all active debugging sessions
- `create_debug_session` with arguments: `{"language": "python"}`
## Alternative: Use STDIO Transport
The STDIO transport is more reliable and is already configured:
```json
"mcp-debugger": {
"transportType": "stdio",
"command": "node",
"args": ["C:\\path\\to\\debug-mcp-server\\dist\\index.js"]
}
```
This transport doesn't require a separate server process and handles session management automatically.
## Troubleshooting
If you still see connection errors:
1. Stop the SSE server (Ctrl+C)
2. Rebuild the project: `npm run build`
3. Restart the SSE server: `.\start-sse-server.cmd`
4. Check the logs for any errors
5. Try restarting Cline/VSCode to refresh the MCP connection
6. Verify the server is accessible: `curl http://localhost:3001/health`