unaibamir/agent-abilities-for-mcp

GitHub: unaibamir/agent-abilities-for-mcp

该插件通过 Model Context Protocol 为 AI agent 提供最小权限、默认关闭且全程审计的 WordPress 站点访问能力,在不暴露管理员密钥的前提下让 AI 安全参与内容管理。

Stars: 0 | Forks: 0

# 用于 MCP 的 Agent Abilities 通过 Model Context Protocol 为 AI agent 提供针对您 WordPress 站点的范围限定且经过审计的访问权限 —— 默认设计为最小权限,且默认关闭。 | | | |---|---| | **贡献者** | unaibamir | | **标签** | mcp, ai, agents, abilities, model context protocol | | **最低要求版本** | 6.9 | | **测试至版本** | 7.0 | | **要求 PHP** | 8.0 | | **稳定版本** | 1.0.0 | | **许可证** | [GPL-2.0-or-later](https://www.gnu.org/licenses/gpl-2.0.html) | ## 描述 在不交出核心密钥的情况下,让 AI agent 访问您的 WordPress 站点。用于 MCP 的 Agent Abilities 通过 Model Context Protocol 将 agent 连接为您指定的 WordPress 用户 —— 将其指向一个专用的低权限账户,它就只能执行该账户被允许的操作。在您开启之前,一切都是关闭的,并且每个操作都会被记录。没有等同于管理员的密钥,没有自定义传输协议,没有自定义 OAuth —— 它构建在 WordPress Abilities API 和官方的 MCP Adapter 之上。 31 项核心能力涵盖了读取,以及在您允许时写入文章、页面、术语、评论、媒体、文章 meta 和站点结构,此外还包括修订历史记录和跨越所有文章类型的搜索。您可以针对每项能力,决定 agent 可以接触的内容。 亮点: * 设计即最小权限 —— agent 通过 Application Passwords 作为真实且受范围限定的 WordPress 用户进行连接。没有等同于管理员的密钥。 * 默认关闭 —— 在您启用之前不会暴露任何内容;更新永远不会静默扩大访问权限。 * 双层能力网关 —— 连接只能看到其用户可以调用的工具,并且每次调用在运行前都会重新检查用户的能力。 * 真实的审计日志 —— 每次调用都会被记录,包括被拒绝的尝试,记录包含主体和参数键(绝不包含参数值)。 * 构建即安全 —— 没有任意的 option 或 meta 访问权限,没有 URL fetch,没有用户创建,没有代码执行。删除操作会进入回收站,而不是直接消失。上传内容从内联数据解码,通过其真实字节与图片白名单比对进行嗅探,且绝不从 URL 获取。 * 可选的安全控制 —— 开启每分钟速率限制、IP 允许列表、强制草稿模式或标题长度上限。在您设置之前,这四项均保持关闭。 * 引导式设置 —— 在一个界面中创建 agent 用户、复制客户端配置并运行连接检查。 ## 安装说明 1. 将插件文件上传到 `/wp-content/plugins/agent-abilities-for-mcp` 目录,或者通过 WordPress 插件界面进行安装。 2. 通过 WordPress 的“插件”界面激活插件。 3. 打开“设置”→“Agent Abilities”。在“连接”选项卡中,创建专用的 agent 用户并复制 endpoint 和客户端配置。 4. 在“能力”选项卡上,仅启用您希望 agent 拥有的能力。所有项目初始均为关闭。 5. 为 agent 用户创建 Application Password,将您的 MCP client 指向 endpoint,并使用“连接”选项卡确认其可访问。 ## 常见问题解答 ### Agent 会获得管理员访问权限吗? 不会。Agent 将以您绑定的任何 WordPress 用户身份进行身份验证。将其指向插件可以为您创建的专用低权限用户,它只能执行该用户可以执行的操作。每项能力在运行前也会重新检查用户的能力,因此连接永远无法调用其用户不被允许使用的工具。 ### Agent 实际上能做什么? 只能是您已启用的能力,并且只能在受绑定用户的能力范围内。目录包括对文章、页面、术语、评论、媒体、文章 meta 和站点结构的读取与受保护的写入,以及修订历史记录和跨越每种文章类型的搜索。没有任意更改 option、创建用户、更改角色、获取远程 URL 或运行代码的能力。Agent 只能为管理员已明确加入白名单的键写入文章 meta,并且受保护的、带有下划线前缀的以及身份验证密钥永远不能被加入白名单。删除操作会将内容移至回收站,以便可以恢复。 ### 哪些 AI 客户端可以使用? 任何可以通过 Application Password 访问 WordPress REST endpoint 的 MCP client。Claude Desktop、Claude Code、Cursor、Windsurf 和 Gemini CLI 都通过 @automattic/mcp-wordpress-remote 代理进行连接。托管的 ChatGPT 和 Gemini 应用需要一个 streamable HTTP/SSE 远程连接器,而底层适配器目前尚不原生支持。 ### 我使用的是 Windows,配置无法启动。 Windows MCP 客户端无法通过名称启动 npx shim。使用 cmd 包装它:将 `command` 设置为 `cmd`,并在 `args` 的前面加上 `/c`、`npx`。“连接”选项卡中有一个 Windows 选项卡可以为您生成此配置。 ### 我的 agent 无法连接到本地或暂存站点。 像 DDEV、Local 和 Valet 这样的本地技术栈会提供自签名证书,而 Node 会拒绝该证书,因此代理永远无法访问 WordPress。仅用于本地测试时,请将 `"NODE_TLS_REJECT_UNAUTHORIZED": "0"` 添加到 `env` 块中(“连接”选项卡在检测到本地站点时会自动添加此项)。请勿将此设置推送到生产环境 —— 公开站点拥有受信任的证书,不需要此项。 ### 有速率限制吗? 有。在“设置”选项卡下的“速率限制(每分钟)”中设置每分钟上限。每个连接每分钟可以进行相应数量的 agent 调用,按 agent 用户进行计数;0 表示关闭限制。超过上限的调用将被拒绝并记录在“活动日志”选项卡上,因此您可以发现不断触及该限制的连接。 ### 它会将数据发送到其他地方吗? 不会。该插件不会联系任何外部服务。您的 agent 直接与您的站点进行通信。 ### 什么会被记录下来? 每一次能力调用 —— 无论已启动、已成功、已出错还是被拒绝 —— 都会记录操作用户、能力名称和参数键。参数值绝不会存储。活动日志存在于您自己的数据库中,并且可以从管理界面清除。 ## 更新日志 ### 1.0.0 * 初始版本:31 项受管理的核心能力(涵盖文章、页面、术语、评论、媒体、文章 meta、修订和搜索的读取与受保护的写入),最小权限的 Application Password 身份验证,针对每个连接的工具过滤,双层能力网关,可选的安全控制(速率限制、IP 白名单、强制草稿、标题长度上限),记录拒绝操作的审计日志,以及带有诊断功能的引导式连接向导。
标签:AI智能体, ffuf, Streamlit, WordPress插件, 文件完整性监控, 权限管理, 模型上下文协议, 模型越狱, 访问控制