Skip to main content

MCP Server for monitoring and controlling a Jetson board (using FastMCP/SSE).

Project description

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.

Nvidia Jetson

This project uses the FastMCP library to create the server.

MCP Server Connected:

MCP Server Connected

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:
    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.
    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.

    chmod +x setup_service.sh
    sudo ./setup_service.sh
    
  3. Start the service:

    sudo systemctl start jetson-mcp.service
    
  4. Verify Service:

    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:

    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:

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:

Hardware Info Tool

Software Info Tool:

Software Info Tool

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

iflow_mcp_zalmotek_jetson_mcp-0.3.0.tar.gz (411.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

File details

Details for the file iflow_mcp_zalmotek_jetson_mcp-0.3.0.tar.gz.

File metadata

  • Download URL: iflow_mcp_zalmotek_jetson_mcp-0.3.0.tar.gz
  • Upload date:
  • Size: 411.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.0 {"installer":{"name":"uv","version":"0.10.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"13","id":"trixie","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for iflow_mcp_zalmotek_jetson_mcp-0.3.0.tar.gz
Algorithm Hash digest
SHA256 4887f4efb3029a5f80a1a3054106fe58f43e493c668ac4ad6463df7656b104f1
MD5 a2c35a231b7e20519e3e6c6ca70a5066
BLAKE2b-256 719a625bfbe222367fe790d9a810f407af45aaaf8b79b15a4477b924000716ad

See more details on using hashes here.

File details

Details for the file iflow_mcp_zalmotek_jetson_mcp-0.3.0-py3-none-any.whl.

File metadata

  • Download URL: iflow_mcp_zalmotek_jetson_mcp-0.3.0-py3-none-any.whl
  • Upload date:
  • Size: 6.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.0 {"installer":{"name":"uv","version":"0.10.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"13","id":"trixie","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for iflow_mcp_zalmotek_jetson_mcp-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 9995f21210599f696ad7ce7eac1abc8245377ca171c68bbe7006a7c18e37a6aa
MD5 ce9b37723f72f61d9d94d2e60f65e4af
BLAKE2b-256 1ea0250ad4b267753b473c3e7021869c1773b4cfbc0c6c833a15a786182362a3

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page