{"id":279959,"date":"2026-02-25T14:09:21","date_gmt":"2026-02-25T14:09:21","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/albert-your-ai-butler-for-wp\/"},"modified":"2026-05-06T14:57:29","modified_gmt":"2026-05-06T14:57:29","slug":"albert-ai-butler","status":"publish","type":"plugin","link":"https:\/\/ltz.wordpress.org\/plugins\/albert-ai-butler\/","author":23446362,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_crdt_document":"","version":"1.1.1","stable_tag":"1.1.1","tested":"6.9.4","requires":"6.9","requires_php":"8.1","requires_plugins":null,"header_name":"Albert - The AI Butler","header_author":"Albert","header_description":"At your service \u2014 Albert connects AI assistants to your WordPress site so they can manage content, handle tasks, and keep things running smoothly.","assets_banners_color":"","last_updated":"2026-05-06 14:57:29","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/github.com\/YourMark\/albert-ai-butler","header_author_uri":"https:\/\/yourmark.nl","rating":0,"author_block_rating":0,"active_installs":0,"downloads":375,"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":"albertai","date":"2026-02-25 14:08:58"},"1.0.1":{"tag":"1.0.1","author":"albertai","date":"2026-04-13 13:50:47"},"1.1.0":{"tag":"1.1.0","author":"albertai","date":"2026-04-20 14:22:18"},"1.1.1":{"tag":"1.1.1","author":"albertai","date":"2026-05-06 14:57:29"}},"upgrade_notice":{"1.1.1":"<p>Fixes OAuth discovery endpoints when the request URL has a trailing slash. Recommended for sites where the host or CDN adds a trailing slash to .well-known URLs.<\/p>","1.1.0":"<p>Redesigned abilities page, new activity logging, and several reliability fixes. Existing enabled \/ disabled settings are preserved; no migration needed.<\/p>","1.0.1":"<p>Fixes a connection failure caused by mismatched OAuth endpoint namespaces. Recommended for all users.<\/p>","1.0.0":"<p>Initial release. Connect Claude Desktop, ChatGPT, and other MCP-compatible AI assistants to your WordPress site.<\/p>"},"ratings":[],"assets_icons":{"icon-256x256.png":{"filename":"icon-256x256.png","revision":3505242,"resolution":"256x256","location":"assets","locale":""}},"assets_banners":[],"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0","1.0.1","1.1.0","1.1.1"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3469510,"resolution":"1","location":"assets","locale":""},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3469510,"resolution":"2","location":"assets","locale":""},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3469510,"resolution":"3","location":"assets","locale":""},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3469510,"resolution":"4","location":"assets","locale":""}},"screenshots":{"1":"Albert dashboard with setup checklist and status overview","2":"Abilities page \u2014 every ability as a filterable list with instant-save toggles and Read \/ Write \/ Delete labels","3":"Connections page \u2014 manage allowed users and active AI assistant connections","4":"An active connection with Claude Desktop"},"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[2353,216196,229563,242115,2061],"plugin_category":[38],"plugin_contributors":[256587,125712],"plugin_business_model":[],"class_list":["post-279959","plugin","type-plugin","status-publish","hentry","plugin_tags-ai","plugin_tags-chatgpt","plugin_tags-claude","plugin_tags-mcp","plugin_tags-oauth","plugin_category-authentication","plugin_contributors-albertai","plugin_contributors-mark-jansen","plugin_committers-albertai"],"banners":[],"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/albert-ai-butler\/assets\/icon-256x256.png?rev=3505242","icon_2x":"https:\/\/ps.w.org\/albert-ai-butler\/assets\/icon-256x256.png?rev=3505242","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/albert-ai-butler\/assets\/screenshot-1.png?rev=3469510","caption":"Albert dashboard with setup checklist and status overview"},{"src":"https:\/\/ps.w.org\/albert-ai-butler\/assets\/screenshot-2.png?rev=3469510","caption":"Abilities page \u2014 every ability as a filterable list with instant-save toggles and Read \/ Write \/ Delete labels"},{"src":"https:\/\/ps.w.org\/albert-ai-butler\/assets\/screenshot-3.png?rev=3469510","caption":"Connections page \u2014 manage allowed users and active AI assistant connections"},{"src":"https:\/\/ps.w.org\/albert-ai-butler\/assets\/screenshot-4.png?rev=3469510","caption":"An active connection with Claude Desktop"}],"raw_content":"<!--section=description-->\n<p>Every well-run site deserves a proper butler. Albert stands at the door of your WordPress site, ready to welcome AI assistants like Claude and ChatGPT and put them to work.<\/p>\n\n<h4>An open door for AI assistants<\/h4>\n\n<p>Install Albert, grant an AI assistant access, and it can start managing your site \u2014 writing and editing posts, organizing media, moderating comments, and handling day-to-day tasks. No custom code, no complicated setup. Albert takes care of the introductions.<\/p>\n\n<h4>A well-stocked service tray<\/h4>\n\n<p>Albert presents AI assistants with a curated set of abilities \u2014 the tasks they're permitted to carry out on your site. When plugins like WooCommerce or Advanced Custom Fields are active, Albert extends the service with additional abilities tailored to each one.<\/p>\n\n<h4>The butler manages the household<\/h4>\n\n<p>Not every guest needs access to every room. From the admin panel, you decide exactly which abilities are on the tray and which stay behind closed doors. You remain in charge \u2014 Albert just makes sure your instructions are followed.<\/p>\n\n<h4>Proper credentials at the door<\/h4>\n\n<p>Every AI assistant must present proper credentials before Albert lets them in. Connections are secure, scoped, and fully under your control.<\/p>\n\n<h3>Privacy Policy<\/h3>\n\n<p>Albert does not collect, store, or transmit any user data to external servers. All authentication tokens are stored locally in your WordPress database. When you authorize an AI assistant, that assistant will have access to perform actions on your WordPress site according to the permissions you grant. You control which abilities are enabled and can revoke any session at any time.<\/p>\n\n<h3>Credits<\/h3>\n\n<p>Developed by Mark Jansen - Your Mark Media\nWebsite: https:\/\/yourmark.nl\nPlugin URL: https:\/\/github.com\/YourMark\/albert-ai-butler<\/p>\n\n<p>Built with:\n* league\/oauth2-server for OAuth 2.0 implementation\n* Model Context Protocol (MCP) for AI assistant connectivity\n* WordPress Coding Standards<\/p>\n\n<!--section=installation-->\n<h4>From WordPress.org<\/h4>\n\n<ol>\n<li>Install Albert through the WordPress plugin directory<\/li>\n<li>Activate the plugin through the 'Plugins' menu in WordPress<\/li>\n<li>Go to <strong>Albert &gt; Connections<\/strong> and add yourself as an allowed user<\/li>\n<li>Copy the MCP endpoint URL from the dashboard<\/li>\n<li>Add the URL to Claude Desktop, ChatGPT, or another MCP-compatible assistant<\/li>\n<li>Authorize when prompted \u2014 you're connected<\/li>\n<\/ol>\n\n<h4>Manual Installation<\/h4>\n\n<ol>\n<li>Download the plugin files<\/li>\n<li>Upload the <code>albert-ai-butler<\/code> folder to <code>\/wp-content\/plugins\/<\/code><\/li>\n<li>Activate the plugin through the 'Plugins' menu in WordPress<\/li>\n<li>Follow the setup steps above<\/li>\n<\/ol>\n\n<h4>Connecting Claude Desktop<\/h4>\n\n<ol>\n<li>In WordPress, go to <strong>Albert &gt; Connections<\/strong> and add yourself as an allowed user<\/li>\n<li>Copy the MCP endpoint URL from the Albert dashboard<\/li>\n<li>In Claude Desktop, go to Settings &gt; MCP Servers and add a new server<\/li>\n<li>Paste the endpoint URL and save<\/li>\n<li>Claude will open a browser window to authorize \u2014 log in and approve<\/li>\n<li>Claude Desktop can now work with your WordPress site<\/li>\n<\/ol>\n\n<h4>Connecting ChatGPT<\/h4>\n\n<ol>\n<li>In WordPress, go to <strong>Albert &gt; Connections<\/strong> and add yourself as an allowed user<\/li>\n<li>Copy the MCP endpoint URL from the Albert dashboard<\/li>\n<li>In ChatGPT, connect to the MCP endpoint using the URL<\/li>\n<li>Authorize when prompted<\/li>\n<li>ChatGPT can now work with your WordPress site<\/li>\n<\/ol>\n\n<p>Full setup guide available at <a href=\"https:\/\/github.com\/YourMark\/albert-ai-butler\/wiki\">Documentation<\/a><\/p>\n\n<!--section=faq-->\n<dl>\n<dt id=\"what%20ai%20assistants%20are%20supported%3F\"><h3>What AI assistants are supported?<\/h3><\/dt>\n<dd><p>Albert works with <strong>Claude Desktop<\/strong>, <strong>ChatGPT<\/strong>, and any AI assistant that supports the Model Context Protocol (MCP). The connection process is the same for all: copy the endpoint URL, paste it into your assistant, and authorize.<\/p><\/dd>\n<dt id=\"how%20hard%20is%20it%20to%20set%20up%3F\"><h3>How hard is it to set up?<\/h3><\/dt>\n<dd><p>Three steps: add yourself as an allowed user, copy the MCP endpoint URL, and paste it into your AI assistant. No technical knowledge required.<\/p><\/dd>\n<dt id=\"is%20my%20data%20secure%3F\"><h3>Is my data secure?<\/h3><\/dt>\n<dd><p>Yes. Albert uses OAuth 2.0 \u2014 the same standard used by Google, GitHub, and other major platforms. Your AI assistant receives a time-limited access token that automatically refreshes. No passwords are shared. All operations respect WordPress's built-in capability and role system, and you control exactly which abilities are enabled.<\/p><\/dd>\n<dt id=\"what%20abilities%20are%20included%3F\"><h3>What abilities are included?<\/h3><\/dt>\n<dd><p>Albert ships with 25+ abilities covering WordPress core:<\/p>\n\n<ul>\n<li><strong>Posts<\/strong> \u2014 Find, view, create, update, and delete posts<\/li>\n<li><strong>Pages<\/strong> \u2014 Find, view, create, update, and delete pages<\/li>\n<li><strong>Users<\/strong> \u2014 Find, view, create, update, and delete users<\/li>\n<li><strong>Media<\/strong> \u2014 Find, view, upload media, and set featured images<\/li>\n<li><strong>Taxonomies<\/strong> \u2014 Find taxonomies, find\/view\/create\/update\/delete terms<\/li>\n<\/ul>\n\n<p>When WooCommerce is active, additional abilities are available for products, orders, and customers.<\/p><\/dd>\n<dt id=\"can%20i%20control%20what%20my%20ai%20assistant%20is%20allowed%20to%20do%3F\"><h3>Can I control what my AI assistant is allowed to do?<\/h3><\/dt>\n<dd><p>Yes. The abilities page lists every action your AI assistant can perform on your site, clearly labelled as Read, Write, or Delete. You toggle each one on or off individually \u2014 changes save instantly, no form to submit. Filter the list by text, category, or supplier to find what you're looking for. Write and delete abilities are off by default \u2014 you choose exactly what to enable. All actions also respect WordPress user capabilities, so your AI assistant can never do more than the authorized user could do manually.<\/p><\/dd>\n<dt id=\"do%20i%20need%20woocommerce%3F\"><h3>Do I need WooCommerce?<\/h3><\/dt>\n<dd><p>No. Albert works with WordPress core out of the box. WooCommerce abilities appear automatically when WooCommerce is active.<\/p><\/dd>\n<dt id=\"can%20i%20add%20custom%20abilities%3F\"><h3>Can I add custom abilities?<\/h3><\/dt>\n<dd><p>Yes. Developers can register custom abilities using the WordPress Abilities API to expose any functionality to AI assistants. See the documentation at <a href=\"https:\/\/github.com\/YourMark\/albert-ai-butler\/wiki\">GitHub<\/a>.<\/p><\/dd>\n<dt id=\"does%20this%20work%20with%20multisite%3F\"><h3>Does this work with multisite?<\/h3><\/dt>\n<dd><p>Albert is designed for single-site installations. Multisite support is on the roadmap.<\/p><\/dd>\n<dt id=\"what%20are%20the%20system%20requirements%3F\"><h3>What are the system requirements?<\/h3><\/dt>\n<dd><ul>\n<li>WordPress 6.9 or higher<\/li>\n<li>PHP 8.1 or higher (8.3+ recommended)<\/li>\n<li>MySQL 8.0+ or MariaDB 10.5+<\/li>\n<li>HTTPS (required for OAuth 2.0)<\/li>\n<\/ul><\/dd>\n<dt id=\"where%20can%20i%20get%20support%3F\"><h3>Where can I get support?<\/h3><\/dt>\n<dd><ul>\n<li>Documentation: <a href=\"https:\/\/github.com\/YourMark\/albert-ai-butler\/wiki\">GitHub Wiki<\/a><\/li>\n<li>Support Forum: <a href=\"https:\/\/wordpress.org\/support\/plugin\/albert\/\">WordPress.org support forums<\/a><\/li>\n<li>GitHub: <a href=\"https:\/\/github.com\/YourMark\/albert-ai-butler\/issues\">Report issues<\/a><\/li>\n<\/ul><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.1.1<\/h4>\n\n<p>Bug fix release.<\/p>\n\n<ul>\n<li><strong>Fix:<\/strong> OAuth discovery endpoints (<code>\/.well-known\/oauth-protected-resource<\/code>, <code>\/.well-known\/oauth-authorization-server<\/code>) are now reachable when the request arrives with a trailing slash. Some hosts add a trailing slash at the edge, after which WordPress's canonical redirect would strip it again, producing a redirect loop or a 404. The endpoints now respond identically with or without the slash.<\/li>\n<li>Discovered by <a href=\"https:\/\/profiles.wordpress.org\/mklasen\/\">Marinus Klasen<\/a>.<\/li>\n<\/ul>\n\n<h4>1.1.0<\/h4>\n\n<p>Major admin redesign, new activity logging, and a stack of reliability fixes.<\/p>\n\n<p><strong>New features<\/strong><\/p>\n\n<ul>\n<li><strong>Unified abilities page<\/strong> \u2014 one filterable list of every registered ability from WordPress core, WooCommerce, and any other plugin that registers abilities. Search, filter by category or supplier, and see read\/write\/delete at a glance.<\/li>\n<li><strong>Instant save<\/strong> \u2014 toggle an ability on or off and it saves immediately. No more Save Changes button or lost progress.<\/li>\n<li><strong>Activity logging<\/strong> \u2014 a new dashboard widget shows the most recent ability execution, and every ability now displays its \"Last run\" time in the expanded details.<\/li>\n<li><strong>Plain-language labels<\/strong> \u2014 each ability is tagged Read, Write, or Delete (replacing developer-facing \"Destructive \/ Idempotent \/ Readonly\" terms). Hover or keyboard-focus a label for a full explanation.<\/li>\n<li><strong>Supplier filtering<\/strong> \u2014 the filter dropdown shows branded names like \"WordPress core\", \"Albert\", and \"WooCommerce\" instead of raw prefixes. Third-party plugins can register their own supplier name via the <code>albert\/abilities\/suppliers<\/code> filter.<\/li>\n<li><strong>List \/ Paginated view<\/strong> \u2014 switch between one long list and 25-per-page pagination. Your choice is persisted on the server, so no flash of the wrong view on page load.<\/li>\n<\/ul>\n\n<p><strong>Bug fixes<\/strong><\/p>\n\n<ul>\n<li>Ability categories now register at the default hook priority, preventing collisions with WordPress core's built-in categories on WP 6.9+.<\/li>\n<li>Fixed a missing 'user' category that Users abilities depend on \u2014 abilities now register reliably on fresh installs.<\/li>\n<li>The <code>password<\/code> field on the Create User ability is now correctly flagged as required, so AI assistants get a clear validation error when it's missing instead of a vague failure.<\/li>\n<li>OAuth endpoints, MCP, and discovery metadata now share one consistent REST namespace reference.<\/li>\n<\/ul>\n\n<p><strong>Accessibility<\/strong><\/p>\n\n<ul>\n<li>Keyboard-reachable tooltips on every annotation chip.<\/li>\n<li>WCAG 2.2 AA contrast on all chip colours.<\/li>\n<li>aria-live stats announcements debounced during search.<\/li>\n<li>Visible focus indicators on pagination buttons and dropdown caret indicators on filter selects.<\/li>\n<\/ul>\n\n<p><strong>Under the hood<\/strong><\/p>\n\n<ul>\n<li>Comprehensive automated test suite covering input validation, output schema, permissions, and per-parameter behaviour on every ability.<\/li>\n<li>Continuous integration now runs against PHP 8.1\u20138.4, WordPress 6.9 and latest, and WooCommerce 10.5\u2013latest.<\/li>\n<li>Removed redundant manual input validation from every ability \u2014 WordPress core validates the schema before the ability runs.<\/li>\n<li>Unified internal settings API for cleaner state management.<\/li>\n<\/ul>\n\n<h4>1.0.1<\/h4>\n\n<p>Bug fix release.<\/p>\n\n<ul>\n<li><strong>Fix:<\/strong> OAuth endpoints used a different REST namespace (<code>albert-ai-butler\/v1<\/code>) than the MCP server and discovery metadata (<code>albert\/v1<\/code>), causing connection failures when clients followed the OAuth discovery spec. All endpoints now use <code>albert\/v1<\/code> consistently.<\/li>\n<li><strong>New:<\/strong> <code>albert\/rest_namespace<\/code> filter allows sites with a namespace collision to override the REST namespace.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<p>Initial release.<\/p>\n\n<ul>\n<li><strong>MCP server<\/strong> \u2014 Turns your WordPress site into an MCP endpoint. Copy the URL, paste it into Claude Desktop, ChatGPT, or any MCP-compatible assistant, authorize, and you're connected. No configuration files or developer setup needed.<\/li>\n<li><strong>OAuth 2.0 server<\/strong> \u2014 Full authentication server with PKCE support, RSA-signed access tokens, automatic token refresh, and sessions that persist up to 30 days.<\/li>\n<li><strong>Abilities Manager<\/strong> \u2014 Admin interface to toggle read and write permissions per content type. Write abilities disabled by default. All actions respect WordPress capabilities.<\/li>\n<li><strong>25+ WordPress abilities<\/strong> \u2014 Posts, Pages, Users, Media, and Taxonomies with find, view, create, update, and delete operations.<\/li>\n<li><strong>WooCommerce abilities<\/strong> \u2014 Products, Orders, and Customers when WooCommerce is active.<\/li>\n<li><strong>Connections management<\/strong> \u2014 Control which users can connect AI assistants. View active connections, disconnect individual sessions, or end entire sessions with token revocation.<\/li>\n<li><strong>Dashboard<\/strong> \u2014 Setup checklist, status overview, active connection count, and recent activity feed.<\/li>\n<li><strong>Extensible<\/strong> \u2014 Register custom abilities with the WordPress Abilities API. Hookable architecture with filters and actions.<\/li>\n<\/ul>","raw_excerpt":"At your service \u2014 Albert connects AI assistants to your WordPress site so they can manage content, handle tasks, and keep things running smoothly.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/ltz.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/279959","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ltz.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/ltz.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/ltz.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=279959"}],"author":[{"embeddable":true,"href":"https:\/\/ltz.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/albertai"}],"wp:attachment":[{"href":"https:\/\/ltz.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=279959"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/ltz.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=279959"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/ltz.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=279959"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/ltz.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=279959"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/ltz.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=279959"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/ltz.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=279959"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}