返回市场
wp独立mcp

wp独立mcp

作者:diazoxide4 星标更新:2025-07-01

项目介绍

MseeP.ai 安全评估徽章

WordPress 独立 MCP 服务器

一个强大的 模型上下文协议(MCP) 服务器,通过 WordPress REST API 提供 AI 助手与 WordPress 站点之间的无缝集成。该服务器会自动发现并创建每个 WordPress REST API 端点的独立工具,从而实现自然语言管理 WordPress。

✨ 特性

  • 🔄 动态工具生成:自动为每个发现的 WordPress REST API 端点创建独立工具
  • 🌐 多站点支持:从单一配置管理多个 WordPress 站点
  • 🔒 安全认证:使用 WordPress 应用密码进行安全 API 访问
  • 🎯 智能工具过滤:使用精确匹配或正则表达式模式包含或排除特定工具
  • 📊 全面覆盖:支持文章、页面、用户、媒体、评论、插件、主题等
  • 🚀 零配置发现:自动映射所有可用端点,无需手动设置
  • ⚡ 高性能:高效的端点发现和请求处理
  • 🛡️ 错误处理:带有详细诊断信息的优雅错误处理

🚀 快速开始

安装

# 全局安装
npm install -g wp-standalone-mcp

# 或直接运行
npx github:diazoxide/wp-standalone-mcp start

基本配置

  1. 创建 WordPress 应用密码

    • 进入你的 WordPress 管理后台 → 用户 → 个人资料
    • 滚动到“应用密码”部分
    • 创建一个新的应用密码
    • 复制生成的密码
  2. 创建配置文件wp-sites.json):

    {
      "myblog": {
        "URL": "https://myblog.com",
        "USER": "your_username",
        "PASS": "your_application_password"
      }
    }
    
  3. 配置 Claude Desktopclaude_desktop_config.json):

    {
      "mcpServers": {
        "wordpress": {
          "command": "npx",
          "args": ["-y", "github:diazoxide/wp-standalone-mcp", "start"],
          "env": {
            "WP_SITES_PATH": "/absolute/path/to/wp-sites.json"
          }
        }
      }
    }
    
  4. 重启 Claude Desktop 并开始管理你的 WordPress 站点!

工具参考

动态端点工具

当服务器启动时,它会自动发现所有可用的 WordPress REST API 端点,并为每个端点/方法组合创建独立工具。工具名称遵循以下模式:[站点]_[方法]_[资源][站点]_[方法]_[资源]_id 对于特定 ID 的端点。

示例:

  • myblog_get_v2_posts - 列出所有文章
  • myblog_get_v2_posts_id - 根据 ID 获取特定文章
  • myblog_post_v2_posts - 创建新文章
  • myblog_put_v2_posts_id - 更新特定文章
  • myblog_delete_v2_posts_id - 删除特定文章

wp_discover_endpoints

重新发现 WordPress 站点上的所有可用 REST API 端点。

参数:

{
	"site": {
		"type": "string",
		"description": "站点别名(如在配置中定义)",
		"required": true
	}
}

返回值: 可用端点及其方法和命名空间列表。

🔧 配置

环境变量

  • WP_SITES_PATH:指向你的 WordPress 站点配置文件的路径
  • WP_SITES:直接 JSON 配置(替代文件)

站点配置模式

{
  "site_alias": {
    "URL": "https://your-site.com",
    "USER": "wordpress_username", 
    "PASS": "application_password",
    "FILTERS": {
      "include": ["tool_name_patterns"],
      "exclude": ["tool_name_patterns"]
    }
  }
}

获取应用密码

  1. 登录到你的 WordPress 管理后台
  2. 转到用户 → 个人资料
  3. 滚动到“应用密码”部分
  4. 输入应用名称(例如,“MCP 服务器”)
  5. 点击“添加新应用密码”
  6. 复制生成的密码(你无法再次查看)

注意:应用密码需要 WordPress 5.6 或更高版本以及 HTTPS。

高级工具过滤

通过过滤工具控制哪些 WordPress 操作是可用的:

{
  "myblog": {
    "URL": "https://myblog.com",
    "USER": "admin",
    "PASS": "abcd 1234 efgh 5678",
    "FILTERS": {
      "include": [
        "myblog_get_v2_posts",
        "myblog_post_v2_posts",
        "/.*_get_.*_posts.*/"
      ],
      "exclude": [
        "myblog_delete_v2_posts_id",
        "/.*_.*_users.*/",
        "/.*_delete_.*/"
      ]
    }
  }
}

过滤规则:

  • include:仅暴露指定的工具(白名单)
  • exclude:隐藏指定的工具(黑名单)
  • include 优先于 exclude
  • 支持精确匹配和正则表达式模式(用 /pattern/ 包围)

🛠️ 生成的工具

服务器会自动创建工具,遵循以下命名约定:

  • 模式[站点]_[方法]_[资源][站点]_[方法]_[资源]_id
  • 示例
    • myblog_get_v2_posts - 列出所有文章
    • myblog_get_v2_posts_id - 根据 ID 获取特定文章
    • myblog_post_v2_posts - 创建新文章
    • myblog_put_v2_posts_id - 更新特定文章
    • myblog_delete_v2_posts_id - 删除特定文章
    • myblog_get_v2_media - 列出媒体文件
    • myblog_get_v2_users - 列出用户

发现工具

  • wp_discover_endpoints - 重新发现站点上的可用端点

💡 使用示例

一旦配置完成,可以使用自然语言与你的 WordPress 站点交互:

列出和查询文章

你能给我展示一下 myblog 上个月发布的所有文章吗?
查找 testsite 上标记为“技术”和“AI”的所有文章
展示 myblog 中需要审阅的草稿文章

创建和编辑内容

在 testsite 上创建一篇标题为“AI 的未来”的新草稿文章,包括这些要点:[要点]
更新 myblog 最近一篇关于机器学习的文章的特色图片
在 myblog 上添加一个名为“科技新闻”的新分类

管理评论

展示 myblog 最近一篇文章的所有待审核评论
查找 testsite 上可能的垃圾评论
列出 myblog 上最活跃的评论者

插件管理

myblog 上当前有哪些插件是激活状态?
检查 testsite 上是否有任何插件需要更新
告诉我关于 myblog 上已安装的安全插件的信息

内容管理

“展示 myblog 上最近的 5 篇文章”
“在 myblog 上创建一篇标题为‘AI 和未来’的新草稿文章”
“更新 myblog 上 ID 为 123 的文章的特色图片”
“删除 myblog 上 ID 为 456 的文章”

媒体管理

“列出本月上传到 myblog 的所有图片”
“上传一张新图片到 myblog 的媒体库”
“获取媒体文件 ID 789 的详情”

用户管理

“展示 myblog 上具有编辑角色的所有用户”
“在 myblog 上创建一个新的贡献者账户”
“更新用户 ID 101 的权限”

站点分析

“myblog 上有哪些插件是激活状态?”
“展示所有待审核评论”
“获取当前主题信息”
“列出所有分类及其文章数量”

🏗️ 架构

┌─────────────────┐    ┌──────────────────┐    ┌─────────────────┐
│   Claude AI     │    │  MCP 服务器      │    │  WordPress API  │
│                 │◄──►│                  │◄──►│                 │
│ 自然语言        │    │ 动态工具         │    │ REST 端点       │
└─────────────────┘    └──────────────────┘    └─────────────────┘
                              │
                              ▼
                       ┌──────────────────┐
                       │  配置            │
                       │   wp-sites.json  │
                       └──────────────────┘

🔒 安全

  • 应用密码:使用 WordPress 的安全应用密码系统
  • HTTPS 必需:所有连接必须使用 HTTPS
  • 配置安全:将配置文件放在非 Web 可访问目录外
  • 最小权限原则:使用具有最低必要权限的帐户
  • 不存储凭证:凭证仅用于 API 认证

🐛 故障排除

常见问题

“站点未配置”错误

  • 验证配置中的站点别名是否与使用一致
  • 检查配置文件路径和格式

“身份验证失败”错误

  • 验证应用密码是否正确
  • 确保用户帐户具有必要的权限
  • 检查站点 URL 是否可访问

“未发现工具”错误

  • 验证 WordPress 站点是否启用了 REST API
  • 检查站点 URL 是否包含 /wp-json 访问
  • 查看是否有安全插件阻止了 REST API

调试模式

设置 DEBUG=wp-mcp 环境变量以获得详细的日志记录:

DEBUG=wp-mcp npx github:diazoxide/wp-standalone-mcp start

📋 要求

  • WordPress:5.6+(用于应用密码)
  • Node.js:16+
  • HTTPS:必需(用于应用密码)
  • REST API:必须启用(默认在 WordPress 中)

🤝 贡献

我们欢迎贡献!请参阅我们的 贡献指南 了解详情。

  1. 分叉仓库
  2. 创建功能分支
  3. 进行更改
  4. 如适用,请添加测试
  5. 提交拉取请求

📄 许可

MIT 许可证 - 详情见 LICENSE 文件。

🔗 链接

🙏 致谢

  • WordPress REST API 团队提供的全面 API
  • Anthropic 提供的模型上下文协议规范
  • 开源社区持续的支持和反馈

为 WordPress 和 AI 社区制作 ❤️