Token导航 LogoToken导航TokenDH.com
Form.io MCP Server logo
AI代理stdio官方级别未说明来源级核验

Form.io MCP Server

MCP Server

Form.io MCP Server是一个模型上下文协议服务器,使AI助手能够通过自然语言与Form.io API交互,创建、读取、更新和管理表单。

工具数

0

提示词数

0

GitHub Stars

0

资源数

0
TypeScriptClaude自然语言处理Claude DesktopClaudeWindsurfCline

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

fwextensions

提供方

fwextensions

最后核验

2026/5/17 20:20

运行时

Docker

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

docker run -p 44844:44844 \

详细介绍

Form.io MCP 服务器

一个模型上下文协议(MCP)服务器,使人工智能助手能够通过与Form.io的API交互,使用自然语言创建、读取、更新和管理表单。

特点/功能

  • 列出表单浏览您Form.io项目中的所有表单
  • 获取表单详情检索完整的表单模式和配置
  • 创建表单根据自然语言描述生成新表单
  • 更新表格修改现有表单及其组件
  • 删除表单从您的项目中移除表单
  • 组件构建器用于创建结构良好的Form.io组件的辅助工具
  • 安全护栏MCP只能修改其创建的表单,从而保护现有表单免受意外更改

先决条件

  • Node.js >= 18.0.0
  • 一个Form.io账户和项目
  • 表单.io API凭据(API密钥或JWT令牌)

安装

  1. 克隆或下载此存储库
  2. 安装依赖项:
npm install
  1. 构建TypeScript代码:
npm run build

配置

设置以下环境变量:

export FORMIO_PROJECT_URL="https://your-project.form.io"
export FORMIO_API_KEY="your-api-key"
# OR use JWT token instead:
# export FORMIO_TOKEN="your-jwt-token"

获取Form.io凭证

  1. 登录您的Form.io账户,网址为:https://portal.form.io
  2. 导航到您的项目
  3. 前往设置 → API密钥以生成API密钥
  4. 或者,使用您的用户令牌进行JWT(JSON Web Token)认证

运输方式

此服务器支持两种传输模式:

  1. STDIO 传输(默认) - 对于Claude Desktop及类似的基于进程的客户端
  2. HTTP传输 - 对于基于HTTP的MCP客户端和远程访问

______________________________________________________________________

STDIO 传输(默认)

与Claude桌面版的使用

将此服务器添加到您的Claude Desktop配置文件中:

MacOS(麦金塔操作系统)~/Library/Application Support/Claude/claude_desktop_config.json Windows%APPDATA%\Claude\claude_desktop_config.json

MacOS/Linux 示例:

{
  "mcpServers": {
    "formio": {
      "command": "node",
      "args": ["/absolute/path/to/formio-mcp/dist/index.js"],
      "env": {
        "FORMIO_PROJECT_URL": "https://your-project.form.io",
        "FORMIO_API_KEY": "your-api-key-here"
      }
    }
  }
}

Windows 示例:

{
  "mcpServers": {
    "formio": {
      "command": "node",
      "args": ["C:\\path\\to\\formio-mcp\\dist\\index.js"],
      "env": {
        "FORMIO_PROJECT_URL": "https://your-project.form.io",
        "FORMIO_API_KEY": "your-api-key-here"
      }
    }
  }
}

注: 将路径替换为你克隆此仓库的绝对路径。

更新配置后,重启Claude桌面版。

______________________________________________________________________

HTTP传输

为什么使用HTTP传输?

  • 远程访问在网络可访问的机器上托管服务器
  • 多客户端多个客户端可以连接到同一个服务器实例
  • 网页集成与基于网络的MCP客户端更易集成
  • 调试可以使用标准的HTTP工具(如curl、Postman)进行测试

设置

1. 生成API密钥

openssl rand -hex 32

2. 配置环境变量

创建一个 .env 文件或设置环境变量:

# Form.io Configuration
FORMIO_PROJECT_URL=https://your-project.form.io
FORMIO_API_KEY=your-formio-api-key

# MCP HTTP Server Configuration
MCP_HTTP_PORT=44844
MCP_HTTP_HOST=localhost
MCP_BASE_PATH=/mcp/v1

# Authentication
MCP_API_KEYS=your-generated-api-key-here
MCP_REQUIRE_AUTH=true

# CORS (optional - supports wildcards)
MCP_CORS_ORIGINS=http://localhost:*,https://yourdomain.com

3. 启动服务器

npm run start:http

你应该看到类似这样的输出:

[MCP] Starting in HTTP mode...
[MCP] HTTP configuration loaded: { port: 44844, host: 'localhost', ... }
[MCP] Form.io MCP Server (HTTP) listening on http://localhost:44844
[MCP] Endpoints:
  - Health:   http://localhost:44844/mcp/v1/health
  - Info:     http://localhost:44844/mcp/v1/info
  - SSE:      http://localhost:44844/mcp/v1/sse
  - Messages: http://localhost:44844/mcp/v1/messages
[MCP] Server ready to accept connections

HTTP客户端配置

注: 截至目前,Claude Desktop 仅支持 STDIO 传输方式。HTTP 传输方式旨在用于:

  • 支持HTTP的MCP客户端(如Windsurf、Cline或自定义实现)
  • 远程服务器部署
  • 多用户/多客户端场景
  • 基于Web的MCP客户端集成

通用HTTP客户端配置

对于支持通过SSE进行HTTP传输的MCP客户端:

{
  "mcpServers": {
    "formio": {
      "url": "http://localhost:44844/mcp/v1",
      "transport": "http+sse",
      "headers": {
        "Authorization": "Bearer your-generated-api-key-here"
      }
    }
  }
}

风帆冲浪配置示例

如果使用支持MCP的Windsurf或类似集成开发环境(IDE):

{
  "mcpServers": {
    "formio": {
      "type": "http",
      "url": "http://localhost:44844/mcp/v1",
      "headers": {
        "Authorization": "Bearer your-generated-api-key-here"
      }
    }
  }
}

对于Claude Desktop用户: 继续使用STDIO传输方式(见上文)。未来版本可能会添加对HTTP传输方式的支持。

HTTP API 接口端点

公共端点(无需认证)

GET(在中文中,通常直接使用英文原词,不进行翻译,若需意译,可理解为“获取”或“取得”,但具体含义需根据上下文确定) /mcp/v1/health - 健康检查

curl http://localhost:44844/mcp/v1/health

回答:

{
  "status": "ok",
  "timestamp": "2025-10-09T12:00:00.000Z",
  "server": "formio-mcp-server",
  "transport": "http+sse",
  "connections": 0
}

GET /mcp/v1/info - 服务器信息

curl http://localhost:44844/mcp/v1/info

受保护的终端点(需要身份验证)

GET(获取) /mcp/v1/sse - 建立SSE连接

curl -H "Authorization: Bearer your-api-key" \
     -N http://localhost:44844/mcp/v1/sse

这会建立一个长期连接以接收响应。服务器将发送:

  • 初始 connected 带有(或:与……一起的)活动 connectionId
  • 每30秒发送一次心跳评论
  • 您请求的响应事件

POST(邮寄) /mcp/v1/messages - 发送 JSON-RPC 请求

curl -X POST http://localhost:44844/mcp/v1/messages \
     -H "Authorization: Bearer your-api-key" \
     -H "Content-Type: application/json" \
     -H "X-Connection-ID: your-connection-id" \
     -d '{
       "jsonrpc": "2.0",
       "id": 1,
       "method": "tools/list",
       "params": {}
     }'

HTTP工作流程

  1. 建立SSE连接客户端连接到 /mcp/v1/sse 并收到一个 connectionId
  2. 发送请求客户端发送JSON-RPC请求到 /mcp/v1/messages 带着/与……一起 X-Connection-ID 头球
  3. 接收回复服务器通过SSE连接发送响应
  4. 保持连接(或保持活动)服务器发送心跳评论以保持连接

安全

  • 认证所有受保护的终端点均需要 Authorization: Bearer 头球
  • CORS(跨源资源共享)支持通配符的可配置源
  • 速率限制可配置的请求限制(默认:每分钟100个请求)
  • 安全头部(或安全标头)头盔中间件添加标准安全头
  • HTTPS在生产环境中使用反向代理(如nginx、Apache)来处理HTTPS

配置选项

所有HTTP设置都可以通过环境变量进行配置:

变量默认值描述
MCP_HTTP_PORT44844监听端口
MCP_HTTP_HOSTlocalhost要绑定的主机
MCP_BASE_PATH/mcp/v1 API终端节点的基础路径
MCP_API_KEYS 逗号分隔的API密钥
MCP_REQUIRE_AUTHtrue启用/禁用身份验证
MCP_CORS_ORIGINShttp://localhost:*允许的CORS来源
MCP_RATE_LIMIT_WINDOW_MS60000速率限制窗口(毫秒)
MCP_RATE_LIMIT_MAX100每个窗口的最大请求数
MCP_SSE_HEARTBEAT_MS30000SSE 心跳间隔(毫秒)
MCP_SSE_TIMEOUT_MS300000SSE 连接超时(毫秒)
MCP_MAX_PREVIEW_CONNECTIONS100最大并发预览连接数
MCP_PREVIEW_IDLE_TIMEOUT300000预览连接空闲超时(毫秒)
MCP_UPDATE_DEBOUNCE_INTERVAL500更新通知防抖(毫秒)

部署

本地开发

MCP_API_KEYS=test-key-123 npm run start:http

使用 systemd 的生产环境

创造 /etc/systemd/system/formio-mcp.service

[Unit]
Description=Form.io MCP Server
After=network.target

[Service]
Type=simple
User=www-data
WorkingDirectory=/opt/formio-mcp
ExecStart=/usr/bin/node /opt/formio-mcp/dist/index.js --http
Environment="FORMIO_PROJECT_URL=https://your-project.form.io"
Environment="FORMIO_API_KEY=your-formio-key"
Environment="MCP_API_KEYS=your-secure-key"
Environment="MCP_HTTP_HOST=0.0.0.0"
Environment="MCP_HTTP_PORT=44844"
Restart=always

[Install]
WantedBy=multi-user.target

然后:

sudo systemctl enable formio-mcp
sudo systemctl start formio-mcp
sudo systemctl status formio-mcp

使用 Docker

FROM node:18-alpine
WORKDIR /app
COPY package*.json ./
RUN npm ci --only=production
COPY dist ./dist
EXPOSE 44844
CMD ["node", "dist/index.js", "--http"]

构建并运行:

docker build -t formio-mcp .
docker run -p 44844:44844 \
  -e FORMIO_PROJECT_URL=https://your-project.form.io \
  -e FORMIO_API_KEY=your-key \
  -e MCP_API_KEYS=your-mcp-key \
  formio-mcp

______________________________________________________________________

安全与护栏

为了保护您现有的Form.io表单免受意外修改,此MCP服务器实施了严格的权限控制:

MCP 创建的表单

当MCP创建表单时,它会自动:

  • 在前面添加 [MCP] 在表单标题中(例如,将“联系表单”修改为“\[MCP\] 联系表单”)
  • 在前面添加 mcp- 到表单路径(例如,“contact”变为“mcp-contact”)

MCP能做什么

列出并阅读所有表格 - MCP可以查看项目中的任何表单,包括在MCP外部创建的表单 ✅ 创建新表单 - 所有创建的表单将自动添加前缀 ✅ 更新由MCP创建的表单 - 只有带有MCP前缀的表单可以修改 ✅ 删除MCP创建的表单 - 只有带有MCP前缀的表单才能被删除

MCP无法做到的事情

❌(表示错误或不正确的意思,无具体对应中文词汇,通常可理解为“错误”或根据上下文翻译为“不对”、“不正确”等) 修改非MCP表单 - 尝试更新没有MCP前缀的表单将被拒绝 ❌(这个符号在中文中通常表示“错误”或“不正确”的意思,但直接翻译时,由于其本身是一个图形符号,没有具体的中文对应词汇,所以保持原样或解释其含义即可。) 删除非MCP表单 - 尝试删除没有MCP前缀的表单将被拒绝

识别

如果满足以下任一条件,则该表单被视为“由MCP创建”:

  • 标题以……开头 [MCP]
  • 这条路径以……开始 mcp-

如果您尝试更新或删除一个非MCP表单,您将收到一条明确的错误消息,说明此操作不被允许。

可用工具

list_forms

列出你的Form.io项目中的所有表单。

参数:

  • limit (可选):要返回的表单最大数量(默认:100)
  • skip (可选):分页时要跳过的表单数量(默认:0)

get_form

获取特定表单的详细信息。

参数:

  • formId (必填):表单ID或路径

create_form

根据模式创建一个新的表单。

参数:

  • title (必填):可读形式的标题
  • name (必填):机器名称(小写,无空格)
  • path (必填):URL路径(小写,无空格)
  • components (必需):表单组件的数组
  • display (可选):显示类型('表单'、'向导' 或 'PDF')
  • type (可选):表单类型('form' 或 'resource')

update_form

更新现有表单。

参数:

  • formId (必填):要更新的表单ID
  • updates (必需):包含要更新字段的对象

delete_form

从项目中删除一个表单。

参数:

  • formId (必填):要删除的表单ID

create_form_component

辅助工具,用于创建结构良好的表单组件。

参数:

  • type (必填):组件类型(文本框、电子邮件、数字等)
  • key (必需):唯一组件键
  • label (必填):显示标签
  • required (可选):该字段是否为必填项
  • placeholder (可选):占位符文本
  • description (可选):帮助文本
  • defaultValue (可选):默认值
  • properties (可选):特定组件的额外属性

get_form_preview_url

为表单生成一个可通过浏览器访问的预览URL。此工具返回一个完整的URL,可以在网页浏览器中打开,以查看应用默认样式的渲染后的表单。

参数:

  • formId (必填):用于生成预览URL的表单ID或路径

返回值: 预览URL的格式为: http://{host}:{port}{basePath}/form/{formPath}/{formId}

示例回复:

Form preview URL: http://localhost:44844/mcp/v1/form/contact/507f1f77bcf86cd799439011

Form: Contact Form
Path: contact
ID: 507f1f77bcf86cd799439011

表单预览功能

Form.io MCP 服务器包含一个基于网页的表单预览功能,允许您在浏览器中可视化表单。这在开发过程中特别有助于快速验证表单的结构、布局和外观。

它是如何工作的

  1. 创建或识别一种形式 使用MCP工具
  2. 生成预览URL 使用 get_form_preview_url 工具
  3. 在浏览器中打开该网址 查看渲染后的形式

预览页面从您的 Form.io 服务器获取表单 JSON 数据,并使用官方的 Form.io JavaScript 库以默认样式进行渲染。

URL 格式

预览URL遵循以下格式:

http://{host}:{port}{basePath}/form/{formPath}/{formId}

示例:

http://localhost:44844/mcp/v1/form/mcp-contact/507f1f77bcf86cd799439011

特点/特性

  • 交互式预览表单完全支持交互操作——您可以填写字段、触发验证,并查看组件的行为
  • 默认样式表单使用Form.io的默认CSS进行渲染,呈现出简洁专业的外观
  • 无需认证预览端点是公开可访问的,便于共享(在HTTP模式下运行时)
  • 错误处理清除因表单缺失或API故障而显示的错误页面

示例用法

与Claude桌面版(STDIO模式)一起使用:

You: "Create a contact form with name, email, and message fields"
Claude: [Creates the form]
You: "Generate a preview URL for this form"
Claude: [Returns preview URL]
You: [Open the URL in your browser to see the form]

在HTTP模式下使用:

# 1. Start the server in HTTP mode
npm run start:http

# 2. Create a form via MCP tools
# 3. Call get_form_preview_url tool with the form ID
# 4. Open the returned URL in your browser

预览行为

  • 表单交互所有表单组件都是交互式且功能性的
  • 验证客户端验证规则已启用,并将显示错误信息
  • 提交在预览模式下,表单提交功能已禁用 - 点击提交将显示一条警告信息
  • 响应式的预览页面适应不同屏幕尺寸

安全考虑事项

公共访问当以HTTP模式运行时,预览端点被有意设置为公开(无需身份验证),以便轻松共享表单预览。这意味着:

  • ✅ 任何拥有预览URL的人都可以查看表单结构
  • ✅ 表单不包含敏感数据,仅包含结构和配置
  • ❌ 在预览模式下,表单提交功能已禁用
  • 根据上面的信息,执行如下指令:

重要的预览URL会暴露您表单的结构(字段名称、验证规则、布局)。请仅与可信赖的方共享预览URL。预览功能不会暴露任何提交的数据,也不允许对表单进行修改。

实时更新

当通过MCP服务器修改表单时,预览页面会自动刷新,无需手动重新加载页面。这实现了无缝的实时编辑体验,使得通过AI工具所做的更改能够立即在浏览器中显示。

工作原理:

  1. 当你打开表单预览时,页面会建立一个到MCP服务器的服务器发送事件(SSE)连接
  2. 当你通过MCP工具修改表单(创建、更新或删除)时,服务器会通知所有已连接的预览页面
  3. 预览页面会自动刷新以显示最新更改

特点:

  • 自动更新无需手动刷新,更改即时显示
  • 视觉反馈表单更新时显示的简短通知
  • 重新连接如果连接丢失,则自动尝试重新连接,并采用指数退避策略
  • 连接状态视觉指示器显示连接状态(已连接/重新连接中/已断开)
  • 表单删除处理如果在预览打开时删除表单,将显示明确信息
  • 消抖(或去抖)多个快速更新被批量处理,以避免过度刷新

连接管理:

  • 如果网络中断,连接会自动重新建立
  • 在5次重新连接尝试失败后,将显示手动重新连接按钮
  • 空闲连接将在5分钟后自动关闭,以节省资源
  • 最多支持100个并发预览连接(可配置)

浏览器兼容性: 实时更新在所有支持服务器发送事件(SSE)的现代浏览器中均可正常工作:

  • Chrome/Edge 6及以上版本
  • Firefox 6及以上版本
  • Safari 5及以上版本
  • Opera 11+

如果服务器发送事件(SSE)不受支持,预览功能仍然可以使用,但更新将不是自动的——您需要手动刷新页面。

示例交互

在Claude Desktop中配置好后,您就可以使用自然语言与您的表单进行交互了:

创建一个联系表单:

“创建一个联系表单,包含姓名、电子邮件、电话号码和留言字段”

列出现有表单:

“在我的Form.io项目中显示所有表单”

更新表单:

“在联系表单中添加一个‘公司名称’字段”

获取表单详情:

“给我展示一下注册表的完整架构”

支持的组件类型

该服务器支持所有标准的Form.io组件类型:

  • 基础文本框、文本区域、数字、密码、复选框、下拉选择、单选按钮、按钮
  • 高级的电子邮件、网址、电话号码、标签、地址、日期时间、日期、时间、货币
  • 数据选择框、单选按钮、复选框
  • 布局HTML元素,内容,列,字段集,面板,表格,井(或良好区域,常用于网页布局中的整洁区块)
  • 特别文件,签名,调查

发展

以开发模式运行,自动重建:

npm run dev

该服务器使用stdio传输方式,并遵循自2025年年中起的MCP协议规范。

项目结构

formio-mcp/
├── src/
│   ├── index.ts              # Main MCP server implementation
│   ├── types/
│   │   └── formio.ts         # TypeScript type definitions
│   └── utils/
│       └── formio-client.ts  # Form.io API client
├── dist/                      # Compiled JavaScript output
├── package.json
├── tsconfig.json
└── README.md

故障排除

服务器无法连接:

  • 确保路径在 claude_desktop_config.json 是正确且绝对的
  • 检查构建是否成功:运行 npm run build
  • 验证环境变量是否设置正确

认证错误:

  • 确认您的API密钥或令牌是否有效
  • 检查项目URL是否正确(应包含https://)
  • 确保您的API密钥具有适当的权限

表单创建失败:

  • 验证组件模式是否格式正确
  • 检查表单名称和路径是否唯一
  • 确保提供了必填字段

实时更新功能无法正常工作:

  • 连接指示灯显示“已断开”检查MCP服务器是否正在运行且可访问
  • 更新未显示验证表单是通过MCP服务器进行修改的(而不是直接在Form.io用户界面中修改)
  • “重新连接”状态持续存在检查浏览器控制台中的错误;可能表明存在网络问题或服务器问题
  • “连接失败”消息确保您的浏览器支持服务器发送事件(所有现代浏览器都支持)
  • 更新后预览显示的是旧版本尝试强制刷新(Ctrl+Shift+R 或 Cmd+Shift+R)
  • 多个预览窗口并非全部更新每个窗口都维护着自己的连接;请检查每个窗口的连接状态
  • 连接频繁断开可能表明网络不稳定;请检查服务器日志中的连接错误

预览连接问题:

  • “最大连接数已达到”错误关闭未使用的预览窗口或增大(预览窗口的大小) MCP_MAX_PREVIEW_CONNECTIONS
  • 连接将在5分钟后关闭这是闲置连接的预期行为;请刷新页面以重新连接
  • 手动重新连接按钮出现点击它以重试连接,或刷新页面
  • 服务器日志显示连接错误检查防火墙设置,并确保SSE终端点可访问

实时更新的调试:

  1. 打开浏览器开发者工具(F12),并在控制台(Console)选项卡中检查错误
  2. 检查“网络”选项卡以查看 /preview-updates/{formId} 连接(应显示为“EventStream”类型)
  3. 在网络标签页中,点击连接以查找SSE事件
  4. 检查服务器日志中的通知消息和连接生命周期事件
  5. 验证预览URL中的表单ID是否与正在修改的表单一致

API 参考

表单更新通知器 API

这个(或“该”) FormUpdateNotifier 该服务管理表单预览连接的实时通知。

位置: src/services/form-update-notifier.ts

方法

registerPreviewConnection(connectionId: string, formId: string): void

  • 注册一个预览连接以接收特定表单的更新
  • 当预览页面建立SSE(服务器发送事件)连接时自动调用
  • 参数:

- connectionIdSSE 连接的唯一标识符 - formId要监视更新的表单ID

unregisterPreviewConnection(connectionId: string): void

  • 注销预览连接并停止发送更新
  • 当预览页面关闭或连接丢失时自动调用
  • 参数:

- connectionId要注销的连接ID

notifyFormCreated(formId: string, formData: FormioForm): void

  • 通知所有正在监视表单的预览连接,该表单已被创建
  • 被自动调用 create_form 工具处理器
  • 参数:

- formId创建的表单的ID - formData完整的表单对象

notifyFormUpdated(formId: string, formData: Partial): void

  • 通知所有正在查看表单的预览连接,表单已更新
  • 由……自动调用 update_form 工具处理程序
  • 实现防抖动功能以避免过多通知
  • 参数:

- formId更新后的表单ID - formData更新后的表单数据(部分或全部)

notifyFormDeleted(formId: string): void

  • 通知所有正在预览表单的连接,该表单已被删除
  • 由……自动调用 delete_form 工具处理程序
  • 参数:

- formId已删除表单的ID

getConnectionsByForm(formId: string): string[]

  • 返回当前正在监控特定表单的所有连接ID
  • 有助于调试和监控
  • 参数:

- formId要查询的表单ID

  • 返回:连接ID的数组

getFormByConnection(connectionId: string): string | undefined

  • 返回特定连接正在监视的表单ID
  • 用于调试和监控
  • 参数:

- connectionId要查询的连接ID

  • 返回:如果找到连接,则返回表单ID;否则返回undefined

cleanup(): void

  • 清理所有连接和内部状态
  • 在服务器关闭时自动调用
  • 应在服务器停止之前调用,以确保优雅地进行清理

使用示例

import { FormUpdateNotifier } from './services/form-update-notifier';
import { SSEManager } from './transport/sse-manager';

// Initialize
const sseManager = new SSEManager();
const notifier = new FormUpdateNotifier(sseManager);

// Register a preview connection (done automatically by preview endpoint)
notifier.registerPreviewConnection('conn-123', 'form-456');

// Notify of form update (done automatically by tool handlers)
notifier.notifyFormUpdated('form-456', { title: 'Updated Form' });

// Check active connections
const connections = notifier.getConnectionsByForm('form-456');
console.log(`${connections.length} preview(s) watching this form`);

// Cleanup on shutdown
notifier.cleanup();

表单预览客户端API

这个(或:该) FormPreviewClient 是一个嵌入在预览页面中的JavaScript类,用于管理客户端连接和更新处理。

地点: src/templates/form-preview-client.js (嵌入在 form-preview.ts

构造函数

new FormPreviewClient(formId: string, formPath: string, config?: PreviewClientConfig)

  • 创建一个新的预览客户端实例
  • 参数:

- formId要监视更新的表单ID - formPath表单路径(用于显示) - config (可选):配置对象 - maxReconnectAttempts最大重连尝试次数(默认:5) - initialReconnectDelay初始重连延迟(单位:毫秒)(默认值:1000) - updateIndicatorDuration更新通知显示多长时间(毫秒)(默认:2000)

方法

connectToUpdates(): void

  • 建立SSE连接以接收表单更新
  • 页面加载时自动调用
  • 为更新和删除事件设置事件监听器
  • 处理连接错误和重新连接

disconnect(): void

  • 关闭SSE连接并进行清理
  • 在页面卸载时自动调用
  • 如果需要停止接收更新,应手动调用

handleUpdateEvent(event: MessageEvent): void

  • 处理表单更新通知
  • 自动刷新页面以显示最新更改
  • 在刷新前显示简短的更新指示器
  • 当接收到更新事件时自动调用

handleDeletedEvent(event: MessageEvent): void

  • 处理表单删除通知
  • 显示消息,表明表单不再可用
  • 关闭SSE连接
  • 当接收到删除事件时自动调用

reconnectWithBackoff(): void

  • 尝试使用指数退避策略重新连接
  • 当连接丢失时自动调用
  • 增加尝试之间的延迟(1秒、2秒、4秒、8秒、16秒)
  • 在达到最大尝试次数后显示手动重新连接按钮

showUpdateIndicator(): void

  • 显示简短通知,表明表单已更新
  • 在页面刷新前自动调用
  • 通知在2秒后消失或页面刷新时消失

showConnectionStatus(status: 'connected' | 'reconnecting' | 'disconnected'): void

  • 更新连接状态指示器
  • 当连接状态发生变化时自动调用
  • 视觉指示器帮助用户了解连接状态

使用示例

// Automatically initialized in preview pages
const client = new FormPreviewClient('form-123', 'contact-form', {
  maxReconnectAttempts: 5,
  initialReconnectDelay: 1000
});

// Connect to receive updates
client.connectToUpdates();

// Manually disconnect if needed
// client.disconnect();

// Connection state is managed automatically
// Status indicator updates as connection changes

接收到的事件

form-update 事件:

{
  type: 'form-update',
  data: {
    formId: 'form-123',
    timestamp: '2025-10-10T12:00:00.000Z',
    changeType: 'updated'
  }
}

form-deleted 事件:

{
  type: 'form-deleted',
  data: {
    formId: 'form-123',
    timestamp: '2025-10-10T12:00:00.000Z'
  }
}

Form.io API 参考手册

如需查看详细的Form.io API文档,请访问: https://apidocs.form.io/ 的中文翻译可以是:“https://apidocs.form.io/(表单.io API 文档)”。不过,通常在实际应用中,我们可能会直接保留网址的原样,因为网址本身已经具有明确的指向性,直接翻译可能并不增加信息的清晰度。但如果需要对网址进行简要说明,可以如上所述添加描述性文字

许可证

麻省理工学院(MIT)

目录标签

目录标签

TypeScriptClaude自然语言处理表单管理本地部署AI助手API集成表单生成

支持客户端

Claude DesktopClaudeWindsurfCline

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

token

运行时(runtime,运行环境)

Docker

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdiotoken部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP