@adsim/wordpress-mcp-server 4.4.0 → 4.5.1
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.
- package/README.md +48 -4
- package/dxt/manifest.json +12 -5
- package/index.js +720 -150
- package/package.json +1 -1
- package/src/pluginDetector.js +158 -0
- package/tests/unit/pluginDetector.test.js +167 -0
- package/tests/unit/tools/dynamicFiltering.test.js +136 -0
- package/tests/unit/tools/outputCompression.test.js +342 -0
- package/tests/unit/tools/pluginIntelligence.test.js +864 -0
- package/tests/unit/tools/site.test.js +3 -1
package/README.md
CHANGED
|
@@ -3,14 +3,14 @@
|
|
|
3
3
|
[](https://opensource.org/licenses/MIT)
|
|
4
4
|
[](https://nodejs.org/)
|
|
5
5
|
[](https://github.com/anthropics/mcp)
|
|
6
|
-
[](https://github.com/GeorgesAdSim/wordpress-mcp-server/actions)
|
|
7
7
|
[](https://www.npmjs.com/package/@adsim/wordpress-mcp-server)
|
|
8
8
|
|
|
9
9
|
**Enterprise Governance · Audit Trail · Multi-Site · Plugin-Free**
|
|
10
10
|
|
|
11
11
|
The enterprise governance layer for Claude-to-WordPress integrations — secure, auditable, and multi-site.
|
|
12
12
|
|
|
13
|
-
**v4.
|
|
13
|
+
**v4.5.1 Enterprise** · 85 tools · 713 Vitest tests · GitHub Actions CI · HTTP Streamable transport · MCPB bundle · SEO metadata · SEO audit suite · Content intelligence · Plugin intelligence · Plugin & theme management · Revision control · Editorial approval workflow · Destructive confirmation · Internal link analysis · WooCommerce (read + intelligence + write) · Execution controls · JSON audit trail · Multi-site targeting
|
|
14
14
|
|
|
15
15
|
---
|
|
16
16
|
|
|
@@ -716,7 +716,7 @@ WC_PRICE_GUARDRAIL_THRESHOLD=20 # percentage — changes above this require ex
|
|
|
716
716
|
|
|
717
717
|
## Testing
|
|
718
718
|
|
|
719
|
-
|
|
719
|
+
713 unit tests covering all 85 tools — zero network calls, fully mocked.
|
|
720
720
|
```bash
|
|
721
721
|
npm test # run all tests (vitest)
|
|
722
722
|
npm run test:watch # watch mode
|
|
@@ -754,7 +754,11 @@ npm run test:coverage # coverage report
|
|
|
754
754
|
| `contentIntelligence.test.js` | 16 content intelligence tools: brief, outline, readability, update frequency, link map, anchor texts, schema, structure, duplicates, gaps, FAQ, CTA, entities, velocity, revisions diff, word count | 125 |
|
|
755
755
|
| `site.test.js` | site info, set target | 5 |
|
|
756
756
|
| `transport/http.test.js` | HTTP transport, Bearer auth, sessions | 10 |
|
|
757
|
-
| `
|
|
757
|
+
| `pluginDetector.test.js` | SEO plugin detection, rendered head, HTML head parsing | 13 |
|
|
758
|
+
| `pluginIntelligence.test.js` | 6 plugin intelligence tools: rendered head, rendered SEO audit, pillar content, schema plugins, SEO score, Twitter meta | 48 |
|
|
759
|
+
| `dxt/manifest.test.js` | MCPB manifest validation, 85 tools declared | 10 |
|
|
760
|
+
| `dynamicFiltering.test.js` | WooCommerce/editorial/plugin-intelligence filtering, combined counts, callable when filtered | 9 |
|
|
761
|
+
| `outputCompression.test.js` | mode=full/summary/ids_only for 10 listing tools (pages, media, comments, categories, tags, users, custom posts, plugins, themes, revisions) | 30 |
|
|
758
762
|
|
|
759
763
|
Each test verifies: success response shape, governance blocking (write tools), HTTP error handling (403/404), and audit log entries.
|
|
760
764
|
|
|
@@ -924,6 +928,46 @@ npx @modelcontextprotocol/inspector node index.js
|
|
|
924
928
|
|
|
925
929
|
## Changelog
|
|
926
930
|
|
|
931
|
+
### v4.5.1 (2026-02-21) — Context Optimization
|
|
932
|
+
|
|
933
|
+
LLM context reduction across all 85 tools — zero breaking changes.
|
|
934
|
+
|
|
935
|
+
**Dynamic filtering:**
|
|
936
|
+
- `getFilteredTools()` hides WooCommerce (13), editorial (3), and plugin intelligence (6) tools when their env vars are absent
|
|
937
|
+
- `listTools` returns only exposed tools; `callTool` still handles all 85
|
|
938
|
+
- `wp_site_info` now reports `tools_total`, `tools_exposed`, `filtered_out`
|
|
939
|
+
|
|
940
|
+
**LLM-optimized descriptions:**
|
|
941
|
+
- All 85 tool descriptions rewritten: `"Use when [TRIGGER]. [ACTION]. [Read-only | Write — blocked by X]. [Hint: optional]"`
|
|
942
|
+
|
|
943
|
+
**Schema compact:**
|
|
944
|
+
- Redundant `description` fields removed from `inputSchema` properties (id, per_page, page, status with enum, search, force, post_type with enum, etc.)
|
|
945
|
+
|
|
946
|
+
**Output compression (`mode` parameter):**
|
|
947
|
+
- 10 listing tools gain `mode` param: `full` (default), `summary` (key fields only), `ids_only` (flat array)
|
|
948
|
+
- wp_list_pages, wp_list_media, wp_list_comments, wp_list_categories, wp_list_tags, wp_list_users, wp_list_custom_posts, wp_list_plugins, wp_list_themes, wp_list_revisions
|
|
949
|
+
|
|
950
|
+
713 Vitest unit tests · 85 tools
|
|
951
|
+
|
|
952
|
+
### v4.5.0 (2026-02-21) — Plugin Intelligence (RankMath + Yoast)
|
|
953
|
+
|
|
954
|
+
6 new tools exploiting native RankMath and Yoast SEO API endpoints for rendered head analysis, schema validation, and social meta management.
|
|
955
|
+
|
|
956
|
+
**New shared module:**
|
|
957
|
+
- `src/pluginDetector.js` — SEO plugin auto-detection via REST API namespace discovery (cached), rendered head fetching, HTML head parsing
|
|
958
|
+
|
|
959
|
+
**Rendered SEO Analysis:**
|
|
960
|
+
- `wp_get_rendered_head` — fetch the real `<head>` HTML via RankMath `/rankmath/v1/getHead` or Yoast `/yoast/v1/get_head` endpoints, compare rendered vs stored meta
|
|
961
|
+
- `wp_audit_rendered_seo` — bulk audit rendered vs stored SEO meta divergences with per-post scoring (title/description/canonical/robots/schema mismatches)
|
|
962
|
+
|
|
963
|
+
**Plugin-Native Features:**
|
|
964
|
+
- `wp_get_pillar_content` — read/write RankMath `rank_math_pillar_content` cornerstone flag. Write mode blocked by `WP_READ_ONLY`
|
|
965
|
+
- `wp_audit_schema_plugins` — validate JSON-LD schemas from plugin native fields (`rank_math_schema` or Yoast `yoast_head_json`). Checks required fields per @type
|
|
966
|
+
- `wp_get_seo_score` — read RankMath native SEO score (0-100) with bulk mode distribution stats
|
|
967
|
+
- `wp_get_twitter_meta` — read/write Twitter Card meta (title, description, image) for RankMath, Yoast, and SEOPress. Write mode blocked by `WP_READ_ONLY`
|
|
968
|
+
|
|
969
|
+
674 Vitest unit tests · 85 tools
|
|
970
|
+
|
|
927
971
|
### v4.4.0 (2026-02-21) — Content Intelligence
|
|
928
972
|
|
|
929
973
|
16 new read-only analysis tools for deep content intelligence without any WordPress plugin.
|
package/dxt/manifest.json
CHANGED
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
"manifest_version": "0.3",
|
|
3
3
|
"name": "wordpress-mcp-server",
|
|
4
4
|
"display_name": "WordPress MCP Server",
|
|
5
|
-
"version": "4.
|
|
6
|
-
"description": "Manage your WordPress site from Claude Desktop — posts, pages, media, SEO audits, content intelligence, plugins, themes, revisions, WooCommerce, content compression, and more.
|
|
7
|
-
"long_description": "A full-featured MCP server for WordPress REST API integration. Manage posts, pages, media, categories, tags, comments, users, SEO metadata, plugins, themes, revisions, and WooCommerce products/orders/customers through
|
|
5
|
+
"version": "4.5.1",
|
|
6
|
+
"description": "Manage your WordPress site from Claude Desktop — posts, pages, media, SEO audits, content intelligence, plugin intelligence, plugins, themes, revisions, WooCommerce, content compression, and more. 85 tools, no WordPress plugin required.",
|
|
7
|
+
"long_description": "A full-featured MCP server for WordPress REST API integration. Manage posts, pages, media, categories, tags, comments, users, SEO metadata, plugins, themes, revisions, and WooCommerce products/orders/customers through 85 tools — all from Claude Desktop.\n\nNo WordPress plugin required. Uses the built-in WordPress REST API with Application Passwords for secure authentication.\n\nFeatures:\n- Content management: create, read, update, delete posts and pages\n- Content compression: field filtering, content_format (html/text/links_only), list modes (full/summary/ids_only) for LLM context optimization\n- Content intelligence: readability scoring, duplicate detection, entity extraction, publishing velocity, revision diff, content structure analysis, FAQ extraction, CTA detection, link mapping, anchor text audit, schema markup validation\n- Plugin intelligence: SEO plugin detection (RankMath/Yoast/SEOPress), rendered head analysis, schema validation from plugin fields, SEO score reading, Twitter Card meta, pillar content management\n- Editorial approval workflow: submit for review, approve, reject\n- Media library: list, get details, upload from URL\n- Taxonomy: categories, tags, custom post types\n- SEO: auto-detects Yoast, RankMath, SEOPress, or All in One SEO\n- SEO audit suite: media alt text, orphan pages, heading structure, thin content, canonicals, E-E-A-T signals, broken links, keyword cannibalization, taxonomy bloat, outbound links\n- Plugins & themes: list, activate, deactivate\n- Revisions: list, view, restore, delete\n- WooCommerce read: products, orders, customers, price guardrail\n- WooCommerce intelligence: inventory alerts, order analytics, product SEO audit, product link suggestions\n- WooCommerce write: update products (with price guardrail), stock management, order status transitions\n- Enterprise controls: read-only mode, draft-only, disable-delete, require-approval (global and per-target)\n- Multi-site: target multiple WordPress installations with per-target controls",
|
|
8
8
|
"author": {
|
|
9
9
|
"name": "AdSim",
|
|
10
10
|
"email": "georges@adsim.be",
|
|
@@ -112,7 +112,13 @@
|
|
|
112
112
|
{ "name": "wp_extract_entities", "description": "Regex/heuristic named entity extraction (brands, locations, persons, organizations)" },
|
|
113
113
|
{ "name": "wp_get_publishing_velocity", "description": "Publication cadence by author/category with trend detection" },
|
|
114
114
|
{ "name": "wp_compare_revisions_diff", "description": "Textual diff between revisions with amplitude scoring" },
|
|
115
|
-
{ "name": "wp_list_posts_by_word_count", "description": "Posts sorted by length with 6-tier segmentation" }
|
|
115
|
+
{ "name": "wp_list_posts_by_word_count", "description": "Posts sorted by length with 6-tier segmentation" },
|
|
116
|
+
{ "name": "wp_get_rendered_head", "description": "Fetch real rendered <head> HTML via RankMath or Yoast headless endpoint, compare rendered vs stored meta" },
|
|
117
|
+
{ "name": "wp_audit_rendered_seo", "description": "Bulk audit rendered vs stored SEO meta divergences with per-post scoring" },
|
|
118
|
+
{ "name": "wp_get_pillar_content", "description": "Read or set RankMath pillar/cornerstone content flag. Write mode blocked by WP_READ_ONLY" },
|
|
119
|
+
{ "name": "wp_audit_schema_plugins", "description": "Audit JSON-LD schemas from SEO plugin native fields (rank_math_schema or Yoast head)" },
|
|
120
|
+
{ "name": "wp_get_seo_score", "description": "Read RankMath native SEO score (0-100) with bulk mode distribution stats" },
|
|
121
|
+
{ "name": "wp_get_twitter_meta", "description": "Read or write Twitter Card meta (title, description, image) from RankMath, Yoast, or SEOPress" }
|
|
116
122
|
],
|
|
117
123
|
"keywords": [
|
|
118
124
|
"wordpress",
|
|
@@ -129,7 +135,8 @@
|
|
|
129
135
|
"woocommerce",
|
|
130
136
|
"ecommerce",
|
|
131
137
|
"content-compression",
|
|
132
|
-
"content-intelligence"
|
|
138
|
+
"content-intelligence",
|
|
139
|
+
"plugin-intelligence"
|
|
133
140
|
],
|
|
134
141
|
"license": "MIT",
|
|
135
142
|
"user_config": {
|