A custom Model Context Protocol (MCP) server endpoint that exposes WPForms abilities directly to AI agents (like Cursor, GitHub Copilot, or Antigravity) via the WordPress REST API.
With the introduction of the WordPress Abilities API in WP 6.9 and WPForms 1.10.2+, WPForms enabled AI form generation. I developers prefer a direct, local, or self-hosted MCP connection without middleman services (similar to existing Elementor MCP adapters).
This plugin acts as a direct bridge. It maps the internal WPForms abilities (wpforms/create-form, wpforms/describe-editing-schema, etc.) into strict MCP-compliant JSON-RPC endpoints, handling WordPress's specific JSON schema validation automatically.
This is a developer-focused tool. You should already be familiar with configuring MCP clients and WordPress Application Passwords.
- WordPress 6.9+ (Requires the WP Abilities API)
- WPForms 1.10.2+ (Pro version may be required for write abilities)
- mcp-adapter plugin installed and active.
- An Administrator Application Password.
- Install and activate this plugin on your WordPress site.
- In your WordPress dashboard, navigate to WPForms » Tools » AI MCP and ensure Enable MCP Write Access is toggled ON. If this is off, Write abilities will be blocked by the core plugin.
- Connect your AI agent to the custom endpoint using Basic Auth:
Endpoint: https://your-site.com/wp-json/mcp/wpforms-tools-server
Auth: Basic <base64_encoded_username:application_password>
This endpoint wraps WordPress's internal rest_do_request(). It does not bypass any WPForms security.
- Standard MCP requests (tools/list, tools/call) are translated and routed natively.
- Read-only abilities gracefully fall back to GET requests.
- Nested JSON payloads are passed directly to the WordPress REST schema validator to prevent arbitrary object/array validation failures.
- Inputs are sanitized to prevent path traversal via the internal REST router.
This is provided as-is. I created this for my own site-building workflows to allow direct IDE-to-WordPress form generation. I typically use this during development and deactivate it before handing a site off to a client.
I am not actively providing support or maintenance for this repository. Pull requests are welcome.