一个用于 Gravity Forms 的 Model Context Protocol (MCP) 服务器。通过任何兼容 MCP 的客户端与您的 WordPress 表单、数据源和条目进行交互。
由 GravityKit 为 Gravity Forms 社区构建。
克隆仓库
git clone https://github.com/GravityKit/GravityMCP.git
cd GravityMCP
npm install
设置环境
cp .env.example .env
配置凭证 在 .env 文件中:
GRAVITY_FORMS_CONSUMER_KEY=your_key_here
GRAVITY_FORMS_CONSUMER_SECRET=your_secret_here
GRAVITY_FORMS_BASE_URL=https://yoursite.com
本地开发(Laravel Valet、MAMP 等):
# 如果使用自签名证书,请添加此行
MCP_ALLOW_SELF_SIGNED_CERTS=true
生成 API 凭证 在 WordPress 中:
添加到 Claude Desktop
编辑 ~/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 - 列出表单,支持过滤和分页gf_get_form - 获取完整表单配置gf_create_form - 创建带有字段的新表单gf_update_form - 更新现有表单gf_delete_form - 删除表单(需要 ALLOW_DELETE=true)gf_validate_form - 验证表单数据gf_list_entries - 使用高级过滤器搜索条目gf_get_entry - 获取特定条目详情gf_create_entry - 创建新条目gf_update_entry - 更新现有条目gf_delete_entry - 删除条目(需要 ALLOW_DELETE=true)gf_add_field - 添加字段,支持智能定位gf_update_field - 更新字段,检查依赖关系gf_delete_field - 删除字段,支持级联选项gf_list_field_types - 列出可用字段类型gf_submit_form_data - 提交表单,包含完整处理gf_validate_submission - 验证而不提交gf_list_feeds - 列出所有插件数据源gf_get_feed - 获取特定数据源配置gf_list_form_feeds - 列出特定表单的数据源gf_create_feed - 创建新的插件数据源gf_update_feed - 更新现有数据源gf_patch_feed - 部分更新数据源属性gf_delete_feed - 删除插件数据源await 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: '电子邮件地址',
isRequired: true
}
});
await mcp.call('gf_submit_form_data', {
form_id: 1,
input_1: "John Doe",
input_2: "john@example.com",
input_3: "消息内容"
});
GRAVITY_FORMS_CONSUMER_KEY - API 消费者密钥GRAVITY_FORMS_CONSUMER_SECRET - API 消费者秘密GRAVITY_FORMS_BASE_URL - WordPress 站点 URLGRAVITY_FORMS_ALLOW_DELETE=false - 启用删除操作GRAVITY_FORMS_TIMEOUT=30000 - 请求超时时间(毫秒)GRAVITY_FORMS_DEBUG=false - 启用调试日志MCP_ALLOW_SELF_SIGNED_CERTS=false - 允许自签名 SSL 证书(仅限本地开发)服务器支持双环境配置,以确保在不影响生产数据的情况下进行测试。
在 .env 文件中添加测试站点凭据,与生产凭据并列:
# 生产/实时站点
GRAVITY_FORMS_CONSUMER_KEY=ck_live_key
GRAVITY_FORMS_CONSUMER_SECRET=cs_live_secret
GRAVITY_FORMS_BASE_URL=https://www.yoursite.com
# 测试/暂存站点(推荐用于安全测试)
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
# 启用测试模式(可选)
GRAVITY_MCP_TEST_MODE=true
当使用测试配置时:
# 验证测试环境配置
GRAVITY_MCP_TEST_MODE=true npm run check-env
# 在测试站点上创建测试数据(需要测试凭据)
npm run setup-test-data
# 对测试站点运行所有测试(自动检测测试凭据)
npm test
# 使用 MCP Inspector 进行交互式测试(测试模式)
GRAVITYMCP_TEST_MODE=true npm run inspect
# 对测试站点运行特定测试套件
NODE_ENV=test npm run test:forms
NODE_ENV=test npm run test:entries
NODE_ENV=test npm run test:submissions
当以下任一条件满足时,服务器会自动使用测试配置:
GRAVITYMCP_TEST_MODE=trueNODE_ENV=test服务器包含多个安全机制,防止意外污染生产数据:
setup-test-data 脚本默认失败--force-production 标志GRAVITY_FORMS_DEBUG=true 以获得详细日志# 运行所有测试
npm run test:all
# 运行特定测试套件
npm run test:forms
npm run test:entries
npm run test:field-operations
# 使用实时 API 运行测试(需要凭据)
npm test
npm run check-env 验证凭据如果您正在使用带有自签名 SSL 证书的本地开发环境(如 Laravel Valet、MAMP、Local WP 等),可能会遇到身份验证错误。要解决此问题:
在 .env 文件中添加:
MCP_ALLOW_SELF_SIGNED_CERTS=true
⚠️ 安全警告:仅在本地开发环境中禁用 SSL 证书验证。切勿在生产环境中使用此设置!
MCP_ALLOW_SELF_SIGNED_CERTS=true 已设置启用详细日志:
GRAVITY_FORMS_DEBUG=true
GPL-2.0 许可证 - 详情见 LICENSE 文件。
我们欢迎来自 Gravity Forms 社区的贡献!无论您是构建插件、管理表单还是与其他服务集成,您的见解和代码贡献都能帮助所有人。
npm run test:all 验证一切正常此仓库使用 GitHub Actions,在标记新版本时自动发布到 npm:
package.json 中的版本git tag v1.0.4 && git push origin v1.0.4维护人员注意:确保在仓库设置中配置了 NPM_TOKEN 秘密,以便自动发布能正常工作。
对于插件开发者:
对于表单构建者:
对于所有人:
您的贡献有助于让 Gravity Forms 自动化对所有人来说都更好。让我们一起打造一些伟大的东西!