# mcp-wordpress **Repository Path**: eluup/mcp-wordpress ## Basic Information - **Project Name**: mcp-wordpress - **Description**: WordPress MCP 服务器是一个基于 Go 语言开发的中间件,用于与 WordPress REST API 交互,提供了一系列工具来管理 WordPress 内容,包括文章、页面、用户、评论和媒体资源。该服务器基于 Mark3 Labs MCP (Modular Control Plane) 框架构建,支持多种服务器模式(stdio、http、sse) - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-03-08 - **Last Updated**: 2026-03-08 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # WordPress MCP 服务器 ## 项目介绍 WordPress MCP 服务器是一个基于 Go 语言开发的中间件,用于与 WordPress REST API 交互,提供了一系列工具来管理 WordPress 内容,包括文章、页面、用户、评论和媒体资源。 该服务器基于 Mark3 Labs MCP (Modular Control Plane) 框架构建,支持多种服务器模式(stdio、http、sse),并提供了健康检查、CORS 支持、日志记录等功能。 ## 项目结构 ``` mcp-wordpress/ ├── client/ # WordPress 客户端实现 │ └── wordpress_client.go ├── config/ │ ├── config.env # 配置文件 │ ├── config.env.example # 配置文件示例 │ └── cursor-mcp-config.json # Cursor MCP 配置 ├── docs/ # 文档目录 ├── models/ # 数据模型 │ └── models.go ├── tools/ # MCP 工具实现 │ ├── post.go # 文章相关工具 │ ├── page.go # 页面相关工具 │ ├── user.go # 用户相关工具 │ ├── comment.go # 评论相关工具 │ └── media.go # 媒体相关工具 ├── utils/ # 工具函数 │ └── utils.go ├── go.mod # Go 模块文件 ├── go.sum # Go 依赖校验文件 ├── main.go # 主程序 ├── wordpress-mcp # 可执行文件 ├── test/ │ └── wordpress_handlers_test.go # 测试文件 ├── request.json # 请求示例 └── test_auth.sh # 测试认证脚本 ``` ## 功能特性 - **多种服务器模式**:支持 stdio、http、sse 三种运行模式 - **完整的 WordPress 内容管理**: - 文章管理:获取、创建、更新、删除文章 - 页面管理:获取、创建、更新、删除页面 - 用户管理:获取用户列表、获取单个用户 - 评论管理:获取评论列表、创建、删除评论 - 媒体管理:获取媒体列表 - **健康检查**:提供健康检查端点,监控 WordPress 连接状态 - **CORS 支持**:可配置的跨域资源共享设置 - **日志记录**:详细的请求日志 - **请求超时**:可配置的请求超时设置 - **优雅关闭**:支持服务器优雅关闭 ## 安装与配置 ### 前提条件 - Go 1.16 或更高版本 - WordPress 网站安装并启用 REST API - WordPress 用户账号和应用程序密码(用于认证) ### 安装步骤 1. 克隆项目到本地 2. 进入项目目录 ```bash cd /System/Volumes/Data/webcode/mcp/mcp_wordpress ``` 3. 构建项目 ```bash go build -o wordpress-mcp ``` ### 配置文件 复制配置文件示例并修改为您的配置: ```bash cp config/config.env.example config/config.env ``` 编辑 `config/config.env` 文件,设置以下配置项: ```env # WordPress API URL WP_API_URL=https://your-wordpress-site.com/wp-json/wp/v2 # WordPress Authentication WP_USER=your-username WP_PASSWD=your-application-password # 服务器配置 SERVER_MODE=stdio # 可选: stdio, http, sse SERVER_HOST=localhost SERVER_PORT=8080 ``` ## 使用方法 ### 运行服务器 #### stdio 模式 ```bash ./wordpress-mcp ``` #### HTTP 模式 ```bash SERVER_MODE=http ./wordpress-mcp ``` #### SSE 模式 ```bash SERVER_MODE=sse ./wordpress-mcp ``` ### 工具列表 服务器提供以下工具: | 工具名称 | 描述 | 参数 | |---------|------|------| | `get_posts` | 获取WordPress文章列表 | 无 | | `get_post` | 获取单个WordPress文章 | id: 文章ID | | `create_post` | 创建WordPress文章 | title: 文章标题, content: 文章内容, status: 文章状态(可选,默认为publish) | | `update_post` | 更新WordPress文章 | id: 文章ID, title: 文章标题(可选), content: 文章内容(可选), status: 文章状态(可选) | | `delete_post` | 删除WordPress文章 | id: 文章ID | | `get_pages` | 获取WordPress页面列表 | 无 | | `get_page` | 获取单个WordPress页面 | id: 页面ID | | `create_page` | 创建WordPress页面 | title: 页面标题, content: 页面内容, status: 页面状态(可选,默认为publish) | | `update_page` | 更新WordPress页面 | id: 页面ID, title: 页面标题(可选), content: 页面内容(可选), status: 页面状态(可选) | | `delete_page` | 删除WordPress页面 | id: 页面ID | | `get_users` | 获取WordPress用户列表 | 无 | | `get_user` | 获取单个WordPress用户 | id: 用户ID | | `get_comments` | 获取WordPress评论列表 | 无 | | `create_comment` | 创建WordPress评论 | post_id: 文章ID, content: 评论内容, author_id: 作者ID(可选) | | `delete_comment` | 删除WordPress评论 | id: 评论ID | | `get_media` | 获取WordPress媒体列表 | 无 | ### 示例请求 #### 获取文章列表 ```json { "toolcall": { "thought": "获取WordPress文章列表", "name": "get_posts", "params": {} } } ``` #### 创建文章 ```json { "toolcall": { "thought": "创建WordPress文章", "name": "create_post", "params": { "title": "测试文章", "content": "这是一篇测试文章", "status": "publish" } } } ``` ## 健康检查 当服务器以 HTTP 模式运行时,可通过以下端点检查服务器和 WordPress 连接状态: ``` http://localhost:8080/health ``` ## 环境变量 除了配置文件外,您还可以通过环境变量覆盖配置: | 环境变量 | 描述 | 默认值 | |---------|------|--------| | `WP_API_URL` | WordPress API URL | 无(必需) | | `WP_USER` | WordPress 用户名 | 无(必需) | | `WP_PASSWD` | WordPress 应用程序密码 | 无(必需) | | `SERVER_MODE` | 服务器模式 | stdio | | `SERVER_HOST` | 服务器主机 | localhost | | `SERVER_PORT` | 服务器端口 | 8080 | | `HTTP_ENABLE_CORS` | 是否启用CORS | true | | `HTTP_CORS_ORIGINS` | CORS允许的源 | * | | `HTTP_ENABLE_HEALTH_CHECK` | 是否启用健康检查 | true | | `HTTP_HEALTH_CHECK_PATH` | 健康检查路径 | /health | | `HTTP_REQUEST_TIMEOUT` | 请求超时时间 | 30s | | `HTTP_ENABLE_LOGGING` | 是否启用日志 | true | ## 测试 运行测试: ```bash cd test go test ``` ## 故障排除 1. **WordPress 连接失败** - 检查 `WP_API_URL` 是否正确 - 确保 WordPress REST API 已启用 - 验证 `WP_USER` 和 `WP_PASSWD` 是否正确 2. **服务器启动失败** - 检查端口是否被占用 - 验证配置文件格式是否正确 - 查看日志输出以获取详细错误信息 3. **工具调用失败** - 检查 WordPress 权限设置 - 确保用户有足够的权限执行操作 - 查看服务器日志以获取详细错误信息 ## 依赖 - [github.com/mark3labs/mcp-go](https://github.com/mark3labs/mcp-go) - Mark3 Labs MCP 框架 ## 许可证 [MIT License](LICENSE)