Let your AI assistant actually run your WordPress site
You already ask ChatGPT or Claude to plan posts, rewrite copy and answer questions about your business. Then you paste the result into WordPress by hand, and fix the formatting.
Albert removes that step. Connect your AI assistant to your site once, and it writes, edits and files your content directly, in real WordPress blocks, inside limits you set. No copy and paste, no plugin-specific chat window, no code.
The easiest and safest way to use the WordPress MCP Adapter. The MCP Adapter is WordPress's own way for AI assistants to reach a site, and on its own it leaves setup, sign-in and permissions to you. Albert adds them: a guided setup, a proper sign-in, a list of who may connect, and nothing destructive without your approval.
- Nothing destructive without you. Safe mode is on from the start. Deleting content, changing someone's role or rewriting a key setting waits for your approval, and the assistant cannot approve its own request. Needs WordPress 7.1.
- Signed in, never handed a password. Assistants connect with OAuth: short-lived tokens you can revoke, and no password or API key ever given to an AI company.
- No middleman. Your assistant talks to your site directly. Albert has no servers of its own in between.
- No tracking. Albert sends nothing about your site or your usage anywhere.
- Personal data hidden by default. Names, email addresses, phone numbers and postal addresses are masked before an assistant sees them. New sites start on Strict.
Connect in three steps
Copy your site's connection URL, paste it into your assistant, approve the request. That is the whole setup, and it is the same for every assistant.
Not sure where to paste it? Click Connect an assistant, tell Albert where your site runs and which app you use, and it shows that app's exact steps. It tells you the moment the connection works, and what to ask first. Sites that only run on your computer work too, and Claude Desktop gets a one-file install.
Albert speaks block editor
Most AI plugins hand WordPress a wall of HTML and leave you to clean it up. Albert does not.
- Real blocks, not raw HTML. Headings, lists, quotes, images, buttons, columns and groups come back as proper blocks you can edit like anything else.
- One block at a time. Change, add, move or remove a single paragraph without your assistant rewriting the whole page.
- No "this block contains unexpected content". Albert checks blocks as they are written and corrects the assistant before the content reaches your post.
- Classic editor too. On a classic site, content is read and saved as HTML instead. Both work.
Your assistant knows your site
An assistant that does not know your site invents things: brand colours you never chose, a tone that is not yours, categories that do not exist.
- Write your instructions once. Your tone, your vocabulary, anything it must never touch. Albert sends them with every conversation.
- Your site describes itself. Language, timezone, theme colours and fonts, post types, taxonomies and shop settings go along too, but only when your theme genuinely declares them.
- See exactly what is sent, and switch off any part an assistant does not need.
- Your text is information, never orders. Content from your site can shape subject matter and tone. It can never change what an assistant is allowed to do.
You decide what it may do
Not every guest needs a key to every room.
- Every action listed and labelled Read, Write or Delete, with its own switch. Changes save instantly.
- Write and delete start switched off. You turn on exactly what you want, and nothing else.
- Your WordPress roles still apply. An assistant can never do more than the person who approved it.
- New actions arrive switched off, so a plugin update never quietly widens what an assistant can reach.
- You choose who may connect. Only the people on your list can approve an assistant. Each gets their own Connect page, and Send setup link emails them a link to the steps.
- Revoke any connection at any time.
Nothing destructive happens without you
Switched on by default. When your assistant asks to delete a post, change someone's role, or rewrite a foundational setting, the action does not run. It waits for you.
- Held, not logged after the fact. The request is stopped before it happens, not reported once it has.
- You see what it would actually change, resolved as it is now: "Delete the post 'Pricing' (published)", not a line of code. If the page changed since the request, you are told before you approve.
- Approve what you could do yourself. Editors approve their own requests; administrators approve anyone's. Nobody gains reach they did not already have.
- The assistant cannot approve its own work, cannot switch safe mode off, and cannot touch the settings that control it.
- Requests expire if nobody decides, so an old intent cannot be approved against today's site.
Needs WordPress 7.1. On older versions Albert tells you plainly that it cannot hold anything, rather than letting the switch imply otherwise.
Personal data stays private
Albert hides your visitors' and customers' details, names, email addresses, phone numbers and postal addresses, before anything reaches an assistant.
Choose
Strict,
Balanced or
Off. New sites start on Strict. Reveal the real details only when you ask, and only if your own account is allowed to see them.
See everything that happened
- Every call is recorded: which action, which assistant, which user, how long it took.
- Blocked is not Failed. A request your own rules refused reads differently from one that broke.
- Needs your attention surfaces standing problems on the dashboard, and stays quiet when there are none.
Works with the assistant you already use
Claude Desktop,
claude.ai, Claude Code, ChatGPT, Cursor, VS Code, or anything else that speaks the Model Context Protocol. Albert serves your site to them through WordPress's own MCP Adapter, so the same connection URL works everywhere and you are never locked to one vendor.
Connections use OAuth 2.0 with short-lived, self-refreshing tokens. No password is ever shared with an AI company.
What your assistant can do
- Posts and pages: find, view, create, update and delete, block by block.
- Media: browse the library, set featured images, and receive files your assistant sends you directly.
- Users and taxonomies: find and manage users, categories, tags and custom terms.
- Block patterns: find and reuse the patterns from your theme, plugins and library, and save new ones.
- WooCommerce: look up products, orders and customers when WooCommerce is active.
- Anything you build: register your own actions with the WordPress Abilities API.
Works with the plugins you already use
Albert is not limited to its own abilities. Plugins that offer abilities to AI assistants through the WordPress Abilities API show up on Albert's Abilities screen, where you choose which ones your assistant may use over the same connection. Many popular plugins already do:
- SEO: Yoast SEO, Rank Math, All in One SEO, SEOPress, SiteSEO, SureRank.
- Forms: Gravity Forms, WPForms, Fluent Forms, Formidable Forms.
- Page builders: Elementor, Ultimate Addons for Elementor, Premium Addons for Elementor, SiteOrigin Page Builder.
- Custom fields: Advanced Custom Fields (ACF), Secure Custom Fields, Meta Box.
- E-commerce: WooCommerce, plus Albert for WooCommerce for orders, products, coupons and reports.
- Search and analytics: Search & Filter Pro, Koko Analytics Pro, PixelYourSite.
- Performance and media: Imagify, ShortPixel, SpeedyCache.
- Security, backups and activity: Jetpack, Akismet (once you enable its MCP access), BackWPup, Simple History.
What each plugin lets your assistant do is up to that plugin. You decide which of its abilities are switched on, and the assistant only ever acts with the permissions of the person who approved the connection.
Go further with Albert Premium
Albert Premium adds per-role and per-user permission rules, your own custom post types, and a full activity log with filters and retention.
Every well-run site deserves a proper butler. Albert checks credentials at the door, and shows the guest only the rooms you opened.
Automatic installation
- Go to Plugins > Add New in your WordPress dashboard.
- Search for Albert.
- Click Install Now, then Activate.
- Go to Albert > Connections and add yourself as an allowed user.
- Copy the connection URL and paste it into your AI assistant.
- Approve the request when prompted. You are connected.
Manual installation
- Download the plugin ZIP from WordPress.org.
- Go to Plugins > Add New > Upload Plugin.
- Upload the ZIP and click Install Now, then Activate.
- Follow steps 4 to 6 above.
After activating
Write and delete actions start switched off. Go to
Albert > Abilities and switch on what you want your assistant to be able to do. Everything else works out of the box.
1.5.0
Adds safe mode, which holds destructive actions for your approval, and closes a way an AI assistant could reach your site's tools without going through Albert's approved sign-in.
Features
- Safe mode: nothing destructive happens without you. Switched on by default. When your assistant asks to delete a post, change someone's role, or rewrite a foundational setting, the action is held and waits for your approval in wp-admin. You see what it would actually change, resolved as it is now rather than as a line of code, and you are warned if the page has been edited since the request was made. Editors approve their own requests, administrators approve anyone's, and nobody can approve something they could not have done themselves. The assistant cannot approve its own work and cannot switch safe mode off. Requests expire if nobody decides, so a stale intent is never applied to today's site. Needs WordPress 7.1; on older versions Albert says plainly that it cannot hold anything instead of letting the switch imply otherwise.
- Reuse your block patterns. Your assistant can now browse the block patterns your theme and plugins provide, and your own saved patterns, and reuse one as the starting point for a new page instead of building the layout from scratch. It can also save a layout as a reusable pattern of its own.
- Connect an assistant, step by step. One button on the Dashboard and on Connections opens a short guide: where your site runs, which app you use, then the exact steps for that app. It tells you the moment the connection really works, because Albert sees it arrive, and then suggests a few first things to ask. If nothing arrives, it lists the usual reasons.
- Everyone you allow can connect, whatever their role. People on your list of who may connect an assistant now get a Connect page under Albert, with the same step-by-step guide and their own connected assistants, which they can disconnect themselves. They see nothing else: no logs, no settings, nobody else's connections. Next to each person on the list, Send setup link emails them a link that opens the guide straight away, or copies it for you to send yourself. When you add people you can tick Email them how to connect.
Improvements
- When someone who isn't on the list of people who may connect an assistant tries to connect one, the page now says who can fix it and how. An administrator who isn't on the list gets a button that opens Connections, where they can add themselves.
- After you approve an assistant, the page now says so and takes you back to your app, with a link in case that doesn't happen.
- The MCP Adapter, the part Albert uses to talk to AI assistants, is now its own plugin on WordPress.org. Albert uses that plugin when it is active, and asks you to install it with one click on its screens, on the Plugins screen and in Site Health. Albert still includes its own copy for now, but a coming update will rely on the plugin. Where plugin installs are switched off on your site, or you cannot install plugins yourself, Albert tells you who needs to act.
- The setup steps for each assistant are rewritten as short numbered steps, with the one button or command each step needs right inside it. Claude gets an Add to Claude button that opens Claude with your site already filled in, and there are new steps for Codex, Windsurf, Gemini CLI and Cline, plus a bridge for apps that cannot connect to an address on their own.
- Albert now recognises a site that only runs on your computer (a local site), lists the apps that work with it first, and explains why Claude on the web and ChatGPT cannot reach it, instead of showing steps that would fail.
- On a site that only runs on your computer, Claude Desktop now connects with a small install file made for your site: download it, open it, and approve in your browser. Nothing else to install. It needs the site on https or on localhost.
- The Dashboard's "Connect an AI assistant" step is about you: it ticks off when you have connected an assistant yourself, and a Connect an assistant button stays on the Dashboard after setup.
Fixes
- Asking your assistant to build a page with a layout block that holds other content (such as a Cover block wrapped around a heading and text) could silently save the block empty, losing everything inside it. These blocks now keep their contents.
- In the rare case where a block's content genuinely can't be reproduced, the assistant is now told clearly, instead of the block being saved empty as if it had worked.
- Pages your assistant builds with blocks no longer raise a WordPress debug notice each time they are shown. Pages built before this update stop once they are saved again in the editor.
- Asking your assistant to change a layout block's settings, such as a group's background, could remove everything inside it. The contents now stay, unless the assistant explicitly replaces them.
- Apps that sign in with their own kind of link, such as Cursor, could not connect: every attempt ended in "Invalid Request". They now connect.
- Long text in the list of people who may connect an assistant now wraps instead of being cut off.
- The Dashboard's Albert for WooCommerce recommendation now opens the add-on's own page.
- When another plugin switched off the MCP adapter's built-in tools, assistants could sign in but saw no tools at all. Albert now adds the three tools it needs when they are missing, without replacing anyone else's.
- Claude Code could not connect on hosts such as SiteGround that answer part of the sign-in discovery themselves: it stopped with "Dynamic Client Registration rejected" before the approval screen. It now connects.
- After about twenty connection attempts, including ones never finished and apps you had disconnected, no new assistant could connect at all and nothing said why. Only connections that still work count towards the limit now, old unused ones are cleaned up, and the Dashboard tells you if the limit is ever reached.
Security
- Albert now closes an unused extra way in. An AI assistant that held a WordPress application password could previously reach your site's tools without going through Albert's sign-in, the list of people you allow to connect, or the approval screen, and it left no record under Connections. That entry point is switched off, so assistants must connect the approved way.
- Your assistant can no longer pick or change a WordPress password. Creating a user previously meant the assistant invented a password and sent it to your site, which also left it sitting in the AI provider's record of the conversation. Now your site generates the password itself and hands back a one-time link for the new person to set their own. Changing an existing user's password is refused outright: that account's owner can reset it from the login screen, and nobody else needs to.
- When you deny an app, or its sign-in fails, Albert now sends the app's own reference back to it safely encoded, so a crafted value can no longer add extra parameters to the address the app is sent back to.
- Albert now refuses to register an app whose return address contains spaces or hidden control characters.
Developer
- Safe mode holds destructive calls made over an Albert connection at WordPress 7.1's
wp_pre_execute_ability. A call is held when the ability's destructive annotation is not false, when the ability is on the high-risk list, or when its input grants an administrator role or writes a high-risk option. WP-CLI, direct PHP and other plugins are not gated. A held call is logged as warning. Settings: albert_safe_mode and albert_safe_mode_ttl_minutes. New hooks: albert/safe_mode/high_risk_abilities, high_risk_options, protected_options, exempt_abilities, retention_days, display_input, held, approved, rejected, expired, abandoned, option_write_blocked, option_restored, and albert/approvals/view_capability.
- When the MCP Adapter plugin is active it supplies the adapter; Albert's bundled copy (0.7.0) is the fallback. New filter
albert/mcp/adapter_notice.
- The MCP adapter's default server is emptied so it cannot run abilities outside Albert's sign-in. New filter
albert/mcp/disable_default_server (default true).
albert/create-user and albert/update-user no longer accept a password. albert/create-user returns a one-time password_reset_url instead.
- New abilities:
albert/find-patterns, albert/view-pattern, albert/create-pattern, albert/update-pattern and albert/delete-pattern.
- New
albert_connect capability, held by administrators and everyone on the allowed list.
- New filter
albert/oauth/stale_client_days (default 7, 0 keeps unused clients). albert/oauth/registration_rejected fires with client_limit_reached when the client limit is reached.
Credits
- David Beentjes for helping fix the lost block contents.
- Rodolfo Melogli for reporting the Claude Code connection failure on SiteGround.
- Sébastien for testing a connection that showed no tools.
1.4.2
Fixes AI assistants that could not connect to some sites.
Improvements
- AI assistants can't connect when your permalinks (Settings → Permalinks) are set to "Plain". Albert's Dashboard now tells you when that's the case, with a link to change it. Any other permalink setting works.
Fixes
- Claude Code and some other AI assistants stopped at the sign-in step with an error about your site's sign-in details. They now find everything they need and connect.
- AI assistants such as ChatGPT could not connect to sites whose page addresses include /index.php/ (for example example.com/index.php/about/). Albert now uses addresses that work with your permalink setting.
Developer
- The authorization server metadata now advertises
jwks_uri, served from a new albert/v1/oauth/jwks REST route that publishes the token signing key's public half as an RFC 7517 JSON Web Key Set. Clients that validate the metadata before authenticating (Claude Code's MCP SDK requires jwks_uri to be a string, though RFC 8414 marks it optional) previously failed discovery outright.
- Discovery now answers the RFC 8414 §3.1 and RFC 9728 §3.1 canonical path-insertion URLs (
/.well-known/oauth-authorization-server/<issuer path> and /.well-known/oauth-protected-resource/<resource path>), not only the OIDC append form. These are root .well-known URLs, so on hosts that intercept a root /.well-known/ the mid-path append form remains the one that works.
- Every URL Albert advertises (issuer, endpoints,
resource_metadata, the MCP endpoint under albert/mcp/external_url, ClientRegistration::get_endpoint_url()) now routes through index.php when the permalink structure does, and uses rest_get_url_prefix() instead of a hard-coded wp-json. New ServerMetadata::url(). Pretty-permalink sites get the same URLs as before, so existing connections are unaffected.
ServerMetadata::base_url() now delegates to Server::get_base_url(), so albert/mcp/external_url is read once per request and validated in one place.
Credits
- Marinus Klasen for reporting the Claude Code sign-in problem.
- Sébastien for reporting the /index.php/ connection problem, with the logs that pinpointed it.
1.4.1
Fixes AI assistants failing to connect, including on managed hosts (such as SiteGround and Servebolt) that handle the sign-in discovery address themselves.
Fixes
- AI assistants using the newest sign-in method could fail to connect. They connect again now.
- AI assistants could not sign in on some managed hosts (such as SiteGround and Servebolt) that answer part of the sign-in discovery themselves. Albert now serves it where those hosts pass it through, so sign-in works with no manual setup.
Developer
- Discovery is now RFC 9728 / RFC 8414 conformant:
resource_metadata in WWW-Authenticate, one Protected Resource Metadata source listing the issuer, and the issuer served at a mid-path .well-known URL that hosts intercepting a root /.well-known/ leave alone. Adds the albert_oauth_discovery Site Health test.
- The issuer is now a path, so a connected client that re-runs discovery re-authorises once; live connections keep working.
Earlier versions
Releases before 1.4.1 are listed in
changelog.txt, bundled with the plugin.