WordPress内容管理插件

一款通过WordPress 6.9 Abilities API暴露内容管理功能的插件,允许AI助手通过MCP协议创建、读取、更新和删除WordPress内容。

  • by aplaceforallmystuff
  • PHP
  • 本地部署
  • 更新于
在 GitHub 查看 aplaceforallmystuff/wp-content-abilities

使用说明

WP内容能力

一个WordPress插件,通过WordPress 6.9 Abilities API公开内容管理功能,使人工智能助手能够通过MCP协议创建、读取、更新和删除WordPress内容。

重要通知

实验技术

此插件使用 WordPress 6.9的能力API,这是一个不断发展的新功能。API可能会在未来的WordPress版本中发生变化,可能需要更新此插件。

仅限技术用户

此插件专为熟悉以下内容的开发人员和技术用户而设计:

  • 命令行工具和API交互
  • WordPress插件管理
  • 应用程序密码和身份验证
  • 模型上下文协议(MCP)

安全考虑

  • 应用程序密码 使用用户权限授予API完全访问权限
  • 仅为受信任的自动化工具创建应用程序密码
  • 使用具有最低所需权限的帐户(内容管理的编辑角色)
  • 定期审核和撤销未使用的应用程序密码
  • 强烈建议对所有API通信使用HTTPS

不担保

此插件按“原样”提供,不提供任何形式的保证。使用风险自负。在安装新插件之前,请务必备份您的WordPress网站。

需求

核心要求

要求 版本 目的
WordPress 6.9+ 提供API框架的能力
PHP 8.0+ WordPress 6.9需要

所需插件

插件 来源 目的
MCP适配器 WordPress人工智能团队 为MCP协议提供HTTP传输 /wp-json/mcp/mcp-adapter-default-server

可选插件

插件 来源 目的
人工智能实验 wordpress/人工智能 提供额外的以人工智能为重点的能力(获取帖子详细信息,获取帖子条款)

认证

该插件使用WordPress的内置身份验证。对于程序化访问:

  • 创建 应用程序密码 WordPress(用户→ 您的个人资料→ 应用程序密码)
  • 使用带有用户名和应用程序密码的基本身份验证

安装

  1. 上传 wp-content-abilities.php 到 /wp-content/plugins/wp-content-abilities/
  2. 通过“插件”菜单激活插件
  3. 确保MCP适配器插件也已安装并激活
  4. 为API访问创建应用程序密码

可用能力

帖子(6种能力)

能力 描述
content/list-posts 列出带有过滤器的帖子(状态、类别、标签、作者、日期范围)
content/get-post 按ID获取一篇内容完整的帖子
content/create-post 创建一个包含所有字段的新帖子
content/update-post 更新现有帖子
content/delete-post 删除帖子(移至垃圾箱或强制删除)
content/get-post-revisions 获取帖子的修订历史记录

页面(5种能力)

能力 描述
content/list-pages 列出带有过滤器的页面
content/get-page 按ID获取单个页面
content/create-page 创建新页面
content/update-page 更新现有页面
content/delete-page 删除页面

分类学(2种能力)

能力 描述
content/list-categories 列出所有具有层次结构的类别
content/list-tags 列出所有带有帖子计数的标签

媒体(2种能力)

能力 描述
content/upload-media 通过base64或URL上传图像
content/list-media 列出带有过滤器的媒体库项目

网站信息(1种能力)

能力 描述
content/get-site-info 获取网站标题、标语、URL、时区等

创建帖子字段

这 content/create-post 能力支持所有WordPress帖子字段:

{
  "title": "Post Title",
  "content": "<p>HTML content</p>",
  "excerpt": "Optional excerpt",
  "status": "draft|publish|pending|private|future",
  "slug": "custom-url-slug",
  "categories": ["category-slug-1", "category-slug-2"],
  "tags": ["Tag Name 1", "Tag Name 2"],
  "date": "2025-12-25T09:00:00",
  "featured_image_id": 123,
  "format": "standard|aside|gallery|link|image|quote|status|video|audio|chat",
  "sticky": false,
  "comment_status": "open|closed",
  "ping_status": "open|closed",
  "author": "username"
}

通过MCP使用

初始化会话

curl -s -u "username:app-password" -X POST \
  -H "Content-Type: application/json" \
  -D headers.txt \
  -d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"claude","version":"1.0.0"}}}' \
  "https://your-site.com/wp-json/mcp/mcp-adapter-default-server"

列出可用工具

SESSION_ID=$(grep -i "mcp-session-id" headers.txt | awk '{print $2}' | tr -d '\r')

curl -s -u "username:app-password" -X POST \
  -H "Content-Type: application/json" \
  -H "Mcp-Session-Id: $SESSION_ID" \
  -d '{"jsonrpc":"2.0","id":2,"method":"tools/list","params":{}}' \
  "https://your-site.com/wp-json/mcp/mcp-adapter-default-server"

执行能力

curl -s -u "username:app-password" -X POST \
  -H "Content-Type: application/json" \
  -H "Mcp-Session-Id: $SESSION_ID" \
  -d '{"jsonrpc":"2.0","id":3,"method":"tools/call","params":{"name":"mcp-adapter-execute-ability","arguments":{"ability_name":"content/create-post","parameters":{"title":"My New Post","content":"<p>Post content here</p>","status":"draft"}}}}' \
  "https://your-site.com/wp-json/mcp/mcp-adapter-default-server"

故障排除

MCP中未出现的能力

  1. 确保MCP适配器插件处于活动状态
  2. 检查能力是否 mcp.public: true 在他们的meta
  3. 验证您使用的端点是否正确: /wp-json/mcp/mcp-adapter-default-server

身份验证错误

  1. 验证应用程序密码的格式是否正确(空格已删除)
  2. 使用格式: username:xxxx xxxx xxxx xxxx xxxx xxxx
  3. 确保用户具有适当的能力(编辑或管理员角色)

媒体上传失败

  1. 检查上传目录权限
  2. 确保文件大小在WordPress限制范围内
  3. 验证是否允许MIME类型

发展

这个插件使用WordPress的能力API挂钩:

  • wp_abilities_api_categories_init -注册能力类别
  • wp_abilities_api_init -注册个人能力

每种能力都需要:

  • label 和 description 用于文件编制
  • category 用于分组
  • input_schema 定义预期参数
  • callback 执行能力的功能
  • meta.mcp.public = true MCP暴露

更新日志

看 更改日志.md 版本历史。

贡献

问题和拉取请求欢迎访问 GitHub.

许可证

此插件的许可证为 GPL v2或更高版本.

作者

吉姆·克里斯蒂安- jimchristan.net

免责声明

此插件不隶属于Automattic、WordPress.org或WordPress基金会,也不受其认可。“WordPress”是WordPress基金会的注册商标。