MCP tool reference · claude-wp-mcp 1.3.0

All 84 tools. Nothing hidden.

Every tool your assistant can call: what it does, the scope it needs, and whether it reads, writes or asks twice. Search, or filter by group and access level.

84 tools =43 read+14 write+27 dangerous· 13 with two-step confirmation
84 of 84 tools
Group
Access

Content

13 · Posts, pages, terms and search.
  • wp_list_posts

    Read

    List posts, or any public post type, filtered by status, category, tag, author or language.

    List my 20 most recent drafts in the News category.

    Scope content:read
  • wp_get_post

    Read

    Fetch one post or page with its content, and optionally its meta and translations.

    Open post 412 and summarise it in three bullet points.

    Scope content:read
  • wp_create_post

    Write

    Create a post as a draft. Publishing straight away needs content:publish.

    Draft a post announcing our summer opening hours.

    Scope content:write
  • wp_update_post

    Write

    Patch the title, content, excerpt, terms or meta of a post. A revision is saved first.

    Fix the typos in post 412 and leave everything else as it is.

    Scope content:write
  • wp_delete_post

    Dangerous

    Move a post to the trash, or delete it for good through the two-step confirmation.

    Move the duplicate “Spring sale” post to the trash.

    Scope content:writetwo-step to delete for good
  • wp_publish_post

    Dangerous

    Publish a post now, or schedule it for a date in the future.

    Schedule post 418 for Monday at 9:00.

    Scope content:publish
  • wp_list_pages

    Read

    List pages, filtered by status or search.

    Which pages are still drafts?

    Scope content:read
  • wp_create_page

    Write

    Create a page, as a draft unless the token may publish.

    Create a draft Careers page with three open roles.

    Scope content:write
  • wp_update_page

    Write

    Patch the title, content, excerpt or meta of a page. A revision is saved first.

    Update the opening hours on the Contact page.

    Scope content:write
  • wp_delete_page

    Dangerous

    Move a page to the trash, or delete it for good through the two-step confirmation.

    Move the old Summer 2025 landing page to the trash.

    Scope content:writetwo-step to delete for good
  • wp_list_terms

    Read

    List the terms of a taxonomy: categories, tags or any custom taxonomy.

    Show all categories and how they are nested.

    Scope content:read
  • wp_create_term

    Write

    Create a category, a tag or a term in a custom taxonomy.

    Add a Case studies category under Blog.

    Scope content:write

Media

7 · Uploads, alt text, image optimisation, clean-up.
  • wp_list_media

    Read

    List media library items, filtered by search or file type.

    List every PDF in the media library.

    Scope media:read
  • wp_upload_media_url

    Write

    Import an image from a URL into the media library, with alt text and caption. Private network addresses are refused.

    Import the logo from our press kit and set its alt text.

    Scope media:write
  • wp_upload_media_b64

    Write

    Upload a file sent as base64, up to 10 MB, when WordPress allows its type.

    Upload this screenshot and caption it “New dashboard”.

    Scope media:write
  • wp_set_media_meta

    Write

    Set the alt text, caption, description or title of an attachment.

    Write descriptive alt text for every image on the homepage.

    Scope media:write
  • wp_delete_media

    Dangerous

    Delete an attachment for good. Always goes through the two-step confirmation.

    Delete the unused 2023 banner image.

    Scope media:writetwo-step confirmation
  • wp_optimize_image

    Write

    Resize and recompress an image in place, optionally converting it to WebP.

    Convert the hero image to WebP at quality 80.

    Scope media:write
  • wp_find_unused_media

    Read

    Find attachments not used as a featured image, a parent or inline. A heuristic: page builders may still use some.

    Which uploads are not used anywhere?

    Scope media:read

SEO

6 · Meta through your SEO plugin, audits, broken links.
  • wp_get_seo

    Read

    Read the SEO meta of a post from the active SEO plugin, and say which adapter answered.

    What is the meta description of the pricing page?

    Scope seo:read
  • wp_set_seo

    Write

    Write the SEO title, description, social and robots fields through the active SEO plugin. Only the fields you send change.

    Rewrite the meta description of post 412 in under 155 characters.

    Scope seo:write
  • wp_analyze_seo

    Read

    Score one post from 0 to 100 on title, description, focus keyword, image alts and length, with a list of issues.

    Analyse the SEO of our main landing page and list the fixes.

    Scope seo:read
  • wp_audit_seo_bulk

    Write

    Audit many posts at once; each issue has a severity and a suggestion. With fix_safe and seo:write it also fills in missing meta descriptions, only on posts the user may edit.

    Audit the SEO of the last 50 posts and group the issues by severity.

    Scope seo:read+ seo:write for fix_safe
  • wp_get_sitemap_status

    Read

    Return the sitemap URL and its last change for the active SEO plugin.

    Where is our sitemap and when did it last change?

    Scope seo:read

Analytics

9 · Traffic from the analytics plugin you already run.
  • wp_analytics_detect

    Read

    Show which analytics plugins were detected and which one answers.

    Which analytics source are you reading from?

    Scope analytics:read
  • wp_analytics_overview

    Read

    Views, unique visitors and top device for a period.

    How many visitors did we have last month?

    Scope analytics:read
  • wp_analytics_top_posts

    Read

    The most viewed posts of a period, with unique visitors.

    What were our ten most read posts this quarter?

    Scope analytics:read
  • wp_analytics_top_referrers

    Read

    The sites that sent the most visitors in a period.

    Where does our traffic come from this week?

    Scope analytics:read
  • wp_analytics_top_keywords

    Read

    Search keywords, when the source provides them (Site Kit with Search Console).

    Which search queries bring people to the site?

    Scope analytics:read
  • wp_analytics_post_stats

    Read

    Traffic of one post over a period.

    How did post 412 do in its first month?

    Scope analytics:read
  • wp_analytics_compare_period

    Read

    Compare two periods side by side.

    Compare this month with last month.

    Scope analytics:read
  • wp_analytics_trend_by_category

    Read

    Views per category, or per term of any taxonomy, over a period.

    Which category grew the most this quarter?

    Scope analytics:read
  • wp_analytics_no_traffic_pages

    Read

    Posts and pages old enough to count that had no views in a period.

    Which pages had no visits this quarter?

    Scope analytics:read

Theme & design

13 · Theme files, custom CSS, menus, widgets, Customizer.
  • wp_get_active_theme

    Read

    Name, version, parent theme and folder of the active theme.

    Which theme are we running, and is it a child theme?

    Scope theme:read
  • wp_list_theme_files

    Read

    List the files of the active theme, optionally by pattern.

    List the CSS files in the theme.

    Scope theme:read
  • wp_read_theme_file

    Read

    Read one file of the active theme. Paths cannot leave the theme folder.

    Show me the footer template of the theme.

    Scope theme:read
  • wp_write_theme_file

    Dangerous

    Write a file in the active theme; a missing file is created. The previous version is backed up first.

    Add a print stylesheet to the theme.

    Scope theme:write
  • wp_inject_custom_css

    Dangerous

    Append to, or replace, the site’s custom CSS.

    Make the header sticky with a little custom CSS.

    Scope theme:write
  • wp_switch_theme

    Dangerous

    Activate another installed theme, through the two-step confirmation.

    Switch to the staging theme once I confirm.

    Scope theme:writetwo-step confirmation
  • wp_get_menus

    Read

    List navigation menus, their items and where they are placed.

    Show me the structure of the main menu.

    Scope site:read
  • wp_create_menu

    Dangerous

    Create a menu and optionally place it in a theme location.

    Create a footer menu with Privacy and Terms.

    Scope site:write
  • wp_update_menu

    Dangerous

    Replace the items of a menu with a new list.

    Add the Careers page to the main menu, after About.

    Scope site:write
  • wp_get_widgets

    Read

    List sidebars and the widgets in each.

    What is in the blog sidebar?

    Scope site:read
  • wp_set_widgets

    Dangerous

    Set the widget list of a sidebar from existing widget instances.

    Remove the tag cloud from the sidebar.

    Scope site:write
  • wp_get_customizer

    Read

    Read the allowed Customizer settings: colours, header image, logo, site icon.

    Which logo and site icon are set?

    Scope site:read
  • wp_set_customizer

    Dangerous

    Update the allowed Customizer settings; anything else is refused.

    Set the header text colour to our brand orange.

    Scope site:write

Plugins

8 · List, read, scaffold, install, activate.
  • wp_list_plugins

    Read

    List installed plugins with version, status, any update WordPress knows of, and whether their files may be written.

    Which plugins are installed but inactive?

    Scope plugin:read
  • wp_read_plugin_file

    Read

    Read a file inside a plugin folder. Paths cannot leave that plugin.

    Show me the main file of the contact form plugin.

    Scope plugin:read
  • wp_scaffold_plugin

    Dangerous

    Create a new plugin skeleton (header, composer.json, README) and allow writes to it.

    Scaffold a plugin called Studio tweaks.

    Scope plugin:install
  • wp_write_plugin_file

    Dangerous

    Write a file in a plugin you have allow-listed. The previous version is backed up.

    Add a shortcode to the Studio tweaks plugin.

    Scope plugin:write
  • wp_install_plugin_zip

    Dangerous

    Install a plugin from a .zip on your computer (up to 20 MB, checked by its SHA-256) or from an https link. A link, or replacing an installed plugin, goes through the two-step confirmation.

    Install our private plugin from this zip file.

    Scope plugin:installtwo-step for links and replacements
  • wp_install_plugin_repo

    Dangerous

    Install a plugin from the WordPress.org directory, through the two-step confirmation.

    Install Independent Analytics from WordPress.org.

    Scope plugin:installtwo-step confirmation
  • wp_activate_plugin

    Dangerous

    Activate an installed plugin.

    Activate the plugin we just installed.

    Scope plugin:install
  • wp_deactivate_plugin

    Dangerous

    Deactivate a plugin.

    Deactivate the old slider plugin.

    Scope plugin:install

Site & system

6 · Settings, health, performance, database, WP-CLI.
  • wp_health_check

    Read

    Check that the plugin answers, with plugin, WordPress and PHP versions. Needs no scope; on plugin 1.7.0 a valid token also sees its own scopes.

    Is the bridge reachable on this site?

    Scope none
  • wp_get_settings

    Read

    Read the allowed site settings: title, tagline, timezone, permalinks, front page and more.

    Which timezone and permalink structure does the site use?

    Scope site:read
  • wp_set_settings

    Dangerous

    Update the allowed settings. Changing the site address or admin email needs the two-step confirmation.

    Change the tagline to “Coffee, roasted in Milan”.

    Scope site:writetwo-step for address and email
  • wp_db_query

    Dangerous

    Run a SELECT on the site’s tables, capped at 1,000 rows; password hashes never come back. Writes need db:write and the two-step confirmation, and are rolled back if they touch users, roles, tokens or protected options.

    How many comments are waiting for moderation?

    Scope db:read+ db:write for writestwo-step for writes
  • wp_cli_exec

    Dangerous

    Run a WP-CLI command that matches the allow-list exactly, with its values passed separately. Off until an administrator turns it on.

    Flush the object cache.

    Scope cli:exec
  • wp_performance_check

    Read

    A quick performance audit: caching, OPcache, heavy images, database and autoload size.

    Why is the site slow? Run a performance check.

    Scope site:read

Files

9 · Browse and change files: uploads with site:write, anywhere with fs:admin.
  • wp_fs_list

    Read

    List one folder of the WordPress install. Protected files such as wp-config.php, .env, backups and SQL dumps are hidden.

    What is in wp-content/uploads/2026/11?

    Scope site:read
  • wp_fs_read

    Read

    Read a file of the install: text as text, anything else as base64. Protected files are refused.

    Show me the robots.txt file.

    Scope site:read
  • wp_fs_download

    Read

    Download a file as base64. Protected files are refused.

    Download the latest price list PDF.

    Scope site:read
  • wp_fs_write

    Dangerous

    Write a file. With site:write only plain file types inside wp-content/uploads; anywhere else needs fs:admin, which asks twice before an overwrite or a code change. The previous version is backed up.

    Save this text as uploads/notes/launch.md.

    Scope site:write+ fs:admin outside uploadstwo-step under fs:admin
  • wp_fs_upload

    Dangerous

    Upload a file sent as base64, with the same limits as wp_fs_write: uploads only with site:write, elsewhere with fs:admin.

    Upload this PDF to uploads/press-kit.

    Scope site:write+ fs:admin outside uploadstwo-step under fs:admin
  • wp_fs_mkdir

    Dangerous

    Create a folder and any missing parents: inside uploads with site:write, elsewhere with fs:admin.

    Create the folder uploads/press-kit.

    Scope site:write+ fs:admin outside uploads
  • wp_fs_rename

    Dangerous

    Rename or move a file or folder: inside uploads with site:write; anywhere with fs:admin, after the two-step confirmation.

    Rename uploads/2026/11/IMG_0042.jpg to hero-spring.jpg.

    Scope site:write+ fs:admin outside uploadstwo-step under fs:admin
  • wp_fs_delete

    Dangerous

    Delete a file, or a folder with everything in it. Non-empty items, and every delete under fs:admin, go through the two-step confirmation; deleted files are backed up.

    Delete the uploads/tmp folder and everything in it.

    Scope site:write+ fs:admin outside uploadstwo-step for non-empty items

Backups

3 · Snapshots of database and files, and restore.
  • wp_backup_create

    Dangerous

    Zip the database, the files (themes, plugins, uploads) or both into a backup on the server.

    Back up the database before we start.

    Scope system:backup
  • wp_backup_list

    Read

    List backups with scope, note, size and date.

    Which backups do we have from this week?

    Scope system:backup
  • wp_backup_restore

    Dangerous

    Restore a backup. Overwrites files and tables, so it always goes through the two-step confirmation. The Xaflo plugin, its tokens and settings stay as they are.

    Restore the homepage from the backup taken ten minutes ago.

    Scope system:backuptwo-step confirmation

Multilingual

10 · Translations of posts, media and strings (WPML).
  • wp_list_languages

    Read

    List the site’s languages and the multilingual adapter in use.

    Which languages is the site set up for?

    Scope content:read
  • wp_multilingual_detect

    Read

    Detect the multilingual plugin and which adapter answers.

    Is this site multilingual?

    Scope content:read
  • wp_get_post_translations

    Read

    Every translation of a post, grouped by language, including empty slots.

    Which languages is the About page missing?

    Scope content:read
  • wp_link_post_translation

    Write

    Link an existing post into another post’s translation group.

    Link post 233 as the Italian version of post 120.

    Scope content:write
  • wp_set_post_language

    Write

    Set or change the language of a post.

    Mark post 233 as Italian.

    Scope content:write
  • wp_get_media_translations

    Read

    Every language version of an attachment, with its alt text, caption and description.

    Show the alt text of image 88 in every language.

    Scope content:read
  • wp_set_media_translation_meta

    Write

    Fill in the alt text, caption, description or title of an attachment in one language.

    Write the German alt text for image 88.

    Scope media:write
  • wp_audit_media_translations

    Read

    Find attachments missing a translation, alt text or description in any language.

    Which images have no Italian alt text?

    Scope content:read
  • wp_list_string_translations

    Read

    List theme and plugin strings with their translation status per language.

    Show the theme strings still untranslated in French.

    Scope content:read
  • wp_audit_string_translations

    Read

    How complete the interface translation is, per language.

    How complete is our German interface translation?

    Scope content:read
How to read this

Three access levels, one scope each.

Read

Looks, never changes anything. Safe to give to an agent that reports.

Write

Changes content or media: drafts, edits, uploads, SEO fields. Revisions and the trash keep a way back.

Dangerous

Needs a scope the plugin itself flags as dangerous, or a second confirmed call. Give these scopes to as few tokens as you can.

Some tools grow with a second scope: the file tools work outside uploads with fs:admin, wp_db_query writes with db:write, and wp_audit_seo_bulk fixes descriptions with seo:write.

Names, scopes and routes are taken from the MCP package bundled with plugin v1.7.0 and checked against its source. Build a token on the plugin page

Ready to call them

Install the plugin. Ask in plain words.