mcpField
F
formfurrow

formfurrow

本地服务
github.com/CloudCorpRecords开发工具01 周前更新

关于 formfurrow

formfurrow 是 FurrowForms 的本地桥接工具,供团队管理客户、项目、表单和提交记录。它将调用转发到托管服务,不在本地保存表单数据,并提供命令行访问方式。

主要功能

  1. 01管理团队、客户和项目
  2. 02创建和更新表单
  3. 03读取表单提交记录
  4. 04获取框架嵌入代码
  5. 05配置并测试项目 Webhook
  6. 06通过命令行调用各项工具

适用场景

  1. 01整理客户项目及其表单
  2. 02查看收到的表单提交
  3. 03将表单嵌入网站
  4. 04将新提交发送到项目 Webhook

MCP 相关

它将捕获的 FurrowForms 工具集作为本地 MCP 服务提供,并将工具调用转发至托管 MCP 端点。同一组工具也可通过命令行调用。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"cloudcorprecords-formfurrow": {
"command": "npx",
"args": [
"-y",
"@reneturcios/formfurrow"
]
}
}
}
启动命令npx -y @reneturcios/formfurrow

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npm@reneturcios/formfurrow0.1.0
ocighcr.io/cloudcorprecords/formfurrow:0.1.0

工具

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。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。