"""ROS MCP Tools - Tool implementations organized by category.
This module provides the main registration function to register all ROS MCP tools
with a FastMCP instance.
"""
from fastmcp import FastMCP
from ros_mcp.tools.actions import register_action_tools
from ros_mcp.tools.connection import register_connection_tools
from ros_mcp.tools.images import register_image_tools
from ros_mcp.tools.nodes import register_node_tools
from ros_mcp.tools.parameters import register_parameter_tools
from ros_mcp.tools.robot_config import register_robot_config_tools
from ros_mcp.tools.services import register_service_tools
from ros_mcp.tools.topics import register_topic_tools
from ros_mcp.utils.websocket import WebSocketManager
def register_all_tools(
mcp: FastMCP,
ws_manager: WebSocketManager,
rosbridge_ip: str = "127.0.0.1",
rosbridge_port: int = 9090,
) -> None:
"""Register all ROS MCP tools with the provided FastMCP instance.
This function registers all available tools with the provided WebSocketManager.
Args:
mcp: FastMCP instance to register tools with
ws_manager: WebSocketManager instance to use for ROS connections
rosbridge_ip: IP address of the rosbridge server (default: "127.0.0.1")
rosbridge_port: Port of the rosbridge server (default: 9090)
"""
# Register all tool categories
register_action_tools(mcp, ws_manager)
register_connection_tools(mcp, ws_manager, rosbridge_ip, rosbridge_port)
register_robot_config_tools(mcp, ws_manager)
register_image_tools(mcp)
register_node_tools(mcp, ws_manager)
register_parameter_tools(mcp, ws_manager)
register_service_tools(mcp, ws_manager)
register_topic_tools(mcp, ws_manager)