WordPress模型上下文协议插件

一个通过模型上下文协议(MCP)暴露WordPress内容的插件,使AI代理和其他MCP兼容工具能够以结构化、安全的方式访问和交互WordPress文章、页面和自定义文章类型。

  • by 0xMikeAdams
  • PHP
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 0xMikeAdams/wpmcp

使用说明

WPMCP-WordPress模型上下文协议插件

一个WordPress插件,通过模型上下文协议(MCP)公开WordPress内容,使AI代理和其他MCP兼容工具能够以结构化、安全的方式访问WordPress帖子、页面和自定义帖子类型并与之交互。

特性

  • MCP合规性:使用JSON-RPC 2.0完全实现模型上下文协议规范
  • 内容访问:安全读取WordPress帖子、页面和自定义帖子类型
  • API密钥验证:基于API密钥的安全身份验证系统
  • 速率限制:可配置的速率限制,以防止滥用
  • 搜索功能:在WordPress内容中进行全文搜索,并进行相关性评分
  • 管理界面:易于使用的WordPress管理面板进行配置
  • 安全日志:全面的请求记录和安全监控

需求

  • WordPress 5.0或更高版本
  • PHP 7.4或更高版本
  • MySQL 5.6或更高版本

安装

  1. 下载插件文件
  2. 上传到您的WordPress /wp-content/plugins/ 目录
  3. 通过WordPress管理面板激活插件
  4. 前往设置>WPMCP配置插件

配置

API密钥

  1. 导航到WordPress管理员中的设置>WPMCP
  2. 在API密钥部分,输入API密钥的名称
  3. 点击“生成API密钥”
  4. 复制生成的API密钥(您只能看到它一次)
  5. 在MCP客户端配置中使用此API密钥

内容访问

配置可通过API访问的帖子类型:

  • 帖子(默认:启用)
  • 页面(默认:启用)
  • 自定义帖子类型(可配置)

安全设置

  • 速率限制:设置每小时每个API键的最大请求数(默认值:100)
  • 安全日志:启用/禁用请求日志记录(默认:启用)
  • 调试模式:启用详细日志以进行故障排除(默认:禁用)

MCP端点

该插件在以下位置创建REST API端点:

https://yoursite.com/wp-json/wpmcp/v1/mcp

可用的MCP工具

get_posts

使用过滤选项检索WordPress帖子。

参数:

  • post_type (string):要检索的帖子类型(默认值:'Post')
  • limit (int):要检索的帖子数(最大值:100,默认值:10)
  • offset (int):分页偏移量(默认值:0)
  • filters (对象):其他过滤器(日期、作者、类别等)

get_post

通过ID或slug检索单个WordPress帖子。

参数:

  • post_id (int):岗位ID
  • slug (string):Post slug(替代Post_id)

获取页面

使用层次结构支持检索WordPress页面。

参数:

  • limit (int):要检索的页数(最大值:100,默认值:10)
  • offset (int):分页偏移量(默认值:0)
  • parent_id (int):按父页ID筛选
  • include_hierarchy (bool):在结果中包含子页面

get_page

通过ID或slug检索单个WordPress页面。

参数:

  • page_id (int):页面ID
  • slug (string):页面段符(替代Page_id)

get_post_types

检索可用的帖子类型及其元数据。

参数:

  • include_builtin (bool):包含内置的帖子类型(默认值:false)

搜索内容

使用相关性评分在WordPress内容中搜索。

参数:

  • query (string):搜索查询(必填)
  • post_types (数组):要搜索的帖子类型(默认:所有允许的类型)
  • limit (int):结果数(最大值:50,默认值:10)
  • offset (int):分页偏移量(默认值:0)
  • filters (对象):附加过滤器

示例用法

测试插件

您可以通过访问以下链接来测试插件是否正常工作:

https://yoursite.com/wp-json/wpmcp/v1/test

MCP客户端配置

配置您的MCP客户端以使用端点:

Endpoint: https://yoursite.com/wp-json/wpmcp/v1/mcp
Method: POST
Headers: 
  - Content-Type: application/json
  - X-API-Key: your-generated-api-key

示例请求

{
  "jsonrpc": "2.0",
  "method": "get_posts",
  "params": {
    "post_type": "post",
    "limit": 5,
    "filters": {
      "category": "technology",
      "date_after": "2024-01-01"
    }
  },
  "id": 1
}

安全

  • 所有请求都需要有效的API密钥身份验证
  • 限速防止滥用
  • 仅可访问已发布的内容
  • WordPress用户权限得到尊重
  • 记录安全事件以进行监控

发展

设置

composer install

数据库表

该插件创建了两个自定义表:

  • wp_wpmcp_api_keys:存储API密钥及其元数据
  • wp_wpmcp_request_logs:记录API安全监控请求

故障排除

常见问题

  1. 404端点错误:刷新永久链接结构(设置>永久链接>保存)
  2. 认证失败:验证API密钥处于活动状态并且格式正确
  3. 超出费率限制:检查速率限制设置或等待限制重置
  4. 未返回任何内容:验证插件设置中是否启用了帖子类型

调试模式

在插件设置中启用调试模式以获取详细的日志信息。检查WordPress调试日志以获取详细的错误消息。

许可证

此插件在GPLv3下获得许可

更新日志

1.0.0

  • 初始版本
  • MCP协议实现
  • API密钥验证
  • 内容访问控制
  • 搜索功能
  • 管理界面
  • 安全日志