Gravity MCP
STDIOGravity Forms插件API集成MCP服务器
Gravity Forms插件API集成MCP服务器
A Model Context Protocol (MCP) server for Gravity Forms. Interact with your WordPress forms, feeds, and entries through any MCP-compatible client.
Built by GravityKit for the Gravity Forms community.
Clone the repository
git clone https://github.com/GravityKit/GravityMCP.git cd GravityMCP npm install
Set up environment
cp .env.example .env
Configure credentials in .env:
GRAVITY_FORMS_CONSUMER_KEY=your_key_here GRAVITY_FORMS_CONSUMER_SECRET=your_secret_here GRAVITY_FORMS_BASE_URL=https://yoursite.com
Generate API credentials in WordPress:
Add to Claude Desktop
Edit ~/Library/Application Support/Claude/claude_desktop_config.json:
{ "mcpServers": { "gravitymcp": { "command": "node", "args": ["/path/to/GravityMCP/src/index.js"], "env": { "GRAVITY_FORMS_CONSUMER_KEY": "your_key", "GRAVITY_FORMS_CONSUMER_SECRET": "your_secret", "GRAVITY_FORMS_BASE_URL": "https://yoursite.com" } } } }
gf_list_forms    - List forms with filtering and paginationgf_get_form      - Get complete form configurationgf_create_form   - Create new forms with fieldsgf_update_form   - Update existing formsgf_delete_form   - Delete forms (requires ALLOW_DELETE=true)gf_validate_form - Validate form datagf_list_entries - Search entries with advanced filtersgf_get_entry    - Get specific entry detailsgf_create_entry - Create new entriesgf_update_entry - Update existing entriesgf_delete_entry - Delete entries (requires ALLOW_DELETE=true)gf_add_field        - Add fields with intelligent positioninggf_update_field     - Update fields with dependency checkinggf_delete_field     - Delete fields with cascade optionsgf_list_field_types - List available field typesgf_submit_form_data    - Submit forms with full processinggf_validate_submission - Validate without submittinggf_list_feeds       - List all add-on feedsgf_get_feed         - Get specific feed configurationgf_list_form_feeds  - List feeds for a specific formgf_create_feed      - Create new add-on feedsgf_update_feed      - Update existing feedsgf_patch_feed       - Partially update feed propertiesgf_delete_feed      - Delete add-on feedsawait mcp.call('gf_list_entries', { search: { field_filters: [ { key: "1.3", value: "John", operator: "contains" }, { key: "date_created", value: "2024-01-01", operator: ">=" } ], mode: "all" }, sorting: { key: "date_created", direction: "desc" } });
await mcp.call('gf_add_field', { form_id: 1, field_type: 'email', properties: { label: 'Email Address', isRequired: true } });
await mcp.call('gf_submit_form_data', { form_id: 1, input_1: "John Doe", input_2: "[email protected]", input_3: "Message content" });
GRAVITY_FORMS_CONSUMER_KEY    - API consumer keyGRAVITY_FORMS_CONSUMER_SECRET - API consumer secretGRAVITY_FORMS_BASE_URL        - WordPress site URLGRAVITY_FORMS_ALLOW_DELETE=false - Enable delete operationsGRAVITY_FORMS_TIMEOUT=30000      - Request timeout (ms)GRAVITY_FORMS_DEBUG=false        - Enable debug loggingThe server supports dual environment configuration to safely test without affecting production data.
Add test site credentials to your .env file alongside production credentials:
# Production/Live Site GRAVITY_FORMS_CONSUMER_KEY=ck_live_key GRAVITY_FORMS_CONSUMER_SECRET=cs_live_secret GRAVITY_FORMS_BASE_URL=https://www.yoursite.com # Test/Staging Site (recommended for safe testing) GRAVITY_FORMS_TEST_CONSUMER_KEY=ck_test_key GRAVITY_FORMS_TEST_CONSUMER_SECRET=cs_test_secret GRAVITY_FORMS_TEST_BASE_URL=https://staging.yoursite.com # Enable test mode (optional) GRAVITY_MCP_TEST_MODE=true
When using test configuration:
# Verify test environment configuration GRAVITY_MCP_TEST_MODE=true npm run check-env # Create test data on test site (requires test credentials) npm run setup-test-data # Run all tests against test site (auto-detects test credentials) npm test # Interactive testing with MCP Inspector (test mode) GRAVITYMCP_TEST_MODE=true npm run inspect # Run specific test suites against test site NODE_ENV=test npm run test:forms NODE_ENV=test npm run test:entries NODE_ENV=test npm run test:submissions
The server automatically uses test configuration when:
GRAVITYMCP_TEST_MODE=true is setNODE_ENV=test is setThe server includes multiple safety mechanisms to prevent accidental production data contamination:
setup-test-data script will fail by default if test credentials aren't configured--force-production flag with warningsGRAVITY_FORMS_DEBUG=true for detailed logs# Run all tests npm run test:all # Run specific test suites npm run test:forms npm run test:entries npm run test:field-operations # Run with live API (requires credentials) npm test
npm run check-envEnable detailed logging:
GRAVITY_FORMS_DEBUG=true
GPL-2.0 License - see LICENSE file for details.
We welcome contributions from the Gravity Forms community! Whether you're building add-ons, managing forms, or integrating with other services, your insights and code contributions can help everyone.
npm run test:allThis repository uses GitHub Actions to automatically publish to npm when a new version is tagged:
package.jsongit tag v1.0.4 && git push origin v1.0.4Note for maintainers: Ensure the NPM_TOKEN secret is configured in the repository settings for automated publishing to work.
For Add-on Developers:
For Form Builders:
For Everyone:
Your contributions help make Gravity Forms automation better for everyone. Let's build something great together!