wp_get_post: get one post
Reads a single post by ID, including its content. This is the call that should precede every content write.
Arguments
| Argument | Required | Meaning |
|---|---|---|
id |
Yes | The post ID |
Permissions
mcp:read and wp:content:read.
Reading a published post needs no further capability. Reading a draft, pending or private post requires edit_post on that specific item.
What it returns
id, post_type, title, slug, status, date, modified, link, excerpt — and content, which listings omit.
Why it matters more than it looks
This is the tool that makes a write safe. An assistant that has read the post knows its real title, its actual status, its current content and its permalink; one that has not is working from your description of it.
Two specific things to confirm before any write:
The identity. Ask for the title back. IDs are easy to transpose, and a well-formed write to the wrong post is the most common way to damage content.
The status. Editing a published item has immediate public effect. Editing a draft does not.
Read post 412 and show me the title and status, then wait.
content is the stored value
The content field is what WordPress has stored, before rendering. For a POM builder page that is the raw shortcode structure, not the visible text.
That is the right thing for editing, and it means an assistant reading a builder page sees the layout it must preserve. See Build POM builder content.
Post type restriction
Only public post types are readable. A post belonging to a non-public type returns pom_ai_mcp_post_not_found, the same error as a missing ID — so that error means "not reachable", not necessarily "does not exist".
Read it back after writing
The write tools return the updated record, but reading independently afterwards catches what a write response cannot: values altered by a filter on save, a slug regenerated from a changed title, or another plugin acting on the update.
Apply the change, then read post 412 back and show me what differs.
Using it well
Read page 88 and show me its content.
Read post 412 and tell me whether it is published.
Show me the current excerpt for post 412 before you change it.
That last pattern — asking for the current value of the field about to change — is what gives you an undo. See Recover from a failed write.
Common problems
| Symptom | Cause |
|---|---|
pom_ai_mcp_post_not_found |
Wrong ID, or a non-public post type |
pom_ai_mcp_forbidden |
Reading unpublished content without edit_post |
| Content looks like shortcodes | Correct; it is builder content |
| Content differs from the page | The stored value is pre-render |