GoBuildWP Pro · 13 WPML abilities
WPML MCP that puts AI-made pages in the right language. Through WPML's own hooks, confirmed first.
GoBuildWP's WPML MCP gives an AI client 13 typed abilities in GoBuildWP Pro: list languages and translatable types, see which translations each item is missing, assign a language to content WPML has no record of, and link posts into one translation group. It moves ids and languages, and writes theme and plugin string translations you supply; it does not translate anything itself.
Pro from $39/year, WPML 4.7+, Setup guide
Proposed sequence using source-declared abilities in GoBuildWP Pro 1.12.4. Site, IDs, changes and outcomes are illustrative; no live client, native-editor or restore test is recorded here. Confirm the installed schema and policy separately. A confirmed call carries confirm: true, which the agent sets itself by default; a person approves only when Confirmation mode is “A person approves” or a Pro approval policy holds the call.
The problem this solves first
Content created without WPML in mind can have no language at all.
A missing language or translation-group record is one possible cause, not a complete switcher diagnosis. Inspect published status, the post type's translatable setting, language assignment, every current group member, switcher configuration and cache. WPML stores language relationships separately from core post content; verify the saved relationship and rendered switcher/hreflang after a separately approved repair.
Writing that table directly is the obvious shortcut and the wrong one: it skips the cache invalidation and translation-job bookkeeping WPML hangs off its own actions. Every read and write here goes through WPML's documented hooks instead.
Guard rails on WPML writes
- Hooks, not tables. Every read and write goes through WPML's documented hooks, so its caches and translation-job bookkeeping stay consistent.
- Group read first. Changing a post's language can split a translation group, so the current group is shown before a write.
- Old values returned. String translations sit outside the change ledger, so each write returns the value it replaced.
- Dry runs for bulk. Up to a hundred string translations per call, after a dry run that writes nothing.
Translation workflow
Find the gaps, then close them in order
Every content row carries the translations its group holds, so the missing languages are the ones still to do. That answer costs one call, not one per item per language.
Confirm the type is translatable
Check that WPML has the post type switched on for translation.
List source content
Read each row's translation map in the source language.
Write the translation
Create or edit translated content with the ordinary content abilities, WPML's editor, or a person.
Assign and link
Give the translated post its language and link it into the source group, with confirmation.
Verify
Re-read the group and check the language switcher on the front end.
Language routing
WPML abilities that decide which language a page lives in
- Reads
- 8
- Writes
- 3
- Destructive effects
- 2
wpml-list-contentEach item with its language, group id and the full set of translations, so the missing languages show in one call.
wpml-get-content-languageOne post's language and translation group; has_language false means WPML has no record of it.
wpml-set-content-languageAssigns a language, the fix for content created by a tool that knew nothing about WPML.
wpml-link-content-translationsJoins posts into one translation group so the language switcher moves between them.
wpml-list-translatable-typesWhich post types and taxonomies WPML translates: the usual answer to "why did the language write fail".
wpml-get-translationResolves an id to its counterpart in another language, for links, menus and queries.
Complete module
All 13 WPML abilities, content and strings
WPML String Translation must be active for the string abilities; the content abilities need only WPML itself.
Reads · 8
| Ability | What it does | Read / Write / Destructive | Edition |
|---|---|---|---|
wpml-check-setup | Check WPML Setup | Read | Pro |
wpml-get-content-language | Get WPML Content Language | Read | Pro |
wpml-get-string-translations | Get WPML String Translations | Read | Pro |
wpml-get-translation | Get WPML Translation | Read | Pro |
wpml-list-content | List WPML Content | Read | Pro |
wpml-list-languages | List WPML Languages | Read | Pro |
wpml-list-strings | List WPML Strings | Read | Pro |
wpml-list-translatable-types | List WPML Translatable Types | Read | Pro |
Writes · 3
| Ability | What it does | Read / Write / Destructive | Edition |
|---|---|---|---|
wpml-bulk-set-string-translations | Bulk Set WPML String Translations | Write | Pro |
wpml-register-string | Register WPML String | Write | Pro |
wpml-set-string-translation | Set WPML String Translation | Write | Pro |
Destructive effects; inspect confirmation policy · 2
| Ability | What it does | Read / Write / Destructive | Edition |
|---|---|---|---|
wpml-link-content-translations | Link WPML Content Translations | Destructive | Pro |
wpml-set-content-language | Set WPML Content Language | Destructive | Pro |
Names drop the wppilot/ prefix. All 13 are GoBuildWP Pro and load only while the WPML plugin or theme is active. Supported writes are recorded in the change ledger with a redacted before and after, and reversible ones can be rolled back.
Multilingual jobs
Translation gaps and orphans an agent can close
Find what is not translated yet
List source content with each group's translations and report the gaps by language.
Example prompt: List English pages that have no German translation yet.
Rescue orphaned AI content
Find posts WPML has no language for and assign one, instead of recreating them.
Example prompt: Find pages with no WPML language and assign the language their content is written in.
Link translations someone made by hand
Join existing posts into one group so the switcher connects them.
Example prompt: Link these English, French and Spanish pricing pages as translations of each other.
Requirements
WPML versions, companions and what stays manual
Requirements
- WordPress
- 6.9 or newer, PHP 8.0 or newer.
- WPML
- WPML Multilingual CMS 4.7 or newer.
- Companions
- String Translation is needed for the string abilities; WooCommerce Multilingual status is reported, not required.
- GoBuildWP
- Free plugin plus a Pro licence for the 13 WPML abilities.
- Current versions
- GoBuildWP Free 1.18.6 and Pro 1.12.4.
Limits
- No generated translations. Translated prose and string text come from a person, WPML's editor, your AI client or the ordinary content abilities.
- String translations are not in the change ledger. WPML keeps them in its own tables, so each write returns the value it replaced, and overwriting a different translation needs confirmation. Page-builder and form package strings still go through WPML's Translation Editor.
- No WPML configuration. Adding a language or changing translation mode is an admin decision with site-wide effects; it is reported, never changed.
- Changing the language of a post other translations point at can split a group. The abilities show the current group first.
First run
Install GoBuildWP Free
WordPress 6.9+ and PHP 8.0+; the site becomes its own MCP endpoint.
Connect a client
OAuth 2.1 in the browser, or an Application Password where the client cannot sign in.
List the gaps
On a Read Only connection, run wpml-check-setup, then list source content with its translation map.
Link one group
With Pro, assign a language to one orphaned page and link it, confirming each call.
Setup guide · OAuth 2.1 · Application Passwords · Client guides
FAQ
WPML MCP questions about languages and strings
Builder MCP guides: Elementor, Bricks, Breakdance, Divi, Oxygen, Beaver Builder, WPBakery, Flatsome, Etch, Mosaic.
What is WPML MCP?
It is a controlled way for an MCP client to read and change WPML's language model: which languages exist, which post is in which language, which posts form one translation group, and what a post's counterpart is in another language. GoBuildWP Pro registers it when WPML 4.7 or newer is active.
Does it translate my content?
No. These abilities move ids and languages, and the string abilities store translations you or your AI client supply; none of them generates a translation. Create the translated content the way you normally would, then link it.
Can it translate theme and plugin strings?
With WPML String Translation active, yes: the agent lists strings with what is still untranslated per language, registers a string WPML has not picked up, and writes translations one at a time or up to a hundred per call after a dry run. The words still come from you or your AI client, and package strings from page builders and forms stay in WPML's Translation Editor.
Why does my AI-created page not appear in the language switcher?
One common cause is that it has no language at all: WPML stores language in its own table and nothing in WordPress core writes to it, and wpml-get-content-language reports has_language false. Other causes include an unpublished post, a post type not set to translatable, a missing link to the source's translation group, switcher settings or a cache. Check those, assign a language or link the group if that is the gap, then check the rendered switcher.
Are language changes reversible?
Language assignment and group linking require confirmation and are recorded as irreversible in this route. Keep the complete original group for manual repair, preserve unrelated language members, and verify the saved group and rendered switcher. A recorded write is not a supported ledger undo.
Find the pages WPML has no language for.
Connect read-only and list content with its translation map; the missing languages are the ones to do next.