Token导航 LogoToken导航

MCP Server · 运维云端

NanoKVM MCP Server

NanoKVM MCP服务器是一个基于Model Context Protocol的远程控制工具,允许AI助手通过键盘、鼠标、电源按钮和屏幕捕获远程控制NanoKVM设备。

stdio官方级别未说明来源级核验工具 0
远程控制PythonClaude

快速开始

作者 / 组织
scgreenhalgh
提供方
scgreenhalgh

工具数量

0

来源目录标注

资源数量

0

来源目录标注

提示词数量

0

来源目录标注

GitHub Star

8

仓库热度

收录来源

2 个

MCP World

选型结论

NanoKVM MCP Server 属于运维云端类 MCP Server,公开资料标注 0 个工具,通过stdio 本地进程接入,适配 Claude,有可以直接复制的安装命令;接入前要先准备 会话凭据。

分类

运维云端

传输方式

stdio

认证方式

会话凭据

部署方式

支持远程部署

安装与配置

安装命令

pip install -e .

公开命令不是通用的启动方式,拼不出可靠配置示例;请在客户端 MCP 配置里按官方文档填写 command 和 args。

上手步骤

  1. 1

    准备运行环境

    stdio 服务在本地起进程,需要先装好 对应的运行时,再按安装命令拉取依赖。

  2. 2

    安装服务

    复制下面的安装命令执行;命令里带占位符的位置换成自己的密钥或路径。

  3. 3

    写入客户端配置

    在客户端的 MCP 配置里填启动命令和参数,保存后完全退出客户端再打开,让新配置生效。

  4. 4

    验证是否可用

    连接成功后客户端会列出 0 个工具,随便调一个只读工具确认能返回结果。

接入前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

详细介绍

NanoKVM MCP服务器

用于控制的MCP(模型上下文协议)服务器 Sipeed NanoKVM 设备。这使得像克劳德这样的人工智能助手能够通过键盘、鼠标、电源按钮和屏幕截图远程控制硬件。

什么是NanoKVM?

NanoKVM 是一种基于RISC-V的开源、价格合理的IP-KVM设备。它允许在BIOS级别远程访问计算机,非常适合管理服务器、嵌入式系统或任何无头机器。

什么是MCP?

模型上下文协议 是将AI助手连接到外部工具和数据源的开放标准。该服务器将NanoKVM功能作为MCP工具公开,Claude和其他AI助手可以使用。

特性

类别功能
功率控制通过ATX顶盖打开/关闭电源、重置、强制关闭
键盘键入文本,发送组合键(Ctrl+C、Alt+F4等)
鼠标/触摸点击、移动、滚动、点击绝对屏幕坐标
截图从MJPEG视频流中捕获JPEG格式的显示
ISO安装装载/卸载ISO映像以进行远程操作系统安装
监控电源LED状态、HDD活动、HDMI状态、分辨率

安装

来自源头

git clone https://github.com/scgreenhalgh/nanokvm-mcp.git
cd nanokvm-mcp
pip install -e .

依赖项

  • Python 3.10+
  • mcp -模型上下文协议SDK
  • httpx -异步HTTP客户端
  • websockets -用于实时HID的WebSocket客户端
  • pycryptodome -AES加密用于身份验证
  • pillow -屏幕截图的图像处理

配置

环境变量

变量必填默认描述
NANOKVM_HOST是-NanoKVM IP地址或主机名
NANOKVM_USER没有adminWeb UI用户名
NANOKVM_PASS没有adminWeb UI密码
NANOKVM_SCREEN_WIDTH没有1920目标屏幕宽度(像素)
NANOKVM_SCREEN_HEIGHT没有1080目标屏幕高度(像素)
NANOKVM_HTTPS没有false使用HTTPS而不是HTTP

克劳德桌面版

添加 ~/Library/Application Support/Claude/claude_desktop_config.json (macOS)或 %APPDATA%\Claude\claude_desktop_config.json (Windows):

{
  "mcpServers": {
    "nanokvm": {
      "command": "python",
      "args": ["-m", "nanokvm_mcp.server"],
      "env": {
        "NANOKVM_HOST": "192.168.1.100",
        "NANOKVM_USER": "admin",
        "NANOKVM_PASS": "admin",
        "NANOKVM_SCREEN_WIDTH": "1920",
        "NANOKVM_SCREEN_HEIGHT": "1080"
      }
    }
  }
}

克劳德代码

添加到您的Claude Code MCP配置中:

{
  "mcpServers": {
    "nanokvm": {
      "command": "python",
      "args": ["-m", "nanokvm_mcp.server"],
      "env": {
        "NANOKVM_HOST": "192.168.1.100"
      }
    }
  }
}

可用的MCP工具

功率控制

工具参数说明
nanokvm_poweraction: power, power_long, reset控制电源按钮或重置
nanokvm_led_status-获取电源和HDD LED状态

行动:

  • power -短按(800ms)-正常电源开/关
  • power_long -长按(5000ms)-强制断电
  • reset -按下重置按钮

显示

工具参数说明
nanokvm_hdmi_status-获取HDMI连接状态和分辨率
nanokvm_hdmi_reset-重置HDMI连接
nanokvm_screenshot-以base64 JPEG格式捕获显示

键盘输入

工具参数说明
nanokvm_send_texttext, language键入文本(最多1024个字符)
nanokvm_send_keykey, ctrl, shift, alt, meta发送带有修饰符的单键

支持的密钥:

  • 信件: a-z
  • 数字: 0-9
  • 功能键: f1-f12
  • 导航: up, down, left, right, home, end, pageup, pagedown
  • 控制: enter, escape, tab, backspace, delete, insert, space

鼠标/触摸输入

工具参数说明
nanokvm_tapx, y点击屏幕坐标
nanokvm_clickbutton, x, y点击按钮,可选位置
nanokvm_movex, y将光标移动到位置
nanokvm_scrollamount滚轮(正向=向下)

坐标系:

  • 原点(0,0)位于左上角
  • 坐标以屏幕像素为单位,基于 SCREEN_WIDTH 和 SCREEN_HEIGHT
  • 内部映射到NanoKVM的1-32767绝对坐标范围

存储

工具参数说明
nanokvm_list_images-列出可用的ISO图像
nanokvm_mount_isofile, as_cdrom安装ISO映像
nanokvm_unmount_iso-卸载当前ISO
nanokvm_mounted_image-获取挂载图像信息

系统

工具参数说明
nanokvm_reset_hid-重置键盘/鼠标设备
nanokvm_info-获取NanoKVM设备信息
nanokvm_hardware-获取硬件信息

使用示例

配置后,让Claude:

请求使用的工具
“服务器通电了吗?”nanokvm_led_status
“打开机器电源”nanokvm_power
“重置服务器”nanokvm_power 和 action="reset"
“强制关机”nanokvm_power 和 action="power_long"
键入“root”并按enter键nanokvm_send_text + nanokvm_send_key
“按Ctrl+Alt+Delete”nanokvm_send_key 带有修饰语
“截图”nanokvm_screenshot
点击位置500300nanokvm_click
“安装Ubuntu ISO”nanokvm_mount_iso

程序化使用

您也可以直接使用客户端库:

import asyncio
from nanokvm_mcp import NanoKVMClient

async def main():
    # Initialize client
    client = NanoKVMClient(
        host="192.168.1.100",
        username="admin",
        password="admin",
        screen_width=1920,
        screen_height=1080,
    )

    try:
        # Check power status
        status = await client.get_led_status()
        print(f"Power LED: {status['pwr']}, HDD LED: {status['hdd']}")

        # Get HDMI info
        hdmi = await client.get_hdmi_status()
        print(f"Resolution: {hdmi['width']}x{hdmi['height']}")

        # Type some text
        await client.paste_text("Hello, World!")

        # Send Enter key
        await client.send_key("enter")

        # Take a screenshot
        screenshot = await client.screenshot()
        with open("screenshot.jpg", "wb") as f:
            f.write(screenshot)

        # Click at coordinates
        await client.tap(500, 300)

        # Power cycle
        await client.reset()

    finally:
        await client.close()

asyncio.run(main())

API 参考

看 API_REFERENCE.md 有关NanoKVM REST API和WebSocket协议的完整文档,包括:

  • 身份验证(AES-256-CBC加密)
  • 所有具有请求/响应格式的REST端点
  • 用于键盘和鼠标的WebSocket HID协议
  • USB HID按键代码参考
  • 通过直接SSH HID访问 /dev/hidg*

运作原理

建筑

┌─────────────────┐     HTTP/WS      ┌─────────────────┐
│   MCP Client    │◄────────────────►│    NanoKVM      │
│  (Claude, etc.) │                  │                 │
└────────┬────────┘                  │  ┌───────────┐  │
         │                           │  │ REST API  │  │
    MCP Protocol                     │  └───────────┘  │
         │                           │  ┌───────────┐  │
┌────────▼────────┐                  │  │ WebSocket │  │
│  nanokvm-mcp    │                  │  │   /api/ws │  │
│     Server      │                  │  └───────────┘  │
│                 │                  │  ┌───────────┐  │
│ • Power control │                  │  │   MJPEG   │  │
│ • HID input     │                  │  │  Stream   │  │
│ • Screenshots   │                  │  └───────────┘  │
└─────────────────┘                  └─────────────────┘

沟通方法

特征方法端点
身份验证RESTPOST /api/auth/login
电源控制RESTPOST /api/vm/gpio
文本输入RESTPOST /api/hid/paste
按键/鼠标事件WebSocket/api/ws
截图RESTGET /api/stream/mjpeg (解析)
ISO挂载RESTPOST /api/storage/image/mount

发展

设置

# Clone repository
git clone https://github.com/scgreenhalgh/nanokvm-mcp.git
cd nanokvm-mcp

# Install with dev dependencies
pip install -e ".[dev]"

# Run tests
pytest

项目结构

nanokvm-mcp/
├── nanokvm_mcp/
│   ├── __init__.py      # Package exports
│   ├── server.py        # FastMCP server with tool definitions
│   ├── client.py        # NanoKVM API client (REST + WebSocket)
│   ├── auth.py          # AES password encryption
│   └── hid.py           # USB HID keycodes and helpers
├── pyproject.toml       # Package configuration
├── README.md            # This file
└── API_REFERENCE.md     # Complete API documentation

故障排除

连接被拒绝

  1. 验证NanoKVM是否可访问: ping
  2. 检查web UI是否可访问: http://
  3. 验证凭据是否正确

认证失败

  1. 默认凭据为 admin/admin
  2. 检查NanoKVM web UI中的密码是否已更改
  3. 可以在中禁用身份验证 /etc/kvm/server.yaml

HID输入不工作

  1. 尝试 nanokvm_reset_hid 工具
  2. 检查NanoKVM web UI中的“重置HID”
  3. 验证USB电缆与目标计算机的连接
  4. 检查 /dev/hidg* 设备通过SSH存在于NanoKVM上

屏幕截图超时

  1. 确保HDMI已连接并检测到信号
  2. 检查 nanokvm_hdmi_status 用于连接状态
  3. 尝试 nanokvm_hdmi_reset 重新初始化

许可证

麻省理工学院

相关项目

工具与能力

工具数量

0

资源数量

0

提示词数量

0

能力标签

远程控制Python本地部署硬件控制AI集成服务器管理IP-KVM

支持客户端

Claude

数量来自来源目录的标注,具体工具清单以官方文档为准。

典型使用场景

看服务状态

查询容器、日志和监控指标,定位异常。

执行部署变更

在权限范围内触发发布、回滚和环境切换。

核对资源用量

汇总用量,找出闲置和超额的部分。

选择建议

值得选的地方

  • 只提供 0 个工具,职责集中,接入后不容易误操作。
  • 有现成的安装命令,不用自己找入口,照着跑就能起服务。
  • 公开说明写得比较完整,接入前能看清能力边界。

先想清楚的地方

  • stdio 方式要求本地装好 运行环境,换机器要重新装一遍。
  • 需要自备会话凭据,没有凭据没法直接试。
  • 第三方目录整理,版本更新和行为细节以官方仓库为准。

更适合

  • 需要在运维云端场景里让模型直接调用外部能力的人。
  • 已经在用 Claude 的用户,接入路径最短。
  • 想先快速试一下、能接受在本地跑服务的人。

不太适合

  • 完全不想在本地装环境的人。
  • 暂时拿不到会话凭据的人。
  • 需要厂商级 SLA 和技术支持的生产环境。

同类对比

5 个同类
MCP Server工具数传输方式安装命令收录来源最后核验
NanoKVM MCP Server

MCP World · 本页

0stdio有2 个2026-05-17
Ui Tars Desktop 8a825770

MCP World

0stdio有1 个2026-05-17
Elie222 MCP

MCP World

0未说明未标注1 个2026-05-17
Arizeai Phoenix MCP

MCP World

0stdio有3 个2026-05-17
Unity MCP 87ee506e

MCP World

42HTTP有2 个2026-05-17

按同分类和工具数量挑出最接近的几条,字段以各自详情页为准。

常见问题

5 条

NanoKVM MCP Server 怎么安装?

公开资料给出的安装命令是 pip install -e .,运行环境为 未标注。装完后按客户端要求写进 MCP 配置,重启客户端生效。

NanoKVM MCP Server 怎么在 Claude Desktop、Cursor 里配置?

它是stdio 本地进程,客户端配置里要写启动命令和参数,运行环境是 未标注;保存后完全退出客户端再打开,配置才会生效。

NanoKVM MCP Server 收费吗?

本站只整理公开资料,不代收费用,也没有标注具体价格。是否收费取决于服务本身和背后的接口额度,正式使用前按官方说明确认。

NanoKVM MCP Server 需要 API Key 吗?

公开资料标注的认证方式是会话凭据,也就是要先拿到凭据才能连上;凭据只填在自己本地的配置里,不要写进公开仓库。

NanoKVM MCP Server 支持哪些客户端?

公开资料标注支持 Claude;其他客户端只要能配置 MCP Server,也能用同样的命令或地址接入。

来源信息

继续浏览同类 MCP