关于 formfurrow
formfurrow 是 FurrowForms 的本地桥接工具,供团队管理客户、项目、表单和提交记录。它将调用转发到托管服务,不在本地保存表单数据,并提供命令行访问方式。
主要功能
- 01管理团队、客户和项目
- 02创建和更新表单
- 03读取表单提交记录
- 04获取框架嵌入代码
- 05配置并测试项目 Webhook
- 06通过命令行调用各项工具
适用场景
- 01整理客户项目及其表单
- 02查看收到的表单提交
- 03将表单嵌入网站
- 04将新提交发送到项目 Webhook
MCP 相关
它将捕获的 FurrowForms 工具集作为本地 MCP 服务提供,并将工具调用转发至托管 MCP 端点。同一组工具也可通过命令行调用。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
26收录的工具列表 · 更新于 1 周前
此工具无需参数。
详细介绍
formfurrow
formfurrow 是一个小型本地桥接服务,用于连接托管的 FurrowForms MCP 服务。FurrowForms 是一款表单后端,可供你端到端使用:将工作整理到团队、客户和项目中, 在这些项目下创建表单,读取收到的提交内容,获取所选框架对应的表单嵌入代码片段,并配置项目的 Webhook,以便新提交内容到达时推送到你自己的端点。
该桥接服务不会保留任何表单数据。它会在本地提供上游服务的工具列表,该列表与从在线端点捕获的内容完全一致,并将每次工具调用转发到上游,原样返回结果。此处捕获的工具集是一个经过标注的子集:上游的套餐升级漏斗工具(create_upgrade_link)已按计划省略,因此此软件包不包含付款或套餐升级工具。其余工具均用于管理调用方自己的表单后端中的工作区。
工具
账户和团队:
list_teams— 列出调用方的团队。无必填参数。update_team— 更新团队。必填:name。get_account— 读取调用方的账户。无必填参数。update_account— 更新账户。无必填参数。
客户:
list_clients— 列出客户。无必填参数。get_client— 读取一个客户。必填:client_id。create_client— 创建客户。必填:name、slug。update_client— 更新客户。必填:client_id。archive_client— 归档客户。必填:client_id。
项目:
list_projects— 列出项目。无必填参数。get_project— 读取一个项目。必填:project_id。create_project— 创建项目。必填:name、slug、client_id。update_project— 更新项目。必填:project_id。rotate_project_inbox— 轮换项目的收件箱。必填:project_id。archive_project— 归档项目。必填:project_id。
表单和提交内容:
list_forms— 列出表单。无必填参数。get_form— 读取一个表单。必填:form_id。create_form— 创建表单。必填:name、slug、project_id。update_form— 更新表单。必填:form_id。archive_form— 归档表单。必填:form_id。list_submissions— 列出提交内容。无必填参数。get_submission— 读取一条提交内容。必填:submission_id。get_snippet— 获取表单的嵌入代码片段。必填:form_id、framework。
Webhook 和设置:
upsert_project_webhook— 注册或替换项目的 Webhook。必填:webhook_url、project_id。test_webhook— 为项目发送测试 Webhook。必填:project_id。bootstrap_site— 初始化网站。必填:name、slug。
每个工具的完整输入架构(包括可选字段)都会在 MCP tools/list
响应中原样提供。
配置
FURROWFORMS_MCP_URL(可选)— 覆盖 上游端点。默认为https://api.furrowforms.com/mcp。(此覆盖钩子 是本次重建自行标注的内容。)FURROWFORMS_API_KEY(可选)— 设置后,每个 上游请求都会携带Authorization: Bearer <key>标头。未设置时, 不会发送密钥标头。(Authorization 标头名称 由注册记录固定;Bearer 方案和此转发方式均为标注的重建内容, 原始工具集是在未提供密钥的情况下捕获的。)
转发机制
首次调用工具时,客户端会与上游建立一个可流式传输的
HTTP 会话:发送 JSON-RPC initialize
请求(protocolVersion 为 2025-03-26,clientInfo 名称为
formfurrow),然后发送 notifications/initialized
通知,接着发送携带调用方原样参数的 tools/call 请求。上游
通过 initialize 响应返回 Mcp-Session-Id 标头后,
该值会随会话的后续每个请求发送;会话会在进程的整个生命周期内复用。
响应可能以纯 JSON 或服务器发送事件的形式到达;
两种形式都会读取。
成功的上游结果会原样传递,
包括上游设置的任何 isError 标志。
失败情况——JSON-RPC 错误、非 2xx 状态、无法读取的响应,或
无法完成的请求——会作为 isError 结果返回,文本以
formfurrow error: 开头(此呈现方式是本次重建自行添加的标注)。
CLI
每个工具也都是一个子命令,接受一个 JSON 参数 字符串:
npx @reneturcios/formfurrow list_teams
npx @reneturcios/formfurrow create_client '{"name":"Acme","slug":"acme"}'
npx @reneturcios/formfurrow get_snippet '{"form_id":"frm_1","framework":"react"}'
npx @reneturcios/formfurrow --version
退出代码:成功时为 0,结果为 isError 时为 1,
用法错误时为 2。
MCP 服务
npx -y @reneturcios/formfurrow mcp
MCP 客户端配置:
{
"mcpServers": {
"formfurrow": {
"command": "npx",
"args": ["-y", "@reneturcios/formfurrow", "mcp"]
}
}
}
Docker
docker run -i ghcr.io/cloudcorprecords/formfurrow
docker run --rm ghcr.io/cloudcorprecords/formfurrow --version
容器的默认命令是 mcp,因此第一种形式是 stdio MCP 服务;其他参数
会照常传递给 CLI。
开发
npm install
npm run build
npm test
npm run dev
测试套件完全针对一个桩 JSON-RPC 上游运行——不会发起实时网络调用。
许可证
MIT — 参见 LICENSE。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。