Spaces:
Sleeping
Detailed Game Control via MCP Interface
Overview
The MCP interface we've implemented provides comprehensive control over the RTS Commander game, allowing AI agents to both observe and manipulate the game state through standardized tools. This document details exactly what aspects of the game can be controlled via the MCP interface.
Game State Observation
Full Game State Access
The get_game_state() tool provides complete visibility into the game:
Units Information
- All units on the map (player and enemy)
- Unit types (infantry, tanks, helicopters, harvesters)
- Current positions, health, and status
- Cargo capacity for harvesters
- Movement targets and combat targets
- Manual control status
Buildings Information
- All buildings (HQ, power plants, barracks, etc.)
- Building types and positions
- Health status
- Production queues and progress
- Defensive targeting for turrets
Player Information
- Resources (credits)
- Power production and consumption
- Superweapon charge status
- Language preferences
- AI vs human player status
Map Information
- Terrain types (grass, ore, gems, water)
- Fog of war visibility
- Map dimensions
Game Status
- Current game tick
- Game started/over status
- Winner information
- Last AI analysis
Game Actions (Control)
Unit Control
Movement
move_units(unit_ids, target_x, target_y): Move any units to specific coordinates- Supports single unit or group movement
- Automatic formation spreading for multiple units
Combat
attack_unit(attacker_ids, target_id): Command units to attack specific enemies- Works for both unit-vs-unit and unit-vs-building combat
- Sets manual order flags to override AI behavior
Building Control
Construction
build_building(building_type, position_x, position_y, player_id): Construct any building type- Enforces game rules (cost, positioning, requirements)
- Handles all building types: HQ, power plants, barracks, war factories, refineries, defense turrets
Unit Production
send_game_command(command_type="build_unit", ...): Produce units in appropriate buildings- Validates production requirements (barracks for infantry, etc.)
- Manages production queues
Strategic Actions
Superweapon
- Launch nukes when charged
- Prepare and cancel nuke targeting
- Automatic charge management
Game Management
send_game_command(command_type="change_language", ...): Change player languagesend_game_command(command_type="request_ai_analysis", ...): Request tactical analysis
AI Integration
Tactical Analysis
The get_ai_analysis(language) tool provides:
- Strategic situation summary
- Tactical recommendations (4 tips)
- Motivational coaching line
- Language-specific output (EN/FR/ZH-TW)
This connects to the same Qwen2.5-0.5B LLM that powers the in-game AI analysis panel.
Detailed Tool Breakdown
1. get_game_state()
Purpose: Retrieve complete current game state Returns: JSON object with all game information Use Cases:
- Understanding current tactical situation
- Planning strategic moves
- Monitoring resource levels
- Tracking unit positions and health
2. get_ai_analysis(language)
Purpose: Get tactical analysis from built-in AI Parameters:
- language (optional, default="en"): Language for output Returns: JSON with summary, tips, and coach message Use Cases:
- Getting strategic advice
- Understanding tactical priorities
- Learning from AI recommendations
3. move_units(unit_ids, target_x, target_y)
Purpose: Move units to specific location Parameters:
- unit_ids: List of unit IDs to move
- target_x: X coordinate destination
- target_y: Y coordinate destination Returns: Success/failure message Use Cases:
- Positioning units for attack
- Moving harvesters to ore
- Relocating defensive units
- Executing tactical maneuvers
4. attack_unit(attacker_ids, target_id)
Purpose: Command units to attack an enemy Parameters:
- attacker_ids: List of unit IDs to attack with
- target_id: ID of enemy unit to attack Returns: Success/failure message Use Cases:
- Engaging enemy forces
- Targeting high-priority units
- Executing coordinated attacks
- Defending against enemy advances
5. build_building(building_type, position_x, position_y, player_id)
Purpose: Construct a building at specific location Parameters:
- building_type: Type of building to construct
- position_x: X coordinate for placement
- position_y: Y coordinate for placement
- player_id: Player ID (typically 0 for human player) Returns: Success/failure message Use Cases:
- Expanding base infrastructure
- Building production facilities
- Constructing defensive positions
- Managing power supply
6. send_game_command(command_type, **kwargs)
Purpose: Send any supported game command Parameters:
- command_type: Type of command to send
- **kwargs: Command-specific parameters Returns: Success/failure message Supported Commands:
- "move_unit": Move units (same as move_units tool)
- "attack_unit": Attack units (same as attack_unit tool)
- "attack_building": Attack buildings
- "build_unit": Produce units
- "build_building": Build structures (same as build_building tool)
- "stop_units": Stop unit movement
- "prepare_nuke": Prepare superweapon
- "cancel_nuke": Cancel superweapon preparation
- "launch_nuke": Launch superweapon at target
- "change_language": Change player language
- "request_ai_analysis": Request AI tactical analysis
Game Systems Accessible via MCP
1. Economic System
- Resource Management: Monitor and control credits
- Production: Build structures and units
- Power System: Manage power production and consumption
2. Military System
- Unit Control: Full movement and combat control
- Formation Management: Group unit movements
- Combat Tactics: Target selection and engagement
3. Base Building System
- Construction: Build all structure types
- Placement Rules: Respects game constraints
- Production Queues: Manage unit production
4. Strategic Systems
- Superweapon: Nuke launch capability
- AI Analysis: Tactical situation assessment
- Language: Multi-language support
5. Game State Management
- Progress Tracking: Current tick and game status
- Victory Conditions: Monitor win/lose state
- Fog of War: Visibility information
Limitations and Security
Current Limitations
- Player ID Restriction: All actions are restricted to player ID 0 (human player)
- No Direct Enemy Control: Cannot directly control enemy AI units
- Game Rules Enforcement: All actions must comply with game rules
Security Features
- Port Isolation: MCP server runs on separate port (8001) from game server (7860)
- Input Validation: All commands are validated by existing game logic
- Cost Checking: Resource costs are enforced for all building/unit actions
Example AI Strategies Enabled
1. Resource Management AI
An AI could:
- Use
get_game_state()to check current credits - Identify optimal harvester positions with
get_game_state() - Move harvesters using
move_units() - Build refineries with
build_building() - Request analysis with
get_ai_analysis()to confirm strategy
2. Military Tactics AI
An AI could:
- Assess enemy positions with
get_game_state() - Move forces into position with
move_units() - Coordinate attacks with
attack_unit() - Build defensive structures with
build_building() - Get tactical advice with
get_ai_analysis()
3. Base Expansion AI
An AI could:
- Monitor power status with
get_game_state() - Build power plants when needed with
build_building() - Expand to new areas with
move_units() - Construct new production facilities with
build_building() - Verify expansion success with
get_game_state()
Integration with Existing Systems
The MCP interface seamlessly integrates with all existing game systems:
- Connection Manager: Uses the same
handle_commandmethod as human players - AI Analysis: Connects to the same Qwen2.5 LLM system
- Game Rules: All actions respect the same rules as human gameplay
- Notifications: AI actions trigger the same UI notifications
- State Sync: Game state updates are broadcast to all clients the same way
Future Enhancement Possibilities
While the current implementation is comprehensive, potential future enhancements could include:
- Advanced Unit Control: Formation patterns, patrol routes
- Economic AI: Automated resource optimization
- Diplomacy System: Multiplayer interaction controls
- Scenario Management: Custom game setup tools
- Replay System: Game recording and playback controls
Conclusion
The MCP interface provides complete control over all strategic and tactical aspects of the RTS Commander game. AI agents can observe the full game state, make informed decisions using AI analysis, and execute any action available to human players. The implementation maintains all existing game balance and rules while providing a standardized interface for AI integration.