wsp_get_posts
Returns blog posts with full metadata.
A WordPress plugin that turns the site into an MCP server — posts, media, WooCommerce, ACF, Elementor and forms.
LABSCO SUMMARY
Two things make this safe enough to point an agent at a live site: writes stay unregistered by default across every suite, and the audit log records who called what and whether it was allowed, denied or errored — stored in your own database with nothing sent anywhere. The integration suites only appear when their plugin is active, so the tool list matches the site rather than a catalogue.
A WordPress plugin that ships its own MCP server at /wp-json/wsp-mcp/v1/mcp, with no companion plugin, adapter or Node bridge for clients that speak remote HTTP. Abilities are toggled individually in wp-admin, and each one enforces the WordPress capability it needs.
wsp_upload_media accepts a public URL or base64 content, so a file attached to the chat goes straight into the library; wsp_get_media returns one attachment's metadata and wsp_list_media browses the librarytools/call with tool name, UTC timestamp, acting user, request IP and outcome; a daily cron prunes entries older than 90 daysWordPress 6.9+ and PHP 7.4+ — the authors recommend 7.0.3 or 6.9.6+ so the recent core security fixes are in place. Install and activate the plugin, enable the abilities you want under MCP > Settings, then copy the pre-filled snippet for your client from MCP > Connection. Authenticate with a WordPress Application Password or the plugin's own API key sent as Authorization: Bearer. Cursor, Codex and Antigravity connect natively; Claude Desktop and OpenClaw go through the mcp-remote bridge, which needs Node.js 18+. GPL 2.0.
Follow the published steps
USE CASES
Draft the content in the conversation, create the post, and attach the image you uploaded in the same session.
Read the element tree, find the element by type or content, and update its settings in place.
Pull the sales report and low-stock alerts, then update an order's status if it needs it.
Open the audit log filtered by tool or outcome to see every call, who made it and whether it was denied.
Listed in project code.
wsp_get_postsReturns blog posts with full metadata.
wsp_create_postCreates a new blog post.
wsp_update_postUpdates an existing post by ID.
wsp_delete_postMoves a post to trash by ID.
wsp_get_pagesReturns published pages.
wsp_create_pageCreates a new page (optionally Elementor-initialized).
wsp_update_pageUpdates an existing page by ID.
wsp_delete_pageMoves a page to trash by ID.
wsp_get_categoriesReturns all categories.
wsp_create_categoryCreates a new category.
wsp_get_tagsReturns all tags.
wsp_create_tagCreates a new tag.
wsp_get_commentsReturns comments.
wsp_approve_commentApproves a pending comment by ID.
wsp_delete_commentTrashes a comment by ID.
wsp_list_mediaBrowse and search the WordPress media library by type, keyword, or date.
wsp_get_mediaRetrieve the full metadata of a specific media file by ID.
wsp_count_mediaGet media library counts grouped by MIME type, plus a total.
wsp_update_mediaUpdate the title, alt text, caption, or description of a media file by ID.
wsp_delete_mediaPermanently delete a media file from the WordPress media library by ID.
wsp_upload_mediaUpload an image into the WordPress media library. Provide EITHER "data" (base64-encoded file content — use this to upload a file attached to the chat directly, no public URL required) OR "url" (a public link to fetch). Supported types: jpg, png, gif, webp.
wsp_upload_media_from_urlPull an image from any web link straight into your media library.
wsp_set_featured_imageSet an image as the featured image (thumbnail) for a post or page.
wsp_get_usersLists registered users.
wsp_searchSearch posts and pages by keyword.
wsp_get_site_infoReturns site name, URL, tagline, WP version, and language.
wsp_get_pluginsLists active plugins with name, version, and author.
wsp_yoast_get_seoGet Yoast SEO title, meta description, and focus keyphrase for a post or page.
wsp_yoast_update_seoUpdate Yoast SEO title, meta description, and/or focus keyphrase for a post or page.
wsp_rankmath_get_seoGet Rank Math SEO title, meta description, focus keyword, and SEO score for a post or page.
wsp_rankmath_update_seoUpdate Rank Math SEO title, meta description, and/or focus keyword for a post or page. Focus keyword accepts multiple comma-separated keywords (first one is the primary). Pass an empty string to clear a field back to the global template.
wsp_woo_get_productsList products with filtering and pagination.
wsp_woo_get_productGet single product details by ID.
wsp_woo_create_productCreate a new simple or variable product in the store.
wsp_woo_create_variationCreates a variation for an existing variable product.
wsp_woo_update_productUpdate an existing product details.
wsp_woo_list_ordersList recent orders with status filtering.
wsp_woo_update_order_statusUpdate the status of an order.
wsp_woo_refund_orderCreate a full or partial refund for an order.
wsp_woo_create_couponCreate a new coupon code (percentage or fixed discount).
wsp_woo_list_couponsList all active store coupons with usage stats.
wsp_woo_create_order_noteAdd a note to an existing order (internal or customer-facing).
wsp_woo_list_customersList registered customers with billing details.
wsp_woo_report_salesGet sales, orders, net revenue, and average order value reports.
wsp_woo_get_low_stockInspect and list products running low on stock.
wsp_woo_moderate_reviewApprove, spam, trash, or reply to product reviews.
wsp_elementor_list_pagesLists pages/posts built with Elementor.
wsp_elementor_get_pageGet the element tree of an Elementor page by post ID.
wsp_elementor_get_elementGet all settings for a specific element by post ID and element ID.
wsp_elementor_find_elementFind elements on a page by widget type or settings content.
wsp_elementor_list_templatesList Elementor saved templates from the library.
wsp_elementor_update_elementUpdate settings for a widget or container by element ID.
wsp_elementor_add_widgetAdd a widget to a container or column on an Elementor page.
wsp_elementor_add_containerAdd a layout container or section to an Elementor page.
wsp_elementor_remove_elementRemove a widget or container from an Elementor page by element ID.
wsp_elementor_get_active_kitRetrieve global fonts, color palette, and layout from the active Elementor kit.
wsp_elementor_update_active_kitUpdate colors and layout settings in the active Elementor kit.
wsp_elementor_regenerate_cssClear and regenerate all Elementor CSS cache files.
wsp_elementor_get_widget_schemaGet control schema for a widget type — margins, padding, background, typography, etc.
wsp_elementor_duplicate_elementClone a widget or container with new unique IDs recursively.
wsp_elementor_move_elementReposition an element to a different parent or index position.
wsp_elementor_convert_cssParse CSS rules into Elementor-compatible settings structure.
wsp_elementor_get_page_settingsRead global page config like template, background, and custom CSS.
wsp_elementor_update_page_settingsUpdate page template (canvas/full-width) and page-level settings.
wsp_elementor_copy_stylesCopy style settings from a source element to a destination element.
wsp_elementor_get_breakpointsRead responsive breakpoint values from Elementor configuration.
wsp_acf_list_field_groupsList all registered custom field groups.
wsp_acf_get_field_groupRetrieve configuration parameters of a specific field group by key.
wsp_acf_create_field_groupCreate a brand new custom field group configuration.
wsp_acf_update_field_groupUpdate location rules or active parameters of a field group.
wsp_acf_delete_field_groupPermanently delete or trash a field group by its key.
wsp_acf_import_field_groupsImport field groups config structure programmatically from JSON parameters.
wsp_acf_list_fieldsList all custom fields declared inside a specific field group.
wsp_acf_get_fieldGet full configurations and rules of a single field key.
wsp_acf_create_fieldInject a new custom field config inside an existing group configuration.
wsp_acf_update_field_configModify attribute settings for a single field configuration parameters.
wsp_acf_delete_fieldDelete config mapping of a field configuration.
wsp_acf_duplicate_fieldDuplicate an existing field config mapping.
wsp_acf_sync_fieldsSync database structures with local filesystem JSON config records.
wsp_acf_get_value_deepDeep read custom field values with dot-notation pathing support (e.g. key.0.subkey).
wsp_acf_update_value_deepDeep write custom field values supporting array indices with dot-notation (e.g. repeater.0.key).
wsp_acf_delete_valueDelete specific key field metadata value.
wsp_acf_get_all_valuesGet all raw field values mapped on any object.
wsp_acf_bulk_update_valuesBulk update array values instantly.
wsp_acf_get_field_objectReturn both config parameter object and loaded values.
wsp_acf_list_post_typesList registered post types.
wsp_acf_create_post_typeProgrammatically register brand new WordPress Post Type.
wsp_acf_list_taxonomiesList taxonomies structure.
wsp_acf_create_taxonomyProgrammatically register brand new WordPress taxonomy.
wsp_acf_list_options_pagesList registered global options views.
wsp_acf_create_options_pageProgrammatically register global ACF Options Page.
wsp_acf_get_option_valueRead global option value metadata.
wsp_acf_update_option_valueWrite option values globally.
wsp_gravity_list_formsLists all Gravity Forms (ID, title, date, active status, entry count).
wsp_gravity_get_formRetrieves full JSON structure of a form (fields, labels, types, choices, rules).
wsp_gravity_create_formCreates a new Gravity Form structure with title and optional fields.
wsp_gravity_update_formUpdates form properties, fields, or active status.
wsp_gravity_delete_formDeletes or trashes a Gravity Form.
wsp_gravity_list_entriesLists submissions/leads for a specific form (paginated).
wsp_gravity_get_entryRetrieves complete submission details by entry ID.
wsp_gravity_update_entryUpdates field values or status (read/unread/starred) inside an entry.
wsp_gravity_delete_entryTrashes or permanently deletes an entry.
wsp_gravity_get_notificationsGets notification settings (emails, feeds) for a form.
wsp_gravity_get_confirmationsGets confirmation settings (thank-you messages, redirects) for a form.
wsp_gravity_create_notificationCreates a new email notification for a form (to, subject, message, from, etc.).
wsp_gravity_update_notificationUpdates an existing notification (to, subject, message, active status, etc.).
wsp_gravity_delete_notificationDeletes a notification from a form.
wsp_gravity_create_confirmationCreates a confirmation (thank-you message, redirect, or page) for a form.
wsp_gravity_update_confirmationUpdates an existing confirmation (message, redirect URL, default status, etc.).
wsp_gravity_delete_confirmationDeletes a confirmation from a form.
wsp_gravity_update_form_settingsUpdates form-level settings (label placement, restrictions, scheduling, honeypot, etc.).
wsp_cf7_list_formsLists all Contact Form 7 forms with ID, title, and shortcode.
wsp_cf7_get_formRetrieves full CF7 form structure (markup, mail config, messages, tags).
wsp_cf7_create_formCreates a new Contact Form 7 form with title and optional markup/properties.
wsp_cf7_update_formUpdates an existing CF7 form markup, mail settings, or messages.
wsp_cf7_delete_formTrashes or permanently deletes a Contact Form 7 form.
wsp_cf7_list_entriesLists Flamingo-stored form submissions (requires Flamingo plugin).
wsp_cf7_get_entryRetrieves full details of a single Flamingo submission by ID.
wsp_cf7_validate_formRuns the built-in configuration validator to check for email/syntax errors.
wsp_cf7_get_integrationsLists active integration modules and reCAPTCHA configuration status.
wsp_cf7_moderate_entryMark a Flamingo submission as spam, unspam, trash, or untrash.
wsp_wpforms_list_formsLists all WPForms with ID, title, date, status, and field count.
wsp_wpforms_get_formRetrieves full WPForms structure (fields, settings, payments).
wsp_wpforms_describe_schemaReturns supported field types and editable attributes to guide AI on create/update field actions.
wsp_wpforms_get_form_statsFetch entry counts and analytics (Pro entry stats).
wsp_wpforms_create_formCreates a new WPForms form with fields, settings, and notification email.
wsp_wpforms_update_form_settingsUpdate form settings (title, description, submit text, AJAX, anti-spam).
wsp_wpforms_add_fieldAdd a new field to an existing form with auto-assigned ID.
wsp_wpforms_update_fieldUpdate a field label, description, required status, or choices.
wsp_wpforms_delete_formTrashes or permanently deletes a WPForms form.
wsp_wpforms_list_entriesLists submission entries for a form (requires WPForms Pro).
wsp_wpforms_get_entryRetrieves full details and field values of a single entry.
wsp_wpforms_delete_entryTrashes or permanently deletes a submission entry (Pro).
wsp_uae_widgets_activateUAE Tool: widgets activate
wsp_uae_widgets_deactivateUAE Tool: widgets deactivate
wsp_uae_widgets_listUAE Tool: widgets list
wsp_uae_widgets_bulk_toggleUAE Tool: widgets bulk toggle
wsp_uae_widgets_deactivate_unusedUAE Tool: widgets deactivate unused
wsp_uae_widgets_get_usageUAE Tool: widgets get usage
wsp_uae_templates_listUAE Tool: templates list
wsp_uae_templates_createUAE Tool: templates create
wsp_uae_templates_deleteUAE Tool: templates delete
wsp_uae_templates_duplicateUAE Tool: templates duplicate
wsp_uae_active_getUAE Tool: active get
wsp_uae_templates_getUAE Tool: templates get
wsp_uae_templates_updateUAE Tool: templates update
wsp_uae_templates_restoreUAE Tool: templates restore
wsp_uae_shortcode_renderUAE Tool: shortcode render
wsp_uae_pages_listUAE Tool: pages list
wsp_uae_pages_createUAE Tool: pages create
wsp_uae_pages_deleteUAE Tool: pages delete
wsp_uae_pages_restoreUAE Tool: pages restore
wsp_uae_pages_update_metaUAE Tool: pages update meta
wsp_uae_pages_update_statusUAE Tool: pages update status
wsp_uae_builder_get_structureUAE Tool: builder get structure
wsp_uae_builder_add_sectionUAE Tool: builder add section
wsp_uae_builder_insert_widgetUAE Tool: builder insert widget
wsp_uae_builder_update_widgetUAE Tool: builder update widget
wsp_uae_builder_remove_elementUAE Tool: builder remove element
wsp_uae_builder_move_elementUAE Tool: builder move element
wsp_uae_builder_add_columnUAE Tool: builder add column
wsp_uae_builder_buildUAE Tool: builder build
wsp_uae_builder_regenerate_cssUAE Tool: builder regenerate css
wsp_uae_maintenance_clear_cacheUAE Tool: maintenance clear cache
wsp_uae_builder_undoUAE Tool: builder undo
wsp_uae_builder_get_schemaUAE Tool: builder get schema
wsp_uae_builder_list_widget_typesUAE Tool: builder list widget types
wsp_uae_settings_getUAE Tool: settings get
wsp_uae_settings_updateUAE Tool: settings update
wsp_uae_info_getUAE Tool: info get
wsp_uae_pro_featuresUAE Tool: pro features
wsp_uae_extensions_listUAE Tool: extensions list
wsp_uae_extensions_toggleUAE Tool: extensions toggle
wsp_uae_theme_get_infoUAE Tool: theme get info
wsp_uae_theme_set_methodUAE Tool: theme set method
wsp_uae_design_system_get_tokensUAE Tool: design system get tokens
wsp_uae_display_rules_get_locationsUAE Tool: display rules get locations
wsp_uae_display_rules_updateUAE Tool: display rules update
BEFORE YOU INSTALL
178 tools registered in the project's code. The plugin registers 178 tools in its source, but each suite beyond core WordPress and media (Yoast SEO, Rank Math, Elementor, WooCommerce, ACF, Ultimate Addons for Elementor, Gravity Forms, WPForms, Contact Form 7) registers only when its host plugin is active, and most abilities are off until enabled in MCP > Settings, so a fresh install exposes a small fraction of them.
INSTALLATION
Prerequisites: WordPress 6.9+ (7.0.3 or 6.9.6+ recommended), PHP 7.4+. Claude Desktop and OpenClaw additionally need Node.js 18+ for the mcp-remote bridge; Cursor, Codex and Antigravity connect natively.
Install & activate this plugin on your WordPress site (plugin folder slug is wsp-mcp-ai-agents-connector as of v2.3.0)
Go to MCP > Settings in wp-admin and enable the abilities you need (most are OFF by default)
Go to MCP > Connection and pick your client tab (Claude Desktop, Cursor, Codex, Antigravity, OpenClaw, or OpenCode)
Copy the generated snippet — the endpoint URL (/wp-json/wsp-mcp/v1/mcp on your own site) and API key are already filled in — and paste it into your client's config
Reconnect / restart the client
Review agent activity under MCP > Audit Log