mcpField
M
MCP Wordpress

MCP Wordpress

本地服务
github.com/crunchtools商业与营销12 天前更新

关于 MCP Wordpress

MCP WordPress CrunchTools 是供开发者管理 WordPress 文章、页面、媒体和评论的本地 MCP 服务。编辑工具基于已保存的源内容操作,并可在写入前检查版本,同时提供输入验证和 SSRF 防护。

主要功能

  1. 01管理文章、页面、媒体和评论
  2. 02安排文章发布并查看修订记录
  3. 03通过定点替换编辑已保存源内容
  4. 04更新前检查预期版本
  5. 05验证输入并防止 SSRF

适用场景

  1. 01起草或安排技术博客文章发布
  2. 02更新 WordPress 页面并避免覆盖过期内容
  3. 03上传媒体并审核评论

MCP 相关

该服务通过 stdio 在本地运行,使用站点 URL、用户名和应用程序密码将 MCP 客户端连接到 WordPress。它提供内容管理工具,凭证保留在本机。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"crunchtools-wordpress": {
"command": "uvx",
"args": [
"mcp-wordpress-crunchtools"
]
}
}
}
启动命令uvx mcp-wordpress-crunchtools

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
pypimcp-wordpress-crunchtools0.4.1

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

MCP WordPress CrunchTools

用于 WordPress 内容管理的安全 MCP(Model Context Protocol)服务。专为发布工作成果的开发者设计。

概述

此 MCP 服务旨在实现:

  • 默认安全——验证输入、保护凭据并防止 SSRF
  • 无需第三方服务——通过 stdio 在本地运行,凭据绝不会离开你的设备
  • 跨平台——支持 Linux、macOS 和 Windows
  • 自动更新——GitHub Actions 监控 CVE 并更新依赖项
  • 容器化——可通过 quay.io/crunchtools/mcp-wordpress 获取

命名约定

组件名称
GitHub 仓库crunchtools/mcp-wordpress
容器quay.io/crunchtools/mcp-wordpress
Python 包(PyPI)mcp-wordpress-crunchtools
CLI 命令mcp-wordpress-crunchtools
模块导入mcp_wordpress_crunchtools

功能

  • 面向文章、页面、媒体和评论的 33 个工具
  • 注重安全:保护凭据、验证输入、防止 SSRF
  • 开发者工作流:定时发布、修订、搜索
  • 轻松集成:兼容 Claude Code 和其他 MCP 客户端

安装

使用 uvx(推荐)
uvx mcp-wordpress-crunchtools
使用 pip
pip install mcp-wordpress-crunchtools
mcp-wordpress-crunchtools
使用容器
# Create a shared upload directory (required before first run)
mkdir -p ~/.local/share/mcp-uploads-downloads

podman run -v ~/.local/share/mcp-uploads-downloads:/tmp/mcp-uploads:z \
  -e WORDPRESS_URL=https://example.com \
  -e WORDPRESS_USERNAME=admin \
  -e WORDPRESS_APP_PASSWORD='xxxx xxxx xxxx xxxx' \
  quay.io/crunchtools/mcp-wordpress

SELinux 提示: 请使用 :z(小写,共享),而不是 :Z(大写,私有)。 MCP 服务以长时间运行的 stdio 进程形式运行。使用 :Z 时,容器启动后复制到 目录中的文件不会带有容器的私有 MCS 标签,因此在容器内不可见。 :z 标志会设置共享的 container_file_t 上下文,允许所有容器和主机读取/写入。

提示: 在多个 MCP 容器服务(例如 mcp-wordpress 和 mcp-gemini)之间 使用相同的共享目录(~/.local/share/mcp-uploads-downloads/),这样 生成的文件无需复制即可立即用于上传。

从源代码安装
git clone https://github.com/crunchtools/mcp-wordpress.git
cd mcp-wordpress
uv sync --all-extras
uv run mcp-wordpress-crunchtools

配置

设置以下环境变量:

变量说明示例
WORDPRESS_URLWordPress 站点 URLhttps://example.com
WORDPRESS_USERNAMEWordPress 用户名admin
WORDPRESS_APP_PASSWORD应用程序密码xxxx xxxx xxxx xxxx
MCP_UPLOAD_DIR容器内的上传目录(可选)/tmp/mcp-uploads(默认值)
创建应用程序密码
  1. 登录 WordPress 管理后台
  2. 前往 用户 → 个人资料
  3. 滚动到 应用程序密码
  4. 输入名称(例如“​​MCP Server”)并点击 添加新密码
  5. 复制生成的密码(仅显示一次)

搭配 Claude Code 使用

使用 uvx(推荐)
claude mcp add mcp-wordpress-crunchtools \
    --env WORDPRESS_URL=https://example.com \
    --env WORDPRESS_USERNAME=admin \
    --env WORDPRESS_APP_PASSWORD="xxxx xxxx xxxx xxxx" \
    -- uvx mcp-wordpress-crunchtools
使用 pip
pip install mcp-wordpress-crunchtools

claude mcp add mcp-wordpress-crunchtools \
    --env WORDPRESS_URL=https://example.com \
    --env WORDPRESS_USERNAME=admin \
    --env WORDPRESS_APP_PASSWORD="xxxx xxxx xxxx xxxx" \
    -- mcp-wordpress-crunchtools
使用容器
# Create a shared upload directory (required before first run)
mkdir -p ~/.local/share/mcp-uploads-downloads

claude mcp add mcp-wordpress-crunchtools \
    --env WORDPRESS_URL=https://example.com \
    --env WORDPRESS_USERNAME=admin \
    --env WORDPRESS_APP_PASSWORD="xxxx xxxx xxxx xxxx" \
    -- podman run -i --rm \
        -v ~/.local/share/mcp-uploads-downloads:/tmp/mcp-uploads:z \
        -e WORDPRESS_URL \
        -e WORDPRESS_USERNAME \
        -e WORDPRESS_APP_PASSWORD \
        quay.io/crunchtools/mcp-wordpress

可用工具

站点工具
工具说明
wordpress_get_site_info获取站点标题、描述、URL 和时区
wordpress_test_connection验证 API 凭据是否有效
编辑模型

读取操作会返回编辑器保存的源内容(context=edit),而不是渲染后的页面,因此 Agent 读取的内容可以安全地写回。修改通过 edit_* 工具进行:Agent 发送要替换的确切文本及其替换内容,服务会将其应用到当前源内容,文章不会经过 Agent 往返传递。文章和页面的更新及编辑工具接受可选的 expected_version(即 get_post 或 get_page 返回的 version);提供该值时,如果条目自获取后发生了变化,就会拒绝写入。update_* 会拒绝渲染后的内容。edit_draft 仅编辑草稿或待审核文章,因此网关可以授予修订权限,而无需授予更改已发布文章的权限。

文章工具
工具描述
wordpress_list_posts按状态、分类、搜索条件筛选并列出文章
wordpress_get_post按 ID 获取单篇文章,包含已保存的源内容(包括区块标记)和版本
wordpress_search_posts按关键词搜索文章
wordpress_create_post创建新文章(支持定时发布)
wordpress_update_post更新现有文章;拒绝已渲染的 HTML,并在提供过期的 expected_version 时拒绝更新
wordpress_edit_post替换文章源内容中的文本,无需重新发送整篇文章
wordpress_edit_draft与 edit_post 相同,但仅适用于草稿或待审核文章;其他状态均会被拒绝
wordpress_delete_post删除文章或将其移至回收站
wordpress_list_revisions列出文章的修订版本
wordpress_get_revision获取指定修订版本的内容
wordpress_list_categories列出可用分类
wordpress_list_tags列出可用标签
页面工具
工具描述
wordpress_list_pages按条件筛选并列出页面
wordpress_get_page按 ID 获取单个页面,包含已保存的源内容和版本
wordpress_create_page创建新页面
wordpress_update_page更新现有页面;拒绝已渲染的 HTML,并在提供过期的 expected_version 时拒绝更新
wordpress_edit_page替换页面源内容中的文本,无需重新发送整个页面
wordpress_delete_page删除页面或将其移至回收站
wordpress_list_page_revisions列出页面修订版本
媒体工具
工具描述
wordpress_list_media列出媒体项目
wordpress_get_media获取媒体项目详情
wordpress_upload_media从本地路径上传文件
wordpress_update_media更新媒体元数据
wordpress_delete_media删除媒体项目
wordpress_get_media_url获取媒体的公开 URL
评论工具
工具描述
wordpress_list_comments按条件筛选并列出评论
wordpress_get_comment获取单条评论
wordpress_create_comment为文章添加评论
wordpress_update_comment更新评论内容或状态
wordpress_delete_comment删除评论
wordpress_moderate_comment批准、暂缓、标记为垃圾评论或移至回收站

示例

创建草稿文章
Create a new WordPress post titled "My Technical Article" with the content below. Keep it as a draft.
定时发布文章
Update post ID 123 to publish on December 25, 2024 at 10:00 AM.
上传图片
Upload this image to WordPress and set the alt text to "Architecture diagram".
查找并审核评论
List all comments in "hold" status and approve the legitimate ones.

安全

  • 凭据保护:所有凭据均以 SecretStr 存储,绝不记录到日志中
  • SSRF 防护:REST API 路径已硬编码,无法覆盖
  • 输入验证:所有输入均通过 Pydantic 模型验证
  • 速率限制:妥善处理 WordPress 速率限制
  • TLS 强制加密:所有请求均使用 HTTPS,并验证证书
  • 大小限制:响应大小限制为 10MB,以避免内存问题
  • 超时:所有请求均在 30 秒后超时

开发

# Install dev dependencies
uv sync --all-extras

# Run tests
uv run pytest

# Run linting
uv run ruff check src tests

# Run type checking
uv run mypy src

# Format code
uv run ruff format src tests

许可证

AGPL-3.0-or-later

致谢

由 crunchtools.com 构建

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。