Skip to content

Your EMCP guide

Answers from our docs

YOUR CHAT, YOUR CHOICE

Before we chat

MSR Builds processes your question and up to four recent messages on our server to answer from the EMCP docs. AI is optional and needs your separate permission.

The chat is kept in this page's memory, not saved as a conversation in our database or browser storage. Our hosting and security services process connection information, such as your IP address, to prevent abuse.

Cloudflare Turnstile checks your browser and connection to prevent automated abuse when you send a question. No login is required.

Please leave out personal, sensitive or confidential information, passwords and API keys.

You can withdraw consent and clear this page's chat at any time. This cannot undo a request already sent or erase provider/security records.

Chat privacy, retention & your rights ↗ · Privacy contact

Starting chat consents to this processing. You can browse our docs without using the chat.

Pods

New in 3.21.1 (free), and in EMCP Lite 1.0.5 on WordPress.org. Two dispatcher tools work with Pods 3.3.9.2:

ToolDefaultPurpose
pods-readOnSupported Pods, their fields and records (6 operations)
pods-writeOffCreate a Pod, rename it, create draft records and update field values (4 operations)

Enable the write tool under Tools > Plugins > Pods. Call a tool with no operation to get its operations and argument schemas.

  • Pods 3.3.9.2 exactly; another version answers unsupported_version.
  • An administrator (manage_options) who is also a Pods administrator. Pods’ own permission applies to each Pod and field, and WordPress’s read or edit permission to each record.
  • Pods: public post-type Pods with meta storage and ordinary post permissions. Table storage, taxonomy, user, comment and settings Pods answer unsupported_pod.
  • Fields: text, paragraph, number (whole numbers, no decimals) and boolean, not repeatable. Other fields are listed with writable: false and their values are not returned.
OperationWhat it does
statusPods version, storage (post/meta) and the supported field types
list-podsSupported Pods with their version, paged
get-podOne Pod by pod name, with its fields and version
list-fieldsA Pod’s fields, paged, each with writable
list-recordsA Pod’s records (title and status), paged, limited to records the user may read
get-recordOne record by id, with its supported field values and version

list-records covers Pods with up to 5,000 records; a larger Pod answers query_too_large, and records are read with get-record.

Every write needs confirm: true; dry_run: true validates first.

OperationWhat it does
create-podpod name (2 to 20 characters), label and 1 to 20 fields, each { name, label, type }
update-pod-labelChange the Pod’s label, with the Pod’s version
create-recordA draft with title and 1 to 20 values, each { name, value }, authored by the connected user
update-recordChange 1 to 20 values on a record, with the record’s version
  • Pod and field names start with a lowercase letter and use a-z, 0-9 and _. Reserved names, existing post types or taxonomies, and the prefixes wp_, emcp_, elementor, acf_ and _ are refused (protected_slug). Field names cannot be id, name, title, content, status, slug, author, date or start with post_ (invalid_field).
  • Values must match the field: an integer for number, true or false for boolean, plain text without HTML up to 20,000 characters for text and paragraph (invalid_value). Each field can appear once per call (unsupported_field).
  • A field stored in more than one meta row cannot be edited (unsupported_field).
  • A schema or record changed since your read answers conflict.
  • New Pods and records are read back after saving. If a hook changed the result, the answer is partial_write with the IDs created, and nothing is deleted automatically.

Label and value edits can be undone from History, with a conflict check. An undo whose Pod fields changed since answers schema_changed, even with force. Creating a Pod or a record is recorded as irreversible with the created IDs: removing them automatically could take later content with it, so remove them in Pods if needed.