@mangerik/wordpress-mcp 0.1.0 → 0.1.2

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/CHANGELOG.md CHANGED
@@ -5,6 +5,28 @@ All notable changes to this project will be documented in this file.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## [0.1.2] - 2026-05-17
9
+
10
+ ### Added
11
+ - `SECURITY.md` documenting supply chain practices and reporting policy.
12
+ - GitHub Actions workflows for CI (test on Node 18/20/22) and tag-triggered
13
+ publish with `--provenance` (npm provenance via OIDC).
14
+
15
+ ### Changed
16
+ - Documented the GitHub Actions release flow as the recommended path; local
17
+ publish is now positioned as a fallback.
18
+
19
+ ## [0.1.1] - 2026-05-17
20
+
21
+ ### Added
22
+ - `docs/USAGE.md` — bilingual (Indonesian + English) prompt examples covering
23
+ authoring, audit, WooCommerce, SEO, block themes, batch, and multisite.
24
+ - `docs/TOOLS.md` — auto-generated reference for all 96 tools, complete with
25
+ argument tables, types, and read-only / destructive hints.
26
+ - `npm run docs` script that regenerates `docs/TOOLS.md` from the running
27
+ server (also runs automatically before publish).
28
+ - `docs/` is now shipped in the npm tarball.
29
+
8
30
  ## [0.1.0] - 2026-05-17
9
31
 
10
32
  Initial public preview. Tagged `beta` on npm while we collect feedback from
package/README.md CHANGED
@@ -1,5 +1,9 @@
1
1
  # WordPress MCP Server
2
2
 
3
+ <p align="center">
4
+ <img src="https://raw.githubusercontent.com/mangerik/WordPress-MCP/main/assets/cover.jpg" alt="WordPress MCP Server" width="100%" />
5
+ </p>
6
+
3
7
  A [Model Context Protocol](https://modelcontextprotocol.io) server that lets any MCP-compatible AI client (Claude Desktop, Kiro, Cursor, Continue, etc.) read and manage a WordPress site through the official REST API.
4
8
 
5
9
  ## Features
@@ -37,7 +41,7 @@ npx -y @mangerik/wordpress-mcp
37
41
  ### From source
38
42
 
39
43
  ```bash
40
- git clone https://github.com/mangerik/wordpress-mcp.git
44
+ git clone https://github.com/mangerik/WordPress-MCP.git
41
45
  cd wordpress-mcp
42
46
  npm install
43
47
  npm run build
@@ -225,6 +229,20 @@ Both plugins store SEO data in post meta with different keys; one uniform tool r
225
229
  ### JWT diagnostics (only in JWT mode)
226
230
  - `wp_jwt_validate` — validate the active token via `/jwt-auth/v1/token/validate`.
227
231
 
232
+ ## Documentation
233
+
234
+ - 📖 **[USAGE.md](docs/USAGE.md)** — Real-world prompt examples (Indonesian + English): authoring, audit, WooCommerce, SEO, batch, multisite, etc.
235
+ - 📚 **[TOOLS.md](docs/TOOLS.md)** — Full reference for all 96 tools with arguments, types, and hints. Auto-generated from the running server.
236
+ - 🔒 **[SECURITY.md](SECURITY.md)** — Supply chain practices (npm provenance, no install scripts, 2FA) and how to report vulnerabilities.
237
+
238
+ ## Notes & gotchas
239
+
240
+ - **`status` defaults to `draft`** for `wp_create_post` / `wp_create_page`. Override explicitly if you really want to publish.
241
+ - **Custom fields (`meta`)** must be registered server-side with `register_post_meta(..., 'show_in_rest' => true)` to be writable through REST.
242
+ - **Use `_fields`** to slim responses — e.g. `_fields: "id,title,slug"` cuts response size by ~80% for list calls.
243
+ - **`context=edit`** is required to receive raw (unfiltered) content for round-tripping through `wp_update_post`.
244
+ - The server logs to **stderr only**. Stdout is reserved for JSON-RPC framing.
245
+
228
246
  ## Resources
229
247
 
230
248
  | URI | What |
@@ -243,14 +261,6 @@ Both plugins store SEO data in post meta with different keys; one uniform tool r
243
261
  | `translate_page` | `page_id`, `target_language`, `create_new?` |
244
262
  | `draft_post` | `topic`, `tone?`, `word_count?` |
245
263
 
246
- ## Notes & gotchas
247
-
248
- - **`status` defaults to `draft`** for `wp_create_post` / `wp_create_page`. Override explicitly if you really want to publish.
249
- - **Custom fields (`meta`)** must be registered server-side with `register_post_meta(..., 'show_in_rest' => true)` to be writable through REST.
250
- - **Use `_fields`** to slim responses — e.g. `_fields: "id,title,slug"` cuts response size by ~80% for list calls.
251
- - **`context=edit`** is required to receive raw (unfiltered) content for round-tripping through `wp_update_post`.
252
- - The server logs to **stderr only**. Stdout is reserved for JSON-RPC framing.
253
-
254
264
  ## License
255
265
 
256
266
  MIT
package/SECURITY.md ADDED
@@ -0,0 +1,42 @@
1
+ # Security Policy
2
+
3
+ ## Reporting a vulnerability
4
+
5
+ If you discover a security issue, **please do not open a public GitHub issue**.
6
+ Instead, email the maintainer directly:
7
+
8
+ 📧 erikhidayatullah23@gmail.com
9
+
10
+ We aim to respond within 7 days and disclose responsibly once a fix is shipped.
11
+
12
+ ## Supply chain practices
13
+
14
+ This package follows these supply chain security measures:
15
+
16
+ - **npm provenance** — every release is signed via [npm's provenance feature](https://docs.npmjs.com/generating-provenance-statements)
17
+ using GitHub Actions OIDC, so consumers can cryptographically verify each
18
+ tarball was built from a specific commit in the public repo.
19
+ - **No install / postinstall scripts** — the package never executes code on
20
+ install.
21
+ - **No native bindings** — pure TypeScript / JavaScript, easy to audit.
22
+ - **2FA on npm publish** — the maintainer's npm account requires two-factor
23
+ authentication for write actions.
24
+ - **Pinned dependencies** — runtime deps are kept to four well-known packages
25
+ (`@modelcontextprotocol/sdk`, `axios`, `form-data`, `zod`). No transitive
26
+ surprises from one-letter abandoned modules.
27
+ - **Reproducible builds** — `npm pack --dry-run` produces a deterministic
28
+ list; CI runs `typecheck → build → smoke → docs` before every publish.
29
+
30
+ ## Verifying a published version
31
+
32
+ ```bash
33
+ # Inspect the provenance attestation:
34
+ npm audit signatures
35
+
36
+ # Or for a specific install:
37
+ npm install @mangerik/wordpress-mcp
38
+ npx @npmcli/get-provenance @mangerik/wordpress-mcp
39
+ ```
40
+
41
+ If `npm audit signatures` reports anything other than “verified”, do not
42
+ trust that install — please report to the email above.