最近很多人在问:能不能让Claude直接帮我改WordPress网站,比如发文章、查站点信息?
WordPress官方给出的方案是 MCP Adapter(项目地址:WordPress/mcp-adapter)。它是AI Building Blocks for WordPress计划的一部分,由WordPress官方维护,GPL协议开源。
本文讲它是什么、怎么装、怎么连上Claude和Cursor,以及一个最容易踩的坑:装好之后AI却「什么都做不了」。
MCP Adapter是什么?
先拆开几个词:
- MCP(Model Context Protocol):AI客户端和外部工具之间的通用接口标准。Claude Desktop、Claude Code、Cursor、VS Code都支持它;
- Abilities API:WordPress 6.9开始内置的功能,让WordPress核心和插件把自己能做的事情,登记成一个个标准化的「Ability」(比如「获取站点信息」「创建草稿文章」),并写明参数和权限;
- MCP Adapter:把上面两者接起来的插件。它把网站里登记过的Ability,翻译成MCP工具,交给AI客户端调用。
所以它的角色是「桥」,而不是「功能」:
- 它不自带AI功能,装完后台也不会多出新页面,只是网站多了一个MCP接口地址;
- AI能做什么,取决于Ability。只有被标记为公开(public)的Ability才能通过MCP调用,而这些Ability由WordPress核心或其他插件提供,MCP Adapter自己不决定;
- AI是以某个WordPress用户的身份操作的。你用什么角色的账号连接,AI就只有这个角色的权限,编辑能做的事它能做,编辑不能做的它也做不了。
官方还支持两种连接方式:通过HTTP(用应用密码认证,适合线上网站),以及通过WP-CLI走STDIO(适合本地开发的站点)。下面主要讲线上网站最常用的HTTP方式。
使用前的准备
| 项目 | 要求 |
|---|---|
| WordPress版本 | 6.9或更高(Abilities API已内置,不需要另装插件) |
| PHP版本 | 7.4或更高 |
| 网站HTTPS | 必须。WordPress只在HTTPS站点(本地开发站除外)提供「应用密码」功能 |
| 你的电脑 | 装好 Node.js(桌面客户端要用 npx 启动一个连接小工具) |
还没有WordPress网站的话,先看《WordPress建站详细步骤》,主机怎么选看《WordPress主机推荐》。
提醒:AI的操作和你在后台点按钮一样,是直接改线上网站的。 开始之前先做一次完整备份,方法见《WordPress网站备份教程》;条件允许的话,先在测试站(staging)上试。
第一步:安装MCP Adapter插件
有两种方式,任选其一。
方式一:后台上传安装(推荐新手)
- 打开 GitHub Releases页面,下载最新版的
mcp-adapter.zip; - 进入WordPress后台「插件」→「安装插件」→「上传插件」,选择这个zip,安装并启用。
官方也把它上架到了WordPress.org插件目录,在后台「安装插件」里搜索 MCP Adapter 同样可以安装。
方式二:用WP-CLI命令安装
如果你的主机支持SSH和WP-CLI:
wp plugin install https://github.com/WordPress/mcp-adapter/releases/latest/download/mcp-adapter.zip --activate
安装启用后,网站就多了下面这个MCP地址(把域名换成你自己的):
https://你的域名/wp-json/mcp/mcp-adapter-default-server
地址以后台「设置」→「常规」里的「站点地址(URL)」为准。如果你的站点装在子目录,比如 https://example.com/blog,地址就是 https://example.com/blog/wp-json/mcp/mcp-adapter-default-server。
第二步:创建应用密码
AI客户端不能用你的登录密码,要用WordPress的「应用密码」。它可以随时单独撤销,不影响登录密码。
建议专门给AI建一个用户,角色选能完成任务的最低权限(比如「编辑」而不是「管理员」),出了问题也容易分辨和停用。
- 后台进入「用户」→「个人资料」(或编辑你给AI建的那个用户);
- 滚动到页面底部的「应用程序密码」区域;
- 在名称框里填一个自己认得的名字,比如
Claude on MacBook,点「添加新应用程序密码」; - 复制弹出来的密码。它只会显示一次,格式类似
abcd efgh ijkl mnop qrst uvwx,中间的空格是格式的一部分,保留即可。
如果个人资料里看不到「应用程序密码」这一块,参见文末的常见问题。
第三步:在AI客户端里添加网站
你需要三样信息:MCP地址、用户名、刚才的应用密码。不同客户端的配置方式不一样。
方式一:Claude Desktop、Cursor、VS Code等桌面客户端
这类客户端读取一个JSON配置文件,里面列出MCP服务。Claude Desktop在「Settings」→「Developer」→「Edit Config」打开;Cursor的配置文件是 ~/.cursor/mcp.json。加入下面这一段,换成你自己的值:
{
"mcpServers": {
"my-wordpress-site": {
"command": "npx",
"args": ["-y", "@automattic/mcp-wordpress-remote@latest"],
"env": {
"WP_API_URL": "https://你的域名/wp-json/mcp/mcp-adapter-default-server",
"WP_API_USERNAME": "你的用户名",
"WP_API_PASSWORD": "xxxx xxxx xxxx xxxx xxxx xxxx"
}
}
}
}
保存后重启客户端。
这里的 @automattic/mcp-wordpress-remote 是一个在你电脑上运行的小代理:它把客户端的MCP请求转成HTTP请求发给你的网站,并带上应用密码。第一次启动时 npx 会自动下载,所以需要先装好Node.js。
WP_API_USERNAME 填用户的登录名或邮箱,不要填显示名称。
方式二:Claude Code等支持直接HTTP的客户端
如果客户端能直接填URL和自定义请求头,就不需要上面那个代理。认证头是 Authorization: Basic,后面跟「用户名:应用密码」的base64编码。在macOS或Linux终端里生成:
printf '你的用户名:xxxx xxxx xxxx xxxx xxxx xxxx' | base64 | tr -d '\n'
然后在Claude Code里添加(把最后的内容换成上一步输出的结果):
claude mcp add --transport http my-wordpress-site \
https://你的域名/wp-json/mcp/mcp-adapter-default-server \
--header "Authorization: Basic 这里粘贴base64结果"
方式三:本地站点用WP-CLI
如果网站就跑在你自己的电脑上(比如用Local、Docker搭的开发站),并且装了WP-CLI,客户端可以直接启动MCP Adapter,不需要应用密码:
{
"mcpServers": {
"wordpress": {
"command": "wp",
"args": [
"--path=/你的/WordPress/站点/路径",
"mcp-adapter",
"serve",
"--server=mcp-adapter-default-server",
"--user=admin"
]
}
}
}
--user 指定以哪个WordPress用户的身份运行,不写的话是未登录状态,权限很有限。
网页版Claude和ChatGPT暂时不行
claude.ai和ChatGPT网页版添加连接器走的是OAuth登录,没有填应用密码的地方。而WordPress核心和MCP Adapter都不带OAuth服务,所以目前网页版连不上,请用上面的桌面客户端或Claude Code。
第四步:测试连接
重启客户端后,新开一个对话,输入:
列出你在我的WordPress网站上能使用的Ability。
AI会调用发现工具,然后告诉你找到了哪些能力,或者说列表是空的。这两种回答都说明连接是成功的;如果报错,看下一节的排查。
默认服务器的三个工具
连接成功后,AI客户端会看到MCP Adapter默认服务器提供的三个工具,这也是它「分层发现」的工作方式:
| 工具名 | 作用 |
|---|---|
mcp-adapter-discover-abilities | 列出网站上所有公开的Ability |
mcp-adapter-get-ability-info | 查看某个Ability的详细参数 |
mcp-adapter-execute-ability | 执行某个Ability |
AI的流程是:先发现有什么,再看参数,最后执行。这样不管网站上有多少Ability,AI每次只需要加载这三个工具,不会撑爆上下文。
为什么连上了,AI却说「没有可用的能力」?
这是新手最常遇到的情况。原因前面提到过:Ability默认是私有的,只有被标记为公开的才会通过MCP暴露。MCP Adapter本身只提供上面三个「桥」工具,不提供「发文章」「改页面」这类功能。
解决办法有两种:
- 安装会注册Ability的插件。越来越多的插件在适配Abilities API,你可以在插件说明里找「Abilities API」或「MCP」,或者问插件作者是否支持;
- 自己写代码注册一个Ability。如果你会一点PHP,可以在子主题的
functions.php或一个自己的小插件里加入下面的代码。这个例子注册了一个「获取站点信息」的只读能力:
add_action( 'wp_abilities_api_init', function () {
wp_register_ability( 'my-plugin/get-site-info', [
'label' => '获取站点信息',
'description' => '返回站点名称、地址和简介,可选返回文章和页面数量',
'category' => 'site',
'input_schema' => [
'type' => 'object',
'properties' => [
'include_stats' => [
'type' => 'boolean',
'description' => '是否同时返回已发布的文章和页面数量',
'default' => false,
],
],
],
'execute_callback' => function ( $input ) {
$result = [
'site_name' => get_bloginfo( 'name' ),
'site_url' => get_site_url(),
'description' => get_bloginfo( 'description' ),
];
if ( ! empty( $input['include_stats'] ) ) {
$result['stats'] = [
'post_count' => wp_count_posts( 'post' )->publish,
'page_count' => wp_count_posts( 'page' )->publish,
];
}
return $result;
},
'permission_callback' => function () {
return current_user_can( 'read' );
},
'meta' => [
'public' => true, // 关键:标记为公开,MCP才能调用
],
] );
} );
几个要点:
meta里的'public' => true是开关,没有它AI就看不到这个能力;permission_callback决定谁能调用。这里要求至少是登录用户,写操作的Ability应该用edit_posts、manage_options这类更高的权限;- 把这段代码加进去之后,回到客户端再问一遍「列出可用的Ability」,应该就能看到
my-plugin/get-site-info了。
如果你想让每个Ability作为独立工具出现在AI的工具列表里(而不是通过「发现→执行」三步),还可以用 mcp_adapter_init 钩子创建自定义服务器,这属于开发者用法,具体写法看官方的 Default Server 和 Creating Abilities 文档。
常见问题排查
401 Unauthorized
网站没接受用户名和密码:
- 用户名要填登录名或邮箱,不是显示名称;
- 检查应用密码是否完整复制,是否已在「用户」→「个人资料」里被撤销;
- 如果都没错,可能是服务器把
Authorization请求头丢掉了(部分Apache配置会这样)。WordPress默认的.htaccess里有一行把它传给PHP的规则,如果.htaccess被改过或被覆盖,需要补回去,或者联系主机商处理。
个人资料里没有「应用程序密码」
- 确认网站是
https://访问的,没有HTTPS WordPress会隐藏这个功能。HTTPS的设置可以看《WordPress建站后的必要设置》; - 部分安全插件或主机会禁用应用密码,去安全插件设置里检查,或问主机商。
404 或 rest_no_route
- 确认「插件」里MCP Adapter已启用;
- 如果网站固定链接用的是「朴素」,
/wp-json/地址不能用,改成https://你的域名/?rest_route=/mcp/mcp-adapter-default-server,或者直接把固定链接改成「文章名」,设置方法见《WordPress菜单、首页和固定链接设置》。
客户端提示 npx: command not found
电脑没装Node.js,或者客户端找不到它。去 nodejs.org 安装后重启客户端。
Ability能看到,但执行时提示权限不足
说明你连接的这个用户角色不够。换用权限合适的用户,或者检查该Ability的 permission_callback 要求什么权限。
安全注意事项
让AI操作线上网站,有几条建议:
- 一个客户端一个应用密码。每个应用密码都会显示最近使用时间,哪台设备不用了,直接点「撤销」,不影响其他设备;
- 给AI专用的低权限账号,不要用管理员账号,更不要把管理员的登录密码给AI;
- 先测试后上线。新的Ability先在测试站试,确认它的行为符合预期再放到正式网站;
- 定期备份。AI可能会理解错你的指令,备份是最后的退路;
- 只公开确实需要的Ability,写操作尤其要谨慎,权限检查写严格;
- 别把含密码的配置文件提交到公开仓库或发给别人。
小结
- MCP Adapter是WordPress官方的MCP桥梁,要求WordPress 6.9+、PHP 7.4+、HTTPS;
- 安装插件后,MCP地址是
/wp-json/mcp/mcp-adapter-default-server,用「用户名+应用密码」认证; - 桌面客户端用
@automattic/mcp-wordpress-remote代理连接,Claude Code可以直接用HTTP加认证头,本地站点还可以用WP-CLI; - 它本身不提供AI功能,AI能做什么取决于有没有公开的Ability,列表为空时需要装支持的插件或自己注册;
- 用低权限账号、做好备份、先在测试站验证。
这个项目目前还在快速迭代,写这篇文章时最新版本是v0.7.1,具体配置以官方仓库文档为准。



