# MCP Debugger User Testing Report
**Test Date:** January 3, 2025
**Tester:** AI Agent (Cline)
**Test Environment:** Windows 11, Node.js environment
## Executive Summary
Conducted comprehensive testing of all four MCP debugger server variants across both supported languages (Python and JavaScript). **One critical issue identified** with the SSE server variant when debugging JavaScript code.
## Test Coverage
### Server Variants Tested
1. **mcp-debugger** (local build, stdio connection)
2. **mcp-debugger-docker** (containerized build, stdio connection)
3. **mcp-debugger-sse** (local build, SSE connection)
4. **mcp-debugger-pack** (packed build for npx users)
### Languages Tested
- Python
- JavaScript
### Test Scenarios
Each variant was tested with the following workflow:
1. Create debug session
2. Set breakpoint on line containing variable swap
3. Start debugging
4. Get local variables (should show a=1, b=2)
5. Step over the swap line
6. Get local variables again (should show a=2, b=1)
7. Close debug session
## Test Results
### ✅ mcp-debugger (Local Build - stdio)
#### Python Testing
- **Status:** ✅ PASS
- **Session Creation:** Success
- **Breakpoint Setting:** Success (line 11)
- **Debugging Start:** Success, paused at breakpoint
- **Variable Inspection:** Success (a=1, b=2 before swap; a=2, b=1 after swap)
- **Stepping:** Success
- **Session Cleanup:** Success
#### JavaScript Testing
- **Status:** ✅ PASS
- **Session Creation:** Success
- **Breakpoint Setting:** Success (line 14)
- **Debugging Start:** Success, paused at breakpoint
- **Variable Inspection:** Success (a=1, b=2 before swap; a=2, b=1 after swap)
- **Stepping:** Success
- **Session Cleanup:** Success
### ✅ mcp-debugger-docker (Containerized Build - stdio)
#### Python Testing
- **Status:** ✅ PASS
- **Session Creation:** Success
- **Breakpoint Setting:** Success (relative path: `examples/python/simple_test.py`)
- **Debugging Start:** Success, paused at breakpoint
- **Variable Inspection:** Success (a=1, b=2 before swap; a=2, b=1 after swap)
- **Stepping:** Success
- **Session Cleanup:** Success
- **Note:** Requires relative paths (e.g., `examples/python/simple_test.py`) rather than absolute paths. Initial attempt with absolute path like `/workspace/examples/python/simple_test.py` caused path resolution error.
#### JavaScript Testing
- **Status:** ✅ PASS
- **Session Creation:** Success
- **Breakpoint Setting:** Success (relative path: `examples/javascript/simple_test.js`)
- **Debugging Start:** Success, paused at breakpoint
- **Variable Inspection:** Success (a=1, b=2 before swap; a=2, b=1 after swap)
- **Stepping:** Success
- **Session Cleanup:** Success
### ✅ mcp-debugger-sse (Local Build - SSE Connection)
#### Python Testing
- **Status:** ✅ PASS
- **Session Creation:** Success
- **Breakpoint Setting:** Success (line 11)
- **Debugging Start:** Success, paused at breakpoint
- **Variable Inspection:** Success (a=1, b=2 before swap; a=2, b=1 after swap)
- **Stepping:** Success
- **Session Cleanup:** Success
#### JavaScript Testing
- **Status:** ❌ **FAIL - CRITICAL ISSUE**
- **Session Creation:** Success
- **Breakpoint Setting:** Success (line 14)
- **Debugging Start:** Reports success with state "paused" and reason "breakpoint"
- **Variable Inspection:** ❌ **FAILURE** - Returns empty stack frames
- **Issue Details:**
```json
{
"success": true,
"variables": [],
"count": 0,
"message": "No stack frames available. The debugger may not be paused."
}
```
- **Stack Trace Query:** Returns empty array:
```json
{
"success": true,
"stackFrames": [],
"count": 0,
"includeInternals": false
}
```
- **Root Cause:** Despite reporting that debugging started successfully and is paused at a breakpoint, the JavaScript debugger adapter over SSE connection fails to properly capture or communicate stack frame information.
### ✅ mcp-debugger-pack (Packed Build for npx)
#### Python Testing
- **Status:** ✅ PASS
- **Session Creation:** Success
- **Breakpoint Setting:** Success (line 11)
- **Debugging Start:** Success, paused at breakpoint
- **Variable Inspection:** Success (a=1, b=2 before swap; a=2, b=1 after swap)
- **Stepping:** Success
- **Session Cleanup:** Success
#### JavaScript Testing
- **Status:** ✅ PASS
- **Session Creation:** Success
- **Breakpoint Setting:** Success (line 14)
- **Debugging Start:** Success, paused at breakpoint
- **Variable Inspection:** Success (a=1, b=2 before swap; a=2, b=1 after swap)
- **Stepping:** Success
- **Session Cleanup:** Success
## Issues Summary
### Critical Issues (Blocking)
1. **SSE Server - JavaScript Debugging Broken**
- **Severity:** Critical
- **Impact:** JavaScript debugging is completely non-functional on SSE transport
- **Affected Component:** mcp-debugger-sse with JavaScript language adapter
- **Symptoms:** Stack frames are empty despite successful session creation and breakpoint setting
- **Workaround:** Use stdio or Docker variants instead of SSE for JavaScript debugging
### Minor Issues
1. **Docker Path Handling**
- **Severity:** Minor (User Experience)
- **Impact:** Users need to understand path conventions
- **Description:** Docker variant requires relative paths from `/workspace` (e.g., `examples/python/test.py`) rather than absolute paths
- **Recommendation:** Document this clearly in user guide or improve error messages to suggest correct path format
## Recommendations
### Before Release
1. **Fix Critical Issue:** Resolve JavaScript debugging on SSE server variant before release
2. **Add Test Coverage:** Implement automated integration tests that cover all server variants × all languages
3. **Document Path Handling:** Clarify Docker path conventions in documentation
4. **Consider Pre-Release Warning:** If SSE JavaScript issue cannot be fixed quickly, consider documenting it as a known limitation
### Testing Improvements
1. Add automated smoke tests for each server variant
2. Include cross-language testing in CI/CD pipeline
3. Test additional edge cases:
- Complex object inspection
- Conditional breakpoints
- Exception handling
- Multi-file debugging
## Test Files Used
- **Python:** `examples/python/simple_test.py`
- **JavaScript:** `examples/javascript/simple_test.js`
Both test files implement identical logic (variable swap) to ensure consistent testing across languages.
## Conclusion
**Overall Status:** 7 out of 8 configurations working (87.5% success rate)
Three server variants (stdio local, Docker, and packed) are production-ready for both Python and JavaScript. The SSE variant works perfectly for Python but has a critical blocking issue for JavaScript that must be resolved before release.
**Release Recommendation:**
- ✅ Safe to release: mcp-debugger, mcp-debugger-docker, mcp-debugger-pack
- ❌ Not safe to release: mcp-debugger-sse (JavaScript support)
Consider either fixing the SSE JavaScript issue or releasing with clear documentation that SSE transport currently only supports Python debugging.