A powerful debugging mod for Minecraft 1.20.1 Forge that integrates with Claude Code via MCP (Model Context Protocol). Provides real-time game inspection, pause/resume control, performance monitoring, and more.
- Pause/Resume - Freeze the game loop for debugging
- Status Monitoring - Check if game is paused or running
- Toggle Control - Quick pause/resume switching
- Stack Traces - Get demangled stack traces for main thread or all threads
- Log Capture - Access recent log messages
- Error Tracking - Capture and view exceptions with full stack traces
- SRG Demangling - Automatic deobfuscation of Minecraft code
- FPS/MSPT - Real-time performance metrics
- Memory Usage - JVM memory statistics
- OpenGL State - Graphics API information and error checking
- Entity List - View all entities in the world
- Entity Inspector - Detailed entity information (position, velocity, state)
- Player Info - Player position, dimension, and stats
- Chunk Count - Loaded chunk statistics
- Class Info - Inspect Java classes (fields, methods)
- Reflection Support - Runtime class analysis
- Minecraft 1.20.1
- Forge 47.2+
- Node.js 18+
- Claude Code
-
Build the Mod
./gradlew build
-
Install the Mod
- Copy
build/libs/mcpisnotmcp-1.0.0.jarto your.minecraft/mods/folder - Launch Minecraft
- Copy
-
Setup MCP Server
cd mcp-server npm install -
Configure Claude Code
Add to
~/.claude/settings.json:{ "mcpServers": { "minecraft-debug": { "command": "node", "args": ["/absolute/path/to/mcp-server/index.js"] } } } -
Restart Claude Code
The mod creates a configuration file at config/mcpisnotmcp.properties:
# TCP Server Port
tcp.port=25566
# Cache Sizes
cache.log.size=200
cache.error.size=50
# Network Settings
socket.timeout=5000
# Server Behavior
server.auto_start=true
logging.verbose=falseYou can reload the configuration at runtime using the mc_reload_config command.
All commands are accessible through Claude Code's MCP integration:
mc_pause- Pause the gamemc_resume- Resume the gamemc_toggle- Toggle pause statemc_status- Get current state (PAUSED/RUNNING)
mc_get_stack- Main thread stack trace (demangled)mc_get_all_stacks- All threads stack traces (demangled)mc_get_logs- Recent log messagesmc_get_errors- Recent errors with stack tracesmc_clear_errors- Clear error cache
mc_get_performance- FPS, MSPT, memory usagemc_get_memory- Detailed memory statistics
mc_get_entities- List all entitiesmc_inspect_entity <id>- Inspect specific entitymc_get_player- Player informationmc_get_chunks- Loaded chunk count
mc_get_gl_info- OpenGL vendor, renderer, versionmc_get_gl_state- Current GL state flagsmc_get_gl_errors- OpenGL error queue
mc_get_class_info <className>- Class fields and methodsmc_get_srg_status- SRG mapper statistics
mc_reload_config- Reload configuration file
MCPIsNotMCP- Main mod class, initializationDebugConfig- Configuration managementDebugTcpService- TCP server with thread poolDebugCommands- Command implementationsSRGMapper- Name deobfuscation
MixinMinecraftPause- Game pause functionalityMixinLogCapture- Log message captureMixinExceptionCapture- Exception tracking
- Connection Pooling - Reuses TCP connections for performance
- Retry Logic - Automatic retry with exponential backoff
- Error Handling - Detailed error messages and recovery
- Graceful Shutdown - Proper cleanup on exit
- Volatile fields for cross-thread visibility
- Synchronized blocks for shared state
- Wait/notify pattern for pause control
- Concurrent collections for caching
- Thread pool for request handling
- Proper socket cleanup
- Graceful shutdown procedures
- Timeout handling
- Connection pooling reduces overhead
- Circular buffers for log/error caching
- Lazy initialization where appropriate
- Efficient reflection caching
✅ Fixed in v2.0.0 - Now uses correct injection point (runTick())
- Verify Minecraft is running
- Check port configuration (default: 25566)
- Ensure no firewall blocking
- Check
config/mcpisnotmcp.properties
- View Minecraft logs for errors
- Enable verbose logging:
logging.verbose=true - Use
mc_get_errorsto see captured exceptions - Verify mod is loaded: check mods list in-game
- Verify Node.js version (18+)
- Check
npm installcompleted successfully - Verify path in Claude Code settings is absolute
- Restart Claude Code after configuration changes
./gradlew buildcd mcp-server
npm run dev # Auto-reload on changes- Add command handler in
DebugTcpService.java - Implement logic in
DebugCommands.java - Add tool definition in
mcp-server/index.js - Update documentation
- 🐛 Fixed pause functionality - Uses correct
runTick()injection - ✨ Configuration system - Runtime configurable settings
- ✨ Connection pooling - Improved performance and reliability
- ✨ Retry logic - Automatic retry with exponential backoff
- ✨ Thread safety - Proper synchronization throughout
- ✨ Better error handling - Detailed error messages and recovery
- ✨ SRG mapper improvements - Better deobfuscation support
- 📝 Complete refactor - Cleaner architecture and code quality
- Initial release
- Basic debugging functionality
- MCP integration
Contributions welcome! Please:
- Fork the repository
- Create a feature branch
- Make your changes
- Test thoroughly
- Submit a pull request
See LICENSE.txt for details.
- Based on Techguns2 mod structure
- Uses Forge Mixin for bytecode manipulation
- Integrates with Claude Code via MCP protocol
For issues and questions:
- Check the troubleshooting section
- Review the logs
- Open an issue on GitHub
Note: This is a development/debugging tool. Use in production environments at your own risk.