返回市场
wordpress-mcp-服务器

wordpress-mcp-服务器

作者:rmcendarfer20172 星标更新:2025-04-15

项目介绍

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. 返回所有分类和标签的ID,以便与PUBLISH_ARTICLE一起使用

示例工作流程:

  1. 调用PREPARE_ARTICLE_METADATA并提供分类和标签名称
  2. 获取相应的ID
  3. 使用这些ID调用PUBLISH_ARTICLE来发布您的内容

特色图片支持

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表单字段进行文件上传
  • 使用image_url表单字段提供URL

环境变量支持

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

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

这意味着如果您在环境中设置了这些参数,就可以在调用工具时不必显式提供它们。