WordPress 6.9 introduced the Abilities API, a new standard that lets plugins describe what they can do in a way that both humans and AI agents can understand. With the latest Burst Statistics work, Burst now registers a structured set of read-only abilities, so you can ask an AI assistant about your live traffic, today’s summary, your full analytics history, ecommerce sales, or whether your tracking is healthy, without ever leaving the conversation.
This post explains what the integration does, what data you can pull, and how to switch it on.
To learn how to enable the AI Chat feature in Burst, please read the dedicated guide.
What is the Abilities API?
The Abilities API is a registry built into WordPress core since version 6.9. Plugins call wp_register_ability() to expose a single capability, declaring four things:
- a unique name, like
burst/live-visitors - a JSON schema for input and output
- a permission callback that decides who is allowed to call it
- an execute callback that does the actual work
Because every ability is described in a structured way, external systems can list them, validate input, and call them safely. Combined with the MCP Adapter (Model Context Protocol), AI clients such as Claude Desktop, ChatGPT, and Cursor can automatically discover and invoke abilities as tools.
In short: the Abilities API gives Burst a standardized “menu” that an AI assistant can read and act on, without you having to write any custom integration code.
What Burst exposes
Burst registers nine abilities under a dedicated burst-statistics category. Six are general analytics abilities, two are Burst Pro ecommerce abilities, and one (burst/data) is a flexible query ability that powers most analytical questions.
burst/live-visitors
Returns the number of visitors currently active on the site. Mirrors the live counter in the Burst dashboard.
burst/live-traffic
Returns recent pageview events from the live traffic feed: page URL, anonymous visitor ID, time on page, active time, and entry/exit/checkout flags. Accepts an optional limit (1 to 100, default 100). Useful for “what is happening right now” questions.
burst/today-summary
Aggregated counters for a date range: live visitors, pageviews, the most viewed page, the top referrer, and average time on page. Despite its name, the ability accepts optional date_start and date_end Unix timestamps, so the AI can ask for any range, not just today.
burst/data
The most flexible of the abilities. It powers two query modes:
type: "insights"returns a time-series response (label, points, interval) for any metric over a given date range. Suitable for “show me pageviews per day for the last month” style questions.type: "datatable"returns a tabular response grouped by one or more dimensions (page URL, country, device, source, etc.) with one or more metrics per row. Suitable for “top 10 pages by visitors last week” or “conversion by source” questions.
Inputs include date_start, date_end, metrics, filters, group_by, and limit. Outputs are reformatted so an AI can clearly distinguish dimensions from metrics, with explicit labels and IDs.
burst/tasks
The list of items from Burst’s internal task system (the same notifications you see on the Burst dashboard). Each task includes id, label, status, icon, and an optional URL.
burst/tracking-status
A health check for the tracker. Returns the current status string and the timestamp of the last test. Mirrors the diagnostics under Burst > Settings > Status.
burst/license-notices
For Burst Pro: the current license state and any active notices (expired, over install limit, renewal due, and so on). On free Burst this returns "unavailable" with an empty notices array.
burst/sales-data (Pro only)
Ecommerce sales metrics, grouped by source, country, page, or any other supported dimension. Uses the same datatable engine as burst/data but pre-filters on purchase events. Available only when Burst Pro is active.
burst/subscriptions-data (Pro only)
Same shape as burst/sales-data but filters on subscription events. For sites running EDD Recurring, WooCommerce Subscriptions, or similar.
All nine abilities run through Burst’s existing capability helper (user_can_view), so a user who is not allowed to view the dashboard cannot read the data, regardless of how the ability is invoked. The Pro ecommerce abilities additionally require the BURST_PRO constant.
What you can do with it
Once an MCP-aware AI client is connected to your site, you can ask natural-language questions and the assistant picks the right ability behind the scenes. A few realistic prompts:
“How many people are reading the blog right now, and which post is the most popular?”
The assistant calls burst/live-visitors and burst/live-traffic, then summarizes the result.
“Compare visitors and pageviews for the last 30 days.”
burst/data with type: "insights", two metrics, and a date range. The assistant turns the time-series into prose or a chart.
“Top 10 referrers by visitors this month, and how does that compare to last month?”
Two burst/data calls with type: "datatable" and group_by: ["referrer"], the assistant compares the rows.
“How much revenue did the German market bring in last quarter?”
burst/sales-data with a country filter and a date range.
“Is my tracking healthy? I just deployed a new theme.”
burst/tracking-status reports back: status and last test timestamp.
“What does Burst want me to look at this week?”
burst/tasks returns open tasks, and the assistant can prioritize them.
“Is my Pro license OK?”
burst/license-notices returns the status, the assistant flags anything that needs attention.
Beyond chat, the same abilities are usable by:
- Automation tools like n8n, Make, or Zapier through the REST endpoint. Example: a daily Slack message with yesterday’s traffic numbers.
- Internal tooling. Agencies managing multiple Burst sites can query the abilities to build a cross-site dashboard.
- Other plugins. Any plugin can call
wp_get_ability( 'burst/today-summary' )->execute( [] )to embed a Burst summary in its own UI.
Data overview
| Ability | Returns | Inputs | Typical use |
|---|---|---|---|
burst/live-visitors | Active visitor count | None | “Who is on my site right now?” |
burst/live-traffic | Recent pageview events with page, uid, timing flags | limit (1 to 100) | Real-time activity feed |
burst/today-summary | Live, pageviews, most viewed page, top referrer, avg time on page | date_start, date_end (optional) | Daily standup, custom-range recap |
burst/data | Time-series (insights) or grouped rows (datatable) | type, date_start, date_end, metrics, filters, group_by, limit | Any analytical question |
burst/tasks | Open Burst tasks with id, label, status, icon | None | Triage notifications |
burst/tracking-status | Tracker status string and last-test timestamp | None | Post-deploy sanity check |
burst/license-notices | License state and active notices (Pro only) | None | License renewal reminders |
burst/sales-data | Ecommerce purchase rows, grouped by source/country/etc. | date_start, date_end, metrics, group_by | Sales by channel |
burst/subscriptions-data | Ecommerce subscription rows | date_start, date_end, metrics, group_by | Subscription performance |
All payloads are plain JSON, validated against an output schema. Datatable responses include explicit dimensions and metrics blocks with labels, so an AI knows what each column means without guessing.
Enabling the integration
The integration is opt-in. To turn it on:
- Make sure you are running WordPress 6.9 or higher. The Abilities API is part of core from 6.9 onward. On older versions the registration is skipped automatically.
- Update Burst Statistics to a version that includes the abilities work.
- Go to Burst > Settings.
- Enable Abilities API integration (the
enable_abilities_apioption) and save.
That is it on the Burst side. To actually talk to the abilities from an AI client, you also need an Abilities consumer:
- The official AI plugin (wordpress.org/plugins/ai), which bundles the AI Client SDK and an Abilities Explorer UI for inspecting and triggering abilities directly.
- The MCP Adapter to expose selected abilities to external clients like Claude Desktop or Cursor.
- Or your own code calling
wp_get_ability( 'burst/today-summary' )->execute( [] ).
Installing the official AI plugin is by far the simplest solution, because Burst will recognize it, and automatically enable a chat interface directly in Burst. Read this to learn how to set this up (two steps: install the AI plugin, and configure your AI provider).
If the toggle does not appear in your settings, your WordPress version is too old or the Abilities API is not loaded. The abilities are only registered when both conditions are met (the option is enabled and wp_register_ability() exists), so it is safe to leave on across environments.
Rate limiting and safety
A few guardrails are built in:
- Per-user rate limiting. Each user can call any single ability up to 30 times per 60 seconds by default. Implemented with WordPress transients, so it stays cheap and survives object-cache resets. Calls beyond the limit return a
burst_abilities_rate_limitederror (HTTP 429). Both the window and the maximum are filterable viaburst_abilities_rate_limit_windowandburst_abilities_rate_limit_max, so you can tune them per ability if needed. - Capability checks. Every ability uses the same
user_can_view()helper as the existing Burst admin pages. Non-authorized requests get aburst_abilities_forbiddenerror (HTTP 403). - Pro guards. Sales and subscription abilities check for
BURST_PROand return a clearburst_abilities_pro_requirederror (HTTP 503) on the free plugin. - Read only. None of the registered abilities write, modify, or delete anything. They are pure queries.
- Schema validation. Inputs and outputs are validated against JSON schemas, so an AI cannot smuggle unexpected parameters into Burst, and clients can rely on the response shape.
- Annotated metadata. Every ability is marked
readonly: true,destructive: false, andidempotent: truein its meta, so MCP clients can show appropriate UI affordances.
To disable the integration completely, simply disable the option. The abilities are not registered on the next request and the registry surface disappears.
What is next
This iteration covers the questions Burst already answers in its dashboard, plus the flexible burst/data ability that can serve almost any analytical question without needing a new ability per query. The likely next steps are write-capable abilities (creating goals, dismissing tasks, exporting reports).
If there is a specific question you would like to ask your AI assistant about your Burst data, or a specific dimension or metric you wish burst/data could group by, that is a strong signal for where to invest next. Feedback is welcome on the Burst GitHub repository or through the support channel.