Jetson远程控制服务

一个基于自然语言的Nvidia Jetson板远程监控与控制协议服务器,适用于同一网络内的客户端访问。

  • by Zalmotek
  • Shell
  • 本地部署
  • 11 星标
  • 更新于
在 GitHub 查看 Zalmotek/jetson-mcp

使用说明

杰森·麦克普

MCP(模型上下文协议)服务器,用于使用自然语言从同一网络上的客户端监视和远程控制Nvidia Jetson板。

该项目使用 FastMCP 库来创建服务器。

MCP服务器已连接:

特性

  • 提供网络客户端使用SSE(服务器发送事件)传输可访问的MCP工具。
  • get_jetson_hw_info:阅读 /etc/nv_boot_control.conf 以识别模块/载板信息。
  • get_jetson_sw_info:阅读 /etc/nv_tegra_release (适用于Jetpack版本)和 /proc/version (适用于Linux内核版本)。
  • 包括易于安装和systemd服务设置的脚本。

设置和安装(在Jetson上)

  1. 克隆存储库:
    git clone https://github.com/Zalmotek/jetson-mcp
    cd jetson-mcp
    
  2. 运行安装脚本: 此脚本创建Python虚拟环境(venv/)并从以下位置安装依赖项 requirements.txt.
    chmod +x install.sh
    ./install.sh
    

运行服务器(在Jetson上)

建议将服务器作为systemd管理的后台服务运行。

  1. (可选)查找Jetson IP/主机名: 您需要Jetson的IP地址或主机名才能从其他设备连接。使用以下命令 ip addr 或 hostname -I.

  2. 运行服务安装脚本: 此脚本创建并启用systemd服务文件(/etc/systemd/system/jetson-mcp.service)被配置为以调用脚本的用户身份运行服务器,监听端口8000。

    chmod +x setup_service.sh
    sudo ./setup_service.sh
    
  3. 启动服务:

    sudo systemctl start jetson-mcp.service
    
  4. 验证服务:

    sudo systemctl status jetson-mcp.service
    # Check logs for errors
    sudo journalctl -u jetson-mcp.service -f
    
  5. 防火墙:确保您的Jetson防火墙(如果处于活动状态,例如。, ufw)允许端口8000(或您选择的端口)上的传入连接。示例 ufw:

    sudo ufw allow 8000/tcp
    

手动运行(用于测试)

服务器最好直接使用Python解释器运行,它将调用 mcp.run() 在脚本中配置的方法:

source venv/bin/activate
# The script itself now calls mcp.run() with SSE, host, and port settings
python app/main.py

从远程客户端连接

一旦服务器在Jetson上运行并可在网络上访问(通过防火墙允许端口8000):

  1. 识别服务器地址:查找Jetson的IP地址(例如。, 192.168.1.105)或其主机名(例如。, jetson-nano.local)在您的局域网上。
  2. 配置您的客户端:在您的MCP客户端应用程序中(可以是自定义脚本、类似MCP Inspector的UI,或者如果支持网络端点,则可能是Cursor/Claude),将其配置为在其网络地址连接到MCP服务器。
    • 具体的连接方法取决于客户端,但可能涉及为SSE端点指定URL:
      • http://<jetson_ip_or_hostname>:8000/sse (SSE的常见模式)

注:光标 mcp.json 该文件主要用于通过以下方式启动本地服务器 stdio 运输。将Cursor连接到此联网的SSE服务器可能需要不同的配置步骤,或者在没有代理的情况下可能无法直接支持。 有关如何连接到网络MCP SSE端点,请参阅特定客户的文档。

示例/截图

硬件信息工具:

软件信息工具: