项目简介

WP Loupe是一款强大的WordPress搜索增强插件,它不仅提供快速、准确和容错的搜索结果,还内置了一个可选的Model Context Protocol (MCP) 服务器。这个MCP服务器使得外部AI代理或自动化工具能够以标准化的方式发现网站的功能和数据,例如执行搜索查询、获取文章内容、检查服务器健康状况等,从而实现WordPress内容与LLM应用的无缝集成。

主要功能点

  • 内容搜索: 允许外部AI代理通过指定查询、限制、分页游标和文章类型,对WordPress文章进行全文本搜索。
  • 单文章获取: 能够通过ID获取单个WordPress文章的标题、内容、链接、摘要、发布日期及分类法信息。
  • Schema声明: 提供网站搜索索引的Schema定义,帮助AI理解可搜索、可过滤和可排序的字段。
  • 健康检查: 提供MCP服务器和WordPress环境的健康状态信息。
  • 命令发现: 列出MCP服务器支持的所有命令及其参数描述。
  • OAuth 2.0 认证: 支持基于'client_credentials'流程的OAuth 2.0 Bearer Token认证,确保AI代理的安全访问。
  • 速率限制: 为匿名和认证请求设置可配置的API请求速率限制。
  • 分页游标: 使用安全签名的分页游标,确保跨请求状态的可靠性和安全性。

安装步骤

  1. 下载插件: 从GitHub仓库下载最新版本的'wp-loupe.zip'文件。
  2. 上传安装: 登录WordPress后台,前往“插件” -> “安装插件” -> “上传插件”,选择下载的'wp-loupe.zip'文件并安装。
  3. 激活插件: 安装完成后,在插件列表中激活“WP Loupe”插件。
  4. 初始化索引: 激活后,前往“设置” -> “WP Loupe”页面,点击“Reindex”按钮以构建初始搜索索引。
  5. 启用MCP服务器: 在“设置” -> “WP Loupe”页面,切换到“MCP”选项卡,勾选“Enable MCP discovery manifest and command endpoint”并保存设置。

服务器配置

MCP客户端需要知道MCP服务器的通信方式。对于WP Loupe,其MCP服务器是通过WordPress REST API实现的HTTP服务。因此,客户端通常不需要“启动命令”,而是直接向其HTTP端点发送请求。

以下是一个MCP客户端可能需要的配置信息示例:

{
  "server_name": "WP Loupe MCP",
  "discovery_url": "https://your-wordpress-site.com/.well-known/mcp.json",
  "auth_url": "https://your-wordpress-site.com/wp-json/wp-loupe-mcp/v1/oauth/token",
  "type": "http" 
  // 如果MCP客户端有额外字段来配置HTTP请求,例如:
  // "http_endpoint": "https://your-wordpress-site.com/wp-json/wp-loupe-mcp/v1/commands"
}

参数注释:

  • 'server_name': 您的MCP服务器实例的名称,用于识别。
  • 'discovery_url': MCP服务器的发现URL,客户端将通过此URL获取服务器的manifest信息(包括所有可用命令和资源)。
  • 'auth_url': OAuth 2.0认证的URL,客户端将通过此URL获取访问令牌,以便访问受保护的命令和资源。
  • 'type': 指示MCP服务器的传输协议类型。对于WP Loupe,它是一个通过HTTP协议提供服务的MCP服务器。

获取OAuth令牌: 要获取访问令牌,MCP客户端可以使用'client_credentials'授权流程,向'auth_url'发送POST请求。

请求示例:

POST /wp-json/wp-loupe-mcp/v1/oauth/token HTTP/1.1
Host: your-wordpress-site.com
Content-Type: application/x-www-form-urlencoded

grant_type=client_credentials&client_id=wp-loupe-local&client_secret=YOUR_CLIENT_SECRET&scope=search.read%20health.read

重要提示:

  • 请将 'https://your-wordpress-site.com' 替换为您的WordPress网站的实际域名。
  • 'YOUR_CLIENT_SECRET'和'client_id'的默认值可以在'wp-config.php'中通过定义'WP_LOUPE_OAUTH_CLIENT_ID'和'WP_LOUPE_OAUTH_CLIENT_SECRET'常量来配置。如果未定义'client_secret',则允许空字符串作为'client_secret'值进行开发便利。

响应示例 (成功):

{
  "access_token": "YOUR_GENERATED_BEARER_TOKEN",
  "token_type": "Bearer",
  "expires_in": 3600, // 或0表示永不 expired
  "scope": "search.read health.read"
}

基本使用方法

  1. AI代理发现: 配置好的MCP客户端会自动访问'discovery_url'(即'https://your-wordpress-site.com/.well-known/mcp.json')来获取服务器支持的命令列表、资源和认证信息。
  2. 获取访问令牌: 如果需要访问受保护的命令(如'healthCheck'或扩展的'searchPosts'功能),MCP客户端将使用OAuth 2.0 'client_credentials'流程向'auth_url'获取Bearer Token。您可以在WordPress后台“WP Loupe”设置的“MCP”选项卡中管理和生成这些令牌。
  3. 执行命令: MCP客户端将通过HTTP POST请求向MCP命令端点(例如'https://your-wordpress-site.com/wp-json/wp-loupe-mcp/v1/commands')发送JSON格式的请求体,以执行如'searchPosts'、'getPost'、'getSchema'等命令。请求体应包含'command'、'params'和可选的'requestId'字段。
    • 例如,搜索文章 (请求体): '{"command": "searchPosts", "params": {"query": "WordPress plugin", "limit": 5}}' 如果需要认证,请求头应包含 'Authorization: Bearer YOUR_ACCESS_TOKEN'。
    • 例如,获取文章Schema (请求体): '{"command": "getSchema"}'
  4. 接收响应: MCP服务器将返回包含'success'、'error'、'requestId'和'data'字段的JSON响应,客户端据此解析结果。

信息

分类

AI与计算