Forms
New in v3.5.0. EMCP exposes eight WordPress form builders over MCP, each through the same two-dispatcher pattern: one Read tool, one Write tool. An AI agent can list your forms and fields, read and manage entries (submissions), and tune notifications and settings, without you spelling out each plugin’s quirks.
Contact Form 7 is free; the other seven are Pro:
| Plugin | Tools | Tier | Entries? |
|---|---|---|---|
| Contact Form 7 | cf7-read / cf7-write | Free | No (CF7 stores none) |
| WPForms | wpforms-read / wpforms-write | Pro | Yes, requires WPForms Pro |
| Gravity Forms | gravityforms-read / gravityforms-write | Pro | Yes |
| Fluent Forms | fluentforms-read / fluentforms-write | Pro | Yes |
| Ninja Forms | ninjaforms-read / ninjaforms-write | Pro | Yes |
| Formidable Forms | formidable-read / formidable-write | Pro | Yes |
| MetForm | metform-read / metform-write | Pro | Yes (Elementor-based) |
| SureForms | sureforms-read / sureforms-write | Pro | Yes (Gutenberg-based) |
Each pair registers only when its plugin is active, so a typical site with one form plugin sees exactly that plugin’s two tools.
Discover, then act
Section titled “Discover, then act”Every dispatcher takes an operation and an arguments object. Call a tool with no operation to get its catalog, then call again to run one:
// discoverfluentforms-read({})// → { mode: "read", operations: [ { operation: "list-forms", … }, { operation: "get-entry", … }, … ] }
// actfluentforms-read({ operation: "list-entries", arguments: { form_id: 3, limit: 20 } })fluentforms-read({ operation: "get-entry", arguments: { entry_id: 812 } })Operations
Section titled “Operations”Reads cover forms, fields, notifications and entries; writes manage settings/notifications and entries. Not every plugin supports every operation, the catalog each dispatcher returns is authoritative.
| Operation | What it does |
|---|---|
list-forms | All forms, id, title, field/entry counts |
get-form | One form: fields, notifications, settings |
list-notifications | A form’s email notifications (where the plugin has them) |
list-entries / get-entry | Submissions and their field values (entry-storing plugins) |
update-form-settings / update-notification | Tune form config / email notifications |
update-entry-status | Mark a submission read / spam / trash (where supported) |
delete-entry | Delete a submission, confirm: true required |
Contact Form 7 has no entries (it stores none), so it offers form + mail-template operations only. WPForms entry operations require WPForms Pro: on WPForms Lite they return a clear message; forms and notifications still work.
Safety by design
Section titled “Safety by design”- Reads on, writes off. Each
<plugin>-readis enabled by default; each<plugin>-writeships disabled: enable it under EMCP Tools → Tools → Plugins → Forms. - Entries are personal data. Reads of submissions are gated on the plugin’s own view-entries capability;
delete-entryrequires an explicitconfirm: trueon top of the write tool being enabled. - Only when active. A plugin’s pair doesn’t register unless that plugin is installed and active.
- No form-builder authoring. These tools read and manage forms + submissions, they don’t create form structure (that’s out of scope by design).
Worked example
Section titled “Worked example”// 1. list a form's recent submissionsgravityforms-read({ operation: "list-entries", arguments: { form_id: 28, limit: 10 } })
// 2. read onegravityforms-read({ operation: "get-entry", arguments: { entry_id: 5 } })
// 3. mark it spamgravityforms-write({ operation: "update-entry-status", arguments: { entry_id: 5, status: "spam" } })
// 4. delete it (irreversible, needs confirm)gravityforms-write({ operation: "delete-entry", arguments: { entry_id: 5, confirm: true } })In the admin
Section titled “In the admin”The dispatchers appear under EMCP Tools → Tools → Plugins → Forms, grouped as one section. Each plugin is a card with its two toggles, read (on) and write (off by default), listing the operations it covers. Toggles grey out with a hint when the plugin isn’t active.
Agent skill
Section titled “Agent skill”Pro bundles an emcp-plugins/forms Agent Skill that teaches a connected agent the whole model, the two-dispatcher pattern, per-plugin operation support, the entries/PII handling, and the confirm: true delete rule, so it drives any of the eight plugins correctly.