Metadata-Version: 2.4
Name: wb-wordpress-site-manager-mcp
Version: 1.0.0
Summary: WordPress 站点管家 —— WorkBuddy 连接器（local stdio MCP）：文章/评论/媒体管理，官方 REST API + 应用密码，零第三方依赖
Author: 牛魔科技工作室
License: MIT
Keywords: mcp,wordpress,workbuddy,connector
Requires-Python: >=3.9
Description-Content-Type: text/markdown

# WordPress 站点管家连接器（wordpress-site-manager）

**开发者：牛魔科技工作室**

连接你自己的 WordPress 网站后台（**官方 REST API + 应用密码**），用自然语言写文章、管评论、传媒体、看站点概况。**操作只作用于你自填的那个站点**；应用密码在 WP 后台生成，仅保存在本机。

- **source ID**：`wordpress-site-manager`
- **运行形态**：local stdio MCP（本机进程，无服务器、无端口、不开放外网入口）
- **依赖**：零第三方依赖，纯 Python 标准库
- **发布形态**：`uvx wb-wordpress-site-manager-mcp==1.0.0`（PyPI 包与连接器同源发布）

## 一、前置安装（只需一次）

本连接器通过 `uvx` 启动，需要本机已安装 [uv](https://docs.astral.sh/uv/)：

```bash
# Windows (PowerShell)
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
# macOS / Linux
curl -LsSf https://astral.sh/uv/install.sh | sh
```

验证：`uvx --version`。未安装 uv 时连接器无法启动——这是唯一的环境前置。

## 二、连接配置（约 5 分钟）

1. 登录你的 WordPress 后台（`https://你的站点/wp-admin`）。
2. 打开 **用户 → 个人资料**，拉到 **应用密码** 区域；在名称框输入 `WorkBuddy`，点 **添加新应用密码**。
3. 复制生成的密码（形如 `xxxx xxxx xxxx xxxx xxxx xxxx`，**只显示一次**）。
4. 回到 WorkBuddy 连接器卡片点「连接」，依次填入：
   - **站点地址**：`https://你的站点`（根地址，不带 `/wp-admin`、不带尾斜杠）
   - **登录用户名**：后台登录用的用户名（不是昵称）
   - **应用密码**：上一步复制的密码（带不带空格都行）

### 权限对照表（最小权限）

| 想用的能力 | 账号最低角色 | 对应工具 |
|---|---|---|
| 读文章/评论/媒体、看概况 | 订阅者即可读已发布内容 | `post_list` `post_get` `comment_list` `media_list` `term_list` `site_overview` |
| 写草稿、传媒体 | 投稿者（contributor） | `post_create`(draft) `media_upload` `comment_reply` |
| 直接发布/更新/删除文章 | 作者（author） | `post_create`(publish) `post_update` `post_delete` |
| 管理评论（通过/标垃圾/删） | 编辑（editor） | `comment_moderate` |
| 管理分类/标签 | 作者及以上 | `post_create`/`post_update` 的自动建词、`term_list` |

> 应用密码的权限 = 该账号自身权限，不会放大。建议日常用「作者」角色的账号连接。

> **看不到「应用密码」区域？** 该功能只在 https 站点（或 localhost）显示；某些安全插件会隐藏它，可暂时停用相关插件生成后再启用。

## 三、工具清单（13 个）

| 工具 | 说明 | 写操作 |
|---|---|---|
| `config_selftest` | 配置与凭证自检（站点可达 → 密码有效 → 角色提示） | 否 |
| `site_overview` | 站点概况：名称、地址、账号角色、各类内容总量 | 否 |
| `post_list` | 列文章：状态/关键词/分类/标签/作者过滤 | 否 |
| `post_get` | 读单篇全文（rendered 或 raw 编辑原文） | 否 |
| `post_create` | 新建文章：默认草稿，可定时发布（status=future + date） | **是** |
| `post_update` | 更新文章：只改传入的字段 | **是** |
| `post_delete` | 删除文章：默认回收站，`force=true` 才永久删除 | **是** |
| `media_upload` | 上传本机文件到媒体库（≤64MB） | **是** |
| `media_list` | 列媒体库 | 否 |
| `comment_list` | 列评论：按文章/状态过滤 | 否 |
| `comment_moderate` | 评论管理：通过/待审/垃圾/回收站/永久删除 | **是** |
| `comment_reply` | 以连接账号身份回复评论（支持楼中楼） | **是** |
| `term_list` | 列分类/标签（含文章数） | 否 |

## 四、安全与数据边界

- **只连你自己填的站点**：内置护栏校验目标域名必须与连接配置一致，路径必须在 WordPress 官方 REST API（`/wp-json/`）命名空间内，其余一律拒绝（含云元数据地址）。
- **凭证仅保存在本机**：应用密码走平台「自填 Token」注入环境变量，不落盘、不进连接器文件、不回传任何第三方；日志自动脱敏。
- **删除有缓冲**：文章/评论删除默认进回收站；永久删除需要显式 `force=true`/`delete`。
- **速率温和**：全局 2 QPS 限频，不会压垮你的站点。

## 五、常见问题

| 现象 | 原因与处理 |
|---|---|
| 401 / 凭证校验失败 | 应用密码复制时带了换行、用户名填成昵称、或密码已被撤销——重新生成再填 |
| 403 权限不足 | 账号角色不够：发文需「作者」+，评论管理需「编辑」+ |
| 看不到应用密码功能 | 站点不是 https（localhost 除外）或安全插件隐藏了它 |
| 连不上 / 超时 | 确认本机能访问站点；某些主机会拦截境外请求或限制 REST API |
| `rest_cannot_read` 读不了草稿 | 正常：草稿只有有权限的账号可见，确认用的是作者以上角色的应用密码 |
