Skip to main content
Glama

Jetson MCP Server

by Zalmotek
README.md4 kB
# jetson-mcp 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. <p align="center"> <img src="resources/nvidia_jetson.jpg" alt="Nvidia Jetson"> </p> This project uses the [FastMCP](https://github.com/jlowin/fastmcp) library to create the server. **MCP Server Connected:** <p align="center"> <img src="resources/mcp_server.png" alt="MCP Server Connected"> </p> ## Features * Provides MCP tools accessible by network clients using the SSE (Server-Sent Events) transport. * **`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). * Includes scripts for easy installation and systemd service setup. ## Setup and Installation (on the Jetson) 1. **Clone the repository:** ```bash git clone https://github.com/Zalmotek/jetson-mcp cd jetson-mcp ``` 2. **Run the installation script:** This script creates a Python virtual environment (`venv/`) and installs dependencies from `requirements.txt`. ```bash chmod +x install.sh ./install.sh ``` ## Running the Server (on the Jetson) The recommended way to run the server is as a background service managed by systemd. 1. **(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`. 2. **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. ```bash chmod +x setup_service.sh sudo ./setup_service.sh ``` 3. **Start the service:** ```bash sudo systemctl start jetson-mcp.service ``` 4. **Verify Service:** ```bash sudo systemctl status jetson-mcp.service # Check logs for errors sudo journalctl -u jetson-mcp.service -f ``` 5. **Firewall**: Ensure your Jetson's firewall (if active, e.g., `ufw`) allows incoming connections on port 8000 (or your chosen port). Example for `ufw`: ```bash sudo ufw allow 8000/tcp ``` ### Running Manually (for testing) The server is best run directly using the Python interpreter, which will invoke the `mcp.run()` method configured within the script: ```bash source venv/bin/activate # The script itself now calls mcp.run() with SSE, host, and port settings python app/main.py ``` ## Connecting from a Remote Client Once the server is running on the Jetson and accessible on the network (port 8000 allowed through firewall): 1. **Identify the Server Address**: Find the Jetson's IP address (e.g., `192.168.1.105`) or its hostname (e.g., `jetson-nano.local`) on your LAN. 2. **Configure Your Client**: In your MCP client application (which could be a custom script, a UI like MCP Inspector, or potentially Cursor/Claude if they support network endpoints), configure it to connect to the MCP server at its network address. * The specific connection method depends on the client, but it will likely involve specifying a URL for the SSE endpoint: * `http://<jetson_ip_or_hostname>: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. ## Examples / Screenshots **Hardware Info Tool:** <p align="center"> <img src="resources/get_hardware_info.png" alt="Hardware Info Tool"> </p> **Software Info Tool:** <p align="center"> <img src="resources/get_software_info.png" alt="Software Info Tool"> </p>

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Zalmotek/jetson-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server