2026-06-20 22:59:09 +08:00
2026-06-20 16:14:20 +08:00
2026-06-20 22:59:09 +08:00
2026-06-20 15:45:49 +08:00
2026-06-20 16:14:20 +08:00
2026-06-20 16:14:20 +08:00
2026-06-20 22:59:09 +08:00

cc-tweaked-remote-desktop-mcp

这是一个独立运行的 HTTP MCP 服务,用来连接 cc-tweaked-remote-desktop 的远端 WebSocket 会话,并把远程终端、文件系统、eval_lua 等能力暴露给 AI 客户端。

功能说明

  • 独立运行,不依赖 VS Code 插件进程常驻
  • 直接连接已经存在的远端桌面 WebSocket 会话
  • 复刻插件使用的 rawterm WebSocket 协议
  • 通过 MCP 工具暴露远程终端、文件、Lua 执行等能力

默认监听地址:

http://127.0.0.1:60012

MCP 端点同时支持:

  • http://127.0.0.1:60012/
  • http://127.0.0.1:60012/mcp

健康检查地址:

http://127.0.0.1:60012/health

下载方式

如果本机已经安装 Git,直接克隆:

git clone https://git.liulikeji.cn/xingluo/cc-tweaked-remote-desktop-mcp.git
cd cc-tweaked-remote-desktop-mcp

如果不想使用 Git,也可以直接在代码托管页面下载压缩包,解压后进入项目目录。

启动方式

先安装依赖:

npm install

启动 MCP 服务:

npm start

如果启动成功,终端会输出类似内容:

CC remote desktop MCP server listening at http://127.0.0.1:60012

可以再访问健康检查接口确认服务正常:

http://127.0.0.1:60012/health

AI 客户端配置

这个项目是一个 remote 类型的 HTTP MCP 服务。只要你的 AI 客户端支持 MCP,并允许通过 URL 注册远端 MCP,就可以直接连接。

opencode 示例:

{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "cc-rd": {
      "type": "remote",
      "url": "http://127.0.0.1:60012/"
    }
  }
}

如果你的客户端区分根端点和 MCP 端点,也可以填写:

http://127.0.0.1:60012/mcp

通用配置原则:

  • MCP 类型选择 remote
  • MCP 地址填写 http://127.0.0.1:60012/http://127.0.0.1:60012/mcp
  • 先启动本服务,再在 AI 客户端里刷新或重连 MCP

基本使用流程

  1. 启动本 MCP 服务
  2. 在 AI 客户端中配置并连接 cc-rd MCP
  3. 先调用 connect_remote_ws,连接一个已存在的远端 WebSocket 会话
  4. 再调用其他工具,例如查看状态、读取终端、读写文件、执行 Lua
  5. 如需和界面交互,可以调用按键、鼠标、粘贴工具向远端注入输入事件

远端 WebSocket 地址示例:

  • wss://cc-rd.liulikeji.cn/<id>
  • ws://127.0.0.1:4000/<id>

主要工具

  • connect_remote_ws
  • disconnect_remote_ws
  • get_remote_status
  • list_remote_windows
  • get_terminal_text
  • send_key_event
  • send_mouse_click
  • send_paste_event
  • read_remote_file
  • write_remote_file
  • list_remote_directory
  • stat_remote_path
  • create_remote_directory
  • delete_remote_path
  • move_remote_path
  • copy_remote_path
  • replace_remote_text
  • eval_lua
  • close_remote_window

使用说明

  • eval_lua 只要求远端 WebSocket 已连接,并且远端支持自定义 reqtype 26,不要求文件系统能力开启
  • 使用 eval_lua 时,优先用 return 直接返回结果,不要默认用 print(...) 再配合 get_terminal_text 读屏
  • 如需运行系统程序或指定 Lua 文件,可以在 eval_lua 里使用 shell.run("路径/系统程序名", ...)
  • 但更推荐使用 local id = shell.openTab("路径/系统程序名", ...) 在新窗口运行;需要切换时调用 shell.switchTab(id)
  • 可以用 multishell.getFocus() 获取当前窗口 id;如果需要,openTab 后也可以 return id
  • 可以用 shell.programs() 获取当前可运行的软件列表,其中也包含根目录下可直接运行的文件
  • 当你使用 openTab 打开窗口只是为了获取输出信息时,要留意新窗口里的 Press any key to continue;这通常代表程序已经运行完毕,此时应视情况使用按键工具输入按键以关闭该窗口
  • send_key_event 会发送 key,然后立刻发送 key_up;如果目标程序还需要字符输入,可额外提供 charText,这样会紧接着补一个 char
  • send_mouse_click 会发送 mouse_click,然后立刻发送 mouse_up
  • send_paste_event 会发送一个 paste 事件,适合把整段文本直接交给远端程序
  • 文件相关工具依赖远端文件系统能力;如果远端 supportsFilesystem: false,这些工具会不可用
  • read_remote_file 支持 startLineendLine 参数,只返回对应行区间;endLine: -1 表示从起始行一直读取到文件末尾
  • read_remote_file 的按行读取只支持 utf8 编码;如果使用 base64,则返回整个文件内容
  • replace_remote_text 依赖远端支持自定义 reqtype 24
  • 这个 MCP 进程内部当前只维护一个活动中的远端 WebSocket 会话
S
Description
这是一个独立运行的 HTTP MCP 服务,用来连接 cc-tweaked-remote-desktop 的远端 WebSocket 会话,并把远程终端、文件系统、eval_lua 等能力暴露给 AI 客户端。
Readme MIT 99 KiB
Languages
JavaScript 100%