Agent Extension APIs
Breakdance contributes abilities to Agent Connector's MCP server. Enable Agents & MCP; inspected builder abilities require manage_options.
Filters
| Filter | Arguments | Return |
|---|---|---|
breakdance_mcp_instructions |
$instructions, $builder, $namespace |
Full instruction string returned by get-instructions. |
breakdance_mcp_server_description |
$primer, $builder |
Short server instruction string. |
breakdance_mcp_tools |
$tools, $namespace, $builder |
Array of ability slugs contributed to the default server. |
$namespace is breakdance/oxygen; $builder is its display name. These direct WordPress filters have no automatic Oxygen aliases.
add_filter('breakdance_mcp_instructions', function ($instructions, $builder, $namespace) {
if ($namespace !== 'breakdance') return $instructions;
return $instructions . "nnProject convention: preserve the existing site CSS prefix.";
}, 10, 3);
Instructions guide clients, not permissions.
Register an Ability
Register its category on wp_abilities_api_categories_init, then call wp_register_ability($name, $args) on wp_abilities_api_init. Supply unique namespaced name, label, description, category, schemas, execution callback, and permission callback. Registration returns WP_Ability or null; execution returns schema-matching data or WP_Error. See WordPress's contract.
Installed registrations use meta.mcp.public = true and meta.show_in_rest = true for exposure, not anonymous access. Match installed adapter versions.
Append an already registered ability:
add_filter('breakdance_mcp_tools', function ($tools, $namespace, $builder) {
if ($namespace === 'breakdance') {
$tools[] = 'acme/read-project-conventions';
}
return $tools;
}, 10, 3);
Breakdance deduplicates contributed names. Removing one does not block REST or alternate discovery/execution; enforce permissions on the ability.

Retrieve breakdance/get-instructions and live schemas before operations. Popup/maintenance tools are Breakdance-specific; editable component properties are Oxygen-specific. Library tools require a separate opt-in.