使用说明

项目简介

本项目是一个基于 Model Context Protocol (MCP) 的服务器实现,旨在桥接大型语言模型 (LLM) 与 WordPress 内容管理系统。通过此 MCP 服务器,LLM 应用可以安全、可控地访问和操作 WordPress 网站的内容,例如创建新的文章、检索现有文章列表、更新文章内容等。

主要功能点

  • 文章管理工具: 提供创建 (create_post)、读取 (get_posts)、更新 (update_post) WordPress 文章的功能,使 LLM 能够方便地与 WordPress 网站内容进行交互。
  • JSON-RPC 接口: 采用标准的 JSON-RPC 2.0 协议进行通信,易于集成到各种 MCP 客户端和 LLM 应用中。
  • 灵活的身份验证: 支持通过环境变量或请求参数传递 WordPress 网站的身份验证信息,方便不同部署场景的需求。
  • 错误处理: 对 WordPress API 调用过程中可能出现的错误进行捕获和处理,并将错误信息以 JSON-RPC 错误响应的形式返回给客户端。
  • 标准输入/输出通信: 通过标准输入 (stdin) 接收请求,标准输出 (stdout) 返回响应,符合 MCP 服务器的规范,易于部署和集成。

安装步骤

  1. 克隆仓库
    git clone https://github.com/stefans71/wordpress-mcp-server.git
    cd wordpress-mcp-server
  2. 安装依赖 确保已安装 Node.js (版本 >= 20.0.0) 和 npm。在项目根目录下运行:
    npm install
  3. 构建项目
    npm run build
    构建成功后,会在 'build' 目录下生成 'index.js' 文件。

服务器配置

要将此 MCP 服务器添加到 MCP 客户端,您需要在客户端的 MCP 服务器配置文件中添加以下配置信息。假设您的 MCP 客户端配置文件为 'mcp-config.json',您需要添加类似以下的配置到 'mcpServers' 字段中:

{
  "mcpServers": {
    "wordpress": {
      "command": "node",
      "args": ["/path/to/wordpress-mcp-server/build/index.js"],
      "env": {
        // (可选) WordPress 站点 URL,如果设置在这里,请求参数中可以省略
        "WORDPRESS_SITE_URL": "https://your-wordpress-site.com",
        // (可选) WordPress 用户名,建议使用应用密码,如果设置在这里,请求参数中可以省略
        "WORDPRESS_USERNAME": "your-username",
        // (可选) WordPress 应用密码,如果设置在这里,请求参数中可以省略
        "WORDPRESS_PASSWORD": "your-app-password"
      }
    }
  }
}

配置参数说明:

  • '"wordpress"': 服务器名称,您可以自定义,用于在 MCP 客户端中引用此服务器。
  • '"command": "node"': 启动服务器的命令,这里使用 Node.js 运行时。
  • '"args": ["/path/to/wordpress-mcp-server/build/index.js"]': 启动命令的参数,指向构建后的 'index.js' 文件路径。请将 '/path/to/wordpress-mcp-server' 替换为您的实际仓库路径。
  • '"env"': 环境变量配置,用于设置 WordPress 网站的连接信息。
    • '"WORDPRESS_SITE_URL"': 您的 WordPress 站点 URL,例如 'https://your-wordpress-site.com'。
    • '"WORDPRESS_USERNAME"': 您的 WordPress 用户名。
    • '"WORDPRESS_PASSWORD"': 您的 WordPress 应用密码。强烈建议使用 WordPress 应用密码 而不是主账户密码,以提高安全性。您可以在 WordPress 后台 "用户 -> 您的个人资料 -> 应用密码" 中创建应用密码。

注意: 'WORDPRESS_SITE_URL', 'WORDPRESS_USERNAME', 'WORDPRESS_PASSWORD' 这三个环境变量是可选的。您也可以在每次发送请求时,将这些信息作为请求参数传递。如果环境变量和请求参数都提供了,请求参数中的值将覆盖环境变量中的值。

基本使用方法

配置完成后,您的 MCP 客户端就可以通过 JSON-RPC 协议与此 WordPress MCP 服务器进行通信了。以下是一些基本的使用示例:

1. 创建文章 (create_post)

发送以下 JSON-RPC 请求到服务器的标准输入:

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "create_post",
  "params": {
    "title": "AI 生成的新文章",
    "content": "这是由 AI 自动创建的文章内容。",
    "status": "draft"  // 可选,文章状态,默认为 'draft',可选值: 'draft', 'publish', 'private'
    // 如果未在环境变量中配置,需要在此处提供 WordPress 凭据
    // "siteUrl": "https://your-wordpress-site.com",
    // "username": "your-username",
    // "password": "your-app-password"
  }
}

服务器会返回 JSON-RPC 响应,包含新创建的文章信息。

2. 获取文章列表 (get_posts)

发送以下 JSON-RPC 请求:

{
  "jsonrpc": "2.0",
  "id": 2,
  "method": "get_posts",
  "params": {
    "perPage": 5,  // 可选,每页文章数量,默认为 10
    "page": 1      // 可选,页码,默认为 1
    // 如果未在环境变量中配置,需要在此处提供 WordPress 凭据
    // "siteUrl": "https://your-wordpress-site.com",
    // "username": "your-username",
    // "password": "your-app-password"
  }
}

服务器会返回包含文章列表的 JSON-RPC 响应。

3. 更新文章 (update_post)

发送以下 JSON-RPC 请求:

{
  "jsonrpc": "2.0",
  "id": 3,
  "method": "update_post",
  "params": {
    "postId": 123,  // 必填,要更新的文章 ID
    "title": "更新后的文章标题", // 可选,新的文章标题
    "content": "这是更新后的文章内容。", // 可选,新的文章内容
    "status": "publish" // 可选,新的文章状态
    // 如果未在环境变量中配置,需要在此处提供 WordPress 凭据
    // "siteUrl": "https://your-wordpress-site.com",
    // "username": "your-username",
    // "password": "your-app-password"
  }
}

服务器会返回包含更新后文章信息的 JSON-RPC 响应。

运行服务器:

在 MCP 客户端配置完成后,当客户端需要与 WordPress 服务器交互时,会自动启动此 MCP 服务器。您也可以手动在项目根目录下运行以下命令启动服务器:

node build/index.js

服务器启动后,会在控制台输出 'WordPress MCP server running on stdin/stdout',表示服务器已准备好接收来自标准输入的 JSON-RPC 请求。

注意事项

  • 确保您的 WordPress 网站已启用 REST API 功能。
  • 强烈建议使用 WordPress 应用密码进行身份验证,以提高安全性。
  • 请根据您的实际 WordPress 站点信息配置环境变量或请求参数。
  • 本服务器通过标准输入/输出进行通信,适用于支持 Stdio 传输协议的 MCP 客户端。

信息

分类

开发者工具