article
README
🚀 jetson - mcp
jetson-mcp 是一个用于通过自然语言监控并远程控制Nvidia Jetson板的MCP(模型上下文协议)服务器,允许同一网络上的客户端连接。借助该服务器,用户能够方便地对Jetson板进行监控与控制,提升设备管理效率。
该项目使用FastMCP库创建服务器。
🚀 快速开始
安装与设置(在Jetson上)
- 克隆仓库:
git clone https://github.com/Zalmotek/jetson-mcp cd jetson-mcp - 运行安装脚本:
该脚本会创建一个Python虚拟环境 (
venv/) 并从requirements.txt安装依赖项。chmod +x install.sh ./install.sh
运行服务器(在Jetson上)
推荐以systemd背景服务的形式运行服务器,具体步骤如下:
- (可选)查找Jetson的IP/主机名:
您需要Jetson的IP地址或主机名以便其他设备连接。可使用命令如
ip addr或hostname -I。 - 运行服务设置脚本:
该脚本创建并启用systemd服务文件 (
/etc/systemd/system/jetson-mcp.service),配置服务器以调用脚本的用户身份运行,侦听8000端口。chmod +x setup_service.sh sudo ./setup_service.sh - 启动服务:
sudo systemctl start jetson-mcp.service - 验证服务状态:
sudo systemctl status jetson-mcp.service # 检查日志中的错误 sudo journalctl -u jetson-mcp.service -f - 防火墙设置:
确保Jetson的防火墙(如果有活动,例如
ufw)允许8000端口的传入连接。例如对于ufw:sudo ufw allow 8000/tcp
手动运行(用于测试)
服务器最好直接使用Python解释器运行,这将调用脚本中的 mcp.run() 方法:
source venv/bin/activate
# 脚本本身现在会调用 mcp.run() 具有 SSE、主机和端口设置
python app/main.py
从远程客户端连接
一旦服务器在Jetson上运行并在网络上可访问(8000端口允许通过防火墙),可按以下步骤连接:
- 识别服务器地址:
找到Jetson的IP地址(例如
192.168.1.105)或其主机名(例如jetson-nano.local)在您的局域网内。 - 配置客户端:
在您的MCP客户端应用程序中(可以是自定义脚本、一个像MCP Inspector这样的UI,或者可能是通过网络端点支持的Cursor/Claude),配置它连接到MCP服务器的网络地址。
- 特定的连接方法取决于客户端,但它通常涉及指定SSE端点的URL:
http://<jetson_ip_or_hostname>:8000/sse(SSE的常见模式)
- 特定的连接方法取决于客户端,但它通常涉及指定SSE端点的URL:
⚠️ 重要提示
Cursor的
mcp.json文件中,默认情况下会禁用对网络端点的支持。需要启用相关设置以允许通过网络连接到模型服务。
✨ 主要特性
- 使用SSE(服务器发送事件)传输为网络客户端提供MCP工具。
get_jetson_hw_info:读取/etc/nv_boot_control.conf以识别模块/载体板信息。get_jetson_sw_info:读取 Jetpack 版本的/etc/nv_tegra_release和 Linux 内核版本的/proc/version。- 包含脚本用于轻松安装和systemd服务设置。
📦 安装指南
克隆仓库
git clone https://github.com/Zalmotek/jetson-mcp
cd jetson-mcp
运行安装脚本
chmod +x install.sh
./install.sh
💻 使用示例
基础用法
- 安装并运行服务器后,客户端可以通过以下命令获取硬件信息:
curl http://localhost:8000/api/hardware - 要获取软件信息,可以运行:
curl http://localhost:8000/api/software
通过这种方式,您可以轻松监控和管理Jetson设备的状态和信息。
📚 详细文档
功能列表
-
硬件信息查询:
get_jetson_hw_info:返回Jetson的硬件详细信息,包括型号和序列号。
-
软件信息查询:
get_jetson_sw_info:提供当前安装的软件版本和相关系统信息。
扫码联系在线客服