蓝MCP
Bluehost MCP模块通过 Bluehost MCP服务器 在 /wp-json/blu/mcp这些是WordPress的功能,作为人工智能助手和MCP客户端的MCP工具公开。
开发人员文档: 看见 docs/index.md (目录)和 代理商.md 面向代理和回购。
MCP工具命名: 能力注册为 blu/ 以MCP工具的形式公开 blu- (斜线替换为连字符)。例如,能力 blu/posts-search 成为MCP工具 blu-posts-search。此连字符形式出现在 tools/list 以及网关返回什么。
______________________________________________________________________
网关模式(默认)
服务器暴露 3网关工具 而不是83个单独的工具。这将令牌使用量减少了约96%——LLM根据需要发现和调用能力,而不是预先接收所有工具模式。
网关工具(通过公开 tools/list)
服务器注册了3个网关工具。默认名称如下所示,但 MCP客户端不得对这些名称进行硬编码。相反,请致电 tools/list 并通过其输入模式形状识别3个网关角色:
| 角色 | 默认名称 | 如何识别(来自 tools/list 输入模式)。 |
|---|---|---|
| 列表 | blu-list-abilities | 有可选 search 和 name_prefix 属性(均为字符串),否 ability_name |
| 模式 | blu-get-ability-schema | 需要 ability_name (字符串),否 parameters 财产 |
| 呼叫 | blu-call-ability | 需要 ability_name (string)并且具有可选项 parameters (对象) |
会话设置(一次性)
在调用任何工具之前,请建立MCP会话:
- 发送
initialize→ 服务器返回Mcp-Session-Id头球 - 发送
notifications/initialized使用该会话ID - 使用相同
Mcp-Session-Id在所有后续请求中,直到过期(24小时不活动超时)
你做 不 需要为每个工具调用重新初始化——重用会话ID。
使用流程
会话建立后,呼叫 tools/list 获取3个网关工具,并通过模式形状进行标识。然后按3个步骤进行交互:
1.发现 --呼叫 列表 工具查看可用内容:
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "blu-list-abilities",
"arguments": {}
}
}答复:
{
"jsonrpc": "2.0",
"id": 1,
"result": {
"content": [
{
"type": "text",
"text": "{\"statusCode\":200,\"status\":\"success\",\"message\":[...]}"
}
],
"structuredContent": {
"statusCode": 200,
"status": "success",
"message": [
{
"name": "blu-posts-search",
"label": "Search Posts",
"description": "Search and filter WordPress posts with pagination",
"annotations": { "readonly": true }
}
]
}
}
}能力列表位于 result.structuredContent.message (解析)或 result.content[0].text (JSON字符串)。每个条目包括 name (连字符形式,与此一起使用 blu-get-ability-schema 和 blu-call-ability), label, description,以及 annotations.
2.检查 --呼叫 模式 学习能力接受哪些参数的工具:
{
"jsonrpc": "2.0",
"id": 2,
"method": "tools/call",
"params": {
"name": "blu-get-ability-schema",
"arguments": { "ability_name": "blu-posts-search" }
}
}响应 result.structuredContent.message 包含:
{
"name": "blu-posts-search",
"label": "Search Posts",
"description": "Search and filter WordPress posts with pagination",
"input_schema": {
"type": "object",
"properties": {
"search": { "type": "string", "description": "Search term" },
"per_page": { "type": "integer", "description": "Posts per page" }
}
},
"annotations": { "readonly": true }
}3.执行 --呼叫 呼叫 具有能力名称和参数的工具:
{
"jsonrpc": "2.0",
"id": 3,
"method": "tools/call",
"params": {
"name": "blu-call-ability",
"arguments": {
"ability_name": "blu-posts-search",
"parameters": { "search": "hello", "per_page": 5 }
}
}
}响应 result.structuredContent 包含能力的结果(格式因能力而异)。
重要提示: 切勿将能力名称直接称为MCP工具名称(例如。"name": "blu-posts-search"在tools/call水平)。能力只能通过以下方式获得 呼叫 网关工具。唯一有效的MCP工具名称是由返回的3个网关工具tools/list.
筛选列表
两种网关列表工具(blu-list-abilities)以及REST目录工具(blu-list-api-functions)接受可选过滤器。所有过滤器都是AND组合的;省略它们以返回完整目录。
blu-list-abilities:
| 筛选器 | 类型 | 行为 |
|---|---|---|
search | string | 每个能力的不区分大小写的子字符串匹配 name (连字符形式), label,以及 description. |
name_prefix | string | MCP工具名称的前缀匹配(连字符形式)。暴露了两个WooCommerce表面: "blu-wc-" Bluehost的WooCommerce包装器和 "woocommerce-" WooCommerce原生能力。斜线形式被标准化为连字符形式(例如。 "blu/wc" ≡ "blu-wc"). |
// Bluehost's WooCommerce wrappers under "blu-wc-products"
{
"method": "tools/call",
"params": {
"name": "blu-list-abilities",
"arguments": { "name_prefix": "blu-wc-products", "search": "category" }
}
}
// WooCommerce-native abilities under "woocommerce-products"
{
"method": "tools/call",
"params": {
"name": "blu-list-abilities",
"arguments": { "name_prefix": "woocommerce-products" }
}
}blu-list-api-functions:
| 筛选器 | 类型 | 行为 | |||
|---|---|---|---|---|---|
namespace | string | 与WordPress注册的REST命名空间完全匹配。多段("wp/v2", "wc/v3", "wc-admin/marketing")单段("wc-analytics")名称空间都受支持。领先和落后的斜线是可以容忍的。 | |||
methods | 数组 `"GET" \ | "POST" \ | "PATCH" \ | "DELETE"` | 仅限于列出的HTTP方法(大写,由架构枚举验证)。省略或传递一个空数组以允许所有方法。 |
search | string | 路由字符串上不区分大小写的子字符串匹配 |
{
"method": "tools/call",
"params": {
"name": "blu-list-api-functions",
"arguments": { "namespace": "wp/v2", "methods": ["GET"] }
}
}回复中的每个项目都是一个 (route, method) 配对加上衍生 namespace (例如。 "wp/v2" 或 "wc-analytics"),因此客户端可以进一步分组或过滤,而无需解析路由字符串。使用组合方法注册的端点(例如。 WP_REST_Server::EDITABLE = "POST, PUT, PATCH")每个方法发出一行。
MCP运输路线 /blu/mcp 从目录中排除,因此LLM无法发现并调用其返回传输的方式。同样的路线也被拒绝 blu-run-api-function 如果直接通过。
白名单
网关仅公开与允许的命名空间或类别匹配的功能:
- 命名空间:
blu/,woocommerce/(可通过以下方式配置blu_mcp_allowed_namespaces过滤器) - 类别:
blu-mcp,woocommerce-rest(可通过以下方式配置blu_mcp_allowed_categories过滤器)
blu/ 和 blu-mcp 涵盖Bluehost自身的能力(包括 blu/wc-* WooCommerce包装纸)。 woocommerce/ 和 woocommerce-rest 涵盖WooCommerce本机注册的能力(由于WC10.3提供了自己的API集成能力-产品、订单等 woocommerce/-).
要添加另一个命名空间,请执行以下操作:
add_filter( 'blu_mcp_allowed_namespaces', function ( $namespaces ) {
$namespaces[] = 'myplugin/';
return $namespaces;
} );传统模式
要绕过网关并直接公开所有单独的工具(之前的行为):
add_filter( 'blu_mcp_use_gateway', '__return_false' );______________________________________________________________________
可用能力
以下所有能力都可以通过网关访问。这 能力名称 列显示内部注册名称。这 MCP工具名称 列显示了要使用的连字符表单名称 blu-call-ability 和 blu-get-ability-schema.
内容管理
帖子
| 能力名称 | MCP工具名称 | 描述 |
|---|---|---|
blu/posts-search | blu-posts-search | 使用分页搜索和过滤WordPress帖子 |
blu/get-post | blu-get-post | 通过ID获取WordPress帖子 |
blu/add-post | blu-add-post | 添加新的WordPress帖子 |
blu/update-post | blu-update-post | 按ID更新WordPress帖子 |
blu/delete-post | blu-delete-post | 按ID删除WordPress帖子 |
职位类别
| 能力名称 | MCP工具名称 | 描述 |
|---|---|---|
blu/list-categories | blu-list-categories | 列出所有WordPress帖子类别 |
blu/add-category | blu-add-category | 添加新的WordPress帖子类别 |
blu/update-category | blu-update-category | 更新WordPress帖子类别 |
blu/delete-category | blu-delete-category | 删除WordPress帖子类别 |
文章信息标签
| 能力名称 | MCP工具名称 | 描述 |
|---|---|---|
blu/list-tags | blu-list-tags | 列出所有WordPress帖子标签 |
blu/add-tag | blu-add-tag | 添加新的WordPress帖子标签 |
blu/update-tag | blu-update-tag | 更新WordPress帖子标签 |
blu/delete-tag | blu-delete-tag | 删除WordPress帖子标签 |
页面
| 能力名称 | MCP工具名称 | 描述 |
|---|---|---|
blu/pages-search | blu-pages-search | 使用分页搜索和过滤WordPress页面 |
blu/get-page | blu-get-page | 按ID获取WordPress页面 |
blu/add-page | blu-add-page | 添加新的WordPress页面 |
blu/update-page | blu-update-page | 按ID更新WordPress页面 |
blu/delete-page | blu-delete-page | 按ID删除WordPress页面 |
媒体
| 能力名称 | MCP工具名称 | 描述 |
|---|---|---|
blu/list-media | blu-list-media | 列出带有分页和过滤功能的WordPress媒体项目 |
blu/get-media | blu-get-media | 按ID获取WordPress媒体项目 |
blu/get-media-file | blu-get-media-file | 获取WordPress媒体项目的实际文件内容(blob) |
blu/upload-media | blu-upload-media | 将新媒体文件上传到WordPress |
blu/update-media | blu-update-media | 更新WordPress媒体项目 |
blu/delete-media | blu-delete-media | 永久删除WordPress媒体项目 |
blu/search-media | blu-search-media | 按标题、说明或描述搜索WordPress媒体 |
自定义文章类型
| 能力名称 | MCP工具名称 | 描述 |
|---|---|---|
blu/list-post-types | blu-list-post-types | 列出所有已注册的WordPress帖子类型(内置和自定义) |
blu/cpt-search | blu-cpt-search | 在带有分页的自定义帖子类型中搜索和过滤内容项 |
blu/get-cpt | blu-get-cpt | 按ID从自定义帖子类型中获取单个内容项 |
blu/add-cpt | blu-add-cpt | 在现有自定义帖子类型中创建新内容项 |
blu/update-cpt | blu-update-cpt | 按ID更新自定义帖子类型中的现有内容项 |
blu/delete-cpt | blu-delete-cpt | 按ID从自定义帖子类型中永久删除内容项 |
______________________________________________________________________
站点管理
用户
| 能力名称 | MCP工具名称 | 描述 |
|---|---|---|
blu/users-search | blu-users-search | 使用分页搜索和过滤WordPress用户 |
blu/get-user | blu-get-user | 通过ID获取WordPress用户 |
blu/add-user | blu-add-user | 添加新的WordPress用户 |
blu/update-user | blu-update-user | 按ID更新WordPress用户 |
blu/delete-user | blu-delete-user | 按ID删除WordPress用户 |
设置
| 能力名称 | MCP工具名称 | 描述 |
|---|---|---|
blu/get-general-settings | blu-get-general-settings | 获取WordPress常规网站设置 |
blu/update-general-settings | blu-update-general-settings | 更新WordPress常规站点设置 |
站点信息
| 能力名称 | MCP工具名称 | 描述 |
|---|---|---|
blu/get-site-info | blu-get-site-info | 获取详细的网站信息(名称、URL、描述、管理员电子邮件、插件、主题、用户等) |
______________________________________________________________________
全局样式
| 能力名称 | MCP工具名称 | 描述 |
|---|---|---|
blu/get-global-styles | blu-get-global-styles | 按ID获取全局样式配置 |
blu/update-global-styles | blu-update-global-styles | 更新全局样式配置(颜色、排版、间距等) |
blu/get-active-global-styles | blu-get-active-global-styles | 获取当前主题的当前活动全局样式 |
blu/get-active-global-styles-id | blu-get-active-global-styles-id | 获取活动全局样式ID(用于获取/更新) |
______________________________________________________________________
主题
| 能力名称 | MCP工具名称 | 描述 |
|---|---|---|
blu/get-active-theme | blu-get-active-theme | 获取活动主题信息 |
______________________________________________________________________
WooCommerce(当WooCommerce处于活动状态时)
两个表面暴露在外:
- Bluehost WooCommerce工具 (
blu/wc-*,MCP表格blu-wc-*):包装在下面blu/下面列出的命名空间。使用name_prefix: "blu-wc-"上blu-list-abilities隔离。 - WooCommerce本地能力 (
woocommerce/-,MCP表格woocommerce--):由WooCommerce 10.3+注册woocommerce/src/Internal/Abilities/AbilitiesRestBridge.php。通过列表/获取/创建/更新/删除操作涵盖产品、订单和其他WC资源。使用name_prefix: "woocommerce-"隔离。两者woocommerce/命名空间和woocommerce-rest默认情况下,类别被列入白名单。
产品
| 能力名称 | MCP工具名称 | 描述 |
|---|---|---|
blu/wc-products-search | blu-wc-products-search | 搜索WooCommerce产品 |
blu/wc-get-product | blu-wc-get-product | 按ID获取WooCommerce产品 |
blu/wc-add-product | blu-wc-add-product | 添加WooCommerce产品 |
blu/wc-update-product | blu-wc-update-product | 更新WooCommerce产品 |
blu/wc-delete-product | blu-wc-delete-product | 删除WooCommerce产品 |
产品类别
| 能力名称 | MCP工具名称 | 描述 |
|---|---|---|
blu/wc-list-product-categories | blu-wc-list-product-categories | 列出WooCommerce产品类别 |
blu/wc-add-product-category | blu-wc-add-product-category | 添加WooCommerce产品类别 |
blu/wc-update-product-category | blu-wc-update-product-category | 更新WooCommerce产品类别 |
blu/wc-delete-product-category | blu-wc-delete-product-category | 删除WooCommerce产品类别 |
产品标签
| 能力名称 | MCP工具名称 | 描述 |
|---|---|---|
blu/wc-list-product-tags | blu-wc-list-product-tags | 列出WooCommerce产品标签 |
blu/wc-add-product-tag | blu-wc-add-product-tag | 添加WooCommerce产品标签 |
blu/wc-update-product-tag | blu-wc-update-product-tag | 更新WooCommerce产品标签 |
blu/wc-delete-product-tag | blu-wc-delete-product-tag | 删除WooCommerce产品标签 |
产品品牌
| 能力名称 | MCP工具名称 | 描述 |
|---|---|---|
blu/wc-list-product-brands | blu-wc-list-product-brands | 列出WooCommerce产品品牌 |
blu/wc-add-product-brand | blu-wc-add-product-brand | 添加WooCommerce产品品牌 |
blu/wc-update-product-brand | blu-wc-update-product-brand | 更新WooCommerce产品品牌 |
blu/wc-delete-product-brand | blu-wc-delete-product-brand | 删除WooCommerce产品品牌 |
订单和报告
| 能力名称 | MCP工具名称 | 描述 |
|---|---|---|
blu/wc-orders-search | blu-wc-orders-search | 获取WooCommerce订单列表 |
blu/wc-reports-coupons-totals | blu-wc-reports-coupons-totals | 获取WooCommerce优惠券总计报告 |
blu/wc-reports-customers-totals | blu-wc-reports-customers-totals | 获取WooCommerce客户总数报告 |
blu/wc-reports-orders-totals | blu-wc-reports-orders-totals | 获取WooCommerce订单总数报告 |
blu/wc-reports-products-totals | blu-wc-reports-products-totals | 获取WooCommerce产品总数报告 |
blu/wc-reports-reviews-totals | blu-wc-reports-reviews-totals | 获取WooCommerce评论总数报告 |
blu/wc-reports-sales | blu-wc-reports-sales | 获取WooCommerce销售报告 |
______________________________________________________________________
高级:REST API CRUD
| 能力名称 | MCP工具名称 | 描述 |
|---|---|---|
blu/list-api-functions | blu-list-api-functions | 列出所有支持CRUD的WordPress REST API端点 |
blu/get-function-details | blu-get-function-details | 获取特定REST API路由和HTTP方法的详细元数据 |
blu/run-api-function | blu-run-api-function | 通过路由、方法和参数执行REST API请求 |
______________________________________________________________________
集成要求
任何连接到此服务器的MCP客户端都必须处理以下内容。无论使用何种LLM,这都适用。
端点
- 网址:
https://YOUR-SITE.com/wp-json/blu/mcp - 方法: POST(消息)、GET(SSE,当前为405)、DELETE(会话终止)
- 身份验证: 必填项(例如WordPress应用程序密码或通过Hiive的JWT)
会话生命周期
- 发布
initialize请求→ 服务器返回Mcp-Session-Id响应头 - 发布
notifications/initialized通知(否id字段,预期无响应)与该会话标头 - 包含
Mcp-Session-Id页眉打开 每 后续请求 - 会话在24小时不活动后过期(每个用户最多32个)
- 在出现“无效或过期会话”错误时,重新运行步骤1-2
POST /wp-json/blu/mcp
Authorization: Bearer
Content-Type: application/json
{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-06-18","capabilities":{},"clientInfo":{"name":"my-client","version":"1.0"}}}响应包括 Mcp-Session-Id: 头球
POST /wp-json/blu/mcp
Authorization: Bearer
Mcp-Session-Id:
Content-Type: application/json
{"jsonrpc":"2.0","method":"notifications/initialized"}JSON-RPC 2.0信封
每个请求和响应都使用JSON-RPC 2.0格式:
Request: { "jsonrpc": "2.0", "id": , "method": "", "params": {...} }
Response: { "jsonrpc": "2.0", "id": , "result": {...} }
Error: { "jsonrpc": "2.0", "id": , "error": { "code": , "message": "" } }JSON-RPC 2.0规范支持批处理请求(消息数组)。
响应格式 tools/call
成功的工具调用返回一个嵌套响应,客户端必须打开该响应:
{
"jsonrpc": "2.0",
"id": 1,
"result": {
"content": [
{ "type": "text", "text": "" }
],
"structuredContent": { ... }
}
}result.structuredContent--解析的结果对象(首选)result.content[0].text--与JSON字符串相同的结果(回退)- 图像结果使用
content[0].type: "image"使用base64data和mimeType
错误形状
错误有两种形式,客户必须区分:
协议错误 (找不到工具,请求无效)--JSON-RPC错误格式:
{ "jsonrpc": "2.0", "id": 1, "error": { "code": -32602, "message": "Tool not found: foo" } }工具执行错误 (权限被拒绝,能力失败)-MCP isError 格式:
{
"jsonrpc": "2.0", "id": 1,
"result": {
"content": [{ "type": "text", "text": "Access denied for tool: blu-call-ability" }],
"isError": true
}
}能力响应包装器
内部 structuredContent,网关能力返回一致的包装器:
{
"statusCode": 200,
"status": "success",
"message": [ ... ]
}statusCode--HTTP样式状态(200、400、404、500)status—"success"或"error"message--实际有效载荷(列表的数组、单个项目的对象、错误的字符串)
上海证券交易所
MCP 2025-06-18规范定义了SSE流的GET。此服务器当前为GET请求返回HTTP 405(未实现),但符合规范的客户端应准备在未来的版本中处理SSE。
