The MCP server is now a ROS node and the only way in or out, per the owner's decision that ROS never leaves the robot. It serves MCP on the USB address only with a bearer token, keeps the stable tool name look() (which waits for the next camera frame, so it is never stale, and passes the camera's JPEG through), and registers turn_head/head_position only when a head is fitted, which today it is not. While an authenticated client is connected it republishes the agent heartbeat on /hermes/state, so the face wakes on connect and sleeps about 40 s after the client leaves; look() also makes the face squint. The token is generated on the Pi into /etc/robot-mcp.env (root:hermes, 640) and never printed. Verified end to end from talos with a real MCP client over the USB link: tools listed, a 157 KB JPEG back in 0.08 s, a wrong token refused, the Wi-Fi path dropped by the firewall. Host config snippets now point at 10.55.0.2. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01AFN8nRRCiDiMN7ChBpHJhs
25 lines
856 B
XML
25 lines
856 B
XML
<?xml version="1.0"?>
|
|
<?xml-model href="http://download.ros.org/schema/package_format3.xsd" schematypens="http://www.w3.org/2001/XMLSchema"?>
|
|
<package format="3">
|
|
<name>hermes_bringup</name>
|
|
<version>0.1.0</version>
|
|
<description>Launch file and parameters that bring up the Hermes robot.</description>
|
|
<maintainer email="noreply@example.com">K. Isom</maintainer>
|
|
<license>UNLICENSED</license>
|
|
|
|
<exec_depend>launch</exec_depend>
|
|
<exec_depend>launch_ros</exec_depend>
|
|
<exec_depend>ament_index_python</exec_depend>
|
|
<exec_depend>camera_ros</exec_depend>
|
|
<exec_depend>hermes_face</exec_depend>
|
|
<exec_depend>hermes_vision</exec_depend>
|
|
<exec_depend>hermes_audio</exec_depend>
|
|
<exec_depend>hermes_mcp</exec_depend>
|
|
|
|
<test_depend>python3-pytest</test_depend>
|
|
|
|
<export>
|
|
<build_type>ament_python</build_type>
|
|
</export>
|
|
</package>
|