Description
Airo WP AI Builder is a WordPress plugin that exposes your site to AI assistants via the Model Context Protocol (MCP). It also bundles a curated set of Gutenberg block patterns built on the Twenty Twenty-Five (tt5) theme, giving any connected AI a ready-made vocabulary for assembling pages.
MCP Server
Registers an MCP-compatible server endpoint that any AI client can connect to. Tools cover posts, pages, media, templates, navigation menus, and global styles. Clients authenticate with a standard WordPress Application Password — see the FAQ for details.
Block Patterns
A curated library of Gutenberg block patterns designed for the Twenty Twenty-Five theme. Patterns are sourced from the DesignSetGo project and automatically deferred when DesignSetGo is active to avoid duplication.
AI-agnostic
No specific AI is bundled or required. Connect Claude, GPT, Gemini, or any MCP-compatible assistant of your choice.
Connecting a client
The MCP endpoint is /wp-json/airo-wp/v1/mcp/streamable. Authentication uses a standard WordPress Application Password, which you create and revoke under Users -> Profile. HTTPS is required, because WordPress does not issue Application Passwords on non-SSL sites. See the FAQ below for the exact header, and the permissions each tool requires.
Developer highlights:
- Custom DI container with domain
Packageclasses registered onplugins_loaded - Strauss-prefixed vendor code in
dependencies/to avoid conflicts - PHPUnit unit tests with Brain Monkey
- PHP 7.4 through 8.3 compatibility
Roadmap (v1)
The following features are planned for the v1 release:
- Site generation — build a complete WordPress site from a single prompt
- Conversational setup — add pages, swap images, and update layouts through plain-English chat
- WooCommerce storefront — auto-configure a storefront with AI-generated products from a single prompt
External Services
This plugin optionally connects to two third-party services depending on which blocks are used.
Cloudflare Turnstile (form spam protection)
Used by the Form block when a Turnstile site key is configured under Settings Airo WP AI Builder Integrations.
When a visitor loads a page containing a form block, the Turnstile JavaScript widget is fetched from
https://challenges.cloudflare.com/. On form submission, the CAPTCHA token is verified by sending it
to https://challenges.cloudflare.com/turnstile/v0/siteverify along with the visitor’s IP address.
No data is sent if no Turnstile site key is configured.
- Terms of Service: https://www.cloudflare.com/website-terms/
- Privacy Policy: https://www.cloudflare.com/privacypolicy/
Google Maps (map embed block)
Used by the Map block when a Google Maps API key is configured.
When a visitor loads a page containing a map block, the Google Maps JavaScript API is loaded from
https://maps.googleapis.com/. The visitor’s browser communicates directly with Google Maps servers.
No data is sent if no API key is configured.
- Terms of Service: https://cloud.google.com/maps-platform/terms
- Privacy Policy: https://policies.google.com/privacy
Blocks
This plugin provides 71 blocks.
- Blobs Create random, unique, and organic-looking blob shapes. Customize with gradients, overlays, and images. Animate with smooth morphing effects.
- Card Display content in a card layout with image, badge, title, subtitle, body text, and CTA button. Perfect for pricing, features, services, and team members.
- Comparison Table Display a feature comparison table for products, services, or plans
- Slider A modern, performant slider with multiple transition effects, auto-play, and full block support inside slides.
- Modal Trigger A button or link that opens a modal dialog.
- Text Path Flow text along an SVG path.
- Advanced Heading Create headings with multiple font styles — mix fonts, weights, and colors within a single heading for advanced typographic designs.
- Divider Add a visual separator with multiple style options including solid, dashed, gradient, and decorative patterns.
- Image Accordion Display a series of expandable image panels that reveal content on hover or click, perfect for showcasing portfolios, galleries, or featured content.
- Icon Display an inline SVG icon with customizable styling.
- Modal Create accessible modal dialogs with customizable triggers and content.
- Map Display an interactive map using OpenStreetMap or Google Maps.
- Scroll Accordion Accordion that reveals items progressively as you scroll down the page
- Product Showcase Hero Full-width hero section showcasing a WooCommerce product with large image, price, rating, and add-to-cart action. Requires WooCommerce.
- Grid Responsive multi-column grid layouts. Perfect for feature grids, product listings, team members, and card layouts.
- Table of Contents Auto-generate a table of contents from page headings with smooth scroll navigation and scroll spy.
- Progress Bar Display progress or statistics with an animated bar
- Counter Group Display animated statistics and numbers that count up on scroll
- Flip Card Interactive card that flips to reveal content on the back. Perfect for team profiles, product showcases, and feature highlights.
- Breadcrumbs Display navigation breadcrumbs with Schema.org markup for improved UX and SEO.
- Hotspot Place interactive markers over an image.
- Scroll Slides Full-screen scroll-pinned slideshow with crossfading content and navigation
- Countdown Timer Display a countdown timer to a specific date and time with customizable styling.
- Icon List Create a list of items with icons, titles, and descriptions.
- Dynamic Query Query any posts, users, or terms and render them with your own block design. Supports filters, pagination, and Block Bindings.
- Scrolling Gallery Display rows of images that scroll horizontally in alternating directions based on page scroll. For best performance, use optimized images (WebP format recommended) and limit to 20 images or less.
- No Results Content shown when the Dynamic Query returns no items.
- Section Divider A standalone shape divider you can drop between any two blocks. Shape, height, width, and color inherit from your theme by default.
- Product Categories Grid Display WooCommerce product categories in a visual grid with images, names, and product counts. Requires WooCommerce.
- Form Builder Create custom forms with multiple field types, AJAX submission, and spam protection.
- Timeline Display chronological events, company history, or process steps in a visual timeline format with customizable layouts and scroll animations.
- Sticky Sections Sections that stick and stack as you scroll, creating a card-stacking reveal effect
- Dynamic Image An image block whose source resolves at render time from the post, site, user, or a custom field (ACF, Meta Box, Pods, JetEngine).
- Query Pagination Pagination controls for the Dynamic Query block. Supports numbered links and Interactivity-API load-more.
- Tabs Create tabbed content with icons, deep linking, and responsive accordion mode.
- Icon Button A customizable button with optional icon and hover animations.
- Row Flexible horizontal or vertical layouts with wrapping. Perfect for button groups, hero sections, and responsive card layouts.
- Query Filter Filter, search, sort, or reset a Dynamic Query via URL parameters with no page reload.
- Star Rating Show a rating as stars — from a fixed value or bound to post meta, ACF or a WooCommerce average rating.
- Pill Display text with a rounded background that wraps tightly around content.
- Fifty Fifty Full-width 50/50 split layout with edge-to-edge media on one side and constrained content on the other. Perfect for hero sections, feature highlights, and about sections.
- Section Vertical stacking container for sections and content areas. Perfect for building layouts with consistent spacing. Can be nested within other sections for complex page structures.
- Chart Display data as a bar, line, or donut chart. No JavaScript required.
- Accordion Create accessible accordion sections with customizable icons and behavior for FAQs and content organization.
- Scroll Accordion Item Individual item within a Scroll Accordion
- Counter Individual counter item with animated number
- Hotspot Item A marker within a Hotspot image.
- Slide Individual slide within a slider with background image support and full block flexibility.
- Hidden Field A hidden field for passing data in forms.
- Icon List Item A single item in an icon list with icon, title, and description.
- Flip Card Back Back face of the flip card.
- Checkbox Field A single checkbox field for forms.
- Phone Field A phone number input field for forms.
- URL Field A URL/website address input field for forms.
- Scroll Slide Individual slide within a Scroll Slides block
- Accordion Item An individual collapsible item within an accordion.
- Tab Individual tab panel within a Tabs block.
- Query Group Header Renders once per group inside a Query with group-by enabled. Use block bindings or context to display the group label.
- Email Field Email input field with built-in validation.
- Timeline Item An individual milestone or event within a timeline.
- Time Field A time picker input field for forms.
- Heading Segment A text segment within an Advanced Heading — each segment can use a different font, weight, or color.
- Select Field A dropdown select field for forms.
- Flip Card Front Front face of the flip card.
- Image Accordion Item An individual expandable panel within an image accordion.
- Text Field Single-line text input field for forms.
- Date Field A date picker input field for forms.
- Flip Card Face A face of the flip card. Use the Side attribute to mark it as front or back.
- Query Results The repeating grid of items inside a Dynamic Query. Holds the item template that renders once per result.
- Number Field A number input field for forms.
- Textarea Multi-line text area for longer text input.
Installation
- Upload the
airo-wpfolder to/wp-content/plugins/, or install from your organization’s deployment pipeline. - Activate the plugin through the Plugins screen in WordPress.
- For development, run
composer installin the plugin directory before activation (see CONTRIBUTORS.md).
FAQ
-
What does Airo WP AI Builder do right now?
-
It registers an MCP server on your WordPress site and provides a block pattern library based on the Twenty Twenty-Five theme. You connect an AI client of your choice to the MCP endpoint and use it to read and write site content.
-
Which AI can I use?
-
Any MCP-compatible AI client — Claude, GPT, Gemini, or others. The plugin does not bundle or require a specific AI.
-
Where do the block patterns come from?
-
Patterns are sourced from the DesignSetGo plugin. If DesignSetGo is active, Airo WP AI Builder defers to it automatically to avoid duplication.
-
How do I connect an AI client to the MCP server?
-
The endpoint is:
https://example.com/wp-json/airo-wp/v1/mcp/streamableCreate a credential under Users -> Profile -> Application Passwords, giving it a name such as “Claude”. WordPress shows the generated password once only, so copy it before leaving the screen.
Combine your WordPress username and that password with a colon, base64-encode the result, and send it under the
airowpauthorization scheme:Authorization: airowp YWRtaW46YWJjZCBFRkdIIGlqa2wgTU5PUCBxcnN0IFVWV1g=Some clients offer only a bearer-token field rather than a full header. For those, prefix the same encoded value with
airowp_and send it as a bearer token:Authorization: Bearer airowp_YWRtaW46YWJjZCBFRkdIIGlqa2wgTU5PUCBxcnN0IFVWV1g=Both forms are equivalent. Note that base64 is encoding rather than encryption, so treat the encoded string as being exactly as sensitive as the password itself, and keep it out of shared configuration files.
-
Why does the MCP endpoint reject my credential?
-
Three common causes:
- The site is not served over HTTPS. WordPress refuses to issue or accept Application Passwords without SSL, so the credential cannot be created in the first place.
- The regular account password was used. The MCP server accepts an Application Password, not your login password.
- The username is wrong. Use the WordPress username, not the email address.
An error mentioning
Mcp-Session-Idis not an authentication failure — it means the credential was accepted and the request reached the MCP server. The transport is session-based: callinitializefirst, then send the returned session id with every subsequent request. AI clients handle this automatically; it only comes up when calling the endpoint by hand. -
What can a connected AI actually change?
-
Whatever the user you created the Application Password for is allowed to change. Authentication only establishes which user the request belongs to; every tool then checks a WordPress capability of its own —
edit_poststo create a post,upload_filesto add media,activate_pluginsto activate a plugin, and so on.A credential belonging to a Subscriber therefore connects successfully and is refused by every tool that modifies anything. Create the Application Password for a user whose role matches the access you intend to grant, and revoke it under Users -> Profile when it is no longer needed.
-
Does this support the MCP specification’s OAuth flow?
-
Not yet. The MCP specification defines an OAuth 2.1 authorization flow with discovery documents and a consent screen. This plugin does not implement it, so clients that require OAuth discovery cannot connect. The Application Password scheme described above is a configured credential instead. OAuth support is under consideration.
-
What PHP versions are supported?
-
PHP 7.4 is the minimum. PHP 8.3 is the recommended version for local development. CI validates 7.4, 8.0, 8.1, 8.2, and 8.3.
-
Why are dependencies in a `dependencies/` folder?
-
Runtime Composer packages are namespace-prefixed with Strauss into
dependencies/so they do not clash with other plugins’ autoloaders.
Reviews
There are no reviews for this plugin.
Contributors & Developers
“Airo WP AI Builder” is open source software. The following people have contributed to this plugin.
ContributorsTranslate “Airo WP AI Builder” into your language.
Interested in development?
Browse the code, check out the SVN repository, or subscribe to the development log by RSS.
Changelog
0.3.6
- AI clients can now authenticate with a WordPress Application Password sent in the Authorization header (HTTPS required)
- Documented how to connect a client: the endpoint, creating a credential, and the capability each tool needs
- Fixed the MCP endpoint returning 401 on GoDaddy sites that have not been published yet
- Fixed a release fault where a successful publish could report failure and skip the plugin-directory artwork
- Release publishing now verifies credentials before building and explains authentication failures
0.3.5
- Reduced the download by 41% — uncompiled block sources are no longer shipped inside the plugin
- The asset build is now a hard precondition of packaging, so a stale build fails the release instead of shipping a plugin that registers nothing
0.3.4
- Added Git Updater support so the plugin can update itself from this repository’s GitHub Releases
- Every release now attaches a built, installable zip to its GitHub Release
- WordPress.org publishing is now dispatched against a version tag rather than a release branch
0.3.3
- Maintenance release: documentation corrections and release-tooling fixes only, no user-facing changes
0.3.2
- Fixed a fatal error that stopped form fields rendering: the procedural render helpers they call were missing from the synced block source
- Fixed the MCP tools list being rejected by strict clients: two tools advertised an invalid input schema, which left every tool unavailable
0.3.1
- Maintenance release: release-pipeline and test-lane fixes only, no user-facing changes
0.3.0
- Added block editor extensions (animations, hover effects, sticky headers, dynamic tags, and more) to the bundled block source
- Confirmed compatibility with WordPress 7.1
- Added plugin-directory icon and banner artwork
0.2.5
- Hardened permission checks on four MCP tools
0.2.4
- Bundled block dynamic tags so shipped blocks resolve dynamic content correctly
- Corrected block class renames, docblocks, and patch paths in synced block source
0.2.3
- Renamed plugin to “Airo WP AI Builder” (WordPress.org trademark compliance)
- Fixed PHP syntax error: ABSPATH guard now placed after namespace declaration
- Fixed inline style in form submission meta box to use wp_add_inline_style()
- Scrubbed remote image URLs (Unsplash, picsum) from block patterns and src/blocks
- Corrected Plugin URI and Description header in plugin file
- Added external services documentation for Cloudflare Turnstile and Google Maps
0.2.2
- Fixed readme short description exceeding the 150-character limit
0.2.1
- Renamed plugin display name to “Airo WP”
0.2.0
- Added MCP server with tools for posts, pages, media, templates, navigation, and global styles
- Added DesignSetGo blocks and patterns with automated sync pipeline
- Added website management tools (site info, plugins, themes)
- Added release tooling with version bump, build pipeline, and distributable zip packaging
- E2e and plugin-check tests now validate the distributable build artifact
0.1.0
- Initial scaffold: bootstrap, DI container, package loader, Strauss build, unit tests, and PHPCS (WPCS + VIP-Go).
