WP引擎MCP服务器
这是用于WP引擎API的MCP服务器的TypeScript实现。它提供了与WP引擎帐户、站点、安装和备份交互的工具和资源。服务器支持本地(stdio)和远程(HTTP)传输。
特性
- 获取帐户信息
- 获取网站信息
- 获取安装信息
- 获取并创建备份
- 支持本地和远程MCP连接
- 带身份验证的HTTP传输
- 全面的日志记录和错误处理
安装
- 克隆此存储库
- 安装依赖项:
npm install- 构建服务器:
npm run build配置
服务器需要WP引擎API凭据才能使用WP引擎API进行身份验证。您可以从WP引擎门户网站的API访问页面获取这些凭据:https://my.wpengine.com/api_access
设置以下环境变量:
WP_ENGINE_API_USERNAME:您的WP引擎API用户名WP_ENGINE_API_PASSWORD:您的WP引擎API密码
用法
本地MCP服务器(stdio传输)
用于本地MCP客户端,如Claude Desktop:
npm run start:stdio或者使用环境变量:
WP_ENGINE_API_USERNAME="your-username" WP_ENGINE_API_PASSWORD="your-password" npm run start:stdio远程MCP服务器(HTTP传输)
对于通过HTTP使用环境变量进行远程访问:
WP_ENGINE_API_USERNAME=my-api-username WP_ENGINE_API_PASSWORD=my-api-password npm run start这将运行支持远程传输的默认服务器(build/index.js)。您还可以使用自定义选项运行:
WP_ENGINE_API_USERNAME="your-username" WP_ENGINE_API_PASSWORD="your-password" node build/main.js --transport=http --port=8080 --auth-token=my-secure-token命令行选项
node build/main.js [options]
Options:
-h, --help Show help message
-v, --version Show version information
-t, --transport Transport type (stdio, http) [default: stdio]
-p, --port
Port for HTTP transport [default: 3000]
-a, --auth-token Authentication token for HTTP transport [default: wpengine-mcp-token]MCP设置
本地配置(stdio传输)
将以下配置添加到MCP设置文件中:
{
"mcpServers": {
"wpengine": {
"command": "node",
"args": [
"/path/to/wpengine-mcp-ts/build/main.js"
],
"env": {
"WP_ENGINE_API_USERNAME": "your-api-username",
"WP_ENGINE_API_PASSWORD": "your-api-password"
},
"disabled": false,
"autoApprove": []
}
}
}远程配置(HTTP传输)
对于远程MCP连接,您需要实现HTTP MCP客户端或将服务器用作远程服务。服务器在以下位置公开HTTP端点 /mcp 其接受MCP协议消息。
HTTP请求示例:
curl -X POST http://localhost:3000/mcp \
-H "Authorization: Bearer wpengine-mcp-token" \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": "1",
"method": "tools/list",
"params": {}
}'可用工具
服务器为管理WP引擎基础设施提供了全面的工具:
账户管理
get_accounts-获取所有WP引擎帐户get_current_user-获取当前经过身份验证的用户
站点管理
get_sites-获取WP Engine帐户的所有站点create_site-创建新网站update_site-更改站点名称delete_site-删除一个网站以及与之关联的任何安装(永久)
安装管理
get_installs-获取WP Engine站点的所有安装create_install-创建新的WordPress安装update_install-更新WordPress安装delete_install-按ID删除安装(永久)
备份管理
get_backups-获取WP引擎安装的所有备份create_backup-为WP引擎安装创建新备份
域管理
get_domains-获取要安装的域create_domain-将新域添加到现有安装中update_domain-将现有域设置为主域或配置重定向delete_domain-删除特定域以进行安装
缓存管理
purge_cache-清除安装的缓存(对象、页面、cdn或全部)
SSH密钥管理
get_ssh_keys-获取您的SSH密钥create_ssh_key-添加新的SSH密钥delete_ssh_key-删除现有SSH密钥
工具使用示例
获取所有帐户
{
"name": "get_accounts",
"arguments": {}
}创建新网站
{
"name": "create_site",
"arguments": {
"name": "My New Site",
"account_id": "account-uuid"
}
}创建新安装
{
"name": "create_install",
"arguments": {
"name": "mysite",
"account_id": "account-uuid",
"site_id": "site-uuid",
"environment": "staging"
}
}创建备份
{
"name": "create_backup",
"arguments": {
"install_id": "install-uuid",
"description": "Pre-deployment backup",
"notification_emails": ["admin@example.com"]
}
}添加域
{
"name": "create_domain",
"arguments": {
"install_id": "install-uuid",
"name": "example.com",
"primary": true
}
}清除缓存
{
"name": "purge_cache",
"arguments": {
"install_id": "install-uuid",
"type": "all"
}
}可用资源
账户信息
wpengine://account/{accountId}帐户网站
wpengine://account/{accountId}/sites站点信息
wpengine://site/{siteId}网站安装
wpengine://site/{siteId}/installs安装信息
wpengine://install/{installId}安装备份
wpengine://install/{installId}/backups测试
本地测试(stdio传输)
您可以使用MCP检查器测试服务器:
WP_ENGINE_API_USERNAME="your-api-username" WP_ENGINE_API_PASSWORD="your-api-password" npx @modelcontextprotocol/inspector build/main.js远程测试(HTTP传输)
- 以HTTP模式启动服务器:
WP_ENGINE_API_USERNAME="your-username" WP_ENGINE_API_PASSWORD="your-password" npm run start:http- 在另一个终端中,运行测试客户端:
node test-http-client.js测试客户端将验证HTTP传输是否正常工作,并测试各种MCP操作。
安全考虑
使用HTTP传输时:
- 认证:服务器使用承载令牌身份验证。更改生产中的默认令牌。
- 超文本传输安全协议:考虑在生产环境中使用HTTPS。
- 防火墙:将对HTTP端口的访问限制为仅限受信任的网络。
- 环境变量:安全存储API凭据,切勿将其提交到版本控制。
发展
建筑
npm run build观察变化
npm run watch项目结构
wpengine-mcp-ts/
├── src/
│ ├── main.ts # Main entry point with transport selection
│ ├── index.ts # Original stdio-only implementation
│ └── transport/
│ └── http.ts # HTTP transport implementation
├── build/ # Compiled JavaScript output
├── test-http-client.js # HTTP transport test client
└── package.json许可证
麻省理工学院
