ReferenceAI Abilities

AI Abilities

Complete reference for all SproutOS abilities across categories. WordPress Core, File Operations, Theme Management, PHP Execution, Bridge Tools, Elementor, Builder, WooCommerce, and Bricks.

SproutOS registers abilities on your WordPress site across multiple categories. Your AI client picks the right one automatically based on what you ask. You never need to know ability names or call them directly.

Abilities are organized into modular categories. Some categories only register when a specific plugin is active on your site - those are marked as plugin-presence gated below.


Here's the full reference for each category.

Use sprout-bridge/discover-tools to see the exact list of abilities currently active on your site. This reflects your enabled modules and any per-ability toggles.

WordPress Core

Posts, pages, users, media, menus, options, settings, custom post types, taxonomies, and comments. These abilities cover the full WordPress content and data layer.

AbilityWhat It Does
sprout/create-pageCreates a new WordPress page with title, content, and status
sprout/update-pageUpdates an existing page by ID (title, content, status)
sprout/create-postCreates a new post with title, content, category, tags, and status
sprout/update-postUpdates an existing post by ID
sprout/get-postRetrieves a single post or page by ID
sprout/list-postsLists posts with filter support (status, author, date range, search)
sprout/delete-postMoves a post to trash or force-deletes it
sprout/list-pagesLists pages with optional parent/status filters
sprout/create-custom-postCreates a custom post type entry
sprout/update-custom-postUpdates a custom post type entry by ID
sprout/list-custom-postsLists entries for any registered CPT
sprout/delete-custom-postDeletes a custom post type entry
sprout/get-taxonomyReturns a taxonomy definition by name
sprout/list-taxonomiesLists all registered taxonomies
sprout/create-termCreates a term within a taxonomy
sprout/update-termUpdates a term (name, slug, description)
sprout/get-termReturns a single term by ID or slug
sprout/list-termsLists terms for a given taxonomy
sprout/delete-termDeletes a term from a taxonomy
sprout/list-mediaLists media library items with filters
sprout/get-mediaReturns metadata for a single media item
sprout/update-mediaUpdates media item alt text, title, or caption
sprout/delete-mediaDeletes a media item and its associated files
sprout/upload-mediaUploads a new file to the media library
sprout/sideload-imageDownloads a remote image and adds it to the media library
sprout/list-menusLists all registered navigation menus
sprout/get-menuReturns a menu and its items by ID or slug
sprout/create-menuCreates a new navigation menu
sprout/update-menuUpdates menu name or settings
sprout/delete-menuDeletes a navigation menu
sprout/list-menu-itemsLists all items in a menu
sprout/get-menu-itemReturns a single menu item
sprout/create-menu-itemAdds a new item to a menu
sprout/update-menu-itemUpdates a menu item (label, URL, parent, order)
sprout/delete-menu-itemRemoves an item from a menu
sprout/list-menu-locationsLists all registered theme menu locations
sprout/assign-menu-locationAssigns a menu to a theme location
sprout/create-commentAdds a comment to a post
sprout/update-commentUpdates a comment's content or status
sprout/get-commentReturns a single comment by ID
sprout/list-commentsLists comments with filter support
sprout/delete-commentDeletes a comment

sprout/create-page

Creates a new WordPress page with title, optional HTML content, and publish status.

ParameterTypeRequiredDescription
titlestringYesPage title
contentstringNoPage content (HTML, sanitized via wp_kses_post())
statusstringNodraft (default) or publish

Returns: page_id, edit_url, permalink.

sprout/update-page

Updates an existing WordPress page by ID. At least one optional field is required.

ParameterTypeRequiredDescription
page_idintegerYesThe ID of the page to update
titlestringNoNew page title
contentstringNoNew page content (sanitized HTML)
statusstringNodraft, publish, or private

Returns: page_id, edit_url, permalink, updated_fields array.


File Operations

Read, write, edit, delete, and list files across the WordPress filesystem. All operations enforce the ABSPATH boundary and reject symlinks. Sensitive files are protected from all access.

Protected files: .env, wp-config.php, .htaccess, debug.log, .git/, .sql

Protected directories (cannot delete): wp-admin/, wp-includes/, wp-content/plugins/, wp-content/themes/

sprout/read-file

Reads a file from the WordPress filesystem. Supports partial reads by byte range or line range. Binary files are returned as base64.

ParameterTypeRequiredDescription
pathstringYesFile path relative to WordPress root
offsetintegerNoByte offset to start reading from
limitintegerNoMaximum bytes to read (default: 1 MB)
start_lineintegerNoFirst line to return
end_lineintegerNoLast line to return
headintegerNoReturn only the first N lines
tailintegerNoReturn only the last N lines

Returns: File content, line_count, size, mime_type, permissions, last_modified.

sprout/write-file

Writes content to a file. Supports overwrite and append modes, automatic directory creation, optional backup, and dry-run preview.

ParameterTypeRequiredDescription
pathstringYesFile path relative to WordPress root
contentstringYesContent to write
encodingstringNoutf-8 (default) or base64
modestringNooverwrite (default) or append
create_directoriesbooleanNoAuto-create parent directories (default: true)
backupbooleanNoCreate a .bak backup before overwriting
dry_runbooleanNoPreview without writing

Returns: File path, bytes written, backup path (if created).

PHP files are always written to the sandbox directory (wp-content/sproutos-mcp-sandbox/). PHP syntax is validated before saving - malformed code is rejected before it reaches the sandbox.

sprout/edit-file

Performs exact string replacement in an existing file. Supports replace-all and Nth occurrence targeting.

ParameterTypeRequiredDescription
pathstringYesFile path relative to WordPress root
old_stringstringYesThe exact string to find
new_stringstringYesThe replacement string
replace_allbooleanNoReplace all occurrences (default: false)
occurrenceintegerNoReplace only the Nth occurrence
context_linesintegerNoLines of context to return around the edit (0-20)

Returns: Updated content with context lines, match count, replacements made.

sprout/delete-file

Deletes a file or directory. Requires the recursive flag for non-empty directories.

ParameterTypeRequiredDescription
pathstringYesFile or directory path relative to WordPress root
recursivebooleanNoRequired for non-empty directories
dry_runbooleanNoPreview without deleting

Returns: deleted (boolean), path, type.

sprout/list-directory

Lists files and directories with glob filtering, recursive traversal, and sorting.

ParameterTypeRequiredDescription
pathstringNoDirectory path (default: WordPress root)
patternstringNoGlob filter (e.g., *.php)
recursivebooleanNoTraverse subdirectories
max_depthintegerNoMaximum recursion depth, 1-10 (default: 3)
include_hiddenbooleanNoInclude hidden files (default: false)
sort_bystringNoSort by name, size, or modified
limitintegerNoMaximum entries, 1-5000 (default: 500)

Returns: Array of entries with metadata, plus total_files, total_dirs, total_size.


Theme Management

Read and write access to active theme files.

sprout/list-theme-files

Lists editable files from the active child or parent theme.

ParameterTypeRequiredDescription
theme_scopestringNochild (default) or parent
subdirstringNoSubdirectory within the theme to list
max_filesintegerNoMaximum files to return (default: 200, max: 500)

Returns: Array of file paths with theme_root.

sprout/read-theme-file

Reads a file from the active theme.

ParameterTypeRequiredDescription
theme_scopestringNochild (default) or parent
relative_pathstringYesPath relative to the theme root (e.g., style.css)

Returns: File content, path, theme scope.

sprout/update-theme-file

Creates or updates a file in the active theme. Supports replace, append, and prepend modes.

ParameterTypeRequiredDescription
theme_scopestringNochild (default) or parent
relative_pathstringYesPath relative to the theme root
contentstringYesContent to write
modestringNoreplace (default), append, or prepend
create_if_missingbooleanNoCreate the file if it does not exist (default: true)
validate_phpbooleanNoValidate PHP syntax before saving (default: false)

Returns: File path, bytes written, mode used.

sprout/update-theme-stylesheet

A convenience wrapper for modifying the active theme's style.css. Defaults to append mode.

ParameterTypeRequiredDescription
cssstringYesCSS content to add or replace
theme_scopestringNochild (default) or parent
modestringNoappend (default), prepend, or replace

PHP Execution and Sandbox

Run PHP directly inside the live WordPress environment and manage sandbox files. These abilities are available in the GitHub version only - PHP execution is disabled in the WordPress.org build.

sprout/execute-php

Executes PHP code inside the live WordPress environment with full access to all WordPress APIs ($wpdb, WP_Query, hooks, options, and more).

ParameterTypeRequiredDescription
codestringYesPHP code to execute (without <?php tags)
timeoutintegerNoMaximum execution time in seconds, 1-120
capture_queriesbooleanNoInclude database queries in the response

Returns: return_value, output, errors, execution_time_ms, memory usage, query details (if captured).

sprout/batch-execute

Executes multiple abilities in a single request. Useful for multi-step operations without round-trip overhead.

ParameterTypeRequiredDescription
operationsarrayYesArray of operations (max 20), each with ability_name and optional parameters
stop_on_errorbooleanNoStop on the first error (default: false)

Returns: success, total, succeeded, failed counts, plus per-operation results with individual timing.

sprout/enable-file

Restores a previously disabled sandbox file by removing the .disabled extension.

ParameterTypeRequiredDescription
pathstringYesPath to the disabled file in the sandbox
dry_runbooleanNoPreview without enabling

sprout/disable-file

Pauses a sandbox file by appending .disabled to its name. The file stays on disk but stops loading.

ParameterTypeRequiredDescription
pathstringYesPath to the file in the sandbox
dry_runbooleanNoPreview without disabling

See the Sandbox page for a full explanation of how PHP files are validated, crash-guarded, and rolled back.


Bridge Tools

Three abilities that are always available in every Capability Profile, including Ultra-Minimal. Bridge tools are how your AI discovers and calls the full catalogue of 175+ abilities without needing them all loaded upfront.

sprout-bridge/discover-tools

Returns a catalogue of all publicly exposed abilities currently registered on your site. Takes no input parameters.

Returns: Array of abilities, each with name, label, description, category, readonly, destructive, idempotent, tags.

sprout-bridge/dispatch-tool

Calls any registered ability by name. This is how the AI reaches abilities not included in the current Capability Profile.

ParameterTypeRequiredDescription
ability_namestringYesThe registered name of the ability to call
parametersobjectYesInput parameters for the ability

Returns: Standardized envelope with ok, request_id, ability, duration_ms, result or error, and telemetry data.

sprout-bridge/inspect-tool

Returns the full specification of a single ability including input/output schemas and capability flags.

ParameterTypeRequiredDescription
ability_namestringYesThe registered name of the ability to inspect

Returns: Ability name, label, description, input schema, output schema, public, readonly, destructive, idempotent flags.


Elementor

Registers only when Elementor is active on your site.

Full page editing, widget management, global styles, templates, and more. These abilities give your AI direct access to Elementor's data layer - not the visual editor, but the underlying JSON structure that Elementor reads to render pages.

AbilityWhat It Does
sprout-elementor/list-pagesLists all pages built with Elementor
sprout-elementor/get-element-settingsReturns settings for a specific element by ID
sprout-elementor/update-elementUpdates settings on a specific Elementor element
sprout-elementor/get-container-schemaReturns the structure of an Elementor container
sprout-elementor/get-widget-schemaReturns the full schema for any Elementor widget
sprout-elementor/list-widgetsLists all available Elementor widgets
sprout-elementor/duplicate-pageDuplicates an Elementor page with all its content
sprout-elementor/delete-page-contentClears all Elementor content from a page
sprout-elementor/export-pageExports a page's Elementor data as JSON
sprout-elementor/import-templateImports an Elementor template JSON into a page
sprout-elementor/list-templatesLists saved Elementor templates
sprout-elementor/save-as-templateSaves a page or section as a reusable Elementor template
sprout-elementor/apply-templateApplies a saved template to a page
sprout-elementor/get-global-settingsReturns Elementor global settings (colors, typography, breakpoints)
sprout-elementor/update-global-colorsUpdates the global color palette
sprout-elementor/update-global-typographyUpdates global typography presets
sprout-elementor/update-page-settingsUpdates page-level Elementor settings
sprout-elementor/create-popupCreates a new Elementor popup
sprout-elementor/set-popup-settingsUpdates popup display conditions and trigger settings
sprout-elementor/create-theme-templateCreates a new Elementor theme template (header, footer, single, archive)
sprout-elementor/set-template-conditionsSets display conditions for a theme template
sprout-elementor/list-dynamic-tagsLists available Elementor dynamic tags
sprout-elementor/set-dynamic-tagApplies a dynamic tag to an element field
sprout-elementor/elementor-add-custom-cssAdds custom CSS to a specific element or page
sprout-elementor/elementor-add-custom-jsAdds custom JavaScript to an Elementor page
sprout-elementor/list-code-snippetsLists all Elementor custom code snippets
sprout-elementor/elementor-add-code-snippetAdds a new Elementor custom code snippet
sprout-elementor/upload-svgUploads an SVG file for use in Elementor
sprout-elementor/validate-conversionValidates Elementor content before a conversion operation
sprout-elementor/elementor-validate-conversionRuns a pre-conversion compatibility check

Builder / Cross-Builder

A page-builder-agnostic layer that works across Elementor, Bricks, and Gutenberg. These abilities let your AI add, move, remove, and restructure page elements without targeting a specific builder's internal format.

AbilityWhat It Does
sprout-builder/add-containerAdds a container element to a page
sprout-builder/add-sectionAdds a section to a page layout
sprout-builder/add-widgetAdds a widget inside a container or section
sprout-builder/apply-patchApplies a structured patch to page content
sprout-builder/batch-updateRuns multiple builder updates in one request
sprout-builder/build-pageConstructs a full page layout from a structured definition
sprout-builder/bulk-pages-operationApplies an operation across multiple pages at once
sprout-builder/convert-htmlConverts raw HTML into a builder-compatible structure
sprout-builder/detect-builderDetects which page builder is active on a given page
sprout-builder/duplicate-elementDuplicates a specific element within a page
sprout-builder/extract-contentExtracts text and content from a builder page
sprout-builder/find-builder-targetsFinds all pages using a specific builder
sprout-builder/find-elementLocates a specific element by type, ID, or content match
sprout-builder/inject-contentInjects content into a page at a specific position
sprout-builder/move-elementMoves an element to a new position in the layout
sprout-builder/remove-elementRemoves a specific element from a page
sprout-builder/reorder-elementsReorders elements within a container or section
sprout-builder/update-elementUpdates settings or content on a specific element

WooCommerce

Registers only when WooCommerce is active on your site.

Products, orders, categories, tags, and reports. Toggle the WooCommerce module on or off from SproutOS > AI Abilities.

AbilityWhat It Does
sprout-woo/create-productCreates a new WooCommerce product
sprout-woo/update-productUpdates a product (title, price, stock, status)
sprout-woo/get-productReturns a single product by ID
sprout-woo/list-productsLists products with filter support
sprout-woo/delete-productDeletes a product
sprout-woo/duplicate-productDuplicates a product
sprout-woo/get-orderReturns a single order by ID
sprout-woo/list-ordersLists orders with filter support (status, date range, customer)
sprout-woo/update-orderUpdates order metadata
sprout-woo/update-order-statusChanges the status of an order
sprout-woo/delete-orderDeletes an order
sprout-woo/create-product-categoryCreates a new product category
sprout-woo/update-product-categoryUpdates a product category
sprout-woo/get-product-categoryReturns a single product category
sprout-woo/list-product-categoriesLists all product categories
sprout-woo/delete-product-categoryDeletes a product category
sprout-woo/create-product-tagCreates a new product tag
sprout-woo/update-product-tagUpdates a product tag
sprout-woo/get-product-tagReturns a single product tag
sprout-woo/list-product-tagsLists all product tags
sprout-woo/delete-product-tagDeletes a product tag
sprout-woo/get-sales-reportReturns a sales summary for a given date range

Bricks Builder

Registers only when Bricks Builder is active on your site.

Bricks Builder support was added in v0.0.2 via the sprout_mcp_has_bricks() plugin-presence helper. When Bricks is active, SproutOS registers abilities for reading and editing Bricks page data.


Frequently Asked Questions

Next Steps