catalog/repos/5unnykum4r--wordpress-mcp.md

291 lines
9.4 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# WordPress AI控制MCP服务
`WordPress` `MCP` `AI代理` `内容管理` `自动化`
# WordPress MCP
一个模型上下文协议MCP服务器让 AI 代理能够全面控制 WordPress 站点。通过 46 个 MCP 工具管理文章、页面、媒体、分类、标签、评论、SEO、重定向、Gutenberg 区块、可复用模式、TablePress 表格、插件、用户和站点设置。
专为 **Claude Code** 打造,同时兼容 Claude Agent SDK 及任何支持 MCP 的客户端。
## 工作原理
```
┌─────────────┐ JSON-RPC ┌──────────────────┐ HTTP/Auth ┌─────────────────┐
│ Claude / │ ──────────────▶ │ Python MCP │ ──────────────▶ │ WordPress 站点 │
│ AI 代理 │ │ 代理服务器 │ │ (MCP 适配器) │
│ │ ◀────────────── │ (server.py) │ ◀────────────── │ (mu-plugin) │
└─────────────┘ MCP 工具 └──────────────────┘ JSON-RPC └─────────────────┘
sites.json
(多站点配置)
```
单个 Python 代理可管理**无限数量的 WordPress 站点**。每次工具调用包含 `site` 参数以指定目标站点。身份验证使用 WordPress 应用程序密码WP 5.6+ 内置支持)。
## 功能特性
| 分类 | 工具数 | 功能 |
|------|--------|------|
| **文章与页面** | 9 个工具 | 增删改查、批量状态变更、版本历史、搜索替换 |
| **分类与标签** | 8 个工具 | 支持 Rank Math SEO 的增删改查 |
| **媒体** | 4 个工具 | 从 URL 上传、浏览媒体库、更新元数据、删除 |
| **评论** | 3 个工具 | 列表、审核(批准/标记垃圾/移至回收站)、回复、删除 |
| **Rank Math SEO** | — | 文章和分类的完整 SEO 元数据标题、描述、焦点关键词、Open Graph、Twitter、Schema、robots |
| **重定向** | 4 个工具 | Rank Math 重定向增删改查301/302/307/410/451 |
| **Gutenberg 区块** | 1 个工具 | 发现所有已注册的区块类型及属性 Schema |
| **同步模式** | 5 个工具 | 创建、读取、更新、删除可复用区块 |
| **TablePress** | 5 个工具 | 完整的表格增删改查,含显示选项和可见性设置 |
| **插件** | 2 个工具 | 列出已安装插件、启用/禁用 |
| **用户** | 1 个工具 | 按角色筛选用户列表 |
| **设置** | 3 个工具 | 读写选项、刷新缓存、获取站点信息 |
| **工具** | 1 个工具 | 列出所有已配置的站点 |
**共 46 个工具**,覆盖 WordPress 管理的全部操作面。
## 快速开始
### 1. 安装 WordPress 适配器
```bash
# 在本地构建 PHP 依赖
cd wordpress/
composer install
# 将 vendor/ 和 load-mcp-adapter.php 上传至你的 WordPress 服务器
# 详细说明请参阅 SETUP.md
```
### 2. 配置代理
```bash
# 复制示例配置
cp sites.json.example sites.json
# 填写你的站点信息
```
```json
{
"myblog": {
"url": "https://yourdomain.com/wp-json/mcp/mcp-adapter-default-server",
"username": "YourAdmin",
"password": "xxxx xxxx xxxx xxxx xxxx xxxx"
}
}
```
### 3. 连接到 Claude
**Claude Code** — 添加至 `~/.claude.json`(或让你的 Claude Code 代理帮你配置):
```json
{
"mcpServers": {
"wordpress": {
"type": "stdio",
"command": "uv",
"args": [
"run",
"--with", "fastmcp",
"--with", "httpx",
"python",
"/path/to/wordpress-mcp/server.py"
]
}
}
}
```
然后安装工具文档所需的 skill
```bash
npx skills add 5unnykum4r/wordpress-mcp
```
或手动创建符号链接:
```bash
ln -s /path/to/wordpress-mcp/skill/wordpress-mcp ~/.claude/skills/wordpress-mcp
```
完整配置说明、故障排查及使用示例请参阅 [安装指南](SETUP.md)。
## 工具参考
所有工具的第一个参数均为 `site`
<details>
<summary><strong>文章与页面</strong>9 个工具)</summary>
| 工具 | 操作 |
|------|------|
| `list_posts` | 列出/筛选文章和页面 |
| `read_post` | 读取完整内容、元数据、SEO |
| `create_post` | 创建文章含内容、分类、标签、SEO |
| `update_post` | 部分更新任意字段 |
| `delete_post` | 移至回收站或永久删除 |
| `bulk_update_status` | 批量修改多篇文章状态 |
| `list_revisions` | 查看版本历史 |
| `restore_revision` | 还原到历史版本 |
| `search_replace` | 在内容中查找/替换(支持预览模式) |
</details>
<details>
<summary><strong>分类与标签</strong>8 个工具)</summary>
| 工具 | 操作 |
|------|------|
| `list_categories` | 列出分类及 Rank Math SEO 数据 |
| `create_category` | 创建分类,可选 SEO 设置 |
| `update_category` | 更新名称、别名、父分类、SEO |
| `delete_category` | 删除分类(文章移至默认分类) |
| `list_tags` | 列出并搜索标签 |
| `create_tag` | 创建新标签 |
| `update_tag` | 更新标签名称、别名、描述 |
| `delete_tag` | 删除标签(文章取消关联) |
</details>
<details>
<summary><strong>媒体</strong>4 个工具)</summary>
| 工具 | 操作 |
|------|------|
| `upload_image` | 从 URL 下载并添加到媒体库 |
| `list_media` | 按 MIME 类型筛选浏览 |
| `update_media` | 更新标题、替代文本、描述 |
| `delete_media` | 永久删除 |
</details>
<details>
<summary><strong>评论</strong>3 个工具)</summary>
| 工具 | 操作 |
|------|------|
| `list_comments` | 按文章、状态、关键词筛选 |
| `update_comment` | 批准、标记垃圾、移至回收站或回复 |
| `delete_comment` | 永久删除 |
</details>
<details>
<summary><strong>重定向</strong>4 个工具)</summary>
| 工具 | 操作 |
|------|------|
| `list_redirections` | 列出 Rank Math 重定向规则 |
| `create_redirection` | 创建 301/302/307/410/451 重定向 |
| `update_redirection` | 修改来源、目标、类型 |
| `delete_redirection` | 删除重定向规则 |
</details>
<details>
<summary><strong>Gutenberg 区块与模式</strong>6 个工具)</summary>
| 工具 | 操作 |
|------|------|
| `list_block_types` | 发现已注册区块及 Schema |
| `list_patterns` | 列出可复用/同步模式 |
| `read_pattern` | 读取模式区块内容 |
| `create_pattern` | 创建同步模式 |
| `update_pattern` | 更新模式内容 |
| `delete_pattern` | 删除模式 |
</details>
<details>
<summary><strong>TablePress</strong>5 个工具)</summary>
| 工具 | 操作 |
|------|------|
| `list_tablepress_tables` | 列出所有表格 |
| `read_tablepress_table` | 读取数据、选项、可见性 |
| `create_tablepress_table` | 用二维数组创建表格 |
| `update_tablepress_table` | 更新数据、选项、可见性 |
| `delete_tablepress_table` | 永久删除 |
</details>
<details>
<summary><strong>管理</strong>7 个工具)</summary>
| 工具 | 操作 |
|------|------|
| `list_plugins` | 列出已安装插件及状态 |
| `toggle_plugin` | 启用或禁用插件 |
| `list_users` | 按角色列出用户 |
| `manage_options` | 读写 WordPress 设置 |
| `clear_cache` | 刷新所有缓存 |
| `get_info` | 站点信息、版本、主题 |
| `list_sites` | 显示已配置的站点 |
</details>
## 项目结构
```
wordpress-mcp/
├── README.md ← 本文件
├── SETUP.md ← 完整安装指南及故障排查
├── LICENSE ← MIT 许可证
├── server.py ← Python MCP 代理FastMCP + httpx
├── sites.json.example ← 站点配置模板
├── wordpress/
│ ├── load-mcp-adapter.php ← WordPress MU-plugin服务端
│ ├── composer.json ← PHP 依赖
│ └── composer.lock
└── skill/
└── wordpress-mcp/ ← Claude Code skill
├── SKILL.md
└── references/ ← 工具文档7 个文件)
```
## 环境要求
**本地(代理服务器):**
- Python 3.10+
- [uv](https://docs.astral.sh/uv/) 包管理器
- FastMCP 和 httpx`uv run` 自动安装)
**WordPress 服务器:**
- WordPress 5.6+(支持应用程序密码)
- PHP 7.4+
- Composer 包:`wordpress/abilities-api``wordpress/mcp-adapter`
## 多站点管理
`sites.json` 中添加任意数量的 WordPress 站点:
```json
{
"blog": {
"url": "https://blog.example.com/wp-json/mcp/mcp-adapter-default-server",
"username": "admin",
"password": "xxxx xxxx xxxx xxxx xxxx xxxx"
},
"shop": {
"url": "https://shop.example.com/wp-json/mcp/mcp-adapter-default-server",
"username": "admin",
"password": "yyyy yyyy yyyy yyyy yyyy yyyy"
},
"docs": {
"url": "https://docs.example.com/wp-json/mcp/mcp-adapter-default-server",
"username": "editor",
"password": "zzzz zzzz zzzz zzzz zzzz zzzz"
}
}
```
每个站点拥有独立别名,通过 `site="blog"``site="shop"` 等参数指定目标站点。添加新站点无需重启代理。
## 贡献
欢迎贡献代码,请提交 Issue 或 Pull Request。
## 许可证
[MIT](LICENSE)