返回市场
远程WordPress服务器

远程WordPress服务器

作者:Automattic103 星标更新:2025-09-23

项目介绍

MCP WordPress 远程服务器

一个用于无缝集成 WordPress 的模型上下文协议(MCP)服务器

将像 Claude Desktop 这样的AI助手连接到您的 WordPress 站点,支持多种认证方法,包括 OAuth 2.0、JWT 令牌和应用密码。

功能

  • 符合 MCP 授权规范 - 实现 MCP 授权规范 2025-06-18
  • OAuth 2.1 带 PKCE - 使用 PKCE(RFC 7636)的安全授权码流程
  • 资源指示符 - 符合 RFC 8707 的令牌受众绑定
  • 动态客户端注册 - 支持 RFC 7591 的自动客户端注册
  • 受保护资源元数据发现 - RFC 9728 自动端点发现
  • 多种认证方法 - OAuth 2.1、JWT 令牌和 WordPress 应用密码
  • 持久令牌存储 - 安全存储 OAuth 令牌并自动验证
  • 多实例协调 - 锁文件防止认证冲突
  • 自动令牌管理 - 处理验证、刷新和清理
  • 增强错误处理 - 详细分类的错误消息
  • 全面日志记录 - 结构化日志记录,带有类别和级别
  • 完整的 MCP 支持 - 工具、资源、提示等

快速开始

安装

npm install @automattic/mcp-wordpress-remote

配置

添加到您的 MCP 客户端配置(例如,Claude Desktop 的 claude_desktop_config.json):

{
  "mcpServers": {
    "wordpress": {
      "command": "npx",
      "args": ["-y", "@automattic/mcp-wordpress-remote"],
      "env": {
        "WP_API_URL": "https://your-wordpress-site.com"
      }
    }
  }
}

自定义头部

您可以使用 CUSTOM_HEADERS 环境变量向所有 API 请求添加自定义头部。这对于 API 密钥、自定义认证或其他头部要求非常有用。

JSON 格式(推荐):

{
  "mcpServers": {
    "wordpress": {
      "command": "npx",
      "args": ["-y", "@automattic/mcp-wordpress-remote"],
      "env": {
        "WP_API_URL": "https://your-wordpress-site.com",
        "CUSTOM_HEADERS": "{\"X-MCP-API-Key\": \"*Ibo7tweixlbfuwaiufxgakjyefctwajcetb*\", \"X-Custom-Header\": \"value\"}"
      }
    }
  }
}

逗号分隔格式:

{
  "mcpServers": {
    "wordpress": {
      "command": "npx",
      "args": ["-y", "@automattic/mcp-wordpress-remote"],
      "env": {
        "WP_API_URL": "https://your-wordpress-site.com",
        "CUSTOM_HEADERS": "X-MCP-API-Key:IOskncfyes78U8on3q7ry43o487tybrc,X-Custom-Header:value"
      }
    }
  }
}

命令行使用:

CUSTOM_HEADERS='{"X-MCP-API-Key": "wc_mcp_FaQduhQcW0mfVaZgP3yaaqDuXaZ3mw7j"}' \
WP_API_URL="https://your-site.com" \
npx @automattic/mcp-wordpress-remote

自定义头部包含在:

  • 所有 WordPress API 请求
  • OAuth 发现请求
  • OAuth 令牌交换请求
  • OAuth 客户端注册请求

第一次运行

  1. 启动您的 MCP 客户端(如 Claude Desktop 等)
  2. 选择认证方法,根据您的偏好:
    • OAuth 2.0(默认):浏览器会自动打开进行授权
    • JWT 令牌:设置 JWT_TOKEN 环境变量
    • 应用密码:设置 WP_API_USERNAMEWP_API_PASSWORD
  3. 开始使用 WordPress 功能 在您的 AI 助手中

WordPress MCP 插件

您需要在 WordPress 网站上安装 wordpress-mcp 插件,并在设置 > MCP 设置中启用 MCP 功能。

认证方法

1. OAuth 2.1(推荐 - 符合 MCP)

OAuth 2.1 提供最安全且用户友好的体验,完全符合 MCP 授权规范。

对于自托管的 WordPress 站点:

{
  "mcpServers": {
    "wordpress": {
      "command": "npx",
      "args": ["-y", "@automattic/mcp-wordpress-remote"],
      "env": {
        "WP_API_URL": "https://your-wordpress-site.com",
        "OAUTH_ENABLED": "true"
      }
    }
  }
}

MCP 授权规范功能:

  • OAuth 2.1 授权码流程 带 PKCE(RFC 7636)
  • 资源指示符(RFC 8707)用于令牌受众绑定
  • 动态客户端注册(RFC 7591)当支持时
  • 受保护资源元数据发现(RFC 9728)
  • 授权服务器元数据发现(RFC 8414)

优点:

  • 完全符合 MCP 授权规范 2025-06-18
  • 增强安全性,带 PKCE 保护
  • 一次性浏览器授权
  • 安全存储令牌并自动验证
  • 自动端点发现
  • 不需要管理密码
  • 自动过期处理

2. JWT 令牌认证

用于服务器到服务器的认证或当 OAuth 不可用时。

{
  "mcpServers": {
    "wordpress": {
      "command": "npx",
      "args": ["-y", "@automattic/mcp-wordpress-remote"],
      "env": {
        "WP_API_URL": "https://your-wordpress-site.com",
        "JWT_TOKEN": "your-jwt-token-here"
      }
    }
  }
}

3. WordPress 应用密码(遗留)

使用 WordPress 用户名和应用密码进行基本认证。

{
  "mcpServers": {
    "wordpress": {
      "command": "npx",
      "args": ["-y", "@automattic/mcp-wordpress-remote"],
      "env": {
        "WP_API_URL": "https://your-wordpress-site.com",
        "WP_API_USERNAME": "your-username",
        "WP_API_PASSWORD": "your-application-password",
        "OAUTH_ENABLED": "false"
      }
    }
  }
}

要创建应用密码:

  1. 转到您的 WordPress 管理仪表板
  2. 导航至用户 > 个人资料
  3. 向下滚动到“应用密码”
  4. 为 MCP 访问创建一个新的应用密码

高级配置

自定义 OAuth 设置

{
  "mcpServers": {
    "wordpress": {
      "command": "npx",
      "args": ["-y", "@automattic/mcp-wordpress-remote"],
      "env": {
        "WP_API_URL": "https://your-wordpress-site.com",
        "OAUTH_CALLBACK_PORT": "7665",
        "OAUTH_HOST": "127.0.0.1",
        "WP_OAUTH_CLIENT_ID": "your-custom-client-id"
      }
    }
  }
}

WooCommerce 集成

针对 WooCommerce 特定工具和报告:

{
  "mcpServers": {
    "wordpress": {
      "command": "npx",
      "args": ["-y", "@automattic/mcp-wordpress-remote"],
      "env": {
        "WP_API_URL": "https://your-wordpress-site.com",
        "WOO_CUSTOMER_KEY": "ck_your-consumer-key",
        "WOO_CUSTOMER_SECRET": "cs_your-consumer-secret"
      }
    }
  }
}

环境变量

变量描述默认值是否必需
WP_API_URLWordPress 站点 URL-
OAUTH_ENABLED启用 OAuth 认证true-
OAUTH_CALLBACK_PORTOAuth 回调端口7665-
OAUTH_HOSTOAuth 回调主机名127.0.0.1-
WP_OAUTH_CLIENT_ID自定义 OAuth 客户端 ID--
OAuth 端点
OAUTH_AUTHORIZE_ENDPOINTOAuth 授权端点-✅ (自定义 OAuth)
OAUTH_TOKEN_ENDPOINTOAuth 令牌端点-✅ (自定义 OAuth)
OAUTH_AUTHENTICATE_ENDPOINTOAuth 认证端点--
MCP OAuth 2.1 设置
OAUTH_FLOW_TYPEOAuth 流类型(authorization_code 或 implicit)authorization_code-
OAUTH_USE_PKCE使用 PKCE(OAuth 2.1 必需)true-
OAUTH_DYNAMIC_REGISTRATION启用动态客户端注册true-
OAUTH_RESOURCE_INDICATOR使用资源指示符(RFC 8707)true-
配置
WP_MCP_CONFIG_DIR配置目录覆盖~/.mcp-auth-
LOG_FILE日志文件路径--
LOG_LEVEL日志级别(0-3)2-
遗留认证
JWT_TOKENJWT 令牌用于认证--
WP_API_USERNAMEWordPress 用户名(遗留)--
WP_API_PASSWORDWordPress 应用密码(遗留)--
WOO_CUSTOMER_KEYWooCommerce 消费者密钥--
WOO_CUSTOMER_SECRETWooCommerce 消费者密钥--

禁用 OAuth

仅使用 JWT 或基本认证:

{
  "env": {
    "OAUTH_ENABLED": "false",
    "JWT_TOKEN": "your-jwt-token"
  }
}

开发模式

为了开发和测试,您可以使用本地仓库:

设置

  1. 克隆仓库:

    git clone https://github.com/Automattic/mcp-wordpress-remote.git
    cd mcp-wordpress-remote
    
  2. 安装依赖项:

    npm install
    
  3. 构建项目:

    npm run build
    

配置

配置您的 MCP 客户端以使用本地版本:

{
  "mcpServers": {
    "wordpress": {
      "command": "node",
      "args": ["/path/to/your/mcp-wordpress-remote/dist/proxy.js"],
      "env": {
        "WP_API_URL": "https://your-wordpress-site.com"
      }
    }
  }
}

开发工作流

  • 监视模式: npm run build:watch - 文件更改时自动重新构建
  • 测试: npm test - 运行测试套件
  • 类型检查: npm run check - 运行 TypeScript 和 Prettier 检查

令牌管理

OAuth 令牌存储

令牌自动存储在:

~/.mcp-auth/wordpress-remote-{version}/

手动管理

# 查看存储的令牌
ls -la ~/.mcp-auth/wordpress-remote-*/

# 清除所有令牌(强制重新认证)
rm -rf ~/.mcp-auth/wordpress-remote-*/

# 清除特定版本的令牌
rm -rf ~/.mcp-auth/wordpress-remote-0.2.1/

令牌安全

  • 安全文件权限(600)应用于所有令牌文件
  • 每次请求前自动验证令牌
  • 启动时清除过期令牌
  • 版本隔离 - 每个版本单独存储令牌

多实例支持

代理自动在多个实例之间协调:

  • 锁文件防止同时的 OAuth 流程
  • 进程协调确保一次只有一个认证
  • 优雅等待当另一个实例正在认证时
  • 自动清理过时的锁

如果您看到“等待其他实例”的消息,这是正常行为。

故障排除

认证问题

OAuth 浏览器未打开:

  • 检查端口 3000 是否可用
  • 尝试使用不同的端口 OAUTH_CALLBACK_PORT
  • 手动打开日志中显示的 URL

OAuth 授权失败:

  • 验证 WordPress 站点已安装并启用了 MCP 插件
  • 检查 WordPress 管理员用户的权限
  • 尝试清除令牌并重新认证

JWT 认证失败:

  • 验证 JWT 令牌有效且未过期
  • 检查令牌格式和编码
  • 确保 WordPress 站点支持 JWT 认证

基本认证失败:

  • 验证用户名和应用密码
  • 检查应用密码是否激活
  • 确保用户有足够的权限

连接问题

API 端点未找到:

  • 验证 WordPress MCP 插件已安装并激活
  • 检查插件是否在 WordPress 管理中启用
  • 确认 WP_API_URL 正确

权限被拒绝:

  • 检查 WordPress 中的用户权限
  • 验证认证凭据
  • 审查 WordPress 用户角色

端口冲突

如果端口 3000 已经被占用:

{
  "env": {
    "OAUTH_CALLBACK_PORT": "8080"
  }
}

多实例消息

“等待其他实例”消息在多个 MCP 客户端同时启动时是正常的。系统协调认证以避免冲突。

日志分析

启用详细日志:

{
  "env": {
    "LOG_LEVEL": "3",
    "LOG_FILE": "/path/to/logfile.log"
  }
}

日志级别:

  • 0 - 仅错误
  • 1 - 警告和错误
  • 2 - 信息、警告和错误(默认)
  • 3 - 调试、信息、警告和错误

安全特性

  • 安全的 OAuth 流程 带状态参数和 PKCE
  • 令牌加密 带安全文件权限
  • 每次 API 请求前自动验证
  • 过期令牌清理 和刷新处理
  • 多实例协调 防止认证冲突

为什么使用 MCP WordPress 远程?

  1. 多种认证方法 - 选择最适合您设置的方法
  2. 增强安全性 - OAuth 2.0 带持久令牌存储
  3. 更好的用户体验 - 一次性设置,自动令牌管理
  4. 多实例支持 - 可靠地与多个 MCP 客户端一起工作
  5. 全面的日志记录 - 详细的日志用于故障排除
  6. 简单的设置 - 使用 npx 无需全局安装

要求

  • Node.js 22+(需要 fetch API 支持)
  • WordPress 站点 带有 wordpress-mcp 插件
  • WordPress 用户账户 具有适当的权限

许可

GPL v2 或更高版本

贡献

欢迎贡献!该项目由 Automattic Inc 维护。

支持


需要帮助? 查看 故障排除部分 或打开一个问题。