vdsl-mcp
MCP服务器 VDSL --AI原生图像生成平台。
RunPod GPU配置、ComfyUI编排和模型管理——所有这些都可以通过以下方式访问 主控程序 工具。
特性
- RunPod Pod管理 --创建、启动、停止、删除GPU Pod。使用ComfyUI模板自动设置。
- ComfyUI集成 --连接、查询模型、提交工作流、投票结果、下载图像。
- 型号下载 --拥抱的脸(
hf:)CivitAI(cv:)通过自动令牌注入或直接URL。 - B2冷库 --通过rclone在Pod和Backblaze B2之间列出、拉取和推送模型。
- 项目同步 —
$VDSL_WORK_DIR/projects//(笔记、参考、扫一扫、决赛等)在以下时间同步到B2vdsl/projects/独立于输出位置;不需要pod连接。 - 图像批量下载 --将ComfyUI历史记录中的所有输出图像下载到本地目录。
- 批量生成 --提交多个工作流,轮询所有作业,下载所有输出。
- VDSL脚本执行 --运行编译成ComfyUI工作流的Lua脚本。
- RunPod CLI直通 --执行任何
runpod-cli命令与自动API密钥注入。 - 用户界面 API -具有自动身份验证的通用REST API访问。
MCP工具
| 工具 | 说明 |
|---|---|
| 连接 | |
vdsl_connect | 连接到ComfyUI(本地URL或RunPod pod ID) |
| 生成 | |
vdsl_generate | 将工作流程JSON排队并等待完成 |
vdsl_batch_generate | 提交多个工作流、轮询所有工作流、下载输出 |
vdsl_run | 编译Lua脚本→ ComfyUI工作流程→ 生成(支持管道、判断闸门);默认情况下在后台运行 |
vdsl_run_status | 轮询背景的状态 vdsl_run 工作 |
vdsl_run_script | 运行Lua脚本(无生成--仅执行脚本) |
vdsl_interrupt | 取消正在运行或挂起的ComfyUI作业 |
| 型号和目录 | |
vdsl_models | 列出可用的检查点、LoRA、VAE等。 |
vdsl_model_search | 按范围搜索模型(remote=CivitAI, archive=B2铲斗, pod=连接的吊舱)、类型和底座;返回带获取提示的结构化JSON |
vdsl_node_search | 搜索已安装的ComfyUI自定义节点 |
vdsl_catalogs | 浏览VDSL目录条目(相机、照明、人物、质量等) |
| 简介与项目 | |
vdsl_profile_apply | 应用ProfileManifest(YAML/Lua)来配置pod环境;支持流式进度和内联Profile.lua |
vdsl_profile_apply_status | 轮询异步的状态 vdsl_profile_apply 工作 |
vdsl_project_init | 在下面构建一个新的VDSL项目目录 $VDSL_WORK_DIR/projects/ 从模板 |
vdsl_profile_init | 在以下位置构建一个新的Profile Lua DSL文件 /profiles/.lua;与共享根解析 vdsl_project_init; overwrite=false 默认情况下拒绝替换现有文件 |
| 批量编排 | |
vdsl_batch_tools | 通过BatchService提交和管理多作业批处理编排 |
| RunPod基础设施 | |
vdsl_pod_list | 列出所有带有GPU名称、成本和 endpoints[] (路线: ssh-tunnel / cloudflare-proxy / direct) |
vdsl_pod_start | 启动一个pod |
vdsl_pod_stop | 停止吊舱 |
vdsl_pod_create | 创建一个新的pod |
vdsl_pod_delete | 删除pod |
vdsl_pod_setup | 找到或创建一个pod,等待就绪,连接 |
vdsl_volume_list | 列出网络卷 |
| SSH隧道 | |
vdsl_tunnel_open | 打开到pod服务的SSH本地端口转发隧道;当SSH信息不可用时,自动回退到Cloudflare代理 |
vdsl_tunnel_close | 关闭pod的SSH隧道(幂等) |
vdsl_tunnel_list | 列出内存注册表中的所有活动隧道(JSON快照) |
| 远程操作(SSH) | |
vdsl_exec | 在pod上执行shell命令 |
vdsl_task_run | 在pod上启动后台作业 |
vdsl_task_status | 检查后台作业状态 |
vdsl_task_list | 列出所有后台作业 |
vdsl_task_log | 查看后台作业日志输出 |
| 文件传输 | |
vdsl_upload | 将文件上传到ComfyUI输入/目录 |
vdsl_download | 将模型下载到pod(HuggingFace、CivitAI、URL) |
vdsl_image_download | 从ComfyUI历史记录或输出目录下载输出图像 |
vdsl_image_search | 按文件名模式搜索本地图像文件 |
| 冷库(B2) | |
vdsl_storage_list | 列出B2中的文件 |
vdsl_storage_pull | 将型号从B2拉到吊舱 |
vdsl_storage_push | 将模型从pod推送到B2 |
vdsl_storage_archive | 存档:推送→ 验证→ 从pod中删除 |
| 文件同步(vdsl同步) | |
vdsl_sync | 同步 $VDSL_WORK_DIR/projects// B2在 vdsl/projects/ (仅限云端;无需pod连接) |
vdsl_sync_route | 配置或显示同步路由(源↔ 目标URL方案) |
vdsl_sync_status | 获取位置或路线的当前同步状态 |
vdsl_sync_list | 列出所有跟踪的同步位置和路线 |
vdsl_sync_get | 获取特定跟踪文件或同步记录的详细信息 |
vdsl_sync_delete | 从某个位置删除(软删除)跟踪的文件 |
vdsl_sync_restore | 从存档中还原软删除的文件 |
vdsl_sync_errors | 列出位置或路线的同步错误 |
vdsl_sync_poll | 轮询挂起的同步操作和刷新队列 |
vdsl_sync_cancel | 取消正在进行或排队的同步操作 |
vdsl_sync_logs | 查看同步操作日志 |
| 低的 | |
vdsl_queue_status | 查询ComfyUI队列和历史记录 |
vdsl_comfy_api | 通用ComfyUI REST API调用 |
vdsl_runpod_cli | RunPod CLI直通(任何命令) |
安装
# 1. Install the MCP server binary
cargo install vdsl-mcp
# 2. Clone VDSL runtime (Lua DSL modules — required for vdsl_run / vdsl_catalogs)
git clone https://github.com/ynishi/vdsl.git ~/vdsl仅二进制文件就足以直接提交ComfyUI工作流(vdsl_generate). 使用Lua DSL(vdsl_run, vdsl_catalogs),需要VDSL运行时存储库-- 它提供了 lua/ 包含目录定义、编译器和管道逻辑的目录。
配置
环境变量
| 变量 | 必填 | 描述 |
|---|---|---|
VDSL_RUNPOD_API_KEY | 对于RunPod操作 | RunPod API键(runpod.io/console/user/settings) |
VDSL_SSH_KEY | 对于RunPod SSH操作 | pod访问的SSH私钥路径(例如。 ~/.ssh/id_ed25519).回退到 ~/.ssh/id_ed25519 如果未设置 |
VDSL_COMFYUI_TOKEN | 用于经过身份验证的ComfyUI | 用于ComfyUI代理身份验证的承载令牌(RunPod代理使用此令牌) |
VDSL_CIVITAI_TOKEN | 对于CivitAI下载 | CivitAI API令牌-自动插入 cv: 以及CivitAI URL下载 |
VDSL_B2_KEY_ID | 用于B2存储 | Backblaze B2应用程序密钥ID |
VDSL_B2_KEY | 用于B2存储 | Backblaze B2应用程序密钥 |
VDSL_B2_BUCKET | 对于B2存储(可选) | 默认B2存储桶名称(也可以每次调用指定) |
VDSL_COMFYUI_BASE | 可选 | 覆盖pod上的ComfyUI安装路径(默认: /workspace/runpod-slim/ComfyUI).社区模板可以使用 /workspace/ComfyUI 等等 |
VDSL_INLINE_HISTORY_DIR | 可选 | 覆盖用于保存内联Lua代码历史的目录 |
VDSL_ENV_FILE | 可选 | 显式 .env 文件路径。最高优先级 .env 源代码(仍低于操作系统环境值) |
.env 文件自动加载
vdsl-mcp 从以下位置加载变量 .env 启动时的文件,这样就不需要在其中嵌入机密 .mcp.json.搜索顺序(第一个写入者获胜;OS环境始终保留):
- 操作系统环境(已在shell/父进程中导出)
$VDSL_ENV_FILE如果设置~/.config/vdsl-mcp/.env$CWD/.env
推荐布局:保持 .mcp.json env 没有秘密的块(仅 VDSL_WORK_DIR 以及类似的非秘密路径),并将令牌放置在 ~/.config/vdsl-mcp/.env 和 chmod 600.包含文字的值 $ (例如bcrypt哈希)必须在 .env 文件因为 dotenvy 执行 $VAR 非上市价值的扩张。
MCP客户端配置
最小(仅限本地ComfyUI)
{
"mcpServers": {
"vdsl": {
"command": "vdsl-mcp"
}
}
}然后连接 vdsl_connect(url="http://localhost:8188").
已满(RunPod+B2存储)
{
"mcpServers": {
"vdsl": {
"command": "vdsl-mcp",
"env": {
"VDSL_RUNPOD_API_KEY": "rpa_...",
"VDSL_SSH_KEY": "~/.ssh/id_ed25519",
"VDSL_COMFYUI_TOKEN": "your-comfyui-token",
"VDSL_CIVITAI_TOKEN": "your-civitai-token",
"VDSL_B2_KEY_ID": "your-b2-key-id",
"VDSL_B2_KEY": "your-b2-key",
"VDSL_B2_BUCKET": "your-bucket-name"
}
}
}
}用法
快速入门(本地ComfyUI)
vdsl_connect(url="http://localhost:8188")--连接到ComfyUIvdsl_models--列出可用的检查点和LoRAvdsl_generate(workflow)--从JSON工作流生成图像
VDSL Lua DSL
将人类可读的Lua脚本编译到ComfyUI工作流中:
vdsl_catalogs--浏览可用的目录条目(相机角度、照明、人物等)vdsl_run(script_file="~/vdsl/examples/mlua_verify_p1.lua")--编译+生成vdsl_run(code="...", working_dir="~/vdsl")--运行内联Lua代码
这 working_dir 必须指向克隆的VDSL存储库(包含 lua/ 用于模块分辨率)。 当 script_file 使用, working_dir 从脚本的父目录向上移动会自动检测到。
基础设施(RunPod)
vdsl_pod_list--列出带有GPU信息的Podvdsl_pod_setup--查找或创建GPU pod,等待准备就绪vdsl_exec(command="nvidia-smi")--通过SSH在pod上运行命令vdsl_task_run(command="...")--启动长时间运行的后台作业vdsl_download(source="hf:...", target="loras")--将模型下载到pod
SSH隧道(绕过Cloudflare代理)
打开一个稳定的本地端口转发隧道到pod,以避免Cloudflare代理不稳定:
vdsl_tunnel_open(pod_id="...", service="comfyui", remote_port=8188)--开放式隧道;返回本地端口(例如。7100)或者,如果SSH信息不可用,则自动回退到Cloudflare代理URLvdsl_tunnel_list--检查活动隧道(route: ssh-tunnel | cloudflare-proxy)vdsl_connect(url="http://127.0.0.1:7100")--通过隧道连接vdsl_tunnel_close(pod_id="...")--完成后关闭隧道
vdsl_pod_list 在其 endpoints[] 字段,以便您可以一目了然地验证路由。
冷库(B2)
vdsl_storage_list--列出B2中的文件vdsl_storage_pull(source="models/loras/my.safetensors", target="loras")--从B2还原vdsl_storage_archive(source_target="loras", filename="old.safetensors")--存档到B2(推送→ 验证→ 删除)
模型来源
hf:user/repo/model.safetensors # HuggingFace
cv:1595775 # CivitAI (token auto-injected)
https://example.com/model.safetensors # Direct URL
user/repo/model.safetensors # Bare path (defaults to HuggingFace)相关
- VDSL --VDSL核心(用于可视生成的Lua DSL)
许可证
根据以下任一方式获得许可:
- Apache许可证,版本2.0(特许通行证 或 )
- MIT许可证(许可证-麻省理工学院 或 )
由您选择。
