WordPress Settings
Read and update core WordPress settings (general / reading / writing / discussion / media / permalinks) over MCP. Both tools work against a curated, typed allowlist. There is no arbitrary option access. Both require manage_options.
Safety boundaries:
- Allowlist only: keys outside it are never read or written.
siteurl/homeandusers_can_register/default_roleare excluded entirely.admin_emailis read-only (returned byget-settings, rejected byupdate-settings).
emcp-tools/get-settings
Section titled “emcp-tools/get-settings”Reads allowlisted WordPress settings across all groups. Doubles as discovery: each entry includes its type, label, enum options (where applicable), and a writable flag.
Input: group (optional, limit to one of general, reading, writing, discussion, media, permalinks).
Returns: array of { key, value, type, label, options?, writable }.
Capability: manage_options. Read-only.
emcp-tools/update-settings
Section titled “emcp-tools/update-settings”Batch-updates allowlisted settings. Partial failure never aborts the batch: any non-allowlisted, read-only, or invalid value is reported in skipped[] while the rest apply. Changing a permalink setting auto-flushes rewrite rules.
Input: settings: a key/value map of allowlisted settings to write.
Returns: { updated: [...], skipped: [{ key, reason }] }.
Capability: manage_options.
Example
Section titled “Example”get-settings { "group": "reading" } → discover posts_per_page, show_on_front, page_on_front, …update-settings { "settings": { "posts_per_page": 12, "blog_public": 1 } } → { updated: ["posts_per_page", "blog_public"], skipped: [] }