wp_get_option: read an allowed option
Reads one WordPress option, from a short allowlist.
Arguments
| Argument | Required | Meaning |
|---|---|---|
option |
Yes | The option name |
Permissions
mcp:read and wp:content:read. No WordPress capability check.
What can be read
| Option | Is |
|---|---|
blogname |
The site title |
blogdescription |
The tagline |
admin_email |
The administration email address |
posts_per_page |
Archive page size |
date_format |
Date display format |
time_format |
Time display format |
timezone_string |
The site timezone |
Anything not on the list is refused with pom_ai_mcp_option_denied. There is no wildcard and no way to enumerate options through this tool.
A second guard runs on top of the allowlist and denies a fixed set of sensitive names — the site and home URLs, user roles, cron, rewrite rules, the active theme and plugins, and POM AI's own settings — plus anything whose name contains secret, salt, auth key, nonce key, license key, api key, auth token, private key, session token or recovery key.
Because that second guard also covers siteurl and home, those two are refused in practice even though they look allowlisted. To get the site URL, use wp_get_site_info.
admin_email is personal data
It is the only readable option that identifies a person. Reading it sends an email address to the connected client.
That is rarely necessary for content work. Be deliberate about asking for it, and do not include it in a support report or a shared transcript. See Understand data sent for AI processing.
What it returns
The option name and its value.
Why the list is so short
Options are how WordPress stores nearly all configuration, including things that would let an assistant change the site's identity, its theme, its active plugins or its security posture.
An allowlist of seven presentational values is a deliberate refusal to be a general configuration interface. If a workflow seems to need an option that is not here, that workflow needs a person in the WordPress admin.
See What POM AI MCP does not expose.
Reading before writing
Five of the seven readable options are also writable. Read the current value before changing it — wp_update_option has no revision history and the dry run is your only preview.
Show me the current tagline, then change it to "…".
Plugin options are a different tool
For plugin settings, use the plugin's supported feature contract. Generic plugin-option dumps are unavailable.
Common problems
| Symptom | Cause |
|---|---|
pom_ai_mcp_option_denied |
Not on the allowlist, or caught by the sensitive-name guard |
siteurl or home refused |
The guard covers them; use wp_get_site_info |
| An empty value | The option is genuinely empty on this site |
timezone_string is empty |
The site uses a UTC offset instead of a named timezone |
That last case is common: WordPress allows either a named timezone or a numeric offset, and sites configured with an offset have no timezone_string. wp_get_site_info reports a resolved timezone either way.