WordPress MCP Adapter使用教程:让Claude、Cursor操作你的网站

蜗牛大人WordPress建站教程,AI Agent教程

最近很多人在问:能不能让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客户端调用。

所以它的角色是「桥」,而不是「功能」:

  1. 它不自带AI功能,装完后台也不会多出新页面,只是网站多了一个MCP接口地址;
  2. AI能做什么,取决于Ability。只有被标记为公开(public)的Ability才能通过MCP调用,而这些Ability由WordPress核心或其他插件提供,MCP Adapter自己不决定;
  3. 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插件

有两种方式,任选其一。

方式一:后台上传安装(推荐新手)

  1. 打开 GitHub Releases页面,下载最新版的 mcp-adapter.zip;
  2. 进入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建一个用户,角色选能完成任务的最低权限(比如「编辑」而不是「管理员」),出了问题也容易分辨和停用。

  1. 后台进入「用户」→「个人资料」(或编辑你给AI建的那个用户);
  2. 滚动到页面底部的「应用程序密码」区域;
  3. 在名称框里填一个自己认得的名字,比如 Claude on MacBook,点「添加新应用程序密码」;
  4. 复制弹出来的密码。它只会显示一次,格式类似 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本身只提供上面三个「桥」工具,不提供「发文章」「改页面」这类功能。

解决办法有两种:

  1. 安装会注册Ability的插件。越来越多的插件在适配Abilities API,你可以在插件说明里找「Abilities API」或「MCP」,或者问插件作者是否支持;
  2. 自己写代码注册一个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,具体配置以官方仓库文档为准。

文章版权归作者所有,转载请注明出处:https://woniune.com/posts/wordpress-mcp-adapter/
上一篇WordPress网站被黑、中毒了怎么办?按顺序排查和清理(通用版)

相关推荐