# DOSBox-X MCP Makefile # Convenient commands for development .PHONY: all build up down logs shell test lint format clean help # Default target all: help # Build the Docker image build: docker compose build # Start DOSBox-X container up: @echo "Starting DOSBox-X..." @echo "Note: Run 'xhost +local:docker' first for X11 display" docker compose up -d @echo "DOSBox-X started. GDB port: 1234" @echo "Connect with: claude mcp add dosbox-mcp" # Start headless (no GUI) up-headless: docker compose --profile headless up -d dosbox-headless @echo "DOSBox-X headless started. GDB port: 1235" # Stop container down: docker compose down # View logs logs: docker compose logs -f # Shell into container shell: docker compose exec dosbox /bin/bash # Run tests test: uv run pytest tests/ -v # Run specific test test-%: uv run pytest tests/ -v -k "$*" # Lint code lint: uv run ruff check src/ # Format code format: uv run ruff format src/ tests/ # Clean up clean: docker compose down -v --rmi local rm -rf __pycache__ .pytest_cache .ruff_cache find . -type d -name '__pycache__' -exec rm -rf {} + 2>/dev/null || true # Install dependencies (development) install: uv sync --dev # Register MCP server with Claude Code register: claude mcp add dosbox-mcp -- uv run --directory $(shell pwd) dosbox-mcp # Unregister MCP server unregister: claude mcp remove dosbox-mcp # Create DOS directory structure init: mkdir -p dos config @echo "Created dos/ and config/ directories" @echo "Place DOS binaries in dos/ directory" # Quick test - launch and attach quicktest: up @sleep 3 @echo "Testing GDB connection..." @nc -zv localhost 1234 && echo "GDB stub is listening!" || echo "GDB stub not responding" # Help help: @echo "DOSBox-X MCP Server" @echo "" @echo "Docker commands:" @echo " make build Build Docker image" @echo " make up Start DOSBox-X (GUI mode)" @echo " make up-headless Start DOSBox-X (headless mode)" @echo " make down Stop container" @echo " make logs View container logs" @echo " make shell Shell into container" @echo "" @echo "Development commands:" @echo " make install Install dependencies" @echo " make test Run tests" @echo " make lint Lint code" @echo " make format Format code" @echo " make clean Clean up" @echo "" @echo "MCP commands:" @echo " make register Register with Claude Code" @echo " make unregister Unregister from Claude Code" @echo "" @echo "Setup:" @echo " make init Create DOS directory structure" @echo " make quicktest Test GDB connection"