Token导航 LogoToken导航

MCP Server · 开发工具

Testenv Vm

testenv-vm 是一个为基础设施测试提供虚拟化环境的引擎,支持声明式配置、自动依赖解析和并行执行,适用于PXE引导、裸机配置和网络服务测试。

未说明官方级别未说明来源级核验工具 0
Go依赖管理自动化测试

快速开始

公开资料没有提供安装命令,按仓库或官方文档接入。
作者 / 组织
alexandremahdhaoui
提供方
alexandremahdhaoui

工具数量

0

来源目录标注

资源数量

0

来源目录标注

提示词数量

0

来源目录标注

GitHub Star

0

仓库热度

收录来源

1 个

MCP World

选型结论

Testenv Vm 属于开发工具类 MCP Server,公开资料标注 0 个工具,通过传输方式未标注接入,客户端适配情况以官方文档为准,没有现成的安装命令;接入前先确认权限范围。

分类

开发工具

传输方式

未说明

认证方式

无需认证

部署方式

公开资料未说明

安装与配置

公开目录没有给出安装命令,需要按仓库 README安装;下面按同类条目的通用流程说明。

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

上手步骤

  1. 1

    先确认运行方式

    公开资料没有标注传输方式,先看仓库 README,确认是本地进程还是远程地址。

  2. 2

    获取服务

    公开目录没有给出安装命令,按仓库 README里的步骤安装或获取服务。

  3. 3

    写入客户端配置

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

  4. 4

    验证是否可用

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

接入前确认

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

公开资料仍需确认:安装命令

详细介绍

测试环境虚拟机

Forge testenv引擎,为基础设施测试提供虚拟机、网络和SSH密钥。

“我针对从网络而不是容器启动的真实VM测试PXE启动服务器。 testenv-vm允许我在forge.yaml中声明vm、具有DHCP/TFTP的网络和SSH密钥。 该引擎自动处理依赖关系排序、并行执行和清理。" --基础设施工程师

testenv vm解决了什么问题?

基础设施测试(PXE引导、裸机配置、网络服务)需要真实的虚拟机,而不是容器。 每个项目都构建自定义VM生命周期管理:域XML、QCOW2覆盖、云初始化ISO、网桥网络、DHCP/TFTP、SSH密钥分发、清理。 如何获得具有自动依赖解析功能的声明性、与提供者无关的VM测试环境? testenv vm通过以下方式处理它 forge.yaml 配置。 它管理3种资源类型(密钥、网络、VM),支持3种网络类型(网桥、libvirt、dnsmasq)、3种密钥类型(rsa、ed25519、ecdsa),并为每个提供者提供13个模型上下文协议(MCP)工具。

快速开始

# Install forge
go install github.com/alexandremahdhaoui/forge/cmd/forge@latest
# forge.yaml
engines:
  - alias: e2e-testenv
    type: testenv
    testenv:
      - engine: go://github.com/alexandremahdhaoui/testenv-vm/cmd/testenv-vm
        spec:
          providers:
            - name: libvirt
              engine: go://github.com/alexandremahdhaoui/testenv-vm/cmd/providers/testenv-vm-provider-libvirt
          keys:
            - name: vm-ssh
              spec: { type: ed25519 }
          networks:
            - name: test-net
              kind: bridge
              spec: { cidr: "192.168.100.1/24" }
          vms:
            - name: test-vm
              spec:
                memory: 2048
                vcpus: 2
                network: "{{ .Networks.test-net.Name }}"
                cloudInit:
                  users:
                    - name: ubuntu
                      sshAuthorizedKeys: ["{{ .Keys.vm-ssh.PublicKey }}"]
# Run tests with VM infrastructure
forge test e2e

它是如何工作的?

+-------------------------------------------------------------------+
|                       Forge Test Runner                            |
+-------------------------------------------------------------------+
                              |
                              | MCP: "create" / "delete"
                              v
+-------------------------------------------------------------------+
|                   testenv-vm MCP Server                            |
|                                                                    |
|  +----------------+  +-------------+  +------------------------+   |
|  | Spec Parser    |  | DAG Builder |  | Executor               |   |
|  | - Validate     |  | - Deps graph|  | - Parallel phases      |   |
|  | - Template     |  | - Topo sort |  | - Rollback on failure  |   |
|  +----------------+  +-------------+  +------------------------+   |
|                                                                    |
|  +--------------------------------------------------------------+  |
|  |                    Provider Manager                           |  |
|  |  - Start/stop provider MCP servers                            |  |
|  |  - Route operations to providers                              |  |
|  +--------------------------------------------------------------+  |
+-------------------------------------------------------------------+
          |                                    |
          | MCP                                | MCP
          v                                    v
+------------------+                +------------------+
| Libvirt Provider |                |  Stub Provider   |
| - vm, network    |                | - In-memory mock |
| - key            |                | - E2E testing    |
+------------------+                +------------------+

Forge调用testenv虚拟机 create 带有规范的MCP工具。编排器解析规范,从模板引用构建有向无环图(DAG),并在并行阶段执行资源。每个提供程序都作为单独的MCP服务器进程运行,实现了进程隔离和独立的版本控制。看 设计.md 对于完整的技术设计。

目录

如何配置?

配置存在于 forge.yaml 在...之下 testenv 部分。

资源类型:

  • 钥匙 --三种类型:rsa、ed25519、ecdsa。生成用于VM访问的SSH密钥对。
  • 网络 --3种:网桥(Linux网桥)、libvirt(virsh-net-define)、dnsmasq(DHCP/TFTP)。
  • 虚拟机 --定义内存、vCPU、磁盘、云初始化、启动顺序和就绪检查。

模板引用(例如。, {{ .Keys.vm-ssh.PublicKey }})链接资源和驱动依赖性解决方案。

看 Libvirt提供商 用于特定于提供商的配置选项。

如何构建和测试?

4个构建目标: testenv-vm, testenv-vm-provider-stub, testenv-vm-provider-libvirt, generate-testenv-vm.

8个测试阶段:3个皮棉(lint-tags, lint-licenses, lint),1个单元,1个集成,3个e2e(e2e, e2e_libvirt, e2e_libvirt_delete).

forge build                    # Build all artifacts
forge test-all                 # Run all test stages
forge test run unit            # Run a specific stage
forge test run e2e             # Run stub-based E2E tests
forge test run e2e_libvirt     # Run libvirt E2E tests (requires libvirt)

依赖解析是如何工作的?

模板引用(例如。, {{ .Keys.vm-ssh.PublicKey }})在DAG中定义边。拓扑排序产生执行阶段。一个阶段内的资源并行执行。阶段按顺序执行。

模板实时呈现:在资源创建之前,使用已完成资源中的值。这可以防止前向引用,并确保确定性的执行顺序。

如何在运行时创建虚拟机?

使用 client.NewClient 随着 WithProvisioner 在测试执行期间创建虚拟机:

result, _ := orchestrator.Create(ctx, input)

c, _ := client.NewClient(result.Provisioner, "control-plane",
    client.WithProvisioner(result.Provisioner))

worker, _ := c.CreateVM(ctx, "worker-1", v1.VMSpec{
    Memory: 2048, VCPUs: 2, Network: "test-net",
})
worker.WaitReady(ctx, 2*time.Minute)

运行时虚拟机通过模板与现有资源集成,并自动清理。看 运行时虚拟机创建 了解详情。

如何测试PXE启动方案?

使用DHCP/TFTP配置dnsmasq网络:

networks:
  - name: pxe-services
    kind: dnsmasq
    spec:
      dhcp:
        enabled: true
        rangeStart: "192.168.200.50"
        rangeEnd: "192.168.200.100"
      tftp:
        enabled: true
        root: "./tftp"
        bootFile: "undionly.kpxe"
vms:
  - name: pxe-client
    spec:
      boot: { order: [network, hd], firmware: bios }

常见问题解答

有哪些供应商? Libvirt(功能齐全的本地虚拟化)和存根(用于E2E测试的内存模拟)。每个提供者公开13个MCP工具,涵盖3种资源类型。

支持哪些准备状态检查? SSH(等待SSH服务器)、TCP(等待端口)和CloudInit(通过SSH等待云初始化完成)。SSH确认网络连接和客户操作系统就绪。

如果VM创建失败会发生什么? 当 cleanupOnFailure 是 true (默认),testenv vm以相反的依赖顺序销毁创建的资源。尽力删除会在单个失败后继续进行。

国家是如何管理的? JSON文件 stateDir (默认值 .forge/testenv-vm).状态持久性允许在进程重新启动时进行可靠的清理。

我可以使用多个提供商吗? 对。每个资源都指定其提供者。同一环境中的不同资源可以使用不同的提供者。

系统要求是什么? Linux、libvirt 6.0+、QEMU/KVM、用于创建网桥的sudo访问。存根提供程序没有系统要求。

为什么选择MCP进行供应商沟通? Forge使用MCP进行发动机通信。对提供者使用相同的协议可以保持一致性,实现进程隔离,并允许独立的版本控制。

文档

用户指南:

设计:

  • 设计.md --架构、数据模型、协议细节

API

贡献

欢迎捐款。打开问题或拉取请求。

许可证

Apache 2.0

工具与能力

工具数量

0

资源数量

0

提示词数量

0

能力标签

虚拟化Go本地部署基础设施测试PXE引导自动化测试依赖管理

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

典型使用场景

让助手直接读代码

把仓库、提交记录和 issue 交给模型检索,补全和重构时不用来回复制文件。

在对话里跑命令

触发构建、测试和脚本,执行结果直接回到上下文,省去切终端。

接进开发流程

把 PR、CI 状态和代码审查接进助手,减少在几个工具之间跳。

选择建议

值得选的地方

  • 只提供 0 个工具,职责集中,接入后不容易误操作。
  • 公开说明写得比较完整,接入前能看清能力边界。

先想清楚的地方

  • 公开资料没有可直接复制的安装命令,第一次接入要自己找入口。
  • 第三方目录整理,版本更新和行为细节以官方仓库为准。

更适合

  • 需要在开发工具场景里让模型直接调用外部能力的人。
  • 愿意照着官方文档一步步配环境的人。

不太适合

  • 希望一条命令就装好、不想看文档的人。
  • 需要厂商级 SLA 和技术支持的生产环境。

同类对比

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

MCP World · 本页

0未说明未标注1 个2026-05-17
Git 838e2ec1

MCP World

12stdio有2 个2026-05-17
Markitdown MCP 2c653a5f

MCP World

1stdio有1 个2026-05-17
Context7 MCP C671e75a

MCP World

0stdio有1 个2026-05-17
Context7 831acf40

MCP World

0stdio有1 个2026-05-17

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

常见问题

5 条

Testenv Vm 怎么安装?

公开目录没有给出可以直接复制的安装命令,需要按仓库 README里的步骤安装;装好后写进客户端的 MCP 配置再重启。

Testenv Vm 怎么在 Claude Desktop、Cursor 里配置?

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

Testenv Vm 收费吗?

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

Testenv Vm 需要 API Key 吗?

公开资料标注为无需认证,装好就能连;如果实际调用时报鉴权错误,按官方文档补上凭据。

Testenv Vm 支持哪些客户端?

公开资料没有标注具体客户端;能配置本地 MCP 命令的客户端都能接,配置方式参照官方文档。

来源信息

继续浏览同类 MCP