@respira/wordpress-mcp-server 8.3.23 → 8.3.25

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (87) hide show
  1. package/CHANGELOG.md +28 -0
  2. package/README.md +105 -21
  3. package/TOOL_CATALOG.md +445 -300
  4. package/dist/__tests__/0e6bd33c-redeem-preserves-per-site-settings.test.js +3 -2
  5. package/dist/__tests__/0e6bd33c-redeem-preserves-per-site-settings.test.js.map +1 -1
  6. package/dist/__tests__/81c478df-create-page-duplicate-id-aliases.test.d.ts +11 -0
  7. package/dist/__tests__/81c478df-create-page-duplicate-id-aliases.test.d.ts.map +1 -0
  8. package/dist/__tests__/81c478df-create-page-duplicate-id-aliases.test.js +80 -0
  9. package/dist/__tests__/81c478df-create-page-duplicate-id-aliases.test.js.map +1 -0
  10. package/dist/__tests__/plugin-slug-path-encoding.test.d.ts +2 -0
  11. package/dist/__tests__/plugin-slug-path-encoding.test.d.ts.map +1 -0
  12. package/dist/__tests__/plugin-slug-path-encoding.test.js +41 -0
  13. package/dist/__tests__/plugin-slug-path-encoding.test.js.map +1 -0
  14. package/dist/__tests__/release-9-surface.test.d.ts +2 -0
  15. package/dist/__tests__/release-9-surface.test.d.ts.map +1 -0
  16. package/dist/__tests__/release-9-surface.test.js +197 -0
  17. package/dist/__tests__/release-9-surface.test.js.map +1 -0
  18. package/dist/install-skills.d.ts +4 -5
  19. package/dist/install-skills.d.ts.map +1 -1
  20. package/dist/install-skills.js +4 -5
  21. package/dist/install-skills.js.map +1 -1
  22. package/dist/server.d.ts.map +1 -1
  23. package/dist/server.js +332 -73
  24. package/dist/server.js.map +1 -1
  25. package/dist/skill-prompts.d.ts +43 -0
  26. package/dist/skill-prompts.d.ts.map +1 -0
  27. package/dist/skill-prompts.js +135 -0
  28. package/dist/skill-prompts.js.map +1 -0
  29. package/dist/wordpress-client.d.ts +40 -11
  30. package/dist/wordpress-client.d.ts.map +1 -1
  31. package/dist/wordpress-client.js +74 -22
  32. package/dist/wordpress-client.js.map +1 -1
  33. package/package.json +2 -2
  34. package/skills/activity-report-composer/SKILL.md +17 -5
  35. package/skills/activity-report-composer/metadata.json +2 -2
  36. package/skills/art-direction/SKILL.md +9 -3
  37. package/skills/art-direction/metadata.json +7 -3
  38. package/skills/brand-voice-synthesizer/SKILL.md +36 -16
  39. package/skills/brand-voice-synthesizer/metadata.json +8 -4
  40. package/skills/build-oxygen6-page/SKILL.md +17 -2
  41. package/skills/conversion-audit/SKILL.md +12 -0
  42. package/skills/custom-post-type-architect/SKILL.md +12 -0
  43. package/skills/figma-to-bricks/SKILL.md +4 -2
  44. package/skills/figma-to-divi/SKILL.md +4 -2
  45. package/skills/figma-to-elementor/SKILL.md +8 -1
  46. package/skills/figma-to-gutenberg/SKILL.md +4 -2
  47. package/skills/html-to-breakdance/SKILL.md +7 -3
  48. package/skills/html-to-breakdance/metadata.json +7 -3
  49. package/skills/html-to-bricks/SKILL.md +7 -3
  50. package/skills/html-to-bricks/metadata.json +7 -3
  51. package/skills/internal-link-builder/SKILL.md +12 -0
  52. package/skills/migrate-beaver-builder-to-bricks/SKILL.md +19 -3
  53. package/skills/migrate-beaver-builder-to-gutenberg/SKILL.md +19 -3
  54. package/skills/migrate-brizy-to-gutenberg/SKILL.md +19 -3
  55. package/skills/migrate-divi-to-breakdance/SKILL.md +19 -3
  56. package/skills/migrate-divi-to-bricks/SKILL.md +19 -3
  57. package/skills/migrate-divi-to-gutenberg/SKILL.md +19 -3
  58. package/skills/migrate-elementor-to-breakdance/SKILL.md +20 -4
  59. package/skills/migrate-elementor-to-bricks/SKILL.md +20 -4
  60. package/skills/migrate-elementor-to-gutenberg/SKILL.md +20 -4
  61. package/skills/migrate-elementor-to-oxygen/SKILL.md +20 -4
  62. package/skills/migrate-oxygen-to-breakdance/SKILL.md +19 -3
  63. package/skills/migrate-oxygen-to-bricks/SKILL.md +19 -3
  64. package/skills/migrate-thrive-architect-to-gutenberg/SKILL.md +19 -3
  65. package/skills/migrate-visual-composer-to-gutenberg/SKILL.md +19 -3
  66. package/skills/migrate-wpbakery-to-bricks/SKILL.md +19 -3
  67. package/skills/migrate-wpbakery-to-gutenberg/SKILL.md +19 -3
  68. package/skills/mobile-experience-report/SKILL.md +12 -0
  69. package/skills/murmur-review-loop/SKILL.md +142 -0
  70. package/skills/page-template-library/SKILL.md +12 -0
  71. package/skills/respira-builder-edits/SKILL.md +1 -0
  72. package/skills/respira-setup-assistant/SKILL.md +12 -0
  73. package/skills/respira-site-audit/SKILL.md +18 -6
  74. package/skills/respira-woocommerce/SKILL.md +1 -0
  75. package/skills/seo-aeo-amplifier/SKILL.md +14 -2
  76. package/skills/seo-aeo-amplifier/metadata.json +2 -2
  77. package/skills/stale-content-detector/SKILL.md +12 -0
  78. package/skills/technical-debt-audit/SKILL.md +14 -2
  79. package/skills/woo-marketing-campaigns/SKILL.md +12 -9
  80. package/skills/woo-pricing-promotions/SKILL.md +9 -9
  81. package/skills/woocommerce-health-check/SKILL.md +22 -8
  82. package/skills/wordpress-ai-image-optimizer/SKILL.md +14 -2
  83. package/skills/wordpress-ai-image-optimizer/metadata.json +2 -2
  84. package/skills/wordpress-security-review/SKILL.md +154 -0
  85. package/skills/wordpress-site-dna/README.md +1 -1
  86. package/skills/wordpress-site-dna/SKILL.md +52 -19
  87. package/tool-capabilities.json +3236 -351
package/CHANGELOG.md CHANGED
@@ -5,6 +5,34 @@ All notable changes to Respira WordPress MCP Server will be documented in this f
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## [8.3.25] - 2026-09-14
9
+
10
+ ### Fixed
11
+
12
+ - **Duplicate Page understands the page ID names agents already use.** A call with
13
+ `page_id` or `post_id` built a request for an `undefined` page and failed. The tool now
14
+ accepts `original_id`, `page_id`, or `post_id`, and refuses a missing ID before it sends
15
+ anything to WordPress. No plugin update is required for this fix.
16
+ - **Plugin folder names with spaces stay one URL segment.** Activate, deactivate, update and
17
+ delete now encode the exact folder name before sending it to WordPress. This needs plugin
18
+ 9.0.0 or later for the matching route support.
19
+
20
+ ## [8.3.24] - 2026-09-12
21
+
22
+ Murmur: seven tools for the review links your clients talk back through.
23
+
24
+ ### Added
25
+
26
+ - `create_review_link`, `list_review_links`, `revoke_review_link`, `list_review_comments`,
27
+ `get_review_comment`, `reply_to_review_comment` and `resolve_review_comment`. A review
28
+ link opens without a WordPress login; whoever has it taps a spot on the page and leaves a
29
+ note with their name. Every note carries the page, the quoted text, the builder element
30
+ and a label in words, so an agent can apply it on a duplicate and resolve it with the
31
+ snapshot id. `create_review_link` takes post ids or page addresses, a scope of pages or
32
+ the whole site, 1 to 90 days and a label. Murmur is part of the Builder plan and up on
33
+ the site's Respira license; on a lower plan the tool answers `respira_murmur_plan`.
34
+ Needs plugin 8.9.0.
35
+
8
36
  ## [8.3.23] - 2026-09-11
9
37
 
10
38
  ### Fixed
package/README.md CHANGED
@@ -7,14 +7,14 @@
7
7
  <h1 align="center">Respira WordPress MCP Server</h1>
8
8
 
9
9
  <p align="center">
10
- <strong>220 MCP tools, 325 with the WooCommerce add-on. 17 page builders and the native Site Editor. MCP 2026-07-28 with legacy-client support.</strong><br>
10
+ <strong>230 MCP tools, 335 with the WooCommerce add-on. 17 page builders and the native Site Editor. MCP 2026-07-28 with legacy-client support.</strong><br>
11
11
  Element-level editing, full page creation, HTML-to-builder conversion with rendering fidelity validation, per-site tool governance, storefront design intelligence, stock images, bulk operations — all through one MCP server.
12
12
  </p>
13
13
 
14
14
  <p align="center">
15
15
  <a href="https://www.npmjs.com/package/@respira/wordpress-mcp-server"><img src="https://img.shields.io/npm/v/@respira/wordpress-mcp-server.svg?style=flat-square&color=10b981" alt="npm version"></a>
16
16
  <a href="https://www.npmjs.com/package/@respira/wordpress-mcp-server"><img src="https://img.shields.io/npm/dm/@respira/wordpress-mcp-server.svg?style=flat-square" alt="npm downloads"></a>
17
- <img src="https://img.shields.io/badge/tools-325-10b981?style=flat-square" alt="325 Tools with WooCommerce">
17
+ <img src="https://img.shields.io/badge/tools-335-10b981?style=flat-square" alt="335 Tools with WooCommerce">
18
18
  <img src="https://img.shields.io/badge/builders-17-10b981?style=flat-square" alt="17 Page Builders">
19
19
  <img src="https://img.shields.io/badge/TypeScript-100%25-blue?style=flat-square&logo=typescript&logoColor=white" alt="TypeScript">
20
20
  </p>
@@ -247,7 +247,7 @@ Or run the interactive setup wizard: `npx @respira/wordpress-mcp-server --setup`
247
247
 
248
248
  ### Tool Limit? Use `enabledTools`
249
249
 
250
- Some MCP clients (Antigravity, etc.) have a hard limit on active tools (often 100). Respira can expose up to 325 tools when the WooCommerce add-on is active. To stay under the limit, add `enabledTools` to your config — only those tools will appear in the listing:
250
+ Some MCP clients (Antigravity, etc.) have a hard limit on active tools (often 100). Respira can expose up to 335 tools when the WooCommerce add-on is active, and up to 413 on a Bricks site that also runs ACF. To stay under the limit, add `enabledTools` to your config — only those tools will appear in the listing:
251
251
 
252
252
  ```json
253
253
  {
@@ -363,7 +363,7 @@ respira_add_image({ post_id: 42, image_url: "https://..." })
363
363
  | **Divi 4** | Full Intelligence | Tree utility | Yes | Static schemas |
364
364
  | **Flatsome** | Full Intelligence | Tree utility | Yes | Yes — 55-element intelligence |
365
365
  | **Beaver Builder** | Full Support | Tree utility | Yes | Static schemas |
366
- | **Bricks** | Full Intelligence | Native API | Yes | Yes 20 dedicated tools, ACSS integration |
366
+ | **Bricks** | Full Intelligence | Native API | Yes | Yes: 25 dedicated tools, ACSS integration |
367
367
  | **Gutenberg** | Full Support | Tree utility | Yes | Block registry |
368
368
  | **Oxygen** | Smart Defaults | Tree utility | Yes | Static schemas |
369
369
  | **WPBakery** | Smart Defaults | Tree utility | Yes | Static schemas |
@@ -381,6 +381,21 @@ respira_add_image({ post_id: 42, image_url: "https://..." })
381
381
 
382
382
  ## All Tools
383
383
 
384
+ ### Tools on one site
385
+
386
+ The server lists only what the connected site can use. Builder tools appear on the builder they serve, ACF tools where ACF is active, and WooCommerce tools where the add-on runs. Measured over stdio against stub sites:
387
+
388
+ | Site | Tools listed |
389
+ |---|---|
390
+ | Core site (Gutenberg, no WooCommerce or ACF) | 230 |
391
+ | Core site with ACF | 284 |
392
+ | WooCommerce add-on | 334 |
393
+ | WooCommerce and ACF on Elementor | 395 |
394
+ | WooCommerce and ACF on Bricks | 413, the most one site can see |
395
+ | Site context unreadable (everything is shown) | 262 |
396
+
397
+ A client with a tool cap can narrow this with `enabledTools` (see Quick Start).
398
+
384
399
  ### Native Site Editor structures (10 tools) — Shipped in v8.0
385
400
 
386
401
  These are Respira-native WordPress operations, not a copied generic tool catalog. User-owned structures use the same approval, revision, snapshot, no-op detection, read-back, and render-verification contract as template editing. Theme and plugin patterns are inspectable but remain owned by their source.
@@ -398,7 +413,7 @@ These are Respira-native WordPress operations, not a copied generic tool catalog
398
413
  | `wordpress_update_site_navigation` | Target one link/submenu while preserving unknown extension blocks |
399
414
  | `wordpress_delete_site_navigation` | Delete through approval; referenced navigation is refused by default |
400
415
 
401
- ### Design Direction (13 tools)
416
+ ### Design Direction (20 tools)
402
417
 
403
418
  One saved design direction per site — identity, DTCG-subset tokens, dials, guidance, waivers — that agents read before building anything. Readiness is computed on every response: `ready` needs the bg + ink + accent color roles plus a heading/body font pair, and activation refuses a direction that is not ready. The direction document is site data, not instructions.
404
419
 
@@ -420,9 +435,18 @@ The design check closes the loop: `wordpress_check_design` runs deterministic sl
420
435
  | `wordpress_check_design` | Design check: deterministic slop-and-drift rules, plus `rendered: true` (plugin 8.6.20+) for contrast, structure and painted colors on the real page, screenshots attached |
421
436
  | `wordpress_mint_design_preview` | Mint a signed preview URL (plugin 8.6.22+) that renders the real page, drafts and duplicates included, frameable by the respira.press dashboard only; 15 minutes, or `ttl_days` (1 to 90) for a link a person will open; stores nothing |
422
437
  | `wordpress_create_share_link` | Create a share link (plugin 8.8.33+) for any page, draft or duplicate: opens with no WordPress login for `ttl_days` (1 to 90, default 14), no write; send it to the client or whoever signs off |
438
+ | `wordpress_create_review_link` | Create a Murmur review link (plugin 8.9.0+): a page or the site opens with no login and a review bar; the reviewer taps a spot and leaves a note that comes back to you and your agent |
439
+ | `wordpress_list_review_links` | List Murmur review links with scope, expiry, status and note counts |
440
+ | `wordpress_revoke_review_link` | Revoke a Murmur review link; it stops with the next request |
441
+ | `wordpress_list_review_comments` | List the notes people left through review links, each with the page, the quote, the builder element and its status |
442
+ | `wordpress_get_review_comment` | Read one note with its anchor, replies and resolution |
443
+ | `wordpress_reply_to_review_comment` | Reply to a note; the reviewer sees it under their note on the page |
444
+ | `wordpress_resolve_review_comment` | Mark a note resolved with what changed and the snapshot id |
423
445
  | `wordpress_get_design_apply_reports` | Read the stored per-builder apply reports for a direction: what apply actually wrote, straight from the site |
424
446
 
425
- ### Bricks Deep Intelligence (20 tools)
447
+ ### Bricks Deep Intelligence (25 tools)
448
+ Listed when Bricks is the active builder.
449
+
426
450
  | Tool | Description |
427
451
  |---|---|
428
452
  | `respira_list_bricks_global_classes` | List all global CSS classes with settings |
@@ -438,13 +462,49 @@ The design check closes the loop: `wordpress_check_design` runs deterministic sl
438
462
  | `respira_list_bricks_components` | List all Bricks templates/components |
439
463
  | `respira_get_bricks_component` | Get a component with full element structure |
440
464
  | `respira_apply_bricks_component` | Insert a component into a page with ID remapping |
441
- | `respira_search_bricks_elements` | **NEW** Search across all pages by element type, class, or setting |
442
- | `respira_bricks_health_check` | **NEW** Diagnostic: orphaned elements, duplicate IDs, broken refs |
443
- | `respira_bricks_detect_acss` | **NEW** Detect Automatic.css installation and design tokens |
444
- | `respira_bricks_import_acss` | **NEW** Import ACSS utility classes into Bricks global registry |
445
- | `respira_bricks_query_loops` | **NEW** Find all query loop elements, filter by post type |
446
- | `respira_bricks_style_profile` | **NEW** Analyze page design patterns (colors, spacing, typography) |
447
- | `respira_bricks_design_system` | **NEW** Single-call export of complete Bricks design system |
465
+ | `respira_search_bricks_elements` | Search across all pages by element type, class, or setting |
466
+ | `respira_bricks_health_check` | Diagnostic: orphaned elements, duplicate IDs, broken refs |
467
+ | `respira_bricks_detect_acss` | Detect Automatic.css installation and design tokens |
468
+ | `respira_bricks_import_acss` | Import ACSS utility classes into Bricks global registry |
469
+ | `respira_bricks_query_loops` | Find all query loop elements, filter by post type |
470
+ | `respira_bricks_style_profile` | Analyze page design patterns (colors, spacing, typography) |
471
+ | `respira_bricks_design_system` | Single-call export of complete Bricks design system |
472
+ | `respira_bricks_import_design_tokens` | Import a design-token file into the Bricks color palette and global CSS variables |
473
+ | `respira_bricks_list_section_presets` | List the curated section presets: hero, features, CTA, testimonials, pricing, stats, FAQ |
474
+ | `respira_bricks_insert_section_preset` | Insert a curated section preset into a page as a new section |
475
+ | `respira_bricks_scaffold_bem` | Scaffold a BEM block as Bricks global classes |
476
+ | `respira_bricks_lint_bem` | Audit the global-class registry against the BEM convention |
477
+
478
+ ### ACF (54 tools)
479
+ Listed when Advanced Custom Fields is active on the site. Repeaters, flexible content, galleries and options pages need ACF Pro; on a site without Pro those tools answer `PRO_FEATURE_REQUIRED`.
480
+
481
+ | Tool | Description |
482
+ |---|---|
483
+ | `respira_acf_get_field` / `respira_acf_get_fields` / `respira_acf_update_field` / `respira_acf_update_fields` / `respira_acf_delete_field` | Read, write and remove field values on a post; `update_fields` writes several in one snapshot |
484
+ | `respira_acf_bulk_get_fields` / `respira_acf_bulk_update_fields` / `respira_acf_compare_fields` / `respira_acf_clone_fields` | The same fields across many posts: read them, update up to 500 posts, diff two posts, copy values between posts |
485
+ | `respira_acf_list_field_groups` / `respira_acf_get_field_group` / `respira_acf_create_field_group` / `respira_acf_update_field_group` / `respira_acf_delete_field_group` | Field group CRUD with location rules |
486
+ | `respira_acf_export_field_group` / `respira_acf_import_field_group` / `respira_acf_clone_field_group` | Move a field group as JSON, or duplicate it under a new name |
487
+ | `respira_acf_get_field_object` / `respira_acf_search_fields` / `respira_acf_validate_field` | Inspect a field definition, search every definition, validate a value without writing |
488
+ | `respira_acf_get_repeater` / `respira_acf_get_repeater_row` / `respira_acf_add_repeater_row` / `respira_acf_update_repeater_row` / `respira_acf_delete_repeater_row` / `respira_acf_reorder_repeater` / `respira_acf_count_repeater_rows` | Repeater rows by zero-based index (ACF Pro) |
489
+ | `respira_acf_get_flexible_content` / `respira_acf_get_flexible_layout` / `respira_acf_add_flexible_layout` / `respira_acf_update_flexible_layout` / `respira_acf_delete_flexible_layout` / `respira_acf_reorder_flexible_layouts` | Flexible content layouts (ACF Pro) |
490
+ | `respira_acf_get_gallery` / `respira_acf_update_gallery` / `respira_acf_add_to_gallery` / `respira_acf_remove_from_gallery` / `respira_acf_reorder_gallery` | Gallery fields (ACF Pro) |
491
+ | `respira_acf_list_options_pages` / `respira_acf_create_options_page` / `respira_acf_get_option` / `respira_acf_get_options` / `respira_acf_update_option` / `respira_acf_update_options` / `respira_acf_delete_option` / `respira_acf_export_options` | Options pages and their values (ACF Pro) |
492
+ | `respira_acf_get_relationship` / `respira_acf_update_relationship` / `respira_acf_get_reverse_relationships` / `respira_acf_get_post_object` | Relationship and post object fields, including every post that points at a given post |
493
+ | `respira_acf_get_user_field` / `respira_acf_update_user_field` / `respira_acf_get_term_field` / `respira_acf_update_term_field` | Fields on user profiles and taxonomy terms |
494
+
495
+ ### Elementor (8 tools)
496
+ Seven are listed when Elementor is the active builder; `respira_add_stock_image` is listed on every builder.
497
+
498
+ | Tool | Description |
499
+ |---|---|
500
+ | `respira_list_elementor_widgets` | Every registered widget with name, title, icon, categories and keywords |
501
+ | `respira_get_elementor_widget_schema` | The full JSON Schema for one widget type: every control, with types, defaults and allowed values |
502
+ | `respira_elementor_design_system` | Export global colors and typography, system and custom |
503
+ | `respira_update_elementor_global_colors` | Add or update global colors in the active kit |
504
+ | `respira_update_elementor_global_typography` | Add or update global typography styles in the active kit |
505
+ | `respira_elementor_add_custom_js` | Add a script to a page as an HTML widget inside a container |
506
+ | `respira_add_stock_image` | Find a stock image, sideload it and place it as an image widget, in one call |
507
+ | `respira_validate_elementor_json` | Check Elementor JSON for rendering fidelity before writing it |
448
508
 
449
509
  ### Element Operations (7 tools)
450
510
  | Tool | Description |
@@ -505,12 +565,12 @@ Add any widget to a page in one call:
505
565
  | `respira_diff_snapshots` | Compare two snapshots |
506
566
  | `respira_restore_snapshot` | Restore a previous version |
507
567
 
508
- ### Analysis (13 tools)
568
+ ### Analysis, security and reports (16 tools)
509
569
  | Tool | Description |
510
570
  |---|---|
511
571
  | `respira_analyze_seo` | Full SEO audit with actionable recommendations |
512
572
  | `respira_analyze_performance` | Page speed and optimization |
513
- | `respira_get_core_web_vitals` | LCP, FID, CLS scores |
573
+ | `respira_get_core_web_vitals` | LCP, CLS and INP measured by PageSpeed Insights: real-user field data when Google has it, plus lab metrics |
514
574
  | `respira_analyze_aeo` | AI search engine optimization |
515
575
  | `respira_analyze_readability` | Flesch score, sentence analysis |
516
576
  | `respira_analyze_images` | Image optimization audit |
@@ -521,6 +581,9 @@ Add any widget to a page in one call:
521
581
  | `respira_list_accessibility_scans` | Previous scan history |
522
582
  | `respira_get_accessibility_scan` | Detailed scan results + violations |
523
583
  | `respira_apply_accessibility_fixes` | Auto-fix a11y violations |
584
+ | `respira_run_security_audit` | Versions, core checksums, administrators, plugins, themes, indicators and coverage, plus `known_vulnerabilities` on a licensed site. Reads only; the optional `probe_uploads_execution` writes and deletes one inert file |
585
+ | `respira_update_core_security` | Apply the WordPress core security release WordPress.org offers on the current branch, after backup confirmation and approval |
586
+ | `respira_generate_activity_report` | The client report for a period, from the site's activity log: what changed, examples, time saved. Reads only; administrator key |
524
587
 
525
588
  ### Menus (12 tools)
526
589
  | Tool | Description |
@@ -549,12 +612,14 @@ Add any widget to a page in one call:
549
612
  | `respira_list_terms` / `respira_get_term` / `respira_create_term` / `respira_update_term` / `respira_delete_term` | Term CRUD |
550
613
  | `respira_list_post_types` / `respira_get_post_type` | Post type info |
551
614
 
552
- ### Site & Plugins (15 tools)
615
+ ### Site & Plugins (17 tools)
553
616
  | Tool | Description |
554
617
  |---|---|
555
618
  | `respira_get_site_context` | WordPress version, theme, plugins, URL |
556
619
  | `respira_get_theme_docs` | Theme documentation and structure |
557
620
  | `respira_list_plugins` / `respira_install_plugin` / `respira_activate_plugin` / `respira_deactivate_plugin` / `respira_update_plugin` / `respira_delete_plugin` | Plugin management |
621
+ | `respira_update_theme` | Update a theme to the latest version offered to the site, approval-gated, with a health check of the site afterwards |
622
+ | `respira_revoke_application_password` | Revoke one application password by user id and uuid from the security audit, approval-gated |
558
623
  | `respira_list_options` / `respira_get_option` / `respira_update_option` / `respira_delete_option` | WordPress options |
559
624
  | `respira_purge_cache` | Purge page and object caches and report which caching layers were touched. Pass `post_id` for one page, omit it for the whole site. Every Respira write already purges what it changed; this is the manual lever for changes Respira did not make |
560
625
  | `respira_validate_security` | Security audit |
@@ -567,7 +632,18 @@ Add any widget to a page in one call:
567
632
  | `respira_switch_site` | Switch active site |
568
633
  | `respira_get_active_site` | Get current site info |
569
634
 
570
- ### WooCommerce Add-on (105 tools)
635
+ ### Native connector only (8 tools)
636
+ The plugin's own MCP endpoint (the Claude.ai and ChatGPT connectors, or any client pointed at the site's MCP URL) names tools in the `respira_wordpress_*` form. These eight exist only there; the npm server does not list them.
637
+
638
+ | Tool | Description |
639
+ |---|---|
640
+ | `respira_wordpress_read_debug_log` | Tail the site's debug log to diagnose PHP fatals, warnings and notices without SSH. Reads only; needs `edit_themes` and `WP_DEBUG_LOG` |
641
+ | `respira_wordpress_detect_page_builder` | Which page builder a specific page uses |
642
+ | `respira_wordpress_approve_duplicate` / `respira_wordpress_reject_duplicate` | Apply a reviewed duplicate live, or delete it. Administrators only |
643
+ | `respira_wordpress_detach_duplicate` | Keep a tracked duplicate as its own page, without deleting it or touching the original |
644
+ | `respira_wordpress_read_page_v2` / `respira_wordpress_read_post_v2` / `respira_wordpress_read_custom_post_v2` | Reads that return heavy fields only when asked for |
645
+
646
+ ### WooCommerce Add-on (104 tools)
571
647
  Available when the [WooCommerce add-on](https://respira.press/addons/woocommerce) is installed. Included free with Studio and Founder plans.
572
648
 
573
649
  | Category | Tools |
@@ -582,7 +658,7 @@ Available when the [WooCommerce add-on](https://respira.press/addons/woocommerce
582
658
  | **Inventory control** | `get_stock_status`, `update_stock` |
583
659
  | **Product categories** | `list_categories`, `get_category`, `create_category`, `update_category`, `delete_category` |
584
660
  | **Product tags** | `list_tags`, `get_tag`, `create_tag`, `update_tag`, `delete_tag` |
585
- | **Analytics** | `sales_report` (deprecated alias), `revenue_summary`, `sales_timeseries`, `top_products`, `orders_summary`, `customers_summary` |
661
+ | **Analytics** | `revenue_summary`, `sales_timeseries`, `top_products`, `orders_summary`, `customers_summary` |
586
662
  | **Store configuration** | `get_store_configuration`, `list_payment_gateways`, `list_shipping_zones`, `list_tax_rates` |
587
663
  | **Webhooks** | `list_webhooks`, `get_webhook`, `create_webhook`, `update_webhook`, `delete_webhook`, `test_webhook` |
588
664
 
@@ -603,6 +679,14 @@ Admins can enable/disable individual tools from the WordPress dashboard. Governa
603
679
 
604
680
  ---
605
681
 
682
+ ## Skills as prompts
683
+
684
+ The server offers every bundled Respira skill as an MCP prompt, named by its slug, for example `respira-site-audit` or `activity-report-composer`. Clients that show prompts as slash commands list them with no install step. Picking one sends the skill's instructions as the first message, with an optional `request` argument for the page, site or client it is for. Listing them needs no site connection.
685
+
686
+ `npx @respira/wordpress-mcp-server install-skills` still copies the same skills into `~/.claude/skills` for Claude Code.
687
+
688
+ ---
689
+
606
690
  ## Multi-Site Support
607
691
 
608
692
  Manage multiple WordPress sites from one config:
@@ -623,7 +707,7 @@ For agencies managing many sites, use the hosted setup at [respira.press/dashboa
623
707
 
624
708
  ## Tool Naming: `respira_*`
625
709
 
626
- All tools use `respira_*` names (e.g. `respira_update_page`, `respira_find_element`). The legacy `wordpress_*` aliases are deprecated and will be removed in a future release. Update any prompts or workflows that still reference `wordpress_*` tools.
710
+ All tools use `respira_*` names (e.g. `respira_update_page`, `respira_find_element`). Each one also answers to its legacy `wordpress_*` name: clients see `respira_generate_activity_report`, and a saved call to `wordpress_generate_activity_report` still reaches it. The legacy aliases are deprecated and will be removed in a future release. Update any prompts or workflows that still reference `wordpress_*` tools.
627
711
 
628
712
  ---
629
713
 
@@ -821,7 +905,7 @@ npm cache clean --force
821
905
 
822
906
  API key validation happens server-side in the WordPress plugin. The MCP server passes credentials but does not store or validate them.
823
907
 
824
- `wordpress_run_security_audit` performs bounded read-only evidence collection for reviewed advisories. `wordpress_update_core_security` installs only an exact, catalog-approved security patch after backup confirmation and explicit two-step approval, and returns post-update verification evidence.
908
+ `wordpress_run_security_audit` collects bounded security evidence and only reads, `deep_scan` included. The one exception is opt-in: `probe_uploads_execution` writes one inert PHP file into uploads, requests it to learn whether PHP runs there, and deletes it. On a licensed site the result includes `known_vulnerabilities`, with status `ok` or `unavailable`, and an unavailable match never reads as clean. `wordpress_update_core_security` installs only the security release WordPress.org offers on the site's current branch, after backup confirmation and explicit two-step approval, and returns post-update verification evidence.
825
909
 
826
910
  Report vulnerabilities to security@respira.press.
827
911
 
@@ -857,6 +941,6 @@ MIT © [Respira](https://respira.press)
857
941
  ---
858
942
 
859
943
  <p align="center">
860
- <strong>220 core tools, 325 with WooCommerce. 17 builders. The AI infrastructure layer for WordPress.</strong><br>
944
+ <strong>230 core tools, 335 with WooCommerce. 17 builders. The AI infrastructure layer for WordPress.</strong><br>
861
945
  <a href="https://respira.press">respira.press</a>
862
946
  </p>