{"id":326332,"date":"2026-07-06T18:02:40","date_gmt":"2026-07-06T18:02:40","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/bytecore-mcp-manager\/"},"modified":"2026-10-24T14:55:34","modified_gmt":"2026-10-24T14:55:34","slug":"bcs-mcp-manager","status":"publish","type":"plugin","link":"https:\/\/ps.wordpress.org\/plugins\/bcs-mcp-manager\/","author":23505918,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.3.0","stable_tag":"1.3.0","tested":"7.1.3","requires":"6.2","requires_php":"7.4","requires_plugins":null,"header_name":"ByteCoreStack - MCP Connector for AI Tools","header_author":"ByteCore Stack","header_description":"Free WordPress AI plugin and MCP server \u2014 connects Claude, ChatGPT, Gemini, Cursor, Windsurf, and any MCP-compatible AI client to WordPress. Includes 150+ WordPress AI tools, OAuth 2.0 with PKCE, activity logging, and an admin dashboard.","assets_banners_color":"080f36","last_updated":"2026-10-24 14:55:34","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/bytecorestack.com\/plugins\/ai-connector\/","header_author_uri":"https:\/\/bytecorestack.com","rating":0,"author_block_rating":0,"active_installs":10,"downloads":1608,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.0":{"tag":"1.0.0","author":"bytecorestack","date":"2026-07-06 18:02:29","revision":3598184},"1.1.0":{"tag":"1.1.0","author":"bytecorestack","date":"2026-07-27 17:26:14","revision":3624960},"1.2.0":{"tag":"1.2.0","author":"bytecorestack","date":"2026-08-06 17:32:44","revision":3636906},"1.2.1":{"tag":"1.2.1","author":"bytecorestack","date":"2026-08-18 13:23:22","revision":3652956},"1.2.2":{"tag":"1.2.2","author":"bytecorestack","date":"2026-09-18 02:26:07","revision":3701220},"1.2.3":{"tag":"1.2.3","author":"bytecorestack","date":"2026-09-24 16:58:44","revision":3711721},"1.2.4":{"tag":"1.2.4","author":"bytecorestack","date":"2026-09-24 19:11:19","revision":3711909},"1.2.5":{"tag":"1.2.5","author":"bytecorestack","date":"2026-10-15 15:17:02","revision":3748828},"1.3.0":{"tag":"1.3.0","author":"bytecorestack","date":"2026-10-24 14:55:34","revision":3763416}},"upgrade_notice":{"1.3.0":"<p>A simpler admin: one screen with five tabs, connect an AI app in about a minute, no more double confirmations, and an optional monthly email report. AI apps now skip approval prompts for read-only tools. Existing connections, settings, and Activity history are kept.<\/p>","1.2.5":"<p>Security release: Subscriber and Customer accounts can no longer connect, and every tool&#039;s permission check was audited. Adds 7-day undo, block editing, and store tools, and fixes connections expiring early. Reconnect your AI app once after updating.<\/p>","1.2.3":"<p>A guided setup and admin interface refresh make it easier to connect and monitor MCP clients. Existing OAuth connections, settings, and activity history are retained.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3598182,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3598182,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3598182,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3598182,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0","1.1.0","1.2.0","1.2.1","1.2.2","1.2.3","1.2.4","1.2.5","1.3.0"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3763414,"resolution":"1","location":"assets","locale":"","width":2560,"height":1718},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3763414,"resolution":"2","location":"assets","locale":"","width":2560,"height":1588},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3763414,"resolution":"3","location":"assets","locale":"","width":2560,"height":1908},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3763414,"resolution":"4","location":"assets","locale":"","width":2560,"height":2414},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3763414,"resolution":"5","location":"assets","locale":"","width":2560,"height":1300},"screenshot-6.png":{"filename":"screenshot-6.png","revision":3763414,"resolution":"6","location":"assets","locale":"","width":1200,"height":702},"screenshot-7.png":{"filename":"screenshot-7.png","revision":3763414,"resolution":"7","location":"assets","locale":"","width":960,"height":1450}},"screenshots":{"1":"Overview with the connection status, key numbers, and a chart of tool calls.","2":"Connect tab with short steps for Claude, ChatGPT, Gemini, Cursor, and other apps.","3":"Tools tab: every tool AI apps can use, searchable and filterable by area and by reads, changes, and deletes.","4":"Activity with search, filters, entry details, and one-click undo.","5":"Settings with the server switch, connection check, and monthly report.","6":"WordPress dashboard widget with recent MCP activity.","7":"OAuth authorization screen for an AI client."}},"plugin_section":[262246],"plugin_tags":[2353,261799,216196,229563,242115],"plugin_category":[],"plugin_contributors":[266332],"plugin_business_model":[],"class_list":["post-326332","plugin","type-plugin","status-publish","hentry","plugin_section-dashboard-widgets","plugin_tags-ai","plugin_tags-ai-automation","plugin_tags-chatgpt","plugin_tags-claude","plugin_tags-mcp","plugin_contributors-bytecorestack","plugin_committers-bytecorestack"],"banners":{"banner":"https:\/\/ps.w.org\/bcs-mcp-manager\/assets\/banner-772x250.png?rev=3598182","banner_2x":"https:\/\/ps.w.org\/bcs-mcp-manager\/assets\/banner-1544x500.png?rev=3598182","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/bcs-mcp-manager\/assets\/icon-128x128.png?rev=3598182","icon_2x":"https:\/\/ps.w.org\/bcs-mcp-manager\/assets\/icon-256x256.png?rev=3598182","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/bcs-mcp-manager\/assets\/screenshot-1.png?rev=3763414","caption":"Overview with the connection status, key numbers, and a chart of tool calls."},{"src":"https:\/\/ps.w.org\/bcs-mcp-manager\/assets\/screenshot-2.png?rev=3763414","caption":"Connect tab with short steps for Claude, ChatGPT, Gemini, Cursor, and other apps."},{"src":"https:\/\/ps.w.org\/bcs-mcp-manager\/assets\/screenshot-3.png?rev=3763414","caption":"Tools tab: every tool AI apps can use, searchable and filterable by area and by reads, changes, and deletes."},{"src":"https:\/\/ps.w.org\/bcs-mcp-manager\/assets\/screenshot-4.png?rev=3763414","caption":"Activity with search, filters, entry details, and one-click undo."},{"src":"https:\/\/ps.w.org\/bcs-mcp-manager\/assets\/screenshot-5.png?rev=3763414","caption":"Settings with the server switch, connection check, and monthly report."},{"src":"https:\/\/ps.w.org\/bcs-mcp-manager\/assets\/screenshot-6.png?rev=3763414","caption":"WordPress dashboard widget with recent MCP activity."},{"src":"https:\/\/ps.w.org\/bcs-mcp-manager\/assets\/screenshot-7.png?rev=3763414","caption":"OAuth authorization screen for an AI client."}],"raw_content":"<!--section=description-->\n<p>ByteCoreStack - MCP Connector for AI Tools turns your WordPress site into a <strong>Model Context Protocol (MCP) server<\/strong>. MCP is an open standard that lets AI assistants call \"tools\" provided by other software. Once connected, an AI client such as Claude, ChatGPT, or Cursor can read and manage your site through clearly defined WordPress actions, and you just describe what you want in plain language.<\/p>\n\n<p>For example, you can ask your AI assistant to:<\/p>\n\n<ul>\n<li>\"Draft a post about our spring sale, add it to the News category, and leave it as a draft for me to review.\"<\/li>\n<li>\"List WooCommerce orders that are still processing from the last 7 days and summarise them.\"<\/li>\n<li>\"Find posts with no SEO meta description and suggest one for each.\"<\/li>\n<li>\"Show me pending comments and mark the obvious spam.\"<\/li>\n<li>\"Check site health and tell me which plugins have updates available.\"<\/li>\n<li>\"Move the call-to-action block on the About page above the team section and change its button text.\"<\/li>\n<li>\"Set up a shipping zone for Canada with a flat rate of 15 and free shipping over 100.\"<\/li>\n<\/ul>\n\n<p>Every action runs as the WordPress user who approved the connection and is checked against that user's normal capabilities. An Editor's AI client can do what an Editor can do in wp-admin, and nothing more.<\/p>\n\n<h4>What's included<\/h4>\n\n<p><strong>360 tools across WordPress core and popular plugins.<\/strong> Integration tools only appear when the plugin they work with is active, so your AI client only sees tools that work on your site.<\/p>\n\n<ul>\n<li><strong>Content:<\/strong> posts, pages, revisions, scheduling, post formats, page templates, reusable blocks, search-and-replace, duplication, bulk create, update and Trash, and a content calendar.<\/li>\n<li><strong>Block editing:<\/strong> list a post's blocks, then insert, change, move, or remove a single block (including blocks inside Groups and Columns) without rewriting the rest of the post.<\/li>\n<li><strong>Site Editor (block themes, read-only):<\/strong> list and read templates and template parts, and read Global Styles.<\/li>\n<li><strong>Media:<\/strong> browse the Media Library, upload from a URL or file data, set featured images, edit titles, captions and alt text, find images missing alt text, find orphaned media, and regenerate thumbnails.<\/li>\n<li><strong>Taxonomies, menus and widgets:<\/strong> categories, tags, custom taxonomies and term meta, navigation menus and menu locations, and classic widgets.<\/li>\n<li><strong>Comments:<\/strong> list, create, approve, spam, trash, edit, and moderate in bulk.<\/li>\n<li><strong>Users:<\/strong> list users and roles, update profile fields, assign roles (with promote_users), send password-reset emails, view or end sessions, and export users to CSV. No tool creates new users.<\/li>\n<li><strong>Site administration:<\/strong> site info and health, full Site Health tests, plugin and theme listing, install and update from WordPress.org, core updates, cron events, transients, cache flush, rewrite rules, database size, debug and error logs, SSL status, and broken-link checks.<\/li>\n<li><strong>WooCommerce:<\/strong> products, variations, attributes, stock, orders (including creating manual orders), order notes, refunds, coupons, customers, product reviews (moderate and reply), shipping zones and methods, tax rates, payment gateways, sales reports, top sellers, low stock, customer lifetime value, Subscriptions, Bookings, and Memberships.<\/li>\n<li><strong>SEO:<\/strong> read and update titles, meta descriptions and focus keywords, run bulk SEO audits, and check site-wide SEO settings for Yoast SEO, Rank Math, All in One SEO, SEOPress, Slim SEO, and The SEO Framework.<\/li>\n<li><strong>Page builders and fields:<\/strong> Elementor (templates, page outlines, text and image replacement, global widgets), Bricks, Divi, and Advanced Custom Fields (fields, field groups, repeaters, options pages).<\/li>\n<li><strong>Forms:<\/strong> Gravity Forms, WPForms, Ninja Forms, Formidable Forms, Contact Form 7, and WP Simple Pay.<\/li>\n<li><strong>Commerce, membership and learning:<\/strong> Easy Digital Downloads, MemberPress, Restrict Content Pro, LearnDash, GiveWP, AffiliateWP, Ultimate Member, and User Registration.<\/li>\n<li><strong>Community and events:<\/strong> BuddyPress, bbPress, and The Events Calendar.<\/li>\n<li><strong>Marketing and analytics:<\/strong> FluentCRM, Mailchimp for WP, Google Site Kit, MonsterInsights, and WP Statistics.<\/li>\n<li><strong>Translation:<\/strong> WPML, Polylang, and TranslatePress.<\/li>\n<li><strong>Backups, security and operations:<\/strong> UpdraftPlus, Duplicator, All-in-One WP Migration, Wordfence, Sucuri, Two Factor, Akismet, Jetpack, WP Mail SMTP, WP All Import\/Export, Custom Post Type UI, Code Snippets, Redirection, Broken Link Checker, and cookie-consent status for CookieYes and Complianz.<\/li>\n<\/ul>\n\n<p>The server also provides MCP <strong>resources<\/strong> (your 20 most recent published posts and pages) and ready-made <strong>prompts<\/strong> for writing a post, auditing a post's SEO, moderating comments, and summarising the site.<\/p>\n\n<h4>Guided connection setup<\/h4>\n\n<p>The <strong>Connect<\/strong> tab gets you connected in about a minute. Copy the server URL, pick Claude, ChatGPT, Gemini, Cursor or another app, and follow the short instruction shown for it. One button copies the URL and opens the app's connector page. When you approve the connection, the app shows up on the Overview straight away. Any other client that supports MCP over Streamable HTTP with OAuth can connect too, and older clients can use the legacy SSE transport.<\/p>\n\n<h4>Built with security in mind<\/h4>\n\n<ul>\n<li><strong>Off until you turn it on.<\/strong> The MCP server is disabled after activation and accepts no connections until an administrator enables it.<\/li>\n<li><strong>OAuth 2.0 with PKCE (S256), no shared API keys.<\/strong> Each AI client registers itself (Dynamic Client Registration), you approve it on a consent screen while logged in, and it receives short-lived access tokens (1 hour) and refresh tokens. Tokens are stored only as SHA-256 hashes.<\/li>\n<li><strong>A consent screen you can trust.<\/strong> It shows the domain access will be sent to, warns when a client uses a well-known AI product's name but sends access somewhere else, and cannot be embedded in another site (clickjacking protection).<\/li>\n<li><strong>Only trusted roles can connect.<\/strong> By default only accounts that can edit posts (Contributor and above) can approve an AI client. Subscribers and customers cannot. Developers can require a higher capability with a filter.<\/li>\n<li><strong>Permissions are re-checked on every request.<\/strong> The MCP endpoint checks the token in WordPress's REST permission callback, and every tool checks the connected user's capability for its specific action. If you demote or delete a user, their AI clients lose access straight away. You can also disconnect any single client, or all of them, at any time.<\/li>\n<li><strong>Guard-rails on sensitive data.<\/strong> Role and capability changes are never possible through user meta. Protected meta follows WordPress core rules. Attachment file paths cannot be changed. Credential-like values and whole secret options (passwords, API keys, tokens, salts, secrets) are redacted from tool output and from the Activity log.<\/li>\n<li><strong>Administrator-only power tools.<\/strong> Running shortcodes, reading plugin settings and logs, installing or updating software, and resetting two-factor need the same administrator capabilities as in wp-admin, and changing an email address needs <code>edit_users<\/code>. No tool accepts PHP code, edits files, runs SQL supplied by the AI, or creates users.<\/li>\n<li><strong>No site-wide design or settings changes.<\/strong> Templates, template parts, Global Styles, custom CSS, and site settings can be read by administrators but never changed through MCP. Block markup from the AI is always cleaned of scripts and unsafe attributes, even for administrators.<\/li>\n<li><strong>Rate limiting:<\/strong> 60 MCP requests per minute per IP address, plus a separate limit on client registration.<\/li>\n<li><strong>Clear tool labels for AI apps.<\/strong> Every tool tells the AI app whether it only reads, changes, or deletes something (MCP tool annotations). Apps such as Claude and ChatGPT use this to skip approval prompts for read-only tools and keep them for deletes.<\/li>\n<li><strong>Plugin and theme installs come only from WordPress.org<\/strong> by directory slug. No tool accepts an arbitrary download URL.<\/li>\n<\/ul>\n\n<h4>Undo for AI changes<\/h4>\n\n<p>114 tools return a <strong>single-use undo token valid for 7 days<\/strong> whenever they actually change something: post, page and block edits, SEO and custom fields, things the AI creates, Trash actions, WooCommerce products, stock, coupons and order statuses, comments, terms, menus, widgets, ACF, user profiles and roles, and changes in many supported plugins. Your AI client can call <code>bcs_undo_operation<\/code> with the token, or you can click <strong>Undo<\/strong> in <strong>Activity<\/strong>.<\/p>\n\n<p>When undone, edited items return to exactly how they were, items the AI created go to Trash (or are removed when they have no Trash), deleted terms, menu items and rows come back with their original IDs, and trashed items return to their previous status. An undo is refused if anything it would restore has changed again since, so newer work is never overwritten, or if the user no longer has the needed permission. Only the same user and AI client can use a token, tokens are stored as hashes, and the saved values stay in your database and are deleted after 7 days.<\/p>\n\n<p>Some actions cannot be undone and return no token: permanent deletes, deleting media, users, menus or form entries, sending email, payments and refunds, subscriptions and memberships, mailing-list sign-ups, software installs and updates, cache actions, and new WooCommerce orders, shipping zones and tax rates.<\/p>\n\n<h4>One screen, five tabs<\/h4>\n\n<p>Everything lives on a single <strong>MCP Connector<\/strong> screen in wp-admin:<\/p>\n\n<ul>\n<li><strong>Overview:<\/strong> one status banner that tells you what to do next, key numbers (connected apps, tool calls today and over 90 days, changes you can undo, tools available), a 7, 30 or 90-day chart of tool calls, and quick actions.<\/li>\n<li><strong>Connect:<\/strong> three short steps: copy the server URL, pick your app (Claude, ChatGPT, Gemini, Cursor or another MCP app), and follow its one-line instructions. Your connected apps sit alongside, with <strong>Disconnect<\/strong> for each one and <strong>Disconnect all<\/strong>, plus a few example prompts.<\/li>\n<li><strong>Activity:<\/strong> every tool call and every rejected connection attempt (expired or revoked token, rate limit), grouped by day. Search by tool, filter by result or app, open an entry to see its arguments and response, undo supported changes in one click, and export to CSV. Times are shown in your site's time zone. Entries are kept for 90 days, then removed automatically.<\/li>\n<li><strong>Settings:<\/strong> turn the server on or off, run a connection check (HTTPS, permalinks, OAuth discovery, and the MCP endpoint, each problem with a short explanation), and turn on the monthly report email.<\/li>\n<li><strong>WordPress dashboard widget:<\/strong> a 7-day activity chart for administrators. You can hide it from Screen Options.<\/li>\n<\/ul>\n\n<h4>Privacy<\/h4>\n\n<p>The plugin does not collect telemetry and never sends data to ByteCoreStack. Your Activity log stays in your own database. When you connect an AI client, the results of the tools it calls are sent to that client's provider (for example Anthropic, OpenAI, or Cursor) and handled under their terms. See <strong>External Services<\/strong> below for every case in which the plugin or its tools contact another service.<\/p>\n\n<h4>For developers<\/h4>\n\n<ul>\n<li>Register your own tools with <code>bcs_mcp_register_tool( $name, $description, $input_schema, $callback )<\/code>, or filter the tool list with <code>bcs_mcp_tools<\/code>. Your callback must check capabilities and validate its input.<\/li>\n<li>React to completed tool calls with the <code>bcs_mcp_tool_called<\/code> action (<code>$name, $args, $result<\/code>).<\/li>\n<li>Change who may connect AI clients with the <code>bcs_mcp_connect_capability<\/code> filter (default <code>edit_posts<\/code>).<\/li>\n<\/ul>\n\n<p>Claude, ChatGPT, Gemini, Cursor, and the other product names mentioned here are trademarks of their respective owners. This plugin is not affiliated with or endorsed by them.<\/p>\n\n<h3>External Services<\/h3>\n\n<p>This plugin does not send telemetry, analytics, or usage data to the plugin author, and it does not contact any ByteCoreStack server. Nothing below happens until a site administrator enables the MCP server and approves an AI client.<\/p>\n\n<p><strong>The AI client you connect<\/strong><\/p>\n\n<p>The plugin is an MCP server: an AI client you choose and authorize (for example Claude by Anthropic, ChatGPT by OpenAI, or Cursor) calls its tools over OAuth. The plugin does not choose or contact these services itself. When a connected client calls a tool, the result, which can include post content, user names and emails, orders, form entries, or settings, depending on the tool and your account's permissions, is returned to that client and handled by its provider under their terms and privacy policy. You can disconnect a client at any time from the Connect tab.<\/p>\n\n<ul>\n<li>Anthropic (Claude): <a href=\"https:\/\/www.anthropic.com\/legal\/consumer-terms\">Terms<\/a>, <a href=\"https:\/\/www.anthropic.com\/legal\/privacy\">Privacy Policy<\/a><\/li>\n<li>OpenAI (ChatGPT): <a href=\"https:\/\/openai.com\/policies\/terms-of-use\/\">Terms<\/a>, <a href=\"https:\/\/openai.com\/policies\/privacy-policy\/\">Privacy Policy<\/a><\/li>\n<li>Cursor: <a href=\"https:\/\/cursor.com\/terms-of-service\">Terms<\/a>, <a href=\"https:\/\/cursor.com\/privacy\">Privacy Policy<\/a><\/li>\n<\/ul>\n\n<p><strong>Requests made only when a specific tool is called<\/strong><\/p>\n\n<ul>\n<li><strong>Plugin, theme, and core install\/update tools<\/strong> use WordPress core's installer and updater to contact the official WordPress.org API, exactly like Plugins \u2192 Add New. Only a WordPress.org directory slug is accepted, never an arbitrary download URL. Core update checks send the standard version, locale, and environment details WordPress core sends. <a href=\"https:\/\/wordpress.org\/about\/privacy\/\">WordPress.org Privacy Policy<\/a><\/li>\n<li><strong>wp_upload_media_from_url<\/strong> and <strong>wp_set_featured_image<\/strong> (with image_url) download the image from the URL given to the tool into the Media Library. Private and loopback addresses are blocked, and downloads are limited to 20 MB.<\/li>\n<li><strong>wp_find_broken_links<\/strong> sends HEAD requests to the links found in the posts being checked (up to 25 per call) to see whether they respond. Private and loopback addresses are blocked.<\/li>\n<\/ul>\n\n<p><strong>Requests made through other plugins you have installed<\/strong><\/p>\n\n<p>Some integration tools call another plugin's own API, and that plugin may contact its service using its existing configuration. The plugin adds no credentials or data of its own:<\/p>\n\n<ul>\n<li>Mailchimp for WP tools (list, read, and add subscribers) send requests to Mailchimp. <a href=\"https:\/\/www.intuit.com\/privacy\/statement\/\">Mailchimp Legal and Privacy<\/a><\/li>\n<li>Google Site Kit tools (Analytics, Search Console, AdSense reports) request report data from Google. <a href=\"https:\/\/policies.google.com\/privacy\">Google Privacy Policy<\/a><\/li>\n<li>The Akismet stats tool requests your spam statistics from Akismet. <a href=\"https:\/\/automattic.com\/privacy\/\">Automattic Privacy Policy<\/a><\/li>\n<li>WooCommerce, Easy Digital Downloads, and GiveWP refund tools may make the store's configured payment gateway process a refund.<\/li>\n<\/ul>\n\n<p><strong>Local self-checks<\/strong><\/p>\n\n<p>The connection check sends requests only to your own site's URLs (OAuth discovery, \/register, and the MCP endpoint) to detect firewall or permalink problems. Activity records remain in your own WordPress database.<\/p>\n\n<h3>Credits<\/h3>\n\n<p>The admin screens use the Outfit (Copyright 2021 The Outfit Project Authors) and Geist Mono (Copyright 2024 The Geist Project Authors) typefaces, bundled locally in assets\/fonts and licensed under the <a href=\"https:\/\/openfontlicense.org\/\">SIL Open Font License 1.1<\/a>. The license texts are included as assets\/fonts\/OFL-Outfit.txt and assets\/fonts\/OFL-GeistMono.txt. No fonts are loaded from external servers.<\/p>\n\n<!--section=installation-->\n<h4>Requirements<\/h4>\n\n<ul>\n<li>WordPress 6.2 or later and PHP 7.4 or later.<\/li>\n<li>For hosted AI services (Claude.ai, ChatGPT, and similar), your site must be reachable from the internet over <strong>HTTPS<\/strong>. A site on localhost can only be used with an AI client running on the same computer.<\/li>\n<li>Pretty permalinks (any setting except \"Plain\" under <strong>Settings \u2192 Permalinks<\/strong>).<\/li>\n<li>A WordPress account with at least the Contributor role to approve the connection. An Administrator account gives the AI client access to every tool.<\/li>\n<\/ul>\n\n<h4>Install the plugin<\/h4>\n\n<ol>\n<li>In wp-admin go to <strong>Plugins \u2192 Add New Plugin<\/strong>, search for \"ByteCoreStack MCP Connector\", then click <strong>Install Now<\/strong> and <strong>Activate<\/strong>.<\/li>\n<li>Or download the zip from WordPress.org, upload it via <strong>Plugins \u2192 Add New Plugin \u2192 Upload Plugin<\/strong>, and activate it. You can also upload the <code>bcs-mcp-manager<\/code> folder to <code>\/wp-content\/plugins\/<\/code> over FTP and activate it from <strong>Plugins \u2192 Installed Plugins<\/strong>.<\/li>\n<\/ol>\n\n<h4>Enable the server and connect an AI client<\/h4>\n\n<ol>\n<li>Open <strong>MCP Connector<\/strong> in wp-admin. If the banner says the server is off, click <strong>Turn on<\/strong>.<\/li>\n<li>On the <strong>Connect<\/strong> tab, choose your AI app (Claude, ChatGPT, Gemini, Cursor, or another MCP app) and copy the server URL, which looks like <code>https:\/\/example.com\/wp-json\/bcs-mcp\/v1\/mcp<\/code>.<\/li>\n<li>Add the URL as a custom connector in your AI app, following the short steps shown for it.<\/li>\n<li>The app opens your site's authorization screen. Log in if asked, check the account and app name, and click <strong>Allow connection<\/strong>.<\/li>\n<li>That's it. The app appears under <strong>Connected apps<\/strong> on the Connect tab, and everything it does is listed in <strong>Activity<\/strong>.<\/li>\n<\/ol>\n\n<h4>Recommended settings<\/h4>\n\n<ul>\n<li>Connect with an account that has only the permissions the AI client needs, for example an Editor account for content work.<\/li>\n<li>If you use a security plugin, firewall or CDN, allow <code>\/.well-known\/oauth-protected-resource<\/code>, <code>\/.well-known\/oauth-authorization-server<\/code>, <code>\/authorize<\/code>, <code>\/token<\/code>, <code>\/register<\/code>, and <code>\/wp-json\/bcs-mcp\/*<\/code> (GET, POST, DELETE and OPTIONS), and exclude them from page caching.<\/li>\n<\/ul>\n\n<!--section=faq-->\n<dl>\n<dt id=\"is%20the%20plugin%20free%3F\"><h3>Is the plugin free?<\/h3><\/dt>\n<dd><p>Yes. Every feature and tool is included. There are no paid tiers, license keys, usage limits, or locked features. You only need an account with the AI service you choose to connect, which may have its own pricing.<\/p><\/dd>\n<dt id=\"what%20is%20mcp%3F\"><h3>What is MCP?<\/h3><\/dt>\n<dd><p>The Model Context Protocol is an open standard for connecting AI assistants to external tools and data. This plugin is an MCP server: it describes your site's tools to the AI client, and the client decides which ones to call to complete your request. You stay in control, because every call runs with the permissions of the account that approved the connection.<\/p><\/dd>\n<dt id=\"which%20ai%20clients%20can%20connect%3F\"><h3>Which AI clients can connect?<\/h3><\/dt>\n<dd><p>Step-by-step guides are built in for Claude.ai, Claude Desktop, ChatGPT, and Cursor. Any other client that supports MCP over Streamable HTTP with OAuth 2.0 (Dynamic Client Registration and PKCE) should work as well. Older clients that only support the SSE transport can use the legacy <code>\/sse<\/code> endpoint. Availability of connector features in each AI product depends on that product and your plan with it.<\/p><\/dd>\n<dt id=\"how%20do%20i%20connect%20an%20ai%20client%3F\"><h3>How do I connect an AI client?<\/h3><\/dt>\n<dd><p>Open <strong>MCP Connector \u2192 Connect<\/strong>, pick your AI app, copy the server URL into the app, and approve the connection on your site's authorization screen. The <strong>Installation<\/strong> section above has the full steps.<\/p><\/dd>\n<dt id=\"do%20i%20need%20https%3F%20can%20i%20use%20it%20on%20localhost%3F\"><h3>Do I need HTTPS? Can I use it on localhost?<\/h3><\/dt>\n<dd><p>Hosted AI services require a public HTTPS address, because their servers must reach your site. On a local development site you can use a client that runs on the same computer, such as Claude Desktop or Cursor configured for a local server. Cloud services cannot reach <code>localhost<\/code>.<\/p><\/dd>\n<dt id=\"who%20can%20connect%20an%20ai%20client%20to%20my%20site%3F\"><h3>Who can connect an AI client to my site?<\/h3><\/dt>\n<dd><p>By default, any logged-in user with the <code>edit_posts<\/code> capability (Contributor, Author, Editor, Administrator) can approve a connection for their own account. Subscribers and customers cannot. To allow only administrators, add this to a small custom plugin:\n    add_filter( 'bcs_mcp_connect_capability', function () { return 'manage_options'; } );<\/p><\/dd>\n<dt id=\"can%20an%20ai%20client%20do%20more%20than%20my%20account%20is%20allowed%20to%20do%3F\"><h3>Can an AI client do more than my account is allowed to do?<\/h3><\/dt>\n<dd><p>No. Every tool checks the connected user's WordPress capabilities before doing anything, using the same rules as wp-admin and the REST API. For example:\n* A Contributor's AI client can create and edit that Contributor's drafts and submit them for review, but cannot publish.\n* Role changes require <code>promote_users<\/code> and are limited to roles you could assign in wp-admin.\n* No tool creates new users.<\/p>\n\n<p>If an account is demoted or deleted, its AI clients lose access on their next request.<\/p><\/dd>\n<dt id=\"can%20i%20stop%20an%20ai%20client%20from%20deleting%20things%20by%20mistake%3F\"><h3>Can I stop an AI client from deleting things by mistake?<\/h3><\/dt>\n<dd><p>Yes:\n* Every delete-type tool is labelled as destructive for the AI app, so apps such as Claude and ChatGPT ask you before running it. Read-only tools are labelled too, so you aren't asked about those.\n* Most edits and Trash actions can be undone for 7 days, from <strong>Activity<\/strong> or by the AI app itself (see below).\n* Connect with an account that has only the permissions the AI app needs, for example an Editor account for content work.<\/p><\/dd>\n<dt id=\"which%20actions%20can%20i%20undo%3F\"><h3>Which actions can I undo?<\/h3><\/dt>\n<dd><p>Most AI changes can be undone: content, block, and SEO edits, anything the AI creates, Trash actions, WooCommerce product, stock, and order status changes, comments, categories and tags, media details, menus, widgets, ACF, user profiles and roles, scheduled events, plugin activation, and supported plugin integrations. See <strong>Undo for AI changes<\/strong> above for the full list and what cannot be undone. A tool call returns an undo token only when it actually changed something. To revert from WordPress, open <strong>Activity<\/strong> and click <strong>Undo<\/strong> on the entry (administrators only). Or ask your AI client to call <code>bcs_undo_operation<\/code> with the token, from the same connection. Either way, it works within 7 days and only once: undoing from the admin also uses up the AI's token. Each admin undo is recorded in Activity.<\/p>\n\n<p>Published items return to their previous status only if the account can still publish them. An older edit token cannot overwrite a newer edit. Items that were permanently deleted, removed from Trash manually, or that the account can no longer edit cannot be restored.<\/p><\/dd>\n<dt id=\"why%20does%20my%20ai%20client%20show%20fewer%20than%20360%20tools%3F\"><h3>Why does my AI client show fewer than 360 tools?<\/h3><\/dt>\n<dd><p>The total counts every integration. Tools for WooCommerce, ACF, Elementor, forms, SEO, backups, CRM, and the other integrations only appear when the related plugin is active. Template tools only appear with a block theme, and the Global Styles tool with a block theme or a theme that has a theme.json. Some AI clients also let you turn individual tools on or off.<\/p><\/dd>\n<dt id=\"can%20the%20ai%20change%20my%20theme%27s%20design%20or%20my%20site%20settings%3F\"><h3>Can the AI change my theme's design or my site settings?<\/h3><\/dt>\n<dd><p>No. Accounts that can use the Site Editor (<code>edit_theme_options<\/code>) let the AI read block theme templates, template parts, and Global Styles, for example to explain how a page is built, but no tool can change them, the custom CSS, or the site settings under Settings. Those affect the whole site, so they stay changes you make yourself in wp-admin. The AI can edit the content of individual posts and pages, block by block.<\/p><\/dd>\n<dt id=\"which%20plugins%20are%20integrated%3F\"><h3>Which plugins are integrated?<\/h3><\/dt>\n<dd><p>WooCommerce (including Subscriptions, Bookings and Memberships), Easy Digital Downloads, Advanced Custom Fields, Elementor, Bricks, Divi, Gravity Forms, WPForms, Ninja Forms, Formidable Forms, Contact Form 7, WP Simple Pay, MemberPress, Restrict Content Pro, LearnDash, GiveWP, AffiliateWP, Ultimate Member, User Registration, BuddyPress, bbPress, The Events Calendar, WPML, Polylang, TranslatePress, FluentCRM, Mailchimp for WP, Google Site Kit, MonsterInsights, WP Statistics, UpdraftPlus, Duplicator, All-in-One WP Migration, Wordfence, Sucuri, Two Factor, Akismet, Jetpack, WP Mail SMTP, WP All Import\/Export, Custom Post Type UI, Code Snippets, Redirection, Broken Link Checker, CookieYes, and Complianz. SEO tools work with Yoast SEO, Rank Math, All in One SEO, SEOPress, Slim SEO, and The SEO Framework. What each tool can do depends on the integrated plugin's version and settings.<\/p><\/dd>\n<dt id=\"does%20the%20plugin%20send%20my%20data%20to%20bytecorestack%20or%20collect%20telemetry%3F\"><h3>Does the plugin send my data to ByteCoreStack or collect telemetry?<\/h3><\/dt>\n<dd><p>No. There is no telemetry, analytics, or \"phone home\" of any kind, and the Activity log stays in your database. The data your AI client asks for is sent to that AI client and its provider. A few tools contact other services when they are called, such as WordPress.org for plugin installs or an image URL you provide. All of these are listed under <strong>External Services<\/strong>. If you turn on the monthly report, it is emailed through your own site's email setup only to the addresses you enter.<\/p><\/dd>\n<dt id=\"what%20is%20stored%20in%20the%20activity%20log%3F\"><h3>What is stored in the Activity log?<\/h3><\/dt>\n<dd><p>For each tool call: the time, the AI client, the tool name, the arguments, a summary of the result, and whether it succeeded. Long fields are shortened, and credential-like values are replaced with <code>[REDACTED]<\/code>. Rejected connection attempts are logged with the reason. Entries are deleted automatically after 90 days, and you can export them to CSV at any time.<\/p><\/dd>\n<dt id=\"does%20it%20support%20rate%20limits%20and%20multisite%3F\"><h3>Does it support rate limits and multisite?<\/h3><\/dt>\n<dd><ul>\n<li>The MCP endpoint allows 60 requests per minute per IP address, and client registration has its own limit.<\/li>\n<li>On multisite, each site has its own settings, connections, and Activity log, and users can only connect to sites they are members of.<\/li>\n<\/ul><\/dd>\n<dt id=\"my%20ai%20client%20cannot%20connect.%20what%20should%20i%20check%3F\"><h3>My AI client cannot connect. What should I check?<\/h3><\/dt>\n<dd><ol>\n<li>Open <strong>MCP Connector \u2192 Settings<\/strong> and click <strong>Check connection<\/strong>. Each failed check explains the cause and the fix.<\/li>\n<li>Make sure the server is enabled, the site uses HTTPS, and permalinks are not set to Plain. Saving <strong>Settings \u2192 Permalinks<\/strong> once refreshes the rewrite rules.<\/li>\n<li>Security plugins (for example Wordfence or All In One WP Security), firewalls, CDNs, and some hosts block <code>\/.well-known\/<\/code> paths or restrict the REST API before WordPress runs. Allow the paths listed under <strong>Installation \u2192 Recommended settings<\/strong>, including the DELETE method, and make sure POST requests to <code>\/register<\/code> and <code>\/token<\/code> are not redirected.<\/li>\n<li>Exclude the OAuth and <code>\/wp-json\/bcs-mcp\/<\/code> URLs from page caching.<\/li>\n<li>Check <strong>Activity<\/strong>. Rejected attempts show why a token was refused, for example expired, revoked, or the account not allowed to connect.<\/li>\n<\/ol><\/dd>\n<dt id=\"my%20ai%20client%20says%20it%20has%20no%20tools%2C%20or%20keeps%20asking%20me%20to%20reconnect.\"><h3>My AI client says it has no tools, or keeps asking me to reconnect.<\/h3><\/dt>\n<dd><p>Disconnect and reconnect the connector in the AI app, then approve it again on your site. If you recently changed the account's role, check that it still has the capability needed to connect. If tools are still missing, run <strong>Connection health<\/strong> to confirm the MCP endpoint is reachable.<\/p><\/dd>\n<dt id=\"my%20ai%20client%20says%20the%20connection%20has%20expired.%20why%3F\"><h3>My AI client says the connection has expired. Why?<\/h3><\/dt>\n<dd><p>Access tokens last one hour and are renewed automatically. The connection itself stays valid for 30 days after the last renewal. If your AI client asks you to reconnect sooner, open <strong>Activity<\/strong> and look for an <strong>oauth_refresh_failed<\/strong> entry. It names the client and gives the reason: the client was disconnected or OAuth was reset, the account lost permission to connect, a backup was restored, or the connection went unused for 30 days. Version 1.2.5 also fixes the most common cause, an AI app refreshing from several places at the same moment. Reconnect once after updating.<\/p><\/dd>\n<dt id=\"i%20restored%20a%20backup%2C%20moved%20the%20site%2C%20or%20want%20to%20disconnect%20everything.\"><h3>I restored a backup, moved the site, or want to disconnect everything.<\/h3><\/dt>\n<dd><p>Remove the connector in your AI app, then click <strong>Disconnect all<\/strong> next to Connected apps on the Connect tab. This revokes all tokens and clears registered clients for this site. Add the endpoint again and re-authorize. To disconnect a single client, use its <strong>Disconnect<\/strong> button in the connected apps list.<\/p><\/dd>\n<dt id=\"can%20i%20add%20my%20own%20tools%3F\"><h3>Can I add my own tools?<\/h3><\/dt>\n<dd><p>Yes. Call <code>bcs_mcp_register_tool()<\/code> from your plugin or theme with a name, description, JSON Schema for the input, and a callback, or add tools with the <code>bcs_mcp_tools<\/code> filter. Your callback runs as the connected user, so always check <code>current_user_can()<\/code> and validate every argument.<\/p><\/dd>\n<dt id=\"can%20i%20get%20a%20monthly%20summary%20by%20email%3F\"><h3>Can I get a monthly summary by email?<\/h3><\/dt>\n<dd><p>Yes. Under <strong>MCP Connector \u2192 Settings \u2192 Monthly report<\/strong>, switch it on, enter one or more email addresses, and click <strong>Save<\/strong>. On the 1st of each month at 8:00 (site time) you get a summary of the previous calendar month: a one-line summary, tool calls with the change from the month before, how many calls looked things up, changed things or were undone, the busiest day and active days, a daily chart, and calls by app and by tool with their success rates. <strong>Send last month's report now<\/strong> sends it straight away. The report uses your site's email setup, so make sure WordPress can send email. It relies on WP-Cron, which runs when someone visits your site; on a site with very little traffic, set up a real cron job so it goes out on time.<\/p><\/dd>\n<dt id=\"what%20happens%20when%20i%20deactivate%20or%20uninstall%20the%20plugin%3F\"><h3>What happens when I deactivate or uninstall the plugin?<\/h3><\/dt>\n<dd><p>Deactivating stops the MCP server, its scheduled cleanup, and the monthly report's scheduled send, but keeps your settings and connections. Deleting the plugin from the Plugins screen removes its database tables (Activity log, OAuth clients and tokens, undo records), options (including the monthly report setting), scheduled events, transients, and per-user notice settings. Export any Activity you want to keep first.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.3.0<\/h4>\n\n<p>A simpler, faster plugin. Connecting an AI app now takes about a minute, the admin is one screen with five tabs instead of four pages, AI apps stop asking you to approve every read-only action, and a new monthly email report sums up what AI apps did on your site. Existing connections, settings, and Activity history are kept on upgrade.<\/p>\n\n<p><strong>One screen, five tabs<\/strong>\n* The Overview, Connect &amp; settings, Connection health, and Activity pages are now the Overview, Connect, Activity, Settings, and Tools tabs on a single <strong>MCP Connector<\/strong> screen, with one menu item. Bookmarks and links to the old pages open the matching tab.\n* New sidebar menu icon that stays readable at small sizes.\n* A status banner at the top tells you what to do next: turn the server on, connect an app, fix a failed check, or nothing at all.<\/p>\n\n<p><strong>Overview<\/strong>\n* Key numbers under the banner: connected apps, tool calls today, tool calls over the last 90 days, <strong>changes you can undo<\/strong> (links to Activity), and tools available.\n* A 7, 30 or 90-day chart of successful and failed tool calls, with a link straight to the failures. The 90-day view shows one pair of bars per week so every week is readable.\n* Key numbers: connected apps, tool calls today, tool calls over 90 days, changes you can still undo, and tools available.\n* Quick actions to connect an app, review or undo changes, check the connection, see failed calls, browse tools, set up the monthly report, and export activity.\n* <strong>Tools available<\/strong> counts only the tools your AI apps can use on this site. Tools for plugins that aren't active are no longer counted.<\/p>\n\n<p><strong>Connect in about a minute<\/strong>\n* The Connect tab is three short steps: copy the server URL, choose your app (Claude, ChatGPT, Gemini, Cursor, or any other MCP app), and follow one short instruction for it.\n* One button copies the URL and opens the Claude or ChatGPT connector page.\n* Cursor and command-line apps get a ready-to-copy configuration. New: Gemini, set up through Gemini CLI with one command.\n* Your connected apps are listed alongside, with when each was last used and how many calls it made. Disconnect one app in one click, or all of them with <strong>Disconnect all<\/strong>. A few example prompts sit below.\n* The multi-step verification wizard is removed. An app counts as connected as soon as you approve it.<\/p>\n\n<p><strong>New Tools tab<\/strong>\n* Opens on an overview of every area (Posts, Media, WooCommerce, Forms and so on): how many tools each has, how many read, change or delete, and whether they work on your site. Click an area to see its tools.\n* Search and Reads \/ Changes \/ Deletes filters switch to a compact list, and the counts follow your search.\n* <strong>Hide tools for plugins you don't use<\/strong> is on by default, so you only see the tools that work on your site. Turn it off to see all of them, with tools for inactive plugins marked.<\/p>\n\n<p><strong>Activity<\/strong>\n* Entries are grouped by day (Today, Yesterday, then dates). Search by tool, and filter by result and app.\n* Connection events (refused sign-in, sign-in renewal failed, rate limit, IP block, undo from WordPress admin) are named in plain words.\n* Entries show <strong>Can undo<\/strong> or <strong>Undone<\/strong>. In the entry details, the result and the undo option sit side by side. Undo runs in one click, with no second confirmation.\n* Redesigned entry details: a status line with the reason a call failed and, beside it, the undo option, the time, app, tool and entry number, and side by side what the AI app sent and what your site answered. A <strong>Copy JSON<\/strong> button copies the full response.\n* Only one entry is open at a time. Opening another slides the previous one closed.\n* The error text is no longer repeated under each failed row in the list. It is shown in the entry details.\n* Export CSV uses the current filters.\n* Bulk delete and <strong>Clear activity<\/strong> are removed. Entries are kept for 90 days, then removed automatically.<\/p>\n\n<p><strong>Settings<\/strong>\n* The server on\/off switch, the connection check, and the monthly report are together on one tab. Tabs are ordered Overview, Connect, Settings, Activity, Tools.\n* Removed the IP address limit. Any allowlist saved by an earlier version is cleared and no longer applied; OAuth, per-user permissions and rate limits still protect the endpoint.\n* The connection check lists problems first, each with a short title, one line of explanation, and a <strong>Details<\/strong> button for the full explanation. Checks that passed are shown as one row of tags.\n* The firewall paths to allow are listed right under the connection check.<\/p>\n\n<p><strong>Monthly report (new)<\/strong>\n* Turn it on under <strong>Settings \u2192 Monthly report<\/strong> and add who receives it as address pills, checked as you type. The card shows when the next report goes out, and hides its options while the report is off. On the 1st of each month at 8:00 (site time), it emails a summary of the previous calendar month, from the 1st to the last day.\n* The report opens with a one-line summary, then shows tool calls (with the change from the month before), successes, failures and success rate; how many calls looked things up, made changes, or were undone; the busiest day, active days, connected apps and refused connection attempts; a daily chart; and calls by app and the most used tools, each with a bar and its success rate.\n* <strong>Send last month's report now<\/strong> sends it straight away. It can be sent once a minute.\n* The report is sent through your site's own email setup (<code>wp_mail()<\/code>), only to the addresses you enter, and is sent once per month even if WP-Cron runs twice.<\/p>\n\n<p><strong>No more double confirmations<\/strong>\n* Removed the \"Ask before destructive actions\" setting and the second <code>confirm: true<\/code> call it required from AI apps.\n* Removed the browser \"Are you sure?\" pop-ups for disconnecting apps and undoing changes.\n* Every tool now carries MCP tool annotations (<code>readOnlyHint<\/code>, <code>destructiveHint<\/code>, <code>idempotentHint<\/code>, <code>openWorldHint<\/code>) and a readable title. Claude, ChatGPT and other apps use them to skip approval prompts for the 200 read-only tools and keep them for the 32 tools that delete things. The 20 tools that reach a service outside your site (WordPress.org installs and updates, downloads from a URL, link checks, refunds, Mailchimp, Site Kit and Akismet) are marked as such.<\/p>\n\n<p><strong>Design<\/strong>\n* A dark design that matches ByteCoreStack SMTP &amp; Health Monitor, using the Outfit and Geist Mono typefaces bundled with the plugin (replacing DM Sans and DM Mono). The light\/dark switch is removed.\n* WordPress admin notices are restyled to fit the screen instead of being hidden.\n* Fully responsive down to phone width, with keyboard-accessible tabs, chart, and entry details. Animations respect the \"reduce motion\" setting.\n* The admin stylesheet is about 70% smaller.<\/p>\n\n<p><strong>Under the hood<\/strong>\n* The authorization screen uses the new design and points to the new screen for disconnecting.\n* Removed unused admin templates and AJAX handlers (setup wizard, bulk delete, clear activity, theme preference).\n* New AJAX actions for the monthly report check the admin nonce and the <code>manage_options<\/code> capability, and sanitize every input.\n* Deactivating the plugin removes the monthly report's scheduled send. Uninstalling also removes the report setting.\n* No changes to OAuth, tokens, permission checks, rate limits, or any tool's behaviour.<\/p>\n\n<h4>1.2.5<\/h4>\n\n<p>Security release that completes the WordPress.org Plugins Team review after the <code>wp_update_user_meta<\/code> Subscriber privilege-escalation reports (CVE-2026-103068 and CVE-2026-19807), plus undo for AI changes, 24 new tools for block editing, bulk content, read-only Site Editor access and WooCommerce, fixes for permission and data bugs in existing tools, connection and time-zone fixes, and a refreshed admin design. Full details are in changelog.txt.<\/p>\n\n<p><strong>Security<\/strong>\n* Only accounts that can edit posts (Contributor and above) can authorize an AI client. Subscriber and Customer accounts can no longer get MCP tokens. Developers can require more with the <code>bcs_mcp_connect_capability<\/code> filter.\n* The token owner is re-checked on every MCP request and on every refresh, so access ends as soon as an account is demoted or deleted.\n* The MCP REST routes check the OAuth token in a real permission callback (previously <code>__return_true<\/code> with the checks in the handler). AI clients see exactly the same responses, and the rate limit still counts each request once.\n* The refresh grant authenticates confidential clients with their client secret, unknown client IDs are rejected, and the consent form re-validates PKCE.\n* All 336 existing tools were audited, and each one checks the WordPress capability for its specific action. The 24 new tools follow the same rules.\n* User meta tools only accept safe profile fields and need <code>promote_users<\/code>. Role changes are limited to roles you could assign in wp-admin and never your own role. Email changes need <code>edit_users<\/code>. Password reset and session tools check the specific user.\n* Post and term meta follow WordPress protected-meta rules, attachment file paths and trash bookkeeping keys can never be changed, nested values are rejected, and secrets are redacted on read.\n* Publishing, scheduling, and private status need the post type's publish permission. Creating posts of a type or for another author needs the matching permission. Draft and private content is no longer listed or read without permission.\n* <code>wp_run_shortcode<\/code> is administrator-only. <code>wp_get_plugin_settings<\/code> redacts whole secret options (such as salts and license keys) and needs a plugin name of at least 3 characters. bbPress reply trashing needs <code>delete_post<\/code>. Comments are attributed to the connected account.\n* The broken-link checker refuses private and loopback addresses, and the public discovery response no longer shows the plugin version.<\/p>\n\n<p><strong>New: block editing, bulk content, and store tools<\/strong>\n* Block editing: list a post's blocks, then insert, update, move, or delete a single block, including inside Groups and Columns.\n* Site Editor (block themes): read templates, template parts, and Global Styles (needs <code>edit_theme_options<\/code>). Changing them is not offered.\n* Bulk create (up to 25) and bulk update (up to 50) posts with per-item results, and a content calendar of published, scheduled, and draft content.\n* WooCommerce: create manual orders, list, moderate, and reply to product reviews, and create, edit, or delete shipping zones, shipping methods, and tax rates.\n* Block markup from the AI is always cleaned with <code>wp_kses_post()<\/code>, even for administrators. No new tool makes outbound requests.<\/p>\n\n<p><strong>New: undo for AI changes<\/strong>\n* 114 tools return a single-use undo token when they change something: content, block, and SEO edits, anything the AI creates, Trash actions, WooCommerce products, stock and order status, comments, terms, media, menus, widgets, ACF, user profiles and roles, scheduled events, plugin activation, and supported plugin integrations.\n* Undo with <code>bcs_undo_operation<\/code> from the same AI connection, or with the Undo button next to View in Activity (administrators). Undo works for 7 days, and the saved data is then deleted permanently.\n* Undo is all or nothing. It is refused if anything changed again since the AI call, so newer work is never overwritten.\n* Permanent deletes, emails, payments and refunds, and installs and updates cannot be undone and never return a token.<\/p>\n\n<p><strong>Fixed<\/strong>\n* AI clients no longer ask you to reconnect after a few days when they renew their connection from several places at once. Failed renewals are logged in Activity with the reason (<code>oauth_refresh_failed<\/code>).\n* Activity times, Calls today, the charts, and the date filters use your site's time zone instead of the database server's clock, which could show new entries as hours old. Existing entries are converted once on update.\n* PHP warnings when creating comments, a PHP error from an invalid IP allowlist mask, rejected tokens logged as client Unknown, Copy buttons losing their icon, and small buttons growing on hover.\n* Backslashes were removed when posts, duplicates, clones, and Elementor data were saved, which could corrupt block attributes and Elementor pages. Elementor image swap now works (it never matched before).\n* Tools called without a required argument now return a clear error instead of PHP warnings or a fatal error. <code>wc_get_shipping_zones<\/code> works again on current WooCommerce, and comment moderation tools no longer crash on a missing comment.<\/p>\n\n<p><strong>Security fixes in existing tools<\/strong>\n* <code>wp_get_comments<\/code> no longer shows pending comments, or comments on private and draft posts, to accounts that cannot moderate comments.\n* <code>seo_bulk_get_meta<\/code> no longer lists other people's unpublished posts, and <code>cf7_get_form<\/code> shows mail settings only to users who can edit the form.\n* <code>wp_create_reusable_block<\/code> requires permission to publish, Bricks and Divi cloning requires edit access to the source post, and comment moderation checks the specific comment.\n* User CSV export is administrator-only (WooCommerce shop managers could export every account). Hidden bbPress forums and unpublished WPML\/Polylang translations are no longer listed to users who cannot see them.\n* OAuth consent screen: clickjacking protection, the destination domain shown, an impersonation warning, and redirect URIs validated before any redirect. A query-string trick that lifted other plugins' REST API lockdowns is closed, batch requests are limited to 20 calls, and Activity CSV exports neutralize spreadsheet formulas.\n* Fixed tools that never worked or crashed: UpdraftPlus backups (now queued in the background and including the database), Mailchimp sign-ups (now double opt-in), BuddyPress activity without the Activity component, Polylang string translation, and Slim SEO detection.\n* Second per-tool pass: read tools no longer expose published items of non-public post types (contact-form messages, donations, form entries and similar) to accounts without edit access; password-protected post bodies are withheld from read-only accounts; revisions need edit access; the ACF update tools reject names that are not real ACF fields; log and settings tools mask passwords, keys, and tokens; <code>wc_get_order<\/code> and order notes need <code>edit_shop_orders<\/code>; WooCommerce reports read the correct tables under High-Performance Order Storage; and product, variation, coupon, order-status, term, widget, event, and media writes validate their input and check the specific object's permission.\n* Release testing now includes an automated replay of the CVE-2026-103068 \/ CVE-2026-19807 escalation chain (both trace to the same <code>wp_update_user_meta<\/code> tool and are closed by a strict profile-field allow-list plus a <code>promote_users<\/code> requirement) and a data-breach \"canary\" that confirms no tool ever returns a password hash, session token, application password, or secret option to any role, and that private and non-public content stays hidden from roles that should not see it.<\/p>\n\n<p><strong>Guidelines and documentation<\/strong>\n* Re-checked against all 18 plugin guidelines, the review team's common issues, and Plugin Check (no errors or warnings).\n* External Services lists every outbound request with terms and privacy links, and the authorization screen says tool results go to the AI provider.\n* Added the promised IP allowlist setting (Connect &amp; settings, then Restrict by IP address), bundled font licenses, a trademark notice, and cleanup of per-user data on uninstall. The readme was rewritten with setup, security, undo, and troubleshooting details.<\/p>\n\n<p><strong>Design<\/strong>\n* Refreshed admin design in light and dark modes: a navy header with separate page tabs, and redesigned Overview, Connection health, Activity, Connect &amp; settings, and setup wizard screens. The Overview success bar shows failed calls in solid red. Keyboard focus rings are visible and reduced motion is respected.<\/p>\n\n<h4>1.2.4<\/h4>\n\n<ul>\n<li>Security: Restrict user meta reads, writes, and deletes to safe profile fields. Writes and deletes require permission to promote users and reject array or object values, preventing role and capability changes through user meta. Role assignment also checks permission to edit the target user.<\/li>\n<\/ul>\n\n<h4>1.2.3<\/h4>\n\n<ul>\n<li>Added guided setup for Claude.ai, Claude Desktop, ChatGPT, and Cursor, with client-specific instructions, endpoint copying, and a read-only connection-check prompt.<\/li>\n<li>Reworked the compact admin page navigation and reorganized Connect &amp; settings to make the setup flow easier to follow and reduce repeated endpoint details.<\/li>\n<li>Added four dashboard metrics: Available Tools, Calls Today, Failed Today, and Connected Clients; refreshed the tool browser and recent activity presentation.<\/li>\n<li>Improved Connection health status, diagnostic results, and the Run Diagnostics card; refreshed Activity filters and layout for easier scanning.<\/li>\n<li>Polished the light and dark admin themes, card layouts, spacing, and button hover, focus, and active states.<\/li>\n<li>Kept existing OAuth connections, settings, and activity history intact on upgrade; addressed WordPress coding-standard findings in translated strings and template variables.<\/li>\n<li>Updated setup and troubleshooting documentation.<\/li>\n<\/ul>\n\n<h4>1.2.2<\/h4>\n\n<ul>\n<li>Added 19 WordPress tools, optional confirmation for destructive actions, and admin theme and tools-browser improvements.<\/li>\n<\/ul>\n\n<h4>1.2.1<\/h4>\n\n<ul>\n<li>Improved OAuth\/firewall diagnostics, connection-failure logging, credential redaction, and security-plugin compatibility.<\/li>\n<\/ul>\n\n<h4>1.2.0<\/h4>\n\n<ul>\n<li>Added 96+ tools and integrations, including analytics and translation support; removed external font requests from admin pages.<\/li>\n<\/ul>\n\n<p>Older releases are listed in changelog.txt, included with the plugin.<\/p>","raw_excerpt":"Connect Claude, ChatGPT and other AI clients to WordPress with MCP, OAuth 2.0, and 360 tools for content, WooCommerce and SEO.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/ps.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/326332","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ps.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/ps.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/ps.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=326332"}],"author":[{"embeddable":true,"href":"https:\/\/ps.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/bytecorestack"}],"wp:attachment":[{"href":"https:\/\/ps.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=326332"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/ps.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=326332"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/ps.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=326332"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/ps.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=326332"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/ps.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=326332"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/ps.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=326332"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}