为你的AI编码助手提供临时WordPress实例进行测试,而不是希望代码能够正常工作。
为什么存在
AI编码助手可以编写WordPress插件并生成Gutenberg内容。但他们无法验证其中任何一个是否有效。他们盲目地迭代——编写代码,猜测它是正确的,然后继续:
- 编写WooCommerce扩展→ 无法检查产品是否实际渲染
- 生成块标记→ 无法验证它是否不会触发“尝试块恢复”
- 钩住
woocommerce_product_tabs→ 无法确认选项卡是否出现 - 创建100个测试产品→ 无法查看导入是否实际成功
代理没有运行时。没有要测试的WordPress实例。没有办法关闭循环。
解决方案
wp-playground-mcp 包裹 @wp游乐场/cli 作为MCP服务器,赋予任何AI助手以下能力:
- 生成蓝图 --代理编写一个JSON蓝图,描述所需的WordPress设置
- 启动实例 --通过WebAssembly实现临时WordPress,无需Docker、MySQL或服务器配置
- 运行WP-CLI命令 --查询帖子、创建内容、激活插件、检查选项
- 检查日志和错误 --捕获PHP错误,验证所有加载内容是否正确
- 拆掉它 --干净关机,没有遗留任何工件
这是第三个MCP 插件选项卡 生态系统:
| MCP | 目的 |
|---|---|
| wp-devdocs-mcp | 已验证用于编写插件的钩子/过滤器/API 代码 |
| wp块标记mcp | 已验证用于生成的块模式 内容 |
| wp游乐场mcp (this) | 短暂的WordPress实例 测试 |
一起: 作者→ 验证→ test.
快速开始
安装
npm install -g wp-playground-mcp或者直接使用npx运行(无需安装):
npx wp-playground-mcp连接到您的AI助手
添加到您的Claude Code MCP配置中(.mcp.json 在您的项目根目录中或 ~/.claude/.mcp.json 全球):
{
"mcpServers": {
"wp-playground": {
"command": "npx",
"args": ["wp-playground-mcp"]
}
}
}第一个测试——问你的助手:
“用WooCommerce启动一个WordPress游乐场,并创建3个测试产品。”
代理人将使用 get_blueprint_schema 为了学习蓝图格式, start_playground 启动实例,以及 wp_cli 创建产品并验证其存在。
MCP工具
get_blueprint_schema
返回完整的蓝图格式引用——所有步骤类型、资源类型、属性和示例。代理使用它来生成有效的蓝图,而不会产生步骤名称的幻觉。
→ get_blueprint_schema()
← Full reference with 25 step types, 8 resource types, and 4 example blueprintsstart_playground
从Blueprint JSON启动一个临时WordPress实例。
→ start_playground({
blueprint: {
plugins: ["woocommerce"],
login: true,
steps: [
{ step: "setSiteOptions", options: { blogname: "My Store" } }
]
},
options: { port: 9400 }
})
← Playground running at http://localhost:9400 (instance: a1b2c3d4)MCP自动注入 extraLibraries: ["wp-cli"], login: true,以及 features.networking: true 如果不存在。在启动之前验证蓝图——发现拼写错误,如 installPlugins 而不是 installPlugin.
wp_cli
对活动实例运行WP-CLI命令。支持: option, post, plugin, theme, user, site, db, eval, transient, menu, search-replace.
→ wp_cli({ command: "post list --format=json" })
← [{"ID":1,"post_title":"Hello world!","post_status":"publish",...}]
→ wp_cli({ command: "option get blogname" })
← My Store
→ wp_cli({ command: "plugin list --format=json" })
← [{"name":"WooCommerce","status":"active","version":"9.5.1",...}]get_playground_info
返回活动实例的状态——URL、端口、正常运行时间、使用的蓝图。
→ get_playground_info()
← Running: yes | URL: http://localhost:9400 | Uptime: 5m 23s | Plugins: woocommercestop_playground
停止活动实例并清理资源。
→ stop_playground()
← Stopped instance a1b2c3d4 (uptime: 12m 45s)get_playground_logs
返回Playground进程的最新日志。按类型筛选以进行目标调试。
→ get_playground_logs({ lines: 20, type: "error" })
← PHP errors and warnings from the instanceCLI参考
CLI镜像MCP工具以供手动使用:
# Start from a blueprint file
wp-playground start --blueprint=./blueprint.json
# Start with inline options
wp-playground start --wp=6.7 --php=8.3 --plugin woocommerce jetpack
# Run WP-CLI commands
wp-playground wp "post list --format=json"
wp-playground wp "option get blogname"
# Check status
wp-playground status
# View logs
wp-playground logs
wp-playground logs --lines=100 --type=error
# Stop
wp-playground stop
# Print blueprint schema reference
wp-playground schema运作原理
进程管理
当 start_playground 被称为MCP:
- 确认 针对已知步骤类型和所需参数的蓝图
- 增强 wp-cli、登录、联网和MCP桥接mu插件的蓝图
- 生成物
npx @wp-playground/cli server作为一个孩子的过程与蓝图 - 民意调查 服务器URL,直到WordPress准备就绪(超时:120秒)
- 写 状态文件
~/.wp-playground-mcp/instances/active.json
在MCP重启时,它会检查状态文件——如果PID仍然有效,它会重新连接。如果PID失效,它将清理过时的文件。
WP-CLI执行
WP-CLI命令通过PHP桥执行。在蓝图设置过程中,MCP会注入一个mu插件(mcp-bridge.php)在以下位置注册REST端点 /wp-json/mcp/v1/evalMCP服务器将WP-CLI命令转换为等效的PHP代码,并将其发送到此端点。
支持的WP-CLI子命令:
option--获取、更新、添加、删除、列出post--列表、创建、获取、更新、删除plugin--列出、激活、停用theme--列表,激活user--列表、创建、获取site--信息db--查询eval--任意PHPtransient--获取、设置、删除menu--列表,创建search-replace--数据库范围内的查找和替换
对于不支持通过网桥(如WooCommerce CLI)执行的命令,请将其作为 wp-cli 蓝图中的步骤——它们将在启动过程中执行。
蓝图验证
在启动之前,MCP会验证:
- 步骤类型 --根据25种已知类型进行检查,建议纠正拼写错误
- 必需参数 --验证每个步骤的必填字段
- 资源类型 --验证资源引用(
wordpress.org/plugins,url,literal等等) - PHP版本 --根据支持的版本(7.4–8.5)进行验证
数据存储
~/.wp-playground-mcp/
instances/
active.json # State file for the running instance
blueprints/
last-used.json # Cache of the last blueprint
logs/
playground.log # Stdout/stderr from the Playground process配套工具
完整插件选项卡堆栈
对于完整的人工智能辅助WordPress开发工作流程,请同时使用所有三个MCP:
- wp-devdocs-mcp --用于编写插件代码的经过验证的钩子、过滤器和API
- wp块标记mcp --用于生成Gutenberg内容的验证块模式
- wp游乐场mcp (这个项目)——用于测试的临时WordPress实例
{
"mcpServers": {
"wp-devdocs": {
"command": "npx",
"args": ["--prefix", "/path/to/wp-devdocs-mcp", "wp-devdocs-mcp"]
},
"wp-blockmarkup": {
"command": "npx",
"args": ["--prefix", "/path/to/wp-blockmarkup-mcp", "wp-blockmarkup-mcp"]
},
"wp-playground": {
"command": "npx",
"args": ["--prefix", "/path/to/wp-playground-mcp", "wp-playground-mcp"]
}
}
}示例:“为我构建一个WooCommerce产品常见问题选项卡插件并对其进行测试”
一个提示。代理使用所有三个MCP从无到经过测试的工作插件:
阶段1——使用经过验证的钩子编写插件 (wp-devdocs-mcp)
search_hooks("woocommerce product tab")→ findswoocommerce_product_tabs和woocommerce_product_tab_panelsvalidate_hook("woocommerce_product_tabs")→ confirmed:过滤器,1个参数,返回选项卡数组get_hook_context("woocommerce_product_tabs")→ 查看其他插件如何注册选项卡,学习预期的数组结构(title,priority,callback)- Agent编写了一个插件,该插件使用经过验证的钩子签名添加了一个“常见问题”选项卡——无需猜测
第2阶段——使用经过验证的标记生成常见问题解答内容 (wp块标记mcp)
search_blocks("accordion")→ findscore/details可折叠FAQ项目块get_block_schema("core/details")→ 获取确切的属性、内部块结构和有效标记validate_markup(generated)→ 确认FAQ内容通过结构验证- 代理生成5个常见问题解答条目作为有效的Gutenberg块标记——没有“尝试块恢复”
第3阶段——引导、部署和验证一切正常 (wp游乐场mcp)
start_playground→ 使用通过以下方式注入的插件启动WooCommercewriteFile+通过加载的常见问题解答内容wp-cli步骤wp_cli("plugin list --format=json")→ 确认FAQ插件与WooCommerce一起处于活动状态wp_cli("post list --post_type=product --format=json")→ 验证测试产品是否存在wp_cli("option get blogname")→ 健全性检查,网站处于活动状态get_playground_logs(type: "error")→ 零PHP错误,无警告- 代理报告:“插件正常工作。3个产品带有常见问题选项卡,没有错误。实例运行在http://localhost:9400如果你想查一下。"
stop_playground→ 干净关闭
结果: 一个经过测试的WooCommerce插件,完全由经过验证的API构建,具有经过验证的内容,在一个真实的WordPress实例上运行——只需一个提示。
需求
- Node.js 20+
- 新巴拿马型船舶 访问(用于下载
@wp-playground/cli按需) - 没有Docker,没有MySQL,没有Apache——WordPress在WebAssembly中运行
许可证
麻省理工学院
