Token导航 LogoToken导航TokenDH.com
Wp Mulitisite Manager MCP logo
文档知识stdio官方级别未说明来源级核验

Wp Mulitisite Manager MCP

MCP Server

一个用于通过REST API同时管理多个WordPress站点的模型上下文协议(MCP)服务器,支持对文章、页面、分类、标签等的完整CRUD操作。

工具数

36

提示词数

0

GitHub Stars

0

资源数

0
PythonClaude知识管理Claude

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

silham

提供方

silham

最后核验

2026/5/17 20:23

运行时

Python

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

uv run mcp install main.py --with requests --with python-dotenv --env-file .env

详细介绍

WordPress 多站点 MCP 服务器

一个用于同时管理多个WordPress网站的模型上下文协议(MCP)服务器。

特点/特性

多站点支持

  • 通过环境变量配置和管理多个WordPress网站
  • 每个站点都有独立的身份验证和配置
  • 在工具调用中轻松切换网站

可用工具

  1. 获取可用站点() - 列出所有已配置的WordPress网站
  2. 根据站点名称和帖子ID获取帖子(get_post_by_id(site_name, post_id)) - 获取特定帖子
  3. 获取最近帖子(site_name, count) - 从网站获取最新帖子
  4. 搜索帖子(网站名称,搜索关键词,数量) - 在网站上搜索帖子
  5. 获取站点帖子分类(site_name) - 从网站获取所有类别
  6. 根据分类获取帖子(site_name, category_id, count) - 按类别获取帖子

可用资源

  • sites://list 翻译成中文是:“网站列表”或“站点列表” - 显示所有已配置站点的格式化列表

设置

1. 配置WordPress网站

编辑 .env 文件用于添加您的WordPress网站:

# Site 1
SITE_GOOGLERANK_URL=https://googlerank.com.au
SITE_GOOGLERANK_USER=goto@digifix.com.au
SITE_GOOGLERANK_APP_PASSWORD=iUGn XOkL QPvs q6jv CCI1 xWAd

# Site 2
# WordPress Multi-Site MCP Server

A powerful Model Context Protocol (MCP) server that provides Claude AI with comprehensive access to multiple WordPress sites via their REST API. Supports full CRUD operations on posts, pages, categories, tags, users, comments, and more.

## 🌟 Features

- **Multi-Site Support** - Manage multiple WordPress sites from a single MCP server
- **Complete REST API Coverage** - 30+ tools for all major WordPress operations
- **Full CRUD Operations** - Create, Read, Update, Delete for posts, pages, tags, categories, users, comments
- **Secure Authentication** - Token-based authentication for server access
- **Remote Deployment** - HTTP/SSE transport for hosting on remote servers
- **Flexible Credentials** - Store WordPress credentials on server or in Claude config
- **Health Monitoring** - Built-in health checks and status endpoints

## 🚀 Quick Start

### Local Development

1. **Clone and Install**

git clone https://github.com/silham/learn-mcp.git cd mcp-server-demo cp .env.example .env # Edit .env with your WordPress credentials


2. **配置WordPress网站**

# Generate auth token openssl rand -hex 32

# Add to .env MCP_AUTH_TOKEN=your-generated-token SITE_MYSITE_URL=https://example.com SITE_MYSITE_USER=admin@example.com SITE_MYSITE_APP_PASSWORD=xxxx xxxx xxxx xxxx


1. **在Claude上安装**

uv run mcp install main.py --with requests --with python-dotenv --env-file .env


### 远程部署

看 **[QUICKSTART_DEPLOYMENT.md 翻译为中文是:“快速启动部署指南.md” 或 “快速部署入门指南.md”](QUICKSTART_DEPLOYMENT.md)** 用于部署到Coolify或任何Docker主机。

## 📖 文档

- **[QUICKSTART_DEPLOYMENT.md 翻译为中文是:“快速启动_部署.md”](QUICKSTART_DEPLOYMENT.md)** - 分3步部署到Coolify
- **[AUTHENTICATION.md 翻译为中文是:“认证说明.md” 或 “身份验证文档.md”(具体翻译可能根据上下文有所调整,但基本意思是指一个关于认证或身份验证的Markdown文档文件)](AUTHENTICATION.md)** - 安全设置和凭证管理
- **[部署说明文件(DEPLOYMENT.md)](DEPLOYMENT.md)** - 全面部署指南
- **[.env.example(通常翻译为“.env示例文件”或“.env样板文件”)](.env.example)** - 环境变量模板
- **[\`claude_desktop_config.example.json\` 翻译为中文是:“Claude 桌面配置示例文件.json”](claude_desktop_config.example.json)** - Claude配置模板

## 🔐 安全

### 双因素认证

1. **MCP服务器认证** - 控制对MCP服务器的访问
1. **WordPress 认证(或WordPress 权限管理)** - 个人网站凭据(应用密码)

### 凭证配置选项

**选项A:服务器端(更简单)**

.env file

MCP_AUTH_TOKEN=your-token SITE_MYSITE_URL=https://example.com SITE_MYSITE_USER=admin@example.com SITE_MYSITE_APP_PASSWORD=xxxx xxxx


**选项B:客户端(更安全 - 推荐)**

{ "mcpServers": { "wordpress": { "url": "https://mcp.yourdomain.com/sse", "headers": { "Authorization": "Bearer your-token" }, "env": { "SITE_MYSITE_URL": "https://example.com", "SITE_MYSITE_USER": "admin@example.com", "SITE_MYSITE_APP_PASSWORD": "xxxx xxxx" } } } }


看见 **[AUTHENTICATION.md 翻译为中文是:“认证.md”(其中,.md 通常表示这是一个Markdown格式的文件)](AUTHENTICATION.md)** 以获取完整的安全指南。

## 🛠️ 可用工具

### 现场管理

- `get_available_sites` - 列出所有已配置的WordPress网站
- `get_site_info` - 获取WordPress版本和网站信息

### 帖子

- `get_posts` / `get_post` - 检索并过滤帖子
- `get_posts_summary` - 轻量级帖子概览
- `create_post` - 创建新帖子
- `update_post` - 更新现有帖子
- `delete_post` - 删除帖子

### 页面

- `get_pages` / `get_page` - 获取页面
- `create_page` - 创建新页面
- `update_page` - 更新现有页面
- `delete_page` - 删除页面

### 分类与标签

- `get_categories` / `get_category` - 管理分类
- `create_category` / `update_category` / `delete_category`
- `get_tags` / `get_tag` - 管理标签
- `create_tag` / `update_tag` / `delete_tag`

### 用户

- `get_users` / `get_user` / `get_current_user`
- `create_user` / `update_user` / `delete_user`

### 评论

- `get_comments` / `get_comment`
- `create_comment` / `update_comment` / `delete_comment`

### 媒体

- `get_media` / `get_media_item` - 浏览和检索媒体

查看完整列表及 `get_available_sites` 在Claude中的工具。

## 📊 架构

┌─────────────────┐ │ Claude AI │ │ (MCP Client) │ └────────┬────────┘ │ SSE/HTTP or stdio │ ┌────────▼────────────┐ │ MCP Server (This) │ │ - Authentication │ │ - Multi-site mgmt │ │ - 30+ WP tools │ └────────┬────────────┘ │ REST API │ ┌────────▼────────┐ ┌──────────────┐ ┌──────────────┐ │ WordPress Site 1│ │ WP Site 2 │ │ WP Site N │ └─────────────────┘ └──────────────┘ └──────────────┘


## 🔧 配置

### 环境变量

**服务器认证:**

MCP_AUTH_TOKEN=your-secure-token # Optional but recommended for production


**WordPress 网站(每个网站重复此步骤):**

SITE__URL=https://example.com SITE__USER=username@example.com SITE__APP_PASSWORD=xxxx xxxx xxxx xxxx


**如何获取WordPress应用程序密码:**

1. WordPress 管理员 → 用户 → 个人资料
1. 滚动到“应用密码”
1. 以“MCP Server”为名创建新密码
1. 复制生成的密码

### Claude 桌面配置

**本地(标准输入输出):**

{ "mcpServers": { "wordpress": { "command": "uv", "args": ["run", "main.py"], "cwd": "/path/to/mcp-server-demo", "env": { "SITE_MYSITE_URL": "https://example.com", "SITE_MYSITE_USER": "admin@example.com", "SITE_MYSITE_APP_PASSWORD": "xxxx xxxx" } } } }


**远程(SSE):**

{ "mcpServers": { "wordpress-remote": { "url": "https://mcp.yourdomain.com/sse", "transport": "sse", "headers": { "Authorization": "Bearer your-auth-token" }, "env": { "SITE_MYSITE_URL": "https://example.com", "SITE_MYSITE_USER": "admin@example.com", "SITE_MYSITE_APP_PASSWORD": "xxxx xxxx" } } } }


## 🧪 测试

### 健康检查

curl https://mcp.yourdomain.com/health


### SSE 连接(带认证)

curl -H "Authorization: Bearer YOUR_TOKEN" https://mcp.yourdomain.com/sse


### 本地服务器

./start.sh

or

uv run python server_http.py


## 🐳 Docker 部署

Build

docker build -t wordpress-mcp .

Run

docker run -p 8000:8000 --env-file .env wordpress-mcp

Docker Compose

docker-compose up -d


## 📝 项目结构

mcp-server-demo/ ├── main.py # MCP server core with all tools ├── server_http.py # HTTP/SSE wrapper for remote access ├── pyproject.toml # Python dependencies ├── .env # Environment config (not in git) ├── .env.example # Template ├── Dockerfile # Container definition ├── docker-compose.yml # Container orchestration ├── start.sh # Local server startup script ├── README.md # This file ├── QUICKSTART_DEPLOYMENT.md # Quick deployment guide ├── AUTHENTICATION.md # Security documentation ├── DEPLOYMENT.md # Comprehensive deployment guide └── claude_desktop_config.example.json # Claude config template


## 🤝 贡献(或:参与贡献)

欢迎贡献!这是一个展示MCP能力的学习项目。

## 📄 许可证

MIT 许可证 - 欢迎自由使用和修改。

## 🙏 致谢

- 构建于 [模型上下文协议(MCP)](https://modelcontextprotocol.io)
- 用途 [FastMCP](https://github.com/jlowin/fastmcp) 框架
- WordPress REST API v2

## 🆘 支持

- 请查阅 AUTHENTICATION.md 和 DEPLOYMENT.md 中的文档
- 审查示例配置
- 使用健康端点进行测试
- 检查服务器日志中的错误

## 🔄 版本

**版本:** 1.0.0\
**最后更新时间:** 2025年10月\
**MCP协议:** 2024年11月5日

# 根据需要添加任意数量的网站。。。

Environment Variable Pattern:

  • SITE__URL - WordPress site URL
  • SITE__USER - WordPress username
  • SITE__APP_PASSWORD - WordPress Application Password

Site Name Rules:

  • Can be any alphanumeric string with underscores
  • Will be converted to lowercase for use in tools
  • Example: SITE_GOOGLERANK becomes googlerank

2. Generate WordPress Application Passwords

For each WordPress site:

  1. Log into WordPress admin
  2. Go to Users → Your Profile
  3. Scroll to Application Passwords section
  4. Enter a name (e.g., "MCP Server")
  5. Click Add New Application Password
  6. Copy the generated password (spaces included)
  7. Add to your .env file

3. Install the MCP Server

cd /Users/shakil/Dev/learn/mcp/mcp-server-demo
uv run mcp install main.py --with requests --with python-dotenv --env-file .env

重要提示: 务必包含:

  • --with requests - HTTP客户端
  • --with python-dotenv - 环境变量加载
  • --env-file .env - 您的环境文件路径

4. 重启Claude

  1. 完全退出 Claude(Cmd+Q)
  2. 重启克劳德
  3. 服务器应显示为“WordPress 多站点管理器”

使用示例

在克劳德(或译为“克劳德”)

一旦连接成功,您就可以使用MCP工具:

列出所有已配置的站点:

Use the get_available_sites tool

获取特定网站的最新帖子:

Get the 5 most recent posts from googlerank

搜索帖子:

Search for posts about "SEO" on googlerank site

获取分类:

Show me all categories on the googlerank site

本地测试

在Claude中使用前,先在本地测试服务器:

# Test basic functionality
uv run python main.py

# Test specific functions
uv run python -c "
from main import get_available_sites, get_recent_posts
sites = get_available_sites()
print('Sites:', sites)
if sites:
    posts = get_recent_posts(sites[0]['name'], 3)
    print(f'Posts: {len(posts)}')
"

添加更多网站

  1. 编辑 .env 文件
  2. 按照以下模式添加新站点:
   SITE_NEWSITE_URL=https://newsite.com
   SITE_NEWSITE_USER=user@newsite.com
   SITE_NEWSITE_APP_PASSWORD=xxxx xxxx xxxx xxxx
  1. 重启 Claude(服务器启动时加载 .env 文件)

无需重新安装MCP服务器,只需重启Claude即可加载新站点。

工具参考

获取可用站点()

返回所有已配置站点及其详细信息的列表。

返回值:

[
  {
    "name": "googlerank",
    "url": "https://googlerank.com.au",
    "api_base": "https://googlerank.com.au/wp-json/wp/v2"
  }
]

根据ID获取帖子(site_name, post_id)

通过ID获取特定帖子。

参数:

  • site_name (字符串): 网站名称(例如,“googlerank”)
  • post_id (int): WordPress 帖子ID

返回值: 包含标题、内容、元数据等的完整帖子对象。

获取最近帖子(site_name, count=5)

获取最近发布的帖子。

参数:

  • site_name (字符串):网站名称
  • count (int): 帖子数量(默认:5)

返回值: 帖子对象列表

搜索帖子(site_name, search_term, count=10)

搜索与某个词匹配的帖子。

参数:

  • site_name (str): 网站名称
  • search_term (字符串): 搜索查询
  • count (int): 最大结果数(默认:10)

返回值: 匹配帖子列表

获取站点文章分类(site_name)

从网站获取所有类别。

参数:

  • site_name (str): 网站名称

返回值: 类别对象列表

根据分类获取帖子(site_name, category_id, count=10)

获取特定类别的帖子。

参数:

  • site_name (字符串): 网站名称
  • category_id (int): 类别ID
  • count (int): 帖子数量(默认:10)

返回值: 该类别下的帖子列表

故障排除

“未配置WordPress站点”错误

问题: 服务器找不到任何已配置的网站。

解决方案:

  1. 检查 .env 文件存在且格式正确
  2. 验证环境变量是否符合模式: SITE__URL等。
  3. 重新安装时使用 --env-file .env 旗帜
  4. 重启克劳德

“未找到站点 'xyz'”错误

问题: 请求的站点名称与任何已配置的站点都不匹配。

解决方案:

  1. 使用 get_available_sites() 查看可用的站点名称
  2. 网站名称不区分大小写,且会被转换为小写
  3. 检查 .env 对于网站名称中的拼写错误

认证错误

问题: 401 未授权或认证失败。

解决方案:

  1. 验证应用程序密码是否正确 .env
  2. 检查用户名是否正确
  3. 确保在WordPress网站上已启用应用程序密码
  4. 尝试重新生成应用程序密码

检查Claude MCP日志

tail -f ~/Library/Logs/Claude/mcp*.log

建筑

网站配置(WordPressSite (类)

  • 存储网站凭据和URL
  • 生成认证头信息
  • 提供API基础URL

环境加载(load_wordpress_sites

  • 扫描环境变量以查找站点配置
  • 验证必填字段(URL、用户名、密码)
  • 返回配置的站点字典

API请求(make_wp_request

  • 处理所有WordPress REST API调用
  • 支持GET和POST方法
  • 自动认证头部注入
  • 带有有意义消息的错误处理

安全注意事项

  • 永远不要承诺 .env 文件提交到Git(添加到 .gitignore
  • 应用密码比常规密码更安全
  • 每个应用密码都可以单独撤销
  • 安全地存储凭据
  • 为不同的工具使用不同的应用程序密码

未来改进方向

潜在可添加的功能:

  • 帖子的创建/更新/删除操作
  • 媒体上传支持
  • 用户管理
  • 插件/主题信息
  • 网站健康检查
  • 跨多个站点的批量操作
  • 自定义文章类型支持

目录标签

目录标签

PythonClaude知识管理WordPress管理本地部署多站点支持RESTAPICRUD操作内容管理

支持客户端

Claude

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

token

运行时(runtime,运行环境)

Python

工具数量(toolCount,工具数)

36

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdiotoken部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP