Autoware MCP Server
Provides tools for managing ROS2 launch files, monitoring nodes, topics, and services, enabling direct interaction with the ROS2 environment.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Autoware MCP ServerInitialize localization and set route to the goal."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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 --devBasic Usage
Start the MCP Server:
# Source your ROS2/Autoware workspace
source ~/autoware/install/setup.bash
# Start the MCP server
uv run autoware-mcpConnect with Claude Code: Add to your Claude Code configuration file (
claude_desktop_config.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:
1. Initialize the vehicle's localization at the starting position
2. Clear any existing route and set a new route to the goal position
3. Change the operation mode to autonomous
4. Monitor the vehicle's progress until it reaches the destination
5. Stop the simulation when completeTo 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.Related MCP server: ROS & LLM Integration Bridge
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=htmlContributing
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_cppMCP 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-smiCheck ROS2 topics:
ros2 topic hz /topic_nameReview 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.
Available Tools
57 toolsanalyze_driving_sceneB
Analyze complete driving scene with all sensors. Returns annotated images, detected objects, traffic lights, and driving recommendations for AI decision making.
Returns: Complete scene analysis with images, objects, and recommendations
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description must fully disclose behavior. It describes output but omits behavioral traits such as destructive potential, authentication needs, or performance implications. The description is limited to what is returned.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is relatively concise at two sentences plus a 'Returns:' line. However, it slightly repeats the return information in both the main description and the returns section. It is front-loaded with key actions.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity and the presence of an output schema, the description provides a high-level overview but lacks context on prerequisites, performance, or when the tool is most appropriate. It is adequate but not thorough.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has zero parameters, so the description's role in adding parameter-level meaning is minimal. Baseline is 4 per rubric; the description does not contradict or need to explain parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool analyzes the 'complete driving scene with all sensors' and lists return types like annotated images and detected objects. It distinguishes from siblings by implying comprehensive analysis, but lacks explicit differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidelines are provided on when to use this tool versus alternatives like get_detected_objects or visualize_lidar_scene. The description does not include when-not or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
call_ros2_serviceA
Call any ROS2 service directly.
This is a powerful generic tool that can call any ROS2 service in the system. Use 'list_ros2_services' to discover available services.
Examples:
Clear route: call_ros2_service("/api/routing/clear_route", "autoware_adapi_v1_msgs/srv/ClearRoute", {})
Enable control: call_ros2_service("/api/operation_mode/enable_autoware_control", "std_srvs/srv/Trigger", {})
Accept start: call_ros2_service("/api/motion/accept_start", "std_srvs/srv/Trigger", {})
Returns:
success: Whether the service call succeeded
response: The service response data
error: Error message if call failed
| Name | Required | Description | Default |
|---|---|---|---|
| request | No | Service request data as JSON | |
| service_name | Yes | Full service name (e.g., /api/routing/clear_route) | |
| service_type | Yes | Service type (e.g., std_srvs/srv/Trigger) |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full burden. It mentions return values but does not disclose potential side effects, error handling details, or blocking behavior. The phrase 'powerful generic tool' hints at danger but lacks explicit warnings.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is clear and uses bullet-point examples and return structure. It is fairly concise, though the examples could be shortened slightly. It front-loads the purpose and maintains good structure.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 3 parameters, high schema coverage, and the existence of an output schema, the description is mostly complete. It explains the tool's generic nature and provides examples. However, it could mention that the response structure varies by service type.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds examples demonstrating usage but does not provide additional semantic meaning beyond the schema, such as formatting constraints for the 'request' parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it can 'Call any ROS2 service directly,' which is a specific verb+resource. It distinguishes from sibling tools by being a generic service caller, while siblings like 'set_route' are specialized for specific services.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description advises using 'list_ros2_services' to discover available services and provides examples. However, it does not explicitly mention when not to use this tool (e.g., when a specialized sibling tool exists) or alternative approaches.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
capture_camera_viewA
Capture current camera view and save as image file. Returns path to image that can be viewed with Read tool.
Args: camera: Camera to capture from (front, rear, left, right, traffic_light)
Returns: Dictionary with image_path that can be read with Read tool
| Name | Required | Description | Default |
|---|---|---|---|
| camera | No | front |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It explains input parameter (camera) and output (image path). However, it lacks details on whether the operation is destructive (overwrites existing files?), required permissions, or if it works in all vehicle states.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is efficient with two short paragraphs and a bulleted Args section. Every sentence provides value. Minor improvement could be to remove redundancy in the Returns explanation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given a single parameter and presence of an output schema, the description covers the essential behavior. However, it does not specify file naming, location, or whether multiple captures are allowed. It lacks contextual guidance among many sibling tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 0% description coverage, so the description adds crucial meaning: it lists the allowed values for camera ('front, rear, left, right, traffic_light') and explains its purpose. This goes beyond the schema's minimal information.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Capture current camera view'), resource ('camera view'), and output ('save as image file'). It distinguishes from siblings by being the only tool explicitly for capturing camera images.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions the return path can be used with the Read tool, implying usage context. However, it does not explicitly state when to use this tool versus alternatives like visualize_lidar_scene or analyze_driving_scene, nor does it provide exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_autoware_statusA
Check the current status of running Autoware components.
Analyzes the ROS2 graph to identify:
Active Autoware nodes by category (perception, planning, control, etc.)
Autoware-specific topics
Component health status
Returns detailed status of running Autoware components.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided. The description implies a read-only operation analyzing the ROS2 graph, but does not explicitly state that it has no side effects, require permissions, or have rate limits. For a status check, this is adequate but could be more explicit.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with three sentences: first states purpose, second lists what is analyzed, third states return. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (status check of Autoware components) and the presence of an output schema, the description covers key aspects. It could mention that it requires a running Autoware system, but overall it is complete enough.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has zero parameters, and schema description coverage is 100%. The description adds no parameter information because none exist. Baseline score of 4 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool checks current status of Autoware components and specifies it analyzes the ROS2 graph for active nodes, topics, and health. However, it does not explicitly differentiate from sibling monitoring tools like 'get_system_status' or 'health_check'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like 'get_system_status' or 'monitor_diagnostics'. It does not mention when not to use it or any prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cleanup_orphansA
Clean up orphaned processes from stale MCP instances.
Scans for sessions from dead MCP servers and terminates them. Ensures no zombie processes remain after MCP crashes.
Returns: Information about cleaned up sessions
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses the destructive action (terminates processes) and mentions scanning and zombie removal. However, it does not detail permissions required, reversibility, or scope, leaving some behavioral gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: three sentences plus a returns note. It front-loads the action and provides essential information without any wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no parameters and an output schema, the description covers the purpose and outcome well. It could mention potential side effects or conditions, but overall it is sufficiently complete for the tool's simplicity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has no parameters, so baseline is 4. Description does not need to add param meaning, and it appropriately omits param details.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'clean up' and specific resource 'orphaned processes from stale MCP instances'. It distinguishes this tool from all siblings, none of which perform process cleanup.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when orphaned processes exist but lacks explicit guidance on when not to use or alternatives. With many siblings, clear when-not statements would be beneficial.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
echo_topic_messagesB
Capture and return messages from a ROS2 topic.
Args: topic_name: Name of the topic to echo count: Number of messages to capture (default: 1)
Returns: Captured messages from the topic.
| Name | Required | Description | Default |
|---|---|---|---|
| count | No | Number of messages to capture | |
| topic_name | Yes | Name of the ROS2 topic |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits. It does not state whether the tool blocks until messages arrive, what happens if the topic doesn't exist, or if it has side effects. It only says 'capture and return', which is minimal.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and front-loaded with purpose. The Args/Returns section is somewhat redundant with schema but not harmful. It could be more concise by omitting schema-repeated details, but overall it's efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given an existing output schema and 2 well-documented parameters, the description is adequate for basic usage. However, it lacks context on practical aspects (timeouts, error handling, real-time behavior) that would make it complete for a production agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% (both parameters described in schema). The description does not add extra semantic detail beyond the schema; it merely restates parameter names and default. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action: 'Capture and return messages from a ROS2 topic.' The verb 'capture and return' combined with resource 'messages from a topic' is specific and distinct from siblings like 'get_topic_info' (metadata) or 'get_topic_frequency' (rate).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for capturing a specified number of messages from a topic, but it lacks explicit guidance on when to use this tool over alternatives (e.g., blocking vs non-blocking, real-time vs sampling) and does not mention when not to use it (e.g., for high-frequency topics).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_custom_nodeA
Generate a custom ROS2 node template.
Creates node files in .autoware-mcp/generated/nodes/ with versioning.
Args: name: Name of the node language: Programming language (python or cpp) node_type: Type of node (basic, service, action) interfaces: List of topics/services to interface with
Returns: Path to generated node file
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Name of the node | |
| language | No | Programming language (python or cpp) | python |
| node_type | No | Type of node (basic, service, action) | basic |
| interfaces | No | Topics/services to interface with |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It mentions file creation location and versioning but does not disclose whether files are overwritten, what happens on errors, or any required permissions. For a creation tool, more behavioral context is needed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, with a clear title, argument list, and return value. Every sentence is relevant and there is no unnecessary text. The structure aids quick understanding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the output schema exists and parameters are fully covered, the description adds some value with return path info. However, it lacks behavioral details such as error handling, overwrite behavior, or required environment. Overall adequate but with gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100%, so the schema already documents all parameters. The description repeats the parameter names and types without adding meaningful additional context beyond what is in the schema. It does provide a return value description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it generates a custom ROS2 node template and creates node files with versioning in a specific directory. The verb 'generate' and resource 'custom ROS2 node template' are specific and distinct from sibling tools like generate_launch_file or generate_node_config.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for creating node templates but does not provide explicit guidance on when to use this tool versus alternatives, nor does it mention any prerequisites or when not to use it. The context is clear but lacks exclusions or comparative advice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_launch_fileA
Generate a ROS2 launch file for AI development.
Creates launch files in .autoware-mcp/generated/launches/ with versioning. Templates available: perception_pipeline, planning_pipeline, control_pipeline
Args: name: Name for the launch file (without extension) components: List of components/nodes to include template: Optional template name includes: Other launch files to include remappings: Topic remappings parameters: Parameters to set
Returns: Path to generated launch file and metadata
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Name for the launch file | |
| includes | No | Launch files to include | |
| template | No | Template to use | |
| components | Yes | List of components/nodes | |
| parameters | No | Parameters | |
| remappings | No | Topic remappings |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must cover behavioral traits. It mentions versioning and a specific output directory, which implies non-destructive behavior, but does not clarify whether files are overwritten, permissions required, or side effects on the system.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is relatively concise: two short paragraphs and a bullet list. The bullet list is redundant with the schema but does not significantly bloat it. The first sentence clearly states the tool's purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 6 parameters, 2 required, no enums, and an output schema exists, the description adequately states the return value. However, it lacks details on versioning behavior, naming conventions, or error handling, which would be helpful for a file generation tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3. The description repeats parameter names and types from the schema without adding new meaning (e.g., 'name: Name for the launch file' is identical to the schema). No additional semantic value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Generate a ROS2 launch file for AI development.' It specifies the verb (generate) and resource (ROS2 launch file), and distinguishes from sibling tools like generate_custom_node or start_launch by focusing solely on launch file generation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not explicitly guide when to use this tool versus alternatives such as generate_custom_node or start_launch. It mentions templates but lacks context on when to choose this over other generation or launch tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_node_configA
Generate configuration file for a ROS2 node.
Creates config files in .autoware-mcp/generated/configs/ with versioning.
Args: node_name: Name of the node parameters: Parameters to configure format: Config format (yaml or json)
Returns: Path to generated config file
| Name | Required | Description | Default |
|---|---|---|---|
| format | No | Config format (yaml or json) | yaml |
| node_name | Yes | Name of the node | |
| parameters | Yes | Parameters to configure |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses file creation location with versioning and return path. However, it does not mention permissions, overwrite behavior, or error handling. No annotations are provided, so the description carries the full burden.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with three sentences and an Args block. It front-loads the main action and provides necessary details without excessive verbosity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description explains the output path and versioning, and an output schema exists. However, it does not clarify versioning details or behavior with duplicate names. Adequate but not comprehensive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already describes all parameters. The description repeats parameter info without adding new constraints or semantics, earning the baseline score of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it generates a configuration file for a ROS2 node, using specific verb 'Generate' and resource 'configuration file'. It distinguishes from sibling tools like 'generate_launch_file' and 'generate_custom_node' by focusing on node configs.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for generating node configuration files but does not explicitly state when to use this tool versus alternatives like 'generate_launch_file'. No when-not-to-use or preconditions are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_configurationA
Get current MCP server configuration.
Returns all configuration parameters including:
Autoware workspace path
ROS distribution
Server settings
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description carries full burden. It discloses the return values (workspace path, ROS distribution, server settings) but does not mention any behavioral traits like side effects, authorization needs, or rate limits. Since it is a read operation, the lack of harm is implicit, but not explicit.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short (two sentences plus a bullet list), front-loaded with the main action, and every sentence adds value. No unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no parameters and an existing output schema, the description is complete. It explains what the tool returns without needing to repeat the output schema. The tool is simple and the description fully captures its purpose and output.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has no parameters, so schema description coverage is 100%. The description adds value by listing the key returned fields, which helps an agent understand the output. Baseline for 0 params is 4, achieved here.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Get current MCP server configuration' with a specific verb and resource. It lists the returned parameters, distinguishing it from other getter tools in the sibling set (e.g., get_system_status, get_vehicle_state).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The context is clear: use when you need the server configuration. No explicit exclusions or alternatives are needed because this tool has a unique purpose. The description implies usage without ambiguity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_cooperation_policiesA
Get current cooperation policies.
Returns: Active cooperation policies
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description only states it returns active cooperation policies. It does not disclose any behavioral traits such as side effects, idempotency, or access requirements, but the read-only nature is assumed from the verb 'get'.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with two short sentences. It is front-loaded with the purpose and a brief return description, containing no unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has no parameters and an output schema exists, the description provides sufficient context for its simple function. However, it could briefly mention that the output is structured or refer to the output schema for details.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has no parameters, and schema description coverage is 100% (0 parameters). The description adds no parameter information beyond the schema, which is adequate for a parameterless tool.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves current cooperation policies (verb 'get', resource 'cooperation policies'), and the name distinguishes it from sibling tools like set_cooperation_policies.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the name 'get' versus 'set' siblings, but there is no explicit guidance on when to use this tool or when to use alternatives like set_cooperation_policies or send_cooperation_commands.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_current_routeB
Get current route state.
Returns: Current route information including waypoints and progress
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no annotations, so the description carries full burden. It does not disclose behavioral traits such as read-only nature, side effects, or permissions. The description only repeats the tool's purpose without additional transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise with two sentences, front-loading the purpose. It is appropriately sized for a simple getter tool, though could include more context without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the existence of an output schema, the description only needs minimal return info. It mentions waypoints and progress, but lacks context such as relationship to sibling tools or when the route state is available. Completeness is adequate but not thorough.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has no parameters, so schema coverage is 100%. The baseline is 3 as no parameter information is needed. The description adds nothing beyond the schema, but that is acceptable given no parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The tool name 'get_current_route' and description 'Get current route state' clearly indicate a retrieval operation. The description mentions return of waypoints and progress, distinguishing it from sibling tools like set_route and set_route_points which are write operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives such as set_route or set_route_points. No context is given for typical usage scenarios or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_detected_objectsA
Get list of currently detected objects (vehicles, pedestrians, etc.) with positions, velocities, and classifications.
Args: object_type: Filter by object type (all, vehicle, pedestrian, bicycle, motorcycle)
Returns: List of detected objects with properties
| Name | Required | Description | Default |
|---|---|---|---|
| object_type | No | all |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. Only states it returns a list with positions, velocities, classifications. Lacks disclosure of latency, accuracy, or any constraints. Minimal behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with clear header and structured Args/Returns. Front-loaded purpose, no redundant words. Highly efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Simple tool with one parameter; description explains filter and output type. Output schema exists, so return details are covered. Overall adequate for complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, but description adds meaning by specifying allowed values (all, vehicle, pedestrian, bicycle, motorcycle) and filter purpose. Compensates well for lacking schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states verb (Get) and resource (list of currently detected objects) with specific attributes (positions, velocities, classifications). Differentiates from sibling perception tools like get_perception_snapshot by focusing on object list with filtering.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implied usage: retrieving detection results. No explicit guidance on when to use this tool versus alternatives like get_perception_snapshot, nor any prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_launch_errorsB
Get error diagnostics from a launch session.
Retrieves error messages and stderr logs.
Args: session_id: Session ID to get errors from
Returns: Error information and diagnostics
| Name | Required | Description | Default |
|---|---|---|---|
| session_id | Yes | Session ID |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description should disclose behavioral traits. It only states it retrieves error messages and stderr logs, but does not mention side effects, idempotency, or whether it requires an active session. Minimal disclosure beyond basic functionality.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise (two sentences plus Args/Returns block) and front-loaded with purpose. However, the Args/Returns section is redundant with the description. No fluff, but could be more streamlined.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the low complexity (one parameter, simple read), the description covers the purpose and return type. An output schema exists, so return values are covered. Missing usage context slightly reduces completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3. The description adds little beyond the schema: 'Session ID to get errors from' is essentially the same as the schema's 'Session ID'. No additional parameter semantics provided.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it retrieves error diagnostics from a launch session, specifying verb and resource. However, it does not explicitly differentiate from siblings like get_session_logs, which also retrieve logs but likely include all logs for a session.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. It implies usage for error diagnostics after a launch, but does not clarify prerequisites, exclusions, or compare to get_session_logs.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_node_infoA
Get detailed information about a specific ROS2 node.
Args: node_name: Full name of the node (including namespace)
Returns: Node information including publishers, subscribers, services, and parameters.
| Name | Required | Description | Default |
|---|---|---|---|
| node_name | Yes | Name of the ROS2 node |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It states what the tool returns but does not explicitly disclose read-only behavior, side effects, or requirements. The description is adequate but lacks explicit safety or behavioral notes.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and well-structured: a single sentence stating the purpose, followed by Args and Returns. Every sentence is informative and there is no wasted text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description adequately covers the input and output for a simple info retrieval tool. It mentions what the return includes (publishers, subscribers, services, parameters). However, it omits error handling or behavior when node is not found, but this is acceptable given the simplicity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds meaning beyond the input schema: it specifies 'Full name of the node (including namespace)', clarifying the expected format. Schema description coverage is 100%, so baseline is 3, but the extra context justifies a 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Get detailed information about a specific ROS2 node.' It uses a specific verb and resource, and distinguishes from sibling tools like 'list_ros2_nodes' which lists all nodes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not provide any guidance on when to use this tool versus alternatives. It only describes the required argument but no context such as prerequisites or when not to use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_perception_snapshotA
Get comprehensive perception snapshot with camera, LiDAR, and object detection overlays. Returns multiple images and object data.
Returns: Dictionary with multiple image paths and detection data
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It states the output includes multiple images and object data in a dictionary with paths, but lacks details on potential latency, format specifics, or blocking behavior. Adequate but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise with two sentences plus a return line, front-loaded with key information. Every sentence adds value without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of multi-modal data and the existence of an output schema (covering return details), the description is reasonably complete. It mentions images and object data, though it could be slightly more specific about the number of images or type of detection data.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters exist, baseline is 4. The description adds meaning beyond the empty schema by explaining what the tool returns and its composition.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get' and the resource 'comprehensive perception snapshot', listing specific components (camera, LiDAR, object detection overlays). It distinguishes well from siblings like capture_camera_view, get_detected_objects, and visualize_lidar_scene.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for a multi-sensor snapshot, but does not explicitly state when to use this tool versus alternatives like capture_camera_view or get_detected_objects. No when-not-to-use guidance is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_session_logsA
Get buffered logs from a launch session.
Retrieves the last N lines from session log files.
Args: session_id: Session ID lines: Number of lines to retrieve stream: Log stream to read (stdout or stderr)
Returns: Log content and metadata
| Name | Required | Description | Default |
|---|---|---|---|
| lines | No | Number of lines to retrieve | |
| stream | No | Log stream (stdout or stderr) | stdout |
| session_id | Yes | Session ID |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description holds full burden. It indicates read-only retrieval of buffered logs but lacks details on side effects, limitations, or whether logs are consumed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with a clear structure: title, summary, parameters, returns. Every sentence adds value without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool complexity, schema coverage, and presence of output schema, the description provides adequate completeness with parameter and return value explanations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, but the description adds meaningful context beyond schema, such as clarifying the log stream as stdout or stderr.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves buffered logs from a launch session, using specific verbs and resource. It distinguishes from siblings like get_launch_errors.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for retrieving logs after a launch session but does not explicitly state when to use this tool versus alternatives or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_session_statusB
Get detailed status of a specific launch session.
Args: session_id: Session ID to query
Returns: Detailed session status including PID/PGID, state, nodes
| Name | Required | Description | Default |
|---|---|---|---|
| session_id | Yes | Session ID to query |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden. It discloses the return fields (PID/PGID, state, nodes) but does not mention side effects, authorization needs, or rate limits. Some value added but not extensive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences covering purpose, parameters, and returns. Efficient and front-loaded. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Simple tool with one parameter and an output schema (present but not detailed in description). The description is adequate for a query tool, listing key return fields. Could include more context on the output structure, but not necessary given the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and the description repeats the parameter description from the schema without adding additional meaning or syntax details. No extra value beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'get' and the resource 'detailed status of a specific launch session', and adds specificity by listing returned fields (PID/PGID, state, nodes). However, it does not differentiate from sibling tools like get_session_logs or get_system_status.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. The description only states what the tool does without providing context for appropriate usage, prerequisites, or scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_system_statusA
Get current system resource usage and status.
Returns:
CPU usage and frequency
Memory usage
Disk usage
Network interfaces
Process counts
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full weight. It indicates a read-only operation ('Get') and lists return fields, which is sufficient for a zero-parameter tool. No side effects or constraints are noted, but the simplicity mitigates concerns.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and front-loaded with the main verb and purpose. The bullet list of return fields is clear, though a single line might be more efficient. No unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has no parameters and an output schema exists, the description adequately explains the return values. It covers CPU, memory, disk, network, and processes. No additional context about error conditions or usage scenarios is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are zero parameters and schema coverage is 100% (trivial). The description adds value by enumerating the returned data fields, which compensates for the lack of parameter documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Get') and resource ('system resource usage and status'), clearly distinguishing it from sibling tools like 'health_check' or 'get_vehicle_state' which focus on other aspects.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use or when-not-to-use guidance is given, but the purpose is clear enough to infer it as a general system monitoring tool. No alternatives are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_topic_frequencyA
Measure the publishing frequency of a ROS2 topic.
Args: topic_name: Name of the topic to measure duration: How long to measure (default: 5 seconds)
Returns: Frequency information including average Hz.
| Name | Required | Description | Default |
|---|---|---|---|
| duration | No | Duration to measure frequency (seconds) | |
| topic_name | Yes | Name of the ROS2 topic |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. Description implies read-only operation ('Measure') and mentions return of frequency info, but does not explicitly state that the tool is non-destructive or if it has side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise: a single purpose sentence plus structured Args/Returns. No wasted words; information is front-loaded and easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with full schema and output description, the coverage is nearly complete. Minor gap: does not mention prerequisites (e.g., topic must exist) or ROS2 environment context, but overall sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for both parameters. The description repeats the parameter names and defaults, adding minimal value beyond the schema (no examples or format details).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the action ('Measure') and the resource ('publishing frequency of a ROS2 topic'), making the tool's purpose distinct from siblings like 'echo_topic_messages' (view messages) or 'publish_to_topic' (send messages).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool vs. alternatives or when not to use it. The context is implied (measuring frequency), but lacks exclusions or comparative usage tips.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_topic_infoA
Get detailed information about a specific ROS2 topic.
Args: topic_name: Name of the topic (e.g., "/tf", "/map")
Returns: Topic information including message type, publisher count, subscriber count.
| Name | Required | Description | Default |
|---|---|---|---|
| topic_name | Yes | Name of the ROS2 topic |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It implies a read-only operation by using 'Get', but does not explicitly confirm no side effects, authentication needs, or resource implications. Adequate but not explicit.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise, with two paragraphs: one for purpose and args, one for returns. Every sentence is necessary and no wasted words. Well-structured with clear 'Args' and 'Returns' sections.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one input parameter and an output schema, the description is complete: it specifies input, output summary (message type, publisher/subscriber counts), and context. All relevant aspects are covered succinctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with the description of 'topic_name' as 'Name of the ROS2 topic'. The description repeats this and adds examples (e.g., '/tf', '/map'), which adds marginal value. Baseline 3 is appropriate since the schema already documents the parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Get detailed information about a specific ROS2 topic', using a specific verb and resource. It distinguishes from sibling tools like 'list_ros2_topics' (lists topics) and 'echo_topic_messages' (echoes messages) by focusing on detailed metadata of a single topic.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives is provided. The description implies usage for getting topic metadata, but does not state exclusions or contrast with similar tools such as 'get_topic_frequency' or 'list_ros2_topics'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_vehicle_stateA
Get comprehensive vehicle state including dimensions, status, and kinematics.
This unified tool combines vehicle dimensions, current status (speed, gear, steering), and kinematics (position, orientation, velocity) into a single response.
Returns: Complete vehicle state information including: - dimensions: Vehicle physical dimensions - status: Current gear, speed, steering angle - kinematics: Position, orientation, velocities - timestamp: When the data was collected
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries the full burden. It discloses the return categories (dimensions, status, kinematics, timestamp) but does not mention behavioral traits such as read-only nature, permissions, or potential side effects. The name 'get' implies safety, but explicit disclosure is absent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, well-structured with bullet points, and every sentence adds value. It front-loads the purpose and then details the return content without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given zero parameters and an output schema, the description is complete. It explains what the tool does, the categories of returned data, and includes a timestamp note. There are no gaps for this level of complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has no parameters, and schema description coverage is 100%. According to guidelines, baseline is 3 when coverage is high. The description adds no parameter semantics (none exist) but provides return structure, which is not directly about parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly specifies the tool retrieves comprehensive vehicle state including dimensions, status, and kinematics. It uses a specific verb ('Get') and resource ('vehicle state'), and mentions it is a unified tool that combines data, which hints at its advantage over separate monitoring tools, though it does not explicitly differentiate from siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage as a one-stop for vehicle state via 'unified tool', but lacks explicit guidance on when to use it versus alternative sibling tools like monitor_motion_state or get_detected_objects. No when-not or context-based recommendations are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
health_checkA
Get complete health status of the Autoware MCP server.
Returns comprehensive health information including:
System resources (CPU, memory, disk)
ROS2 status and active nodes/topics
Autoware workspace configuration
Overall health status
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| ros2 | Yes | |
| status | Yes | |
| system | Yes | |
| autoware | Yes | |
| timestamp | Yes | |
| uptime_seconds | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It discloses output categories and overall health status but does not explicitly state read-only nature, authentication needs, or potential side effects. However, as a health check, it is reasonably transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is concise, front-loaded with the main purpose, and uses bullet points for clarity. No superfluous information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (no parameters, output schema exists), the description fully specifies what the tool returns and covers all necessary aspects for an AI agent to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Tool has zero parameters with 100% schema coverage. Baseline for 0 parameters is 4. Description adds no parameter info, but none is needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description specifically states 'Get complete health status of the Autoware MCP server' and lists covered categories (system resources, ROS2 status, workspace config). It clearly distinguishes from siblings like get_system_status or check_autoware_status by emphasizing comprehensiveness.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies broad usage for checking overall health but does not explicitly state when to use this tool over more specific ones like get_system_status or get_launch_errors. No guidance on when not to use it or alternative tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
initialize_localizationC
Initialize localization with a pose.
Args: pose: Initial pose with position and orientation pose_with_covariance: Optional pose covariance matrix
Returns: Localization response with success status
| Name | Required | Description | Default |
|---|---|---|---|
| pose | Yes | Initial pose with position and orientation | |
| pose_with_covariance | No | Pose covariance matrix |
Output Schema
| Name | Required | Description |
|---|---|---|
| message | Yes | |
| success | Yes | |
| localized | No | Whether localization is confirmed |
| initialization_state | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description bears full responsibility for behavioral disclosure. It mentions a return value with success status but fails to describe side effects, permission requirements, or behavior on repeated calls. Important behavioral traits like whether this overwrites existing localization are missing.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is brief and well-structured with clear 'Args:' and 'Returns:' sections. Every sentence is functional, with no extraneous information. It is appropriately concise for a tool with simple inputs and outputs.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that an output schema exists, the description adequately covers input/output specifications. However, it lacks context on whether the tool can be called multiple times, if it overwrites existing state, or if it requires a specific system state. This gap reduces completeness for a tool that likely has side effects.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description repeats schema descriptions for both parameters ('Initial pose with position and orientation' and 'Pose covariance matrix') without adding new semantic details, such as the structure of the pose object or how covariance is used.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('initialize localization') and the required resource ('pose'). It is specific about the operation, though it does not elaborate on the context of 'localization' or distinguish it from sibling tools like 'monitor_localization_state'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. There is no mention of prerequisites, scenarios, or conditions under which initialization is appropriate. The description simply states the action without contextual usage advice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_generated_filesA
List all AI-generated files in the project.
Shows generated launches, nodes, and configs.
Returns: Dictionary of generated files by category
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses the return format (Dictionary by category), which is useful. No side effects or permissions are mentioned, but for a read-only list tool, this is sufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences with no superfluous content. The key information is front-loaded (action and resource), followed by examples and return type.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no parameters, a simple list output, and good sibling differentiation, the description is complete. An agent can confidently invoke it without ambiguity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are zero parameters, so schema coverage is trivially 100%. The baseline is 4 per guidelines, and the description does not need to add param info.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'List' and the resource 'AI-generated files', specifying subcategories (launches, nodes, configs). It distinguishes itself from sibling list tools like 'list_launch_sessions' and 'list_ros2_nodes' by focusing on generated files rather than runtime entities.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied as a simple listing tool, but no explicit guidance is provided on when to use it over alternatives or when not to use it. Given the straightforward nature, it's adequate but lacks proactive differentiation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_launch_sessionsA
List all launch sessions with their current status.
Returns comprehensive information about all tracked launch sessions.
Returns: List of session information dictionaries
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description implies a read-only operation but does not explicitly state that it has no side effects or any other behavioral traits. Since no annotations are present, the description could be more explicit about safety or permissions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short but slightly repetitive; the first two sentences convey similar information. It is mostly front-loaded and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no parameters and an output schema that likely defines return values, the description is sufficiently complete for a simple list operation, though it could mention what 'comprehensive information' entails.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are no parameters, so the description does not need to add meaning beyond the schema. The baseline for zero parameters is 4, and the description is adequate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the specific verb 'List' and clearly identifies the resource as 'all launch sessions,' distinguishing it from siblings like get_session_status which likely returns a single session.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives such as get_session_status or get_launch_errors. There is no mention of prerequisites or limitations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_mrm_behaviorsA
List available MRM behaviors.
Returns: List of available MRM behavior types
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full responsibility for behavioral disclosure. It reveals only that the tool lists behaviors, without stating its read-only nature, safety, or any side effects. Lack of detail makes it insufficient for full transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with two clear sentences. No unnecessary words, and the structure is front-loaded with the purpose, followed by a return description.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's low complexity (no parameters, output schema present), the description provides all necessary information. It correctly states what the tool does and what it returns, which is sufficient for an agent to invoke it without ambiguity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so baseline is 4. The description adds minimal value by noting that the return is a list of behavior types, which is already implied by the name. However, since schema coverage is complete by definition, the description does not detract.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: listing available MRM behaviors. It uses a specific verb ('List') and resource ('MRM behaviors'), distinguishing it from sibling tools like 'request_mrm' or 'monitor_mrm_state'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives (e.g., before requesting an MRM). The description does not mention context or prerequisites, leaving the agent without explicit usage cues.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_ros2_nodesA
List all active ROS2 nodes in the system.
Returns list of node names with their namespaces.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses it lists active nodes and returns node names with namespaces. No annotations exist, so description carries full burden and does so well.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences with no unnecessary words. Front-loaded with action and resource.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list tool with output schema, description is complete: states scope (active) and return value (names and namespaces).
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters, schema coverage 100%, description adds meaning by specifying return content (node names and namespaces).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clear verb 'List all active' and specific resource 'ROS2 nodes'. Distinguishes from sibling tools like list_ros2_services and list_ros2_topics.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implies usage for listing active ROS2 nodes. No explicit when-not or alternatives, but purpose is self-explanatory.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_ros2_servicesB
List all active ROS2 services in the system.
Returns list of service names that can be called.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It states the return type (list of service names) but lacks details on side effects, permissions, or whether the operation is safe. It does not mention that listing services is read-only.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences with no wasted words. The purpose and return value are stated upfront.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite no parameters and a likely output schema, the description is too sparse. It does not explain what constitutes an active service, whether the list is dynamic, or if there are any filtering options. For a tool in a large system, more context is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are no parameters, so the description does not need to explain them. The empty schema is fully covered. The description adds the purpose of the tool beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description specifies the verb 'list', the resource 'ROS2 services', and the scope 'in the system'. It clearly distinguishes from sibling tools like list_ros2_nodes and list_ros2_topics by explicitly naming services.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It does not mention prerequisites, exclusions, or context (e.g., before calling a service).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_ros2_topicsA
List all active ROS2 topics in the system.
Returns list of topic names.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It only states basic function with no disclosure of side effects, permissions, or performance impact. Minimal behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, front-loaded with purpose, no wasted words. Highly concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a parameterless tool with an output schema, the description is nearly complete. It covers the core functionality but lacks error handling or polling advice. Still, adequate for a simple list operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Zero parameters, schema coverage 100%. Baseline of 4 applies as no parameter info needed; description adds nothing but also doesn't miss anything.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool lists all active ROS2 topics, with a specific verb and resource. It distinguishes from topic-related siblings like echo_topic_messages, get_topic_info, etc.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives like get_topic_info or echo_topic_messages. No conditions, prerequisites, or when-not-to-use mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
monitor_diagnosticsC
Get real-time diagnostics status.
Returns: Comprehensive diagnostics information
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It claims 'real-time' without clarifying if it provides a continuous stream or a snapshot. No mention of permissions, side effects, or performance implications, leaving key behavioral traits unspecified.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise at two sentences, but lacks necessary detail. Conciseness is good, but under-specification hinders utility.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Simple tool with no parameters and an output schema, but the description fails to provide enough context to distinguish it from many similar sibling tools. The brief description does not cover typical use cases or relational information.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters, so schema coverage is 100%. Baseline 4 per rules. Description adds no parameter information, which is acceptable as none exist.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description states 'Get real-time diagnostics status' which is a clear verb-resource pair, but it is vague about what 'diagnostics' encompasses. Among many sibling monitoring tools like 'get_system_status', 'monitor_localization_state', and 'health_check', it does not differentiate itself adequately.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. With numerous sibling tools that perform similar monitoring functions, the absence of usage context makes selection ambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
monitor_localization_stateB
Monitor localization initialization state.
Returns: Current localization state and quality metrics
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description carries the full burden. It implies a read-only operation ('monitor') but does not disclose details like whether it is expensive, blocking, or what exactly constitutes 'quality metrics'. The transparency is adequate but minimal.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise, consisting of two short sentences. It is front-loaded with the purpose and efficiently uses words with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a monitoring tool with no parameters and an output schema, the description is minimally complete. However, it lacks contextual cues like when to call it (e.g., after initialization), what triggers state changes, or how to interpret quality metrics. Additional context would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are no parameters, and the input schema is empty. Schema description coverage is 100%, so the description does not need to add parameter information. Baseline score of 4 is appropriate for zero parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool monitors localization initialization state and returns state and quality metrics. The verb 'monitor' and resource 'localization initialization state' are specific, but it does not explicitly differentiate from similar sibling tools like monitor_motion_state or monitor_diagnostics.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like monitor_motion_state or initialize_localization. The description lacks any usage context, prerequisites, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
monitor_motion_stateA
Monitor current motion state.
Returns: Current motion state and readiness
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full responsibility. It only states the tool monitors and returns state and readiness, without disclosing behavior like whether it is a continuous stream or a one-shot query, whether it blocks, or if it requires any system state. This is insufficient for a transparent behavioral understanding.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with two short sentences. It is front-loaded with the purpose in the first line. Every word is necessary and no filler is present.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has no parameters and an output schema exists, the description need not detail return values. It adequately describes the core function. However, it could mention any side effects or dependencies, but for a simple monitor tool, this is acceptable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, and schema coverage is trivially 100%. The description adds no parameter information, but the baseline is 4 per the rubric. The description correctly indicates no inputs are needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Monitor current motion state.' The verb 'monitor' and resource 'motion state' are specific. Among sibling tools, 'monitor_motion_state' is distinct from other monitor tools (e.g., 'monitor_localization_state', 'monitor_mrm_state'), making its purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It does not mention prerequisites, conditions, or scenarios where this tool is preferable. For a tool with many sibling monitor tools, such guidance is important.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
monitor_mrm_stateB
Monitor current MRM state.
Returns: Current MRM state and active behaviors
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of disclosure. It states the tool returns MRM state and active behaviors, implying a read-only operation. However, it does not explicitly declare non-destructiveness, performance characteristics, or whether it triggers any side effects. The disclosure is minimal but not misleading.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is exceptionally concise: two sentences, no fluff. The action ('Monitor') is front-loaded. Every word contributes meaning. It efficiently conveys the core purpose and return value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no parameters and an output schema, the description is adequate but incomplete for full context. It does not explain what 'MRM' stands for, which could be essential for an agent. Among many monitor siblings, a brief definition would improve completeness. However, the return description is clear.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are no parameters in the input schema, so the description naturally adds no parameter details. This is acceptable since no parameters exist. The baseline score of 4 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool monitors current MRM state and returns state plus active behaviors. The verb 'monitor' and resource 'MRM state' are specific. However, 'MRM' is not defined, which may cause ambiguity for agents unfamiliar with the domain. It distinguishes from sibling tools like 'list_mrm_behaviors' and 'monitor_localization_state' by focusing on state rather than behaviors or other subsystems.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives such as 'list_mrm_behaviors' or 'monitor_motion_state'. There is no mention of prerequisites, frequency, or context. The agent must infer usage from the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
monitor_operation_modeA
Monitor current operation mode state.
Returns: Current operation mode and control state
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description indicates a read-only monitoring behavior (non-destructive). While no annotations are provided, the description discloses that it returns state information, which is sufficient for a monitoring tool. No behavioral contradictions are present.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description consists of two concise sentences with no wasted words. It is front-loaded with the purpose and clearly states the return value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has no parameters and an output schema (existence indicated), the description sufficiently covers the purpose and return value. No additional context is needed for a simple monitoring tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has no parameters, and schema coverage is 100% (empty). The description does not need to add meaning beyond the schema. It appropriately describes what the tool does without parameter details.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool monitors the current operation mode state and specifies the return includes 'Current operation mode and control state'. It uses the specific verb 'monitor' and the resource 'operation mode', distinguishing it from sibling tools like 'set_operation_mode'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives (e.g., 'monitor_motion_state', 'monitor_diagnostics'). However, the name and description imply it is for reading the operation mode, and siblings like 'set_operation_mode' suggest a clear contrast. Usage is implied but not explicitly stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
monitor_system_heartbeatB
Monitor system heartbeat.
Returns: System heartbeat status
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description bears full responsibility for disclosing behavior. It only states that the tool returns 'System heartbeat status' but does not specify if the action is read-only, whether it has side effects, or if it requires specific permissions. The minimal description fails to convey behavioral traits beyond the name.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise with two lines. It uses a clear 'Returns:' structure. While efficient, it could include a bit more context without becoming verbose, but it earns a high score for brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having an output schema and no parameters, the description lacks completeness. It does not explain the meaning of 'heartbeat status', the possible values, or how it differs from similar tools like 'health_check'. Given the complex sibling set, more context is needed to help the agent select this tool appropriately.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has no parameters, and the input schema is empty with 100% coverage. The description adds no parameter information, but none is needed. The baseline for zero parameters is 4, and the description does not detract from this.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Monitor system heartbeat.' It uses a specific verb and resource, making the action evident. However, it does not differentiate from sibling tools like 'health_check' or 'get_system_status', which may have overlapping functionality.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No usage guidelines are provided. The description does not indicate when to use this tool instead of alternatives, nor does it mention prerequisites or contexts. Given the presence of many similar sibling tools, this is a significant gap.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pause_launchB
Pause a running launch session using SIGSTOP.
Suspends all processes in the session's process group.
Args: session_id: Session ID to pause
Returns: Status of the pause operation
| Name | Required | Description | Default |
|---|---|---|---|
| session_id | Yes | Session ID to pause |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses the use of SIGSTOP and process suspension, implying the session is temporarily halted and can be resumed. However, it does not mention permissions, side effects (e.g., state upon resume), or any destructive behavior. Since no annotations exist, the description carries the full burden but provides only basic behavioral information.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, using a clear docstring format with Args and Returns sections. It avoids unnecessary detail but is not excessively terse. One minor issue: the Returns line is generic but acceptable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has a simple interface (one parameter, no nested objects) and an output schema exists, so the description does not need to cover return values. However, the description omits any contextual information about prerequisites, errors, or post-conditions, which would help completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100% (the parameter 'session_id' is described both in the schema and in the description's Args). The description adds no additional meaning beyond the schema, so a baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly specifies the action ('Pause a running launch session'), the mechanism ('using SIGSTOP'), and the effect ('Suspends all processes in the session's process group'). It distinguishes from sibling tools like resume_launch, stop_launch, and start_launch.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives (e.g., stop_launch for termination, restart_launch for restart). The description lacks context about the appropriate scenarios for pausing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
publish_to_topicA
Publish a message to any ROS2 topic.
This tool allows publishing to any ROS2 topic with the appropriate message type. Use 'get_topic_info' to discover the message type for a topic.
Examples:
Publish twist: publish_to_topic("/cmd_vel", "geometry_msgs/msg/Twist", {"linear": {"x": 1.0}, "angular": {"z": 0.5}})
Publish initial pose: publish_to_topic("/initialpose", "geometry_msgs/msg/PoseWithCovarianceStamped", {...})
Returns:
success: Whether the publish succeeded
error: Error message if publish failed
| Name | Required | Description | Default |
|---|---|---|---|
| message | Yes | Message data to publish as JSON | |
| topic_name | Yes | Topic name to publish to | |
| message_type | Yes | Message type (e.g., geometry_msgs/msg/Twist) |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description must carry behavioral transparency. It states returns success/error, implying attempt and outcome. It lacks details on validation, permissions, or potential system impact (e.g., publishing to critical topics). Adequate but not thorough.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is short, front-loaded with purpose, and includes actionable examples. Every sentence serves a purpose with no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given moderate complexity (3 params, nested object) and presence of output schema, the description covers key aspects: purpose, parameters, return values. Missing edge-case behavior like type mismatch handling, but overall complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for all parameters. The description adds value with concrete examples showing expected JSON structure for message, clarifying semantics beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Publish a message to any ROS2 topic' with explicit verb and resource. It distinguishes from sibling tools like 'echo_topic_messages' (which listens) and 'get_topic_info' (discovers types).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides clear context to use 'get_topic_info' to discover message types, and includes examples. However, it does not explicitly state when not to use this tool or mention alternatives or potential side effects.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
request_mrmC
Request a Minimum Risk Maneuver (MRM).
Args: behavior: MRM behavior type reason: Optional reason for MRM request
Returns: MRM response with success status and current state
| Name | Required | Description | Default |
|---|---|---|---|
| reason | No | Reason for MRM request | |
| behavior | Yes | MRM behavior type |
Output Schema
| Name | Required | Description |
|---|---|---|
| message | Yes | |
| success | Yes | |
| current_state | Yes | |
| available_behaviors | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full responsibility for disclosing behavioral traits. It does not warn about potential destructive effects (e.g., vehicle stopping, trajectory changes), required permissions, or side effects. The return value description is minimal and lacks details on success/failure conditions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with no unnecessary words. It uses a clear Args/Returns structure and front-loads the primary purpose. Every sentence adds value without repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the action-oriented nature of the tool (initiating a maneuver) and the presence of an output schema, the description should provide more behavioral context, such as prerequisites (e.g., vehicle must be in a specific mode), potential impacts, and what the 'current state' entails. The current description leaves significant gaps for an agent to use the tool safely.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the description merely repeats parameter names and types without adding meaning. It does not explain valid 'behavior' values or provide examples of 'reason'. The description adds no value beyond the schema, meeting the baseline but not exceeding it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Request' and the resource 'Minimum Risk Maneuver (MRM)', making the tool's primary function unambiguous. While it distinguishes from sibling tools that monitor or list MRM states, it does not explicitly differentiate itself from similar command tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives, such as monitor_mrm_state or list_mrm_behaviors. There is no mention of prerequisites, preconditions, or scenarios where this tool should or should not be invoked.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
reset_diagnosticsB
Reset diagnostics.
Returns: Success status and message
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. The description only states 'Reset diagnostics' and the return type, without disclosing side effects (e.g., clearing diagnostic data), required permissions, or confirmation behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with no wasted words. It uses a two-line format that is front-loaded and easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a parameterless tool with an output schema, the description is mostly complete: it states the action and return value. However, it could be more explicit about what 'reset' entails (e.g., clears all diagnostic data).
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters exist, so baseline is 4. The description correctly does not add parameter info since none are needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool does 'Reset diagnostics,' which is a specific verb+resource. The name itself distinguishes it from siblings like monitor_diagnostics, but the description does not explicitly differentiate.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like monitor_diagnostics or check_autoware_status. The description does not mention prerequisites or typical scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
restart_launchA
Restart a launch session (stop and start with same config).
Creates a new session with the same launch file and parameters.
Args: session_id: Session ID to restart
Returns: Status with old and new session IDs
| Name | Required | Description | Default |
|---|---|---|---|
| session_id | Yes | Session ID to restart |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description bears full burden. It discloses that it stops and starts a session, creates a new session with same config, and returns old/new IDs. However, it does not mention side effects, prerequisites, or error cases, but is sufficient for a simple tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise with two sentences plus structured Args/Returns. No wasted text; every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple with one parameter and output schema exists (though not shown). Description covers the core action and return value. Could mention error conditions or prerequisites, but overall complete given complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the description of the single parameter ('Session ID to restart') is identical to the schema description. No additional meaning or format details are added, so baseline score of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool restarts a launch session by stopping and starting with the same configuration. It uses a specific verb 'restart' and resource 'launch session', and the phrase 'with same config' distinguishes it from starting a new session or stopping.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for restarting with same config, but does not explicitly state when to use this tool versus alternatives like calling stop_launch then start_launch. No excluded contexts or alternative tools are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
resume_launchA
Resume a paused launch session using SIGCONT.
Continues all processes in the session's process group.
Args: session_id: Session ID to resume
Returns: Status of the resume operation
| Name | Required | Description | Default |
|---|---|---|---|
| session_id | Yes | Session ID to resume |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of behavioral disclosure. It mentions SIGCONT and process continuation, but does not specify prerequisites (e.g., session must be paused), side effects, or safety considerations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with a clear summary line and structured Args/Returns. No extraneous text, but could be condensed further.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple resume action, the description adequately explains the operation and return status. However, it misses context like the session must be paused, and lacks detail on output schema structure.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and the description's parameter info (Session ID to resume) adds no new meaning beyond the schema. Baseline 3 applies as description adds marginal value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool resumes a paused launch session using SIGCONT, which is a specific verb-resource pair. It distinguishes from sibling tools like pause_launch and start_launch by focusing on resumption.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage on paused sessions but does not explicitly state when to use versus alternatives or exclude non-paused sessions. No guidance on prerequisites or context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
send_acceleration_commandC
Send acceleration control command.
Args: acceleration: Target acceleration in m/s²
Returns: Command acknowledgment
| Name | Required | Description | Default |
|---|---|---|---|
| acceleration | Yes | Target acceleration in m/s² |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description must convey behavioral traits. It only states it sends a command and returns acknowledgment, but does not disclose critical details like whether the vehicle must be in a specific mode, whether the command overrides other inputs, or safety implications.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and front-loaded with the action, but lacks structure (e.g., sections for arguments and returns). It could benefit from a more organized format while remaining concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the control nature and safety implications, the description is incomplete. It does not explain the acknowledgment format, error conditions, or prerequisites like vehicle state. With only one parameter and no annotations, more context is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% as the parameter's description already explains 'Target acceleration in m/s²'. The description merely restates this, adding no additional meaning or context beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool sends an acceleration control command, but it does not differentiate from sibling tools like send_velocity_command or send_pedals_command, which might have overlapping functionality.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives, such as send_velocity_command for speed control or send_steering_command for lateral control. The description lacks context on prerequisites or scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
send_cooperation_commandsB
Send cooperation commands.
Args: commands: Cooperation commands
Returns: Command acknowledgment
| Name | Required | Description | Default |
|---|---|---|---|
| commands | Yes | Cooperation commands to send |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, and the description does not disclose any behavioral traits such as destructiveness, authentication needs, or side effects. The agent has no insight into the tool's impact.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very short but includes structured Args and Returns sections. However, it is overly minimal and the Args description is tautological.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite the presence of an output schema, the description lacks context about the nature of cooperation commands, their format, and the tool's role in the overall system.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already describes the 'commands' parameter, and the description adds no new meaning. With 100% schema coverage, baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Send' and the resource 'cooperation commands', distinguishing it from sibling tools like get_cooperation_policies and set_cooperation_policies.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives or what prerequisites are needed. The description does not provide context for appropriate usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
send_pedals_commandC
Send pedals control command.
Args: throttle: Throttle position (0-1) brake: Brake position (0-1)
Returns: Command acknowledgment
| Name | Required | Description | Default |
|---|---|---|---|
| brake | No | Brake position (0-1) | |
| throttle | No | Throttle position (0-1) |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description only mentions sending a command and returning acknowledgment. It omits important behavioral details such as side effects on vehicle motion, safety considerations, or whether the command is asynchronous.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with two sentences plus a structured argument list. Every word serves a purpose, no redundant or superfluous content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite an output schema existing, the description does not explain the return value beyond 'Command acknowledgment'. It lacks context about real-world effects, error conditions, or usage constraints, making it incomplete for a command tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and the description merely repeats the schema's parameter descriptions ('Throttle position (0-1)', 'Brake position (0-1)'). No additional semantics beyond the schema are provided, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states 'Send pedals control command' clearly indicating the verb and resource. It does not explicitly differentiate from sibling tools like send_acceleration_command or send_steering_command, but the specific resource (pedals) provides sufficient distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives such as send_acceleration_command or send_velocity_command. The description lacks context about typical scenarios or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
send_steering_commandA
Send steering control command.
Args: steering_angle: Steering angle in radians
Returns: Command acknowledgment
| Name | Required | Description | Default |
|---|---|---|---|
| steering_angle | Yes | Steering angle in radians |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries the burden. It states the action and parameter but does not disclose side effects, permissions, or what 'Command acknowledgment' entails. Minimally adequate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise: two sentences covering purpose and parameter, with zero waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Tool is simple; output schema exists so return values are covered. However, no context about when this command is appropriate (e.g., only when vehicle is in a certain mode). Adequate for a basic command.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the description repeats the schema's parameter description ('Steering angle in radians') without adding new semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Send steering control command') and the resource ('steering'), distinguishing it from sibling tools like send_acceleration_command or send_velocity_command.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives, nor any prerequisites or context for sending a steering command.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
send_velocity_commandC
Send velocity control command.
Args: velocity: Target velocity in m/s
Returns: Command acknowledgment
| Name | Required | Description | Default |
|---|---|---|---|
| velocity | Yes | Target velocity in m/s |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description carries the full burden of behavioral disclosure. It only states that the tool sends a command and returns an acknowledgment, but does not reveal any side effects, state changes, authentication requirements, or safety considerations. This is insufficient for a control tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise (three lines) and front-loaded with the main action. However, it is arguably too sparse, missing context that could be added without significant length.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has a single parameter and an existing output schema, the description adequately covers the basics. However, it lacks contextual information about the role of velocity control within the broader system (e.g., vehicle longitudinal control) which would help an agent understand its place among many sibling tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description repeats the schema's parameter info ('velocity: Target velocity in m/s') without adding new meaning. It does not include any additional detail about the parameter's usage or constraints.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Send velocity control command'. It uses a verb+resource structure and distinguishes from sibling tools like 'send_acceleration_command' and 'send_steering_command' by specifying 'velocity' control. However, it does not explicitly differentiate its usage context or scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like 'send_acceleration_command' or 'send_pedals_command'. The description lacks prerequisites, exclusions, or context about appropriate scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_cooperation_policiesB
Set cooperation policies.
Args: policies: Cooperation policies configuration
Returns: Success status and active policies
| Name | Required | Description | Default |
|---|---|---|---|
| policies | Yes | Cooperation policies to set |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavioral traits. It only states 'Set cooperation policies' and the return includes 'Success status and active policies', but fails to explain whether setting is additive or overwriting, what permissions are needed, or any side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise, with two short sentences. It is front-loaded with the core purpose. However, some additional detail could be added without harming conciseness, so it is not a perfect 5.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool is a setter with one parameter and an output schema exists, the description is adequate but not complete. It does not explain the expected structure of policies, error behavior, or how the output 'Success status and active policies' is formatted. More context would help the agent use it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% (the 'policies' parameter has a description 'Cooperation policies to set'). However, the parameter is a freeform object with no constraints, and the description adds no structural hints or examples. Baseline 3 is appropriate as schema does most of the work.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Set cooperation policies' with a specific verb and resource. It is distinguishable from sibling tools like 'get_cooperation_policies' (retrieve) and 'send_cooperation_commands' (send commands), so an agent can easily understand its purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. There is no mention of prerequisites, context, or scenarios where this tool is appropriate, leaving the agent to infer usage from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_operation_modeA
Change vehicle operation mode.
Modes:
stop: Stop vehicle operation
autonomous: Switch to autonomous driving
local: Switch to local manual control
remote: Switch to remote control
Args: mode: Operation mode (stop, autonomous, local, remote) transition_time: Maximum time to wait for transition
Returns: Operation mode response with success status and current mode
| Name | Required | Description | Default |
|---|---|---|---|
| mode | Yes | Operation mode: stop, autonomous, local, or remote | |
| transition_time | No | Maximum time to wait for transition (seconds) |
Output Schema
| Name | Required | Description |
|---|---|---|
| message | Yes | |
| success | Yes | |
| timestamp | Yes | |
| current_mode | Yes | |
| requested_mode | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description outlines the return structure ('success status and current mode') and mentions a transition_time parameter. However, it lacks details on behavioral aspects such as error handling, side effects (e.g., what happens to other systems), authentication requirements, or behaviour on timeout. With no annotations, a higher bar is expected.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise and well-structured: a brief intro, a list of modes, and clear 'Args' and 'Returns' sections. Every sentence serves a purpose, and the organization makes it easy for an agent to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with only two parameters and an output schema, the description covers the essential aspects: modes, parameters, and return structure. It could be more complete by clarifying transition behavior (e.g., what happens if the transition fails or times out), but overall it provides sufficient context for safe use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already has 100% coverage with descriptions for both parameters. The description repeats this information in the 'Args' section but does not add significant new meaning beyond stating the modes. The default for transition_time is also in the schema. Thus, the description adds marginal value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Change vehicle operation mode.' It lists all possible modes (stop, autonomous, local, remote), making the resource and action specific. The tool is distinct from sibling tools, which mostly monitor or control other aspects of the vehicle.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implicitly indicates when to use the tool (to change operation mode), but it does not provide explicit guidance on when not to use it or alternative tools. No exclusions or context-dependent advice is given, which limits its helpfulness for an AI agent deciding between tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_routeB
Set a route to a goal pose.
Args: goal_pose: Goal pose with position and orientation waypoints: Optional waypoints option: Route options
Returns: Route response with success status and route information
| Name | Required | Description | Default |
|---|---|---|---|
| option | No | Route options | |
| goal_pose | Yes | Goal pose with position and orientation | |
| waypoints | No | Optional waypoints |
Output Schema
| Name | Required | Description |
|---|---|---|
| message | Yes | |
| success | Yes | |
| distance | No | |
| duration | No | |
| route_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description fully bears the burden of behavioral disclosure. It only states 'Set a route' without describing side effects (e.g., overwriting the current route), asynchronous behavior, error states, or prerequisites. This is insufficient for a mutation command.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and well-structured with clear sections for Args and Returns. It covers all parameters without fluff. However, the inclusion of the Returns section could be considered slightly redundant if the output schema is present, but it aids clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Though the output schema is marked as existing, it is not shown; the description partially compensates by noting the return includes 'success status and route information'. However, behavioral completeness is lacking, as details about side effects or prerequisites are missing for a command tool with no annotations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema coverage is 100%, and the description repeats the schema's parameter explanations ('Goal pose with position and orientation', 'Optional waypoints', 'Route options') without adding new semantic meaning. The baseline score of 3 is appropriate as no additional value is provided.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action 'Set a route' targeting a 'goal pose', establishing a specific verb and resource. This differentiates it from sibling tools like 'get_current_route' (reading) and 'set_route_points' (alternative method), making the tool's purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no explicit guidance on when to use this tool versus alternatives like 'set_route_points'. Usage is implied as the standard method to set a route to a goal pose, but exclusions and preferences are absent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_route_pointsB
Set a route with specific waypoints.
Args: waypoints: List of waypoints with position and orientation option: Optional route options
Returns: Route response with success status and route information
| Name | Required | Description | Default |
|---|---|---|---|
| option | No | Route options | |
| waypoints | Yes | Waypoints for the route |
Output Schema
| Name | Required | Description |
|---|---|---|
| message | Yes | |
| success | Yes | |
| distance | No | |
| duration | No | |
| route_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It mentions the return type (route response with success and information) but does not disclose side effects, required permissions, or whether the operation is destructive. A mutation tool like this should explicitly state that it modifies the route.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise: 4 lines with a clear summary followed by parameter descriptions. No unnecessary words, and the key action is stated first.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the low parameter count and presence of an output schema, the description is fairly complete. It explains the tool's purpose, parameters, and return value. It could be enhanced by noting the context (e.g., Autoware route setting) but is adequate for the agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3. The description adds minor details: 'waypoints with position and orientation' goes beyond the schema's 'Waypoints for the route'. The option parameter is described similarly to the schema. The added value is marginal.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly indicates the tool sets a route with specific waypoints. It uses a specific verb (set) and resource (route with waypoints), and the function name and description together distinguish it from siblings like 'set_route' and 'get_current_route'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives. The sibling 'set_route' suggests a simpler route setting without specific waypoints, but the description does not advise on choosing between them.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
start_launchA
Start a ROS2 launch file and track the session.
Creates a new launch session with PID/PGID tracking for proper cleanup. Sessions persist across MCP reconnections.
Args: launch_file: Path to the launch file parameters: Optional parameters to pass to launch launch_args: Optional command line arguments
Returns: Session information including ID, PID, PGID, and status
| Name | Required | Description | Default |
|---|---|---|---|
| parameters | No | Launch parameters | |
| launch_args | No | Command line arguments | |
| launch_file | Yes | Path to the ROS2 launch file |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It discloses session tracking, PID/PGID cleanup, and persistence across reconnections, but lacks details on potential side effects, system requirements, or error handling.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with sections (headline, explanation, Args, Returns) and is front-loaded with the core purpose. It is concise but could be slightly more efficient by removing redundant phrasing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema, the description adequately covers return values (ID, PID, PGID, status). It explains session persistence and tracking, but does not address error scenarios or behavior when the launch fails.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so parameters are already documented. The description adds minor clarification (e.g., 'optional parameters to pass to launch') but does not significantly enhance understanding beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Start a ROS2 launch file and track the session,' specifying a concrete verb and resource. It distinguishes from sibling tools like 'test_launch_file' or 'stop_launch' by focusing on starting a new session with PID/PGID tracking.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for starting launch files but does not explicitly state when to use this tool versus alternatives like 'test_launch_file' or 'validate_launch_file'. No prerequisites or exclusions are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
stop_launchA
Stop a launch session gracefully or forcefully.
Sends SIGTERM to process group, waits for timeout, then SIGKILL if needed.
Args: session_id: Session ID to stop force: If True, use SIGKILL immediately timeout: Timeout for graceful shutdown
Returns: Status of the stop operation
| Name | Required | Description | Default |
|---|---|---|---|
| force | No | Force kill if true | |
| timeout | No | Graceful shutdown timeout in seconds | |
| session_id | Yes | Session ID to stop |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden and does well: it explains graceful stop (SIGTERM, timeout, then SIGKILL) and the force option (immediate SIGKILL). It clearly signals that the tool terminates processes. While it could mention side effects or irreversibility, the signal-based behavior is sufficiently disclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise: three sentences plus an Args list. It front-loads the main action. The Args list is redundant with the schema but not overly verbose. It could be slightly tighter by omitting the list, but overall it is well-structured and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the stop mechanism and parameters adequately. However, it lacks mention of the return value's meaning (beyond 'status') and does not relate to sibling tools (e.g., hinting that stopped sessions may require start_launch again). The output schema likely fills some gaps, but the description could be more complete for an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% (all parameters described in schema), giving a baseline of 3. The description adds value by explaining how parameters affect behavior: e.g., 'force: If True, use SIGKILL immediately' and how timeout is used in the graceful shutdown sequence. This extra context improves understanding beyond the schema's minimal descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Stop a launch session gracefully or forcefully.' It specifies the verb 'stop' and the resource 'launch session,' and explains the mechanism (SIGTERM then SIGKILL). This distinguishes it from sibling tools like pause_launch (which suspends) or restart_launch (which restarts).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not explicitly guide when to use this tool versus alternatives like pause_launch or restart_launch. It explains how it works but omits context such as 'Use this to terminate a session completely; use pause_launch to temporarily suspend it.' Given multiple related tools, this absence of comparative guidance is a notable gap.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
test_launch_fileC
Test a launch file without fully starting nodes (dry-run).
Validates syntax and optionally attempts to start/stop.
Args: file_path: Path to launch file to test dry_run: If True, only validate without starting
Returns: Test results with any errors or warnings
| Name | Required | Description | Default |
|---|---|---|---|
| dry_run | No | Only validate without starting | |
| file_path | Yes | Path to launch file |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of disclosing behavioral traits. While it mentions dry-run and validation, it fails to specify side effects when dry_run=False (e.g., whether nodes are actually started or stopped), resource requirements (e.g., requires a running ROS environment), or whether the operation is destructive. The description is incomplete for safe tool invocation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is reasonably concise: a one-line purpose, followed by structured 'Args' and 'Returns' sections. It avoids verbose explanations, but the 'Args' section duplicates schema information. The structure is clear and front-loaded with the core purpose, making it easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema (inferred from context), the description need not detail return structure, and it provides a brief 'Returns' line. However, the tool's complexity (testing with optional start/stop) and lack of annotation coverage suggest more context is needed, such as whether a successful test guarantees system stability or what state the system should be in beforehand. The description is adequate but leaves gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents both parameters adequately. The description's 'Args' section largely repeats the schema (file_path as 'Path to launch file', dry_run as 'If True, only validate without starting'). It adds the default value for dry_run, but that is already in the schema. No additional semantic nuance beyond the schema is provided, meeting the baseline for high-coverage schemas.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: testing a launch file with a dry-run option (validating syntax without fully starting nodes) and optionally attempting to start/stop. This distinguishes it from the sibling 'validate_launch_file' which likely only validates syntax without the start/stop option. However, the phrase 'optionally attempts to start/stop' is ambiguous regarding whether the tool actually starts nodes when dry_run=False.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no explicit guidance on when to use this tool versus alternatives like 'validate_launch_file', 'start_launch', or 'stop_launch'. It does not mention prerequisites, when not to use, or how it fits into a workflow. This leaves the agent without decision support for tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
validate_launch_fileA
Validate launch file syntax and structure.
Checks Python syntax and required functions.
Args: file_path: Path to launch file to validate
Returns: Validation results with success status and any errors
| Name | Required | Description | Default |
|---|---|---|---|
| file_path | Yes | Path to launch file |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It mentions checking syntax and required functions, and returns success/errors. However, it doesn't explicitly state that the tool is read-only or has no side effects, leaving some ambiguity.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with a clear structure (Args, Returns). No redundant information, and it front-loads the primary purpose. Slightly more detail than necessary, but still efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the low complexity (one parameter, simple output), the description adequately covers the tool's behavior and return values. The presence of an output schema further reduces the need for return details. Sufficient for an agent to understand usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the description repeats the parameter's purpose ('Path to launch file') without adding additional meaning beyond the schema. Baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool validates launch file syntax and structure, specifically checking Python syntax and required functions. This distinguishes it from siblings like test_launch_file.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool vs alternatives like test_launch_file. The description implies validation before launching, but lacks when-not-to-use or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
verify_ros2_environmentA
Verify ROS2 environment is properly set up.
The MCP server expects users to source their ROS2/Autoware environment before starting the server. This tool checks if the environment is ready.
Returns:
ROS2 availability and version
Environment variables status
Whether system is ready for MCP operations
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully disclose behavioral traits. It states the tool checks environment readiness and returns status, but lacks details on what happens if the environment is not ready (e.g., error vs. false return), whether the tool modifies anything, or any side effects. This leaves ambiguity for the agent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, with a clear opening sentence and a bullet list of return values. It is front-loaded with purpose. Minor improvement could be trimming redundancy, but overall it is well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has no parameters and an output schema exists, the description covers all necessary aspects: purpose, usage context, and return values. It is complete for an agent to understand when and how to invoke this tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has no parameters, and schema coverage is 100%. The description does not need to add parameter meaning since there are none. It appropriately focuses on the tool's behavior rather than parameter documentation. Baseline for zero parameters is 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly defines the tool's purpose: verifying the ROS2 environment setup. It mentions specific checks like ROS2 availability, version, and environment variables. This distinguishes it from sibling tools like check_autoware_status or health_check, which focus on different aspects.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides context: users should have sourced their ROS2/Autoware environment before starting the server. It implies using this tool after server start to verify readiness. However, it does not specify when not to use it or list alternative tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
visualize_lidar_sceneA
Create visualization of LiDAR pointcloud data. Returns image showing 3D scene from specified viewpoint.
Args: view_type: Visualization viewpoint (bev, front, side, rear)
Returns: Dictionary with visualization image path
| Name | Required | Description | Default |
|---|---|---|---|
| view_type | No | bev |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states the tool returns a dictionary with an image path, but does not reveal side effects such as file creation, overwriting, or required permissions. The lack of detail on destructive or read-only nature reduces transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, with two sentences plus a simple Args and Returns section. It front-loads the main action and avoids unnecessary details, making it efficient to read.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (1 parameter, output schema exists), the description covers the main purpose and parameter options. The Returns section adds context about the output, making it reasonably complete. A slight improvement could be describing the image path format.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds meaning beyond the input schema by listing the allowed values for view_type ('bev, front, side, rear'), which are not specified in the schema as an enum. Since schema coverage is 0%, the description compensates well by providing valid options.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Create visualization') and resource ('LiDAR pointcloud data'), making the tool's purpose explicit. It distinguishes itself from siblings like 'capture_camera_view' and 'analyze_driving_scene', which handle different data types or analysis tasks.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is for LiDAR visualization but does not provide explicit guidance on when to use this tool versus alternatives. It lacks comparisons to sibling tools like 'capture_camera_view' or 'analyze_driving_scene', and does not mention any preconditions or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
57 tool updates
v0.1.0- First observed
analyze_driving_scene - First observed
call_ros2_service - First observed
capture_camera_view - First observed
check_autoware_status - First observed
cleanup_orphans - First observed
echo_topic_messages - First observed
generate_custom_node - First observed
generate_launch_file - First observed
generate_node_config - First observed
get_configuration - First observed
get_cooperation_policies - First observed
get_current_route - First observed
get_detected_objects - First observed
get_launch_errors - First observed
get_node_info - First observed
get_perception_snapshot - First observed
get_session_logs - First observed
get_session_status - First observed
get_system_status - First observed
get_topic_frequency - First observed
get_topic_info - First observed
get_vehicle_state - First observed
health_check - First observed
initialize_localization - First observed
list_generated_files - First observed
list_launch_sessions - First observed
list_mrm_behaviors - First observed
list_ros2_nodes - First observed
list_ros2_services - First observed
list_ros2_topics - First observed
monitor_diagnostics - First observed
monitor_localization_state - First observed
monitor_motion_state - First observed
monitor_mrm_state - First observed
monitor_operation_mode - First observed
monitor_system_heartbeat - First observed
pause_launch - First observed
publish_to_topic - First observed
request_mrm - First observed
reset_diagnostics - First observed
restart_launch - First observed
resume_launch - First observed
send_acceleration_command - First observed
send_cooperation_commands - First observed
send_pedals_command - First observed
send_steering_command - First observed
send_velocity_command - First observed
set_cooperation_policies - First observed
set_operation_mode - First observed
set_route - First observed
set_route_points - First observed
start_launch - First observed
stop_launch - First observed
test_launch_file - First observed
validate_launch_file - First observed
verify_ros2_environment - First observed
visualize_lidar_scene
TDQS
Scored across 57 tools
Most tools have distinct purposes, covering ROS2 operations, vehicle control, perception, monitoring, routing, launch management, and code generation. Minor overlaps exist (e.g., set_route/set_route_points, validate_launch_file/test_launch_file, get_detected_objects/analyze_driving_scene) but descriptions help disambiguate.
All tool names follow a consistent verb_noun pattern with snake_case (e.g., list_ros2_topics, get_vehicle_state, send_velocity_command). No mixing of conventions or camelCase, ensuring predictability.
With 57 tools, the server exceeds the recommended 25-tool threshold for coherence. While Autoware is complex, several tools could be merged (e.g., validate/test launch, route variants) to reduce bloat and cognitive load.
The tool set covers core Autoware workflows: perception, localization, routing, control, monitoring, launch management, and code generation. Minor gaps exist (e.g., bag recording, dynamic parameter adjustment), but the surface is largely complete.
Maintenance
Related MCP Connectors
Build, validate, and deploy multi-agent AI solutions from any AI environment.
Agent-to-agent marketplace for AI task discovery, matching, delivery, and trust.
Sovereign Agent OS — Persistent Memory, Governance & Compliance for AI Agents.
Deterministic reasoning stack for AI agents: simulate, decide & compute, plus cross-domain tools.
Related MCP Servers
- AlicenseAqualityAmaintenanceA comprehensive bridge connecting AI agents to Unreal Engine 5.7 through 39 MCP tools for scene manipulation, asset management, and blueprint control. It enables real-time perception and editor automation using the Remote Control API and file-based protocols.252MIT
- AlicenseNot gradedqualityBmaintenanceEnables large language models to interact with ROS robots seamlessly, allowing natural language control, real-time sensor monitoring, and autonomous task execution without modifying existing robot code.Apache 2.0
- AlicenseAqualityAmaintenanceConnects AI agents like Claude to live ROS2 robots, enabling natural language interaction for diagnostics, parameter tuning, and control with safety sandboxing.161MIT
- AlicenseNot gradedqualityBmaintenanceWorld-first unified MCP gateway + Control Barrier Function (CBF-QP) safety engine for agentic robotics, enabling LLMs to control physical robots with mathematically proven safety.MIT