WordPress内容发布服务器

一个通过机器通信协议(MCP)或API向WordPress站点发布和管理内容的服务器,支持文章发布、分类标签管理及特色图片上传。

  • by rmcendarfer2017
  • Python
  • 本地部署
  • 2 星标
  • 更新于
在 GitHub 查看 rmcendarfer2017/wordpress-mcp-server

使用说明

WordPress MCP服务器

一种机器通信协议(MCP)服务器,允许将内容发布到WordPress网站。

特性

  • 将文章发布到WordPress
  • 测试WordPress连接
  • 创建、检索和管理WordPress类别和标签
  • 发布时自动处理类别和标记创建
  • 通过URL或base64编码数据支持特色图像
  • 既可作为独立的FastAPI服务器,也可作为MCP服务器
  • WordPress凭据的环境变量支持

设置

  1. 使用UV创建虚拟环境:

    uv venv
    .venv\Scripts\activate
    
  2. 安装依赖项:

    uv pip install -r requirements.txt
    
  3. 配置WordPress凭据:

    • 重命名 .env.example 向 .env (或创建新 .env 文件)
    • 使用您的WordPress网站URL、用户名和应用程序密码进行更新

用法

作为MCP服务器

在MCP模式下运行服务器:

python main.py --mcp

作为独立的API

将服务器作为独立的FastAPI应用程序运行:

python main.py

API将于http://localhost:8000

API终点

  • GET / -根端点
  • GET /wp-config -从环境变量获取WordPress配置
  • POST /get-categories -从WordPress获取所有类别
  • POST /get-tags -从WordPress获取所有标签
  • POST /test-connection -测试WordPress连接
  • POST /publish-article -将文章发布到WordPress

MCP工具

  • PUBLISH_ARTICLE -使用类别和标签ID将文章发布到WordPress
  • PREPARE_ARTICLE_METADATA -检查现有的类别和标签,如果它们不存在,则创建它们,并返回它们的ID
  • TEST_CONNECTION -测试与WordPress网站的连接

类别和标签管理

WordPress MCP服务器现在支持高级类别和标签管理:

使用PREPARE_ARTICLE_METADATA

此工具允许您:

  1. 检查您的WordPress网站上是否存在类别和标签
  2. 自动创建任何不存在的类别或标签
  3. 返回与PUBLISH_ARTICLE一起使用的所有类别和标签的ID

工作流程示例:

  1. 使用类别和标记名称调用PREPARE_ARTICLE_METADATA
  2. 取回相应的ID
  3. 在PUBLISH_ARTICLE中使用这些ID来发布您的内容

特色图片支持

WordPress MCP服务器现在支持向文章添加特色图片:

使用PUBLISH_ARTICLE处理图像

您可以通过两种方式将特色图片添加到文章中:

  1. 通过URL:提供 image_url 与图像直接链接的参数

    "image_url": "https://example.com/path/to/image.jpg"
    
  2. 通过Base64:提供 image_base64 base64编码图像数据的参数

    "image_base64": "iVBORw0KGgoAAAANSUhEUgAA..."
    
  3. 自定义文件名:可选择为上传的图像指定文件名

    "image_filename": "my-custom-image-name.jpg"
    

服务器将:

  • 下载图像(如果提供了URL)或解码base64数据
  • 将图片上传到WordPress
  • 将其设置为文章的特色图片
  • 在响应中返回媒体ID

使用独立API

当使用独立的API时,您可以提供一个特色图像,如下所示:

  • 使用 image 表单字段
  • 使用的URL image_url 表单字段

环境变量支持

所有工具现在都支持使用您的环境变量 .env 文件为默认值:

  • WP_SITE_URL -您的WordPress网站URL
  • WP_USERNAME -您的WordPress用户名
  • WP_PASSWORD -您的WordPress应用程序密码

这意味着,如果在您的环境中设置了这些参数,您可以在不显式提供这些参数的情况下调用这些工具。