Tart VM MCP 服务器(Deno 实现)
使用说明(Markdown 格式)
- 项目简介
- 该仓库中的 mcp-server-tart.ts 是一个基于 Model Context Protocol (MCP) 的服务端实现,用于对 Tart VM 提供上下文驱动的操作能力。服务端以 Deno 为运行环境,通过 MCP SDK 提供标准化的请求/响应接口,并暴露一组与 Tart VM 相关的工具(如 vm_list、vm_create、vm_start、vm_screenshot 等),支持在客户端通过 MCP 协议调用这些工具。
- 主要功能点
- MCP 核心能力
- ListTools:提供可用的工具集合(名称、描述、输入 schemas)。
- CallTool:接收工具名及参数,执行相应的操作并返回结构化文本/图片等响应。
- Tart VM 控制工具集合
- vm_list、vm_create、vm_start、vm_stop、vm_suspend、vm_exec、vm_screenshot、vm_click、vm_type、vm_key、vm_open_url、vm_configure 等。
- 内置对 Tart CLI 的调用、VNC 交互、SSH 远程执行,以及截图与基本 GUI 操作的封装。
- 传输与协议
- 使用 MCP SDK 提供的 StdioServerTransport,通过标准输入输出进行 JSON-RPC 风格的请求/响应。
- 安全与环境
- 依赖 Deno 运行环境与 Tart 相关工具链,含对 SSH、VNC 的远程交互逻辑,尽可能在无图形环境中执行测试。
- 安装与运行步骤
- 依赖条件
- 需安装 Deno(用于执行 mcp-server-tart.ts)。
- Tart 相关命令行工具(tart、vncdo、sshpass 等)在运行环境可用。
- 获取与运行
- 将仓库中的 mcp-server-tart.ts 放置在可访问路径。
- 使用命令行运行:deno run -A /path/to/mcp-server-tart.ts
- 运行后,服务器通过标准输入输出与 MCP 客户端建立连接,日志将输出到控制台。
- MCP 客户端配置(示例与说明) MCP 客户端需要通过以下配置信息与服务器建立连接(以下为示例,实际路径请替换为你本地/部署环境中的 mcp-server-tart.ts 路径): { "server_name": "tart-vm", "command": "deno", "args": ["run", "-A", "<path-to-mcp-server-tart.ts>"] } 说明:
- server_name:服务器在 MCP 客户端中的标识名称,与服务端创建时的 name 相对应(此实现中为 tart-vm)。
- command:启动服务器所需的解释器或执行程序,在本实现中为 deno。
- args:启动命令的参数,包含执行脚本的路径。请将 <path-to-mcp-server-tart.ts> 替换为实际的文件系统路径。
- 备注:MCP 客户端仅需要提供上述信息来连接服务器;具体的工作流与工具调用通过 JSON-RPC 进行交互,客户端不需要额外的代码变更。
- 基本使用方法
- 启动后,客户端可以通过两类请求与服务器交互:
- 列出可用工具:请求 ListTools,请求返回的工具列表中包含 vm_list、vm_create、vm_start 等工具以及各自输入结构。
- 调用工具:通过 CallTool 请求指定工具名和参数,服务器执行相应操作并返回文本/图片等结果。
- 常见操作示例(流程性描述)
- 查看可用工具:获取工具清单,了解可用操作及输入字段。
- 创建并启动 VM:调用 vm_create 指定镜像与名称,随后调用 vm_start 启动并等待就绪,返回 IP、SSH 地址及 VNC 信息等。
- 进行远程操作:使用 vm_exec 通过 SSH 在 VM 内执行命令,或使用 vm_screenshot 捕捉屏幕等。
- 注意事项
- 服务端通过日志输出在控制台进行运行信息与错误信息的记录。
- VNC 的本地端口和密码信息在启动时会尝试解析并返回,若不支持则使用 Guest 的 VNC(屏幕共享)模式。
- 运行环境应具备 Tart、VNC、SSH 相关工具的依赖与正确配置。
- 额外提示
- 如需在云端或 CI 环境执行,请确保容器/执行环境具备 Deno、Tart、VNC、SSH 的运行权限与网络访问权限。
- 调试与故障排查可关注标准输出日志,以确认 MCP 请求是否正确到达以及工具执行结果。