Creating a User for MCP Access

Overview

Your Gravity Forms MCP lets AI agents read and manage your forms and entries. The WordPress user account an agent connects with matters as much as the tools it’s given. This article covers how to set up dedicated, least-privilege accounts for AI agents using the MCP, so each has only the access required by its task.

How Access Works

Every MCP call has to pass two separate gates:

The site-wide tool allowlist is located in Forms → Settings → MCP. This is a master switch plus a checkbox for each Read and Write tool, and it applies the same way to every user on the site.

The second is the connecting user’s permissions. Each tool the MCP exposes checks what that WordPress account is allowed to do before it runs.

Note: Because the allowlist is site-wide, it cannot restrict one agent while permitting another. The user account is your only per-agent control, so the setup below focuses on giving each agent its own scoped account

Create one dedicated user per agent.
Don’t connect an agent to another user’s account, as it makes auditing hard and selective revocation impossible.

When creating custom roles, start from the Subscriber role.
The MCP only requires the base read capability, so the Subscriber role is the right capability set to start. Add Gravity Forms capabilities on top of it individually.

Create a separate Application Password for each agent.

Turn on logging.
The MCP records every tool execution, including the user who ran it, and logs permission denials. You can enable logging under Forms → Settings → Logging.

Agent Account Capabilities

These grants defeat the purpose of scoping an agent’s access, either directly or by letting it change its own permissions:

CapabilityWhy is it not recommended
gform_full_accessPasses every Gravity Forms capability check.
Administrator rolePasses every Gravity Forms capability check and risk outside Gravity Forms entirely.
Super Admin (multisite)Passes every check on every subsite.
gravityforms_edit_settingsGrants write access to the MCP settings that define the agent’s own limits.
unfiltered_htmlTurns off HTML sanitization.

Capability Map

Use this to work out exactly which capability a given tool needs before granting it. Tool names match what you’ll see under Forms → Settings → MCP.

CapabilityGrants Permission
gravityforms_view_entriesGet Entry, Search Entries, Count Entries. Also required, alongside other capabilities, for List Entry Notes, Add Entry Note, and Send Notifications.
gravityforms_edit_entriesCreate Entry, Update Entry, Submit Form, Validate Submission, Send Notifications.
gravityforms_delete_entriesDelete Entries. Also required to trash or restore entries, and to create an entry with a trash status.
gravityforms_edit_formsList Forms, Get Form, Analyze Form Logic, Update Form; List Feeds, Create Feed, Update Feed, and Delete Feed (plus the owning add-on’s own form-settings capability); all of List/Create/Update/Delete Notification and List/Create/Update/Delete Confirmation; and List Field Types.
gravityforms_create_formCreate Form, Duplicate Form.
gravityforms_delete_formsDelete Form. Also required to trash, restore, or duplicate a trashed form.
gravityforms_view_entry_notes / gravityforms_edit_entry_notesList Entry Notes / Add Entry Note. Each also requires gravityforms_view_entries
gravityforms_view_settingsGet Gravity Forms Info. Add-on details in that tool additionally need gravityforms_view_addons or gravityforms_system_status

Suggested Profiles

Three common agent roles, and the minimum capabilities each one needs:

ProfileCapabilitiesFits
Reporting agentread, gravityforms_view_entries, gravityforms_view_settingsGet Entry, Search Entries, and Count Entries for known form IDs, plus Get Gravity Forms Info.
No writes. Can’t use List Forms or Get Form.
Form builderread, gravityforms_edit_forms,gravityforms_create_formCreate Form, Update Form, Duplicate Form, and full notification/confirmation management. Can use Delete Notification and Delete Confirmation (the default confirmation is protected).
Can’t use Delete Form. No entry access.
Data managerread, gravityforms_view_entries, gravityforms_edit_entriesCreate Entry, Update Entry, and Send Notifications.
No Delete Entries, no form design, and can’t use List Forms or Get Form.

Things to Know

There’s no read-only form capability.
List Forms, Get Form, and Analyze Form Logic all requires gravityforms_edit_forms, which also grants write access.

Withhold both delete capabilities by default.
gravityforms_delete_forms and gravityforms_delete_entries

Delete Form and Delete Entries are sent to the trash unless force: true is passed.

gravityforms_edit_forms includes Delete Notification and Delete Confirmation.
Leave those two unchecked in the allowlist if you don’t want a form-editing agent to delete them.

Feed access needs two capabilities.
List Feeds, Create Feed, Update Feed, and Delete Feed require gravityforms_edit_forms and the add-on own capability.

An agent only sees the tools its capabilities unlock.
A low-privilege account sees fewer tools than an admin on the same site. This is expected.

On multisite, roles are granted per subsite.
Any user without unfiltered_html, which includes every non-super-admin, gets HTML filtered on save in Create/Update Notification and Create/Update Confirmation. This is expected too.

Resources

Role and Capability Management

Logging and Debugging