內容簡介
WEBO MCP 是一個完整的 WordPress MCP 伺服器,提供模型上下文協議的閘道,讓 AI 代理和兼容的客戶端透過 REST 使用 JSON-RPC 調用明確定義的工具,提升安全性與效率。
【主要功能】
• Token 優化的統一工具,減少上下文消耗
• 主要路由端點,簡化 API 調用流程
• 內建工具註冊,支援常見 WordPress 操作
• 公共工具政策控制,增強安全性
• 限制的 MCP 審計日誌,提供管理工具
外掛標籤
開發者團隊
📦 歷史版本下載
原文外掛簡介
WEBO MCP is a WordPress MCP server — a complete Model Context Protocol gateway for WordPress. It lets AI agents and MCP-compatible clients (Claude Desktop, Cursor, Windsurf, n8n, and more) call well-defined tools over REST using JSON-RPC, instead of scraping the admin or sharing broad credentials.
Official WEBO MCP website, documentation, and ecosystem hub: https://webomcp.com
Why use WEBO MCP as your WordPress MCP server?
Token-optimized unified tools: every domain exposes two abilities — *-query (all reads) and *-mutate (all writes) — with a single action discriminator. tools/list payload is up to 70% smaller than per-operation APIs, which means less of the model’s context window is consumed by tool schemas, lower cost per session, and fewer hallucinated tool names.
Primary router endpoint: POST /wp-json/mcp/v1/router
Standard MCP-style flow: initialize → tools/list → tools/call
Session lifecycle for clients (pass session_id or Mcp-Session-Id after initialize)
Built-in tool registry for common WordPress operations (posts, media, terms, menus, options, and more)
Bundled Abilities API + MCP Adapter integration, with automatic bridging from registered abilities to MCP tools (configurable)
WordPress 7.0/Core-aware bridge mode that uses Core Abilities/API surfaces when available and falls back only when needed
Public tool policy controls (category filters and optional allowlists) plus optional internal tool exposure for private environments
Bounded MCP audit log, optional per-user/role/client tool allowlists, and a read-only administrator health/status tool
Security model (high level)
MCP access requires a real WordPress user context: Application Password over HTTP Basic, or an existing logged-in session.
Optional site-wide or per-user API key and HMAC can be enabled in Settings as an additional gate (they do not replace WordPress authentication). Generate/rotate from Settings → Security; by default they are skipped for Application Password and Bearer clients unless you enable “Require for App Password / Bearer”. Do not put the normal WEBO API key in URLs. For clients that cannot send headers, create a short-lived scoped mcp_token URL connector token in Settings -> WEBO MCP.
Default access expectations for the router and GET /wp-json/webo-mcp/v1/tools: users who are super admins, can manage_options, or can edit_posts, consistent with typical site operator and editor workflows (filterable).
Client guidance
Always discover tools before calling them: run tools/list, pick an exact tool name from the response, validate required arguments, then call tools/call. This reduces mistakes and keeps automation predictable in production.
Further documentation and optional integrations
Official website, documentation, and ecosystem notes: https://webomcp.com
Optional n8n community node (separate package): https://www.npmjs.com/package/n8n-nodes-webo-mcp
Release notes and migration map: see docs/RELEASE_NOTES_2.1.0.md and docs/MIGRATION_GUIDE_2.1.0.md in the GitHub repository
Cross-addon dispatcher map (granular legacy names removed from discovery): docs/MCP_TOOL_MIGRATION.md
Compatibility note: any MCP-capable client can be used; which large language model runs inside the client is outside this plugin.
Standalone core tools included:
– Site info
– Content (posts/pages): webo/content-query (list, get, find-by-url, search-replace, list-revisions, get-revision; with author/date/taxonomy filters) and webo/content-mutate (create, update, delete, bulk-update-status, restore-revision, change-author)
– Users: webo/list-users and webo/user-mutate (add-to-blog, set-role)
– Media: webo/media-query (list with search/MIME/post_id filters, get) and webo/media-mutate (upload, update, delete)
– Comments: webo/comment-query (list, get) and webo/comment-mutate (create, update, delete)
– Taxonomy/Terms: webo/taxonomy-query (discover, list, get) and webo/taxonomy-mutate (create, update, delete)
– Nav menus: list menus, list menu items (menu_order, db_id), add menu link from post (explicit post_id + menu_order required)
– Plugins: webo/plugin-query (installed, active, updates, …) and webo/plugin-mutate (install, activate, deactivate; supports child-site site_id / blog_id activation for network admins)
– Health: webo/health-status (REST/router status, Application Password support, permalinks, cron, object cache, plugin update summary, WordPress/PHP versions, and redacted MCP config)
– Client health: webo/client-health-report (score 0–100, grade A–D, Markdown scoreboard for agency clients; hybrid foundation for Pro collectors later)
– 404 logs: webo/get-404-logs (read-only Rank Math / Redirection 404 monitor: url, hits, accessed, referrer)
– Abilities bridge: webo/ability-query and webo/ability-execute in default layered mode. Only abilities with meta.mcp.public === true are visible and executable through WEBO MCP.
– Themes: webo/theme-query (installed themes) and webo/theme-mutate (install from WordPress.org by slug, switch installed theme)
– Theme context: webo/theme-context (active theme info, block editor settings, style presets, registered blocks)
– Block patterns: webo/block-patterns (list/get patterns, list/get synced patterns)
– Site stats: webo/site-stats (overview, post counts, comment counts, user counts, media stats, activity summary)
– Activity log: webo/activity-log (list events, summary, clear)
– User profile: webo/user-profile (get own profile, update display name / bio / preferences)
– Site settings: webo/site-settings (get and update the 20 most common WordPress options via MCP)
– Content search: webo/content-search (full-text cross-post-type search with grouped results)
– Menus: webo/menu-query, webo/menu-mutate (navigation menu items; not post/CPT list order)
– Post/CPT order (optional): webo/reorder-query, webo/reorder-mutate when Webo Reorder is active — see docs/abilities/reorder.md
– Options: get/update (safe allowlist only), set site icon/favicon from media
– SEO (WordPress post): seo/article-analysis — requires post_id; merges Rank Math meta when available (same data path as webo-rank-math/get-post-seo-meta); optional related-keyword suggestions via outbound request unless no_autocomplete is true
Excluded by default in standalone-safe mode:
– Bulk/mass execution tools
– Plugin/theme write-management abilities
– Multisite-specific abilities
Privacy
This plugin does not phone home or send telemetry. MCP traffic is initiated by clients you configure. Some tools may perform outbound HTTP requests only when a client invokes them (for example seo/article-analysis may request keyword suggestions from a third-party suggest API unless you pass no_autocomplete).
The plugin stores the following options in the WordPress database when configured:
– webo_mcp_api_key: API key used to authenticate MCP requests.
– webo_mcp_hmac_secret: HMAC secret used to sign and validate MCP requests.
– webo_mcp_require_secondary_credentials: when enabled, also require API key/HMAC for Application Password and Bearer clients (off by default so standard connectors are not blocked).
– webo_mcp_url_connector_tokens: hashed, expirable, revocable URL connector tokens for clients that cannot send headers. Raw tokens are shown once and are not stored.
– webo_mcp_tool_allowlist_enabled and webo_mcp_tool_allowlist_rules: optional administrator-configured MCP tool allowlist policy.
– webo_mcp_audit_log_enabled, webo_mcp_audit_log_max_entries, and webo_mcp_audit_log: bounded MCP tool-call audit log settings and compact audit events. Audit entries include user/tool/action/status data, anonymized IPs, and hashed session IDs; they do not store request payloads, API keys, HMAC secrets, or Application Passwords.
– webo_mcp_installed_at and webo_mcp_review_notice: local timestamps/state for an optional WordPress.org review request notice (not sent off-site; dismissible).
These options are removed when the plugin is uninstalled via the WordPress Plugins screen.
External services
This plugin can connect to Google Suggest (Autocomplete) when a client calls the seo/article-analysis tool and does not set no_autocomplete to true. This external request is used to return related keyword suggestions for SEO analysis.
Service provider: Google LLC (Google Suggest / Autocomplete API endpoint).
Data sent and when:
– Sent only when seo/article-analysis is called with autocomplete enabled.
– Sends the analysis query text to https://suggestqueries.google.com/complete/search as the q parameter.
– Sends standard HTTP request metadata such as IP address and User-Agent as part of the web request.
Terms of Service: https://policies.google.com/terms
Privacy Policy: https://policies.google.com/privacy
Developer Hooks
The plugin exposes the following actions and filters for developers:
Actions
webo_mcp_register_tools
Fired during plugin bootstrap after standalone tools are registered. Use this to register custom MCP tools from other plugins.
Filters
webo_mcp_current_user_can_use_mcp (bool $allowed, int $user_id)
Gate for all MCP REST access. Default: super admin OR manage_options OR edit_posts. Override to tighten (e.g. super-admin only) in hardened installs.
webo_mcp_secondary_credentials_exempt (bool $exempt, WP_REST_Request $request)
When true, skip optional API key / HMAC after WordPress auth. Default true for Application Password (Basic) and Bearer sessions unless Settings → Security → “Require for App Password / Bearer” is enabled. Return false to always enforce X-WEBO-* headers.
webo_mcp_allow_internal_tools (bool $allow_internal, WP_REST_Request $request)
Controls whether internal tools are included in tools/list responses. Defaults to false for public environments.
webo_mcp_public_categories (array $categories, WP_REST_Request $request, array $tool)
Filters which tool categories are exposed as public. Defaults to array( ‘wordpress’ ).
webo_mcp_rate_limit_per_hour (int $limit, string $client, array|null $profile)
Adjust effective hourly limit (fallback for both buckets).
webo_mcp_rate_limit_read_per_hour / webo_mcp_rate_limit_mutate_per_hour (int $limit, string $client, array|null $profile)
Per-bucket limits after admin/profile resolution.
webo_mcp_tool_is_mutating (bool $is_mutating, string $tool_name, array|null $tool_definition, array $arguments)
Override mutating classification for rate limits and read-only profiles.
webo_mcp_tool_arguments_allow_extra (bool $allow, string $tool_name, array $schema, array $arguments)
When true, unknown tool argument keys are passed through (default false).
webo_mcp_disallow_url_token_query (bool $disallowed)
Block URL connector tokens in query strings (admin setting is the default source).
webo_mcp_rest_bom_guard_json_api_requests (bool $activate, string $uri_raw)
Opt-in BOM sanitizer for all /wp-json/ responses (default false; MCP routes only).
webo_mcp_bridge_deny_patterns (array $patterns)
Controls which abilities are excluded when auto-bridging abilities into MCP tools (e.g. bulk, themes/, multisite/).
webo_mcp_auto_bridge_abilities (bool $enabled)
Enables or disables automatic bridging of registered abilities into MCP tools. Defaults to true; bridge mode still controls whether the bridge is off, layered, or full.
webo_mcp_bridge_mode (string $mode)
Controls Abilities bridge mode after the WEBO_MCP_BRIDGE_MODE constant and before the stored option. Values: off, layered, full. Default: layered.
webo_mcp_enable_adapter (bool $enabled)
Enables or disables the bundled WordPress MCP Adapter runtime. Defaults to true.
webo_mcp_validate_media_fetch_url (true|\WP_Error $ok, string $url, array $parsed)
Reject unsafe URLs for webo/media-mutate upload action (return WP_Error to block).
webo_mcp_tool_allowlist_allowed (bool $allowed, string $tool_name, WP_REST_Request $request, array $params, array $allowed_tools)
Filters the optional per-user/role/client allowlist decision.
Credits
Special thanks to the authors and open source projects that contributed to this plugin:
– WordPress (https://wordpress.org)
– Abilities API (https://github.com/WordPress/abilities-api)
Reference: https://make.wordpress.org/ai/2025/07/17/abilities-api/
– MCP Adapter (https://github.com/WordPress/mcp-adapter)
Reference: https://make.wordpress.org/ai/2025/07/17/mcp-adapter/
– Composer (https://getcomposer.org)
– Other PHP and JS libraries from the community
If you use this plugin, please give credit to the authors of these libraries.
License
This plugin is licensed under the GPLv2 or later.
See https://www.gnu.org/licenses/gpl-2.0.html for details.
