Autoware MCP Integration
  
The Autoware MCP Server provides a universal bridge between ANY AI agent (Claude, GPT, Gemini, or custom agents) and the Autoware autonomous driving stack through the Model Context Protocol (MCP). This enables AI-driven mission planning, real-time vehicle control, and adaptive decision-making for autonomous vehicles.

Click the image above to watch the full autonomous driving demo
Key Features
- Universal AI Support: Works with any MCP-compatible AI agent (Claude, GPT, Gemini, etc.)
- Full Vehicle Control: Complete control over Autoware's autonomous driving features
- Real-Time Monitoring: Concurrent monitoring of perception, planning, and vehicle state
- Launch Management: Start, stop, and manage ROS2 launch sessions
- Safety Systems: Comprehensive safety validation at every level
- Mission Execution: Support for complex multi-step missions with waypoints
Quick Start
Prerequisites
- Ubuntu 22.04 LTS
- ROS2 Humble
- Python 3.10+
- Autoware 0.45.1
Installation
# Clone the repository
git clone https://github.com/your-org/autoware-mcp.git
cd autoware-mcp
# Install uv (Python package manager)
curl -LsSf https://astral.sh/uv/install.sh | sh
# Install dependencies with uv
uv sync --all-extras --dev
Basic Usage
- Start the MCP Server:
# Source your ROS2/Autoware workspace
source ~/autoware/install/setup.bash
# Start the MCP server
uv run autoware-mcp
- Connect with Claude Code:
Add to your Claude Code configuration file (claude_desktop_config.json): ``json { "mcpServers": { "autoware": { "command": "uv", "args": ["run", "autoware-mcp"], "env": { "ROS_DOMAIN_ID": "your_domain_id" } } } } ``
- Example Prompts for AI Agents:
Since AI agents may not have specific knowledge about autonomous driving, use clear, step-by-step prompts:
To launch a planning simulation: `` Please launch a planning simulation for Autoware using the MCP tools. Use the start_launch tool with the planning_simulation_mcp.launch.py file. ``
To run an autonomous driving sequence: ``` Please run the complete autonomous driving sequence:
- Initialize the vehicle's localization at the starting position
- Clear any existing route and set a new route to the goal position
- Change the operation mode to autonomous
- Monitor the vehicle's progress until it reaches the destination
- Stop the simulation when complete
**To monitor vehicle state:**
Please check the current vehicle state including position, speed, and route status using the get_vehicle_state and get_current_route MCP tools. ```
Available MCP Tools
System Management
health_check- Get complete system health statuscheck_autoware_status- Check running Autoware componentsverify_ros2_environment- Verify ROS2 setup
Launch Management
start_launch- Start ROS2 launch filesstop_launch- Stop launch sessionslist_launch_sessions- View active sessionsget_session_status- Get detailed session information
Vehicle Control
set_operation_mode- Change between stop/autonomous/local/remote modesinitialize_localization- Set initial vehicle poseset_route- Set route to destinationset_route_points- Set route with waypointsget_current_route- Get current route status
Vehicle Monitoring
get_vehicle_state- Get vehicle position, speed, and kinematicsmonitor_operation_mode- Monitor current operation modemonitor_localization_state- Check localization statusmonitor_motion_state- Monitor motion readiness
ROS2 Interface
list_ros2_nodes- List all active ROS2 nodeslist_ros2_topics- List all ROS2 topicslist_ros2_services- List all ROS2 servicescall_ros2_service- Call any ROS2 servicepublish_to_topic- Publish to any ROS2 topicecho_topic_messages- Capture messages from topics
Documentation
For comprehensive documentation, please refer to the Developer Guide
Configuration
Create a configuration file config/custom.yaml:
mcp_server:
host: 0.0.0.0
port: 8080
autoware:
ros_domain_id: 42
ad_api_url: http://localhost:8888
safety:
max_velocity: 50.0 # m/s
max_acceleration: 3.0 # m/s²
emergency_deceleration: -8.0 # m/s²
Development
Running Tests
# Unit tests
pytest tests/unit -v
# Integration tests (requires Autoware)
pytest tests/integration -v
# Simulation tests
pytest tests/simulation -v
# All tests with coverage
pytest --cov=autoware_mcp --cov-report=html
Contributing
Please read CONTRIBUTING.md for details on our code of conduct and the process for submitting pull requests.
Safety Notice
WARNING: This system is designed for research and development purposes. Always ensure:
- A safety driver is present during real vehicle testing
- Emergency stop mechanisms are properly configured
- All safety validations are enabled
- Testing is conducted in controlled environments
Troubleshooting
Common Issues
- ROS2 Connection Issues:
export ROS_DOMAIN_ID=42
export RMW_IMPLEMENTATION=rmw_cyclonedds_cpp
- MCP Server Not Responding:
- Check firewall settings
- Verify Autoware is running
- Check logs:
tail -f logs/mcp_server.log
- Performance Issues:
- Monitor resource usage:
htop,nvidia-smi - Check ROS2 topics:
ros2 topic hz /topic_name - Review latency metrics in Grafana dashboard
License
This project is licensed under the Apache License 2.0 - see the LICENSE file for details.
Acknowledgments
- Autoware Foundation for the autonomous driving stack
- Model Context Protocol contributors
- ROS2 and Open Robotics community
Support
For issues and questions:
- GitHub Issues: Create an issue
- Documentation: Read the docs
- Community: Join our Discord
Roadmap
- [ ] Multi-vehicle coordination support
- [ ] Enhanced perception monitoring
- [ ] Cloud-based mission management
- [ ] V2X communication integration
- [ ] Advanced ML-based planning
- [ ] Simulation environment integration
---
Note: This project is under active development. APIs and features may change.











