pom_theme_get_html_template: get one HTML template
Reads a single template by type and identifier.
Arguments
| Argument | Required | Meaning |
|---|---|---|
template_type |
Yes | archive, single or feed |
repeater_identifier |
Yes | The template's ID |
Permissions
mcp:read and pom_theme:read, plus edit_theme_options.
Both arguments must agree
The identifier is looked up within the given type. An archive template's identifier passed with template_type: single returns pom_ai_mcp_template_not_found — the template exists, just not where you looked.
So a not-found error means one of two things: the identifier is wrong, or the type is. Check both against pom_theme_list_html_templates, which groups templates by type and makes the pairing obvious.
Anything other than the three valid types returns pom_ai_mcp_invalid_template_type instead, which is a clearer failure.
What it returns
The template row: repeater_identifier, template_name, the resolved template_html, and the css_stylesheets and js_scripts selections attached to it.
Same shape as one entry from the listing. The difference is scope — one template rather than all of them.
When to use it instead of the listing
The listing already returns full markup for everything, so this tool is not about getting more detail. It is about getting less:
- A site with twenty templates returns a very large listing; this returns one.
- After a write, to confirm what was actually stored.
- When you have an identifier from an assignment and need only that template.
That last case is the common one:
Read the assignments, then read the archive template that is currently assigned.
Read before every replace
pom_theme_upsert_html_template replaces the entire markup, and templates have no revision history.
This response is the only copy of what a write would overwrite. Keep it outside the conversation before editing anything live.
Reading is how you learn the site's conventions
Existing templates show which merge tags this site actually uses, how conditionals are written, and what class names the CSS expects.
Writing a new template that matches those conventions is far more likely to render correctly than one written from the merge tag reference alone:
Read the current archive template, then propose a new one that follows the same structure.
Attached assets use native references
These fields contain the theme's saved asset references, which can be managed paths, existing script URLs or native feature tokens. They do not contain source code. Omit unchanged asset fields when updating a template. To replace a selection, use stylesheet identifiers from the CSS catalog and script identifiers from pom_theme_get_script_catalog with target: template; arbitrary paths and URLs are not accepted as write inputs. To see what a referenced stylesheet contains, read it with pom_theme_get_custom_css and match the identifier.
A template that renders unstyled usually has references pointing at snippets that no longer exist.
It does not tell you whether this template is live
Nothing in the response says whether anything is assigned to it. Use pom_theme_get_template_assignments for that.
Editing a template that turns out to be assigned is a live change to the site; editing an unassigned one is not. Know which before you write.
Common problems
| Symptom | Cause |
|---|---|
| The tool is missing | POM Theme is not available |
pom_ai_mcp_invalid_template_type |
Not archive, single or feed |
pom_ai_mcp_template_not_found |
Wrong identifier, or right identifier under the wrong type |
pom_ai_mcp_forbidden |
Missing edit_theme_options |
template_html is empty |
The markup file is missing or unreadable |
| Referenced CSS does not exist | The snippet was deleted |