A Model Context Protocol server that enables monitoring and remote control of Nvidia Jetson boards using natural language commands over a network connection.
A MCP (Model Context Protocol) server for using natural language to monitor and remotely control a Nvidia Jetson board from clients on the same network.
This project uses the FastMCP library to create the server.
MCP Server Connected:
get_jetson_hw_info
: Reads /etc/nv_boot_control.conf
to identify module/carrier board info.get_jetson_sw_info
: Reads /etc/nv_tegra_release
(for Jetpack version) and /proc/version
(for Linux kernel version).git clone https://github.com/Zalmotek/jetson-mcp cd jetson-mcp
venv/
) and installs dependencies from requirements.txt
.
chmod +x install.sh ./install.sh
The recommended way to run the server is as a background service managed by systemd.
(Optional) Find Jetson IP/Hostname:
You'll need the Jetson's IP address or hostname to connect from other devices. Use commands like ip addr
or hostname -I
.
Run the service setup script:
This script creates and enables a systemd service file (/etc/systemd/system/jetson-mcp.service
) configured to run the server as the user who invoked the script, listening on port 8000.
chmod +x setup_service.sh sudo ./setup_service.sh
Start the service:
sudo systemctl start jetson-mcp.service
Verify Service:
sudo systemctl status jetson-mcp.service # Check logs for errors sudo journalctl -u jetson-mcp.service -f
Firewall: Ensure your Jetson's firewall (if active, e.g., ufw
) allows incoming connections on port 8000 (or your chosen port). Example for ufw
:
sudo ufw allow 8000/tcp
The server is best run directly using the Python interpreter, which will invoke the mcp.run()
method configured within the script:
source venv/bin/activate # The script itself now calls mcp.run() with SSE, host, and port settings python app/main.py
Once the server is running on the Jetson and accessible on the network (port 8000 allowed through firewall):
192.168.1.105
) or its hostname (e.g., jetson-nano.local
) on your LAN.http://:8000/sse
(Common pattern for SSE)Note: Cursor's mcp.json
file is primarily designed for launching local servers via stdio
transport. Connecting Cursor to this networked SSE server might require different configuration steps or might not be directly supported without a proxy. Consult your specific client's documentation for how to connect to a network MCP SSE endpoint.
Hardware Info Tool:
Software Info Tool:
Discover shared experiences
Shared threads will appear here, showcasing real-world applications and insights from the community. Check back soon for updates!