打卡器、报名页、反馈组件——Cursor 的 agent 几分钟搭好前端,然后把数据搁进 localStorage。给它一个真接口,应用才算完成,而不是半死不活。
最常见的 Cursor 作品,也是最常被弃的那个:一个漂亮的小 web 应用——习惯打卡、候补名单、小测验、仪表盘——agent 没有后端可指向,就把状态存进 localStorage 或一个 JSON 文件。它在你机器上、你的浏览器配置里能跑,标签页一关就完。同事用不了。什么都攒不起来。报名名单是不存在的,因为报名无处可去。
FormLM 接口就是缺的那一半:一个接收应用的 POST 并保存下来的 URL。它开了 CORS,跑在 localhost、预览服务器或任何静态托管上的页面都能直写——不用代理、不用自建后端。Cursor 甚至不需要你教:把带 ?help 的接口贴进对话,agent 读完字段清单,第一次就把表单接对。
把接口写进提示词。在 FormLM 建一个开启 Data API 的表单约摸一分钟。然后让 Cursor 照着它搭前端:
"帮我做一个候补名单页面。提交的数据发到 https://formlm.me/api/v3/share/YOUR_TOKEN?help 先读文档,把表单接上去,然后用 query 接口 把存下来的记录展示给我看。" # agent 读取 Markdown schema、构建表单、 # 应用从第一次提交起就有持久化。
把 formlm-cli 注册为 MCP 服务器,Cursor 自己就能建表单、定义字段、发布接口、查询结果——整个闭环都在编辑器里。先装 CLI(npm install -g @formlm/cli),再加配置。项目级是常规选择——它进版本控制,队友一拉代码就全都有:
{
"mcpServers": {
"formlm": {
"command": "formlm-cli",
"args": ["mcp"],
"env": {
"PATH": "/opt/homebrew/bin:/usr/local/bin:/usr/bin:/bin"
}
}
}
}
env.PATH 这行防的是经典 macOS 翻车:Cursor 不带终端 PATH 启动服务器,报 command not found。改完配置完全重启 Cursor。登录一次就好——终端里跑 formlm-cli auth login --token <your-token>(令牌从 formlm.me → 账号设置复制;验证码和 Google 注册的账号没有密码),或直接在第一次 MCP 对话里应答登录提示。更深入的内容在开发者专区。
$ curl -X POST https://formlm.me/api/v3/share/YOUR_TOKEN \ -H "Content-Type: application/json" \ -d '{ "data": { "email": "ada@example.com", "referral": "producthunt", "interest": "assessment-reports" }, "meta": {"source": "waitlist-page"} }' # 读取——让 Cursor 在这之上搭个管理视图 $ curl https://formlm.me/api/v3/share/YOUR_TOKEN/query?page=1&size=50
CORS 双向都开,同一个页面也能把存下来的记录渲染出来——或者你让前端只持有写权限的 token,读取走 FormLM 的管理视图,还带 CSV 导出。字段自动创建意味着下周名单想加一列 plan,不用做迁移。
项目级(仓库根目录的 .cursor/mcp.json)是常规选择:它进版本控制,队友一拉代码,Cursor 就自动配上 FormLM 服务器。全局(~/.cursor/mcp.json)则所有项目都能用——若 FormLM 是你的个人默认后端,选这个。
能——这正是意义所在。接口读写两个方向都开了 CORS,Cursor 写的任何 HTML 页面,跑在 localhost、静态托管、甚至 file:// 上,都能用 fetch() 存取数据。MCP 服务器是给 Cursor 自己用的;普通 URL 是给 Cursor 构建的应用用的。
给接口 URL 加上 ?help,它会返回一份 Markdown 文档,列全字段、请求格式和可直接复制的示例。把这个 URL 贴进 Cursor 对话,agent 第一次就能把表单字段接对。
JSON 里不用。没有 token 的话,第一次 MCP 会话会在对话里提示登录——粘贴访问令牌即可(formlm.me → 账号设置 → 访问令牌 → 复制)。想跳过这步,就先在终端跑一次 formlm-cli auth login --token <your-token>;存下的 token 之后会被自动读取。验证码和 Google 注册的账号没有密码——用访问令牌,或在终端跑 formlm-cli auth login 选「邮箱验证码」直接登录。