
Formstep
io.github.formstep由 GitHub 账号 formstep 发布v1.2.1更新于 Nov 1, 2026
Request information without the back-and-forth
概览
托管的 Formstep MCP 服务器,让助手向指定个人发送品牌化表单、创建并发布表单,并读回填写结果。
- 可以做什么
- 向单个收件人发送请求,可预填或锁定字段,并读取、列出、取消请求或发送提醒
- 创建、编辑、发布和删除表单,包括问题、逻辑、主题、设置与翻译
- 在一次调用中同时创建表单和请求,并通过已连接的 Stripe 与 Cal.com 支持付款和预约
- 管理分享链接、Webhook、文件夹,并读取表单提交与分析数据
- 以资源与提示形式加载内置指南和工具目录
- 适用场景
- 适合助手需要向特定个人收集信息、文件、签名、付款或预约,并以固定字段键取回结构化答案,而不是来回对话的场景。也适合以程序方式构建和发布表单的代理。
- 运行要求
- 远程 streamable HTTP 端点 api.formstep.io,无需安装。登录方式为 OAuth(浏览器登录并选择工作区),脚本和无头代理则通过 Authorization Bearer 头发送 API 令牌。需要 Formstep 工作区;向收件人发送邮件和分析功能需要付费方案。
安装
在 SourceWeft 中
- 打开 控制台中的 Formstep,将其添加到工作区。
- 连接 所需的 凭据。它们会被私密存储,绝不会在公开页面上展示。
- 为需要使用其工具的对话启用该服务。
Web executable,通过 Streamable HTTP。 远程服务在工作区中配置后即可从网页运行时运行。
交给智能体安装
把这段提示词粘贴到 Claude Code、Codex、Cursor 等智能体,或 SourceWeft 对话中。智能体会读取该服务器的安装指南,先向你展示发布者、端点和登录方式,经你同意后再把它添加到你的客户端。密钥不会写进任何命令。
阅读 https://sourceweft.com/mcp/io.github.formstep%2Fformstep-mcp/install.md,并按其中说明把这个 MCP 服务器接入我的客户端。修改任何配置之前,先告诉我它的发布者、端点和登录方式,等我确认。不要把 API 密钥写进命令或我会提交的文件;问我密钥应从哪里获取。其他 MCP 客户端
把它添加到你客户端的 mcpServers 配置中。 客户端会在首次连接时完成 OAuth 登录。
{
"mcpServers": {
"formstep": {
"type": "http",
"url": "https://api.formstep.io/api/mcp"
}
}
}README
Formstep MCP server
[Formstep logo]The hosted MCP server for Formstep. Request information without the back-and-forth.
Your agent sends a request to one person, the recipient: a form in your brand and their language, prefilled with what you know, so they only confirm or correct it. They upload files, sign, book or pay on the same page, without an account. The answers come back under your field keys, with your external ID and, when the form has a decision question, an approve, decline or changes outcome. Your agent reads them with request_get, or Formstep calls your callback URL the moment the recipient submits.
The server lives at:
This repository holds documentation, example configs and a Grok Build plugin manifest. There is nothing to install or run.
- What an agent can do
- Connect your AI tool
- Try it
- Tools
- Limits
- Protocol details
- Docs
- Report a problem
What an agent can do
- Send requests. Ask one named person for information, with answers filled in or locked, and read what they answered. Use a form you published, or have the agent build the form in the same call.
- Build forms. Create a form and add, edit or remove its questions, pages and logic.
- Publish and share. Publish a form, create share links, translate it, and set its theme and settings.
- Read results. List a form's submissions and read its analytics.
Most AI tools sign in to Formstep with OAuth: you paste the URL, sign in to Formstep in the browser, and pick a workspace. Scripts and headless agents send an API token instead.
Connect your AI tool
Leave any client ID, secret or token field empty. The AI tool finds the Formstep sign-in page from the server and registers itself.
Claude Code
Then type /mcp in Claude Code to sign in.
To share the server with everyone who works on a project, commit a .mcp.json to the project instead:
Claude desktop and claude.ai
Open Customize › Connectors › + › Add custom connector and paste the URL. A connector added on claude.ai also works in the desktop and mobile apps.
On Team and Enterprise, an owner adds the connector first under Organization settings › Connectors. Members then click Connect on it. On Free you can add one custom connector. Claude's own guide: Get started with custom connectors.
ChatGPT
Turn on developer mode under Settings › Apps › Advanced settings. Then open Settings › Apps › Create, paste the URL, choose OAuth, click Scan Tools, sign in to Formstep, and click Create.
Developer mode works on the web only. On Pro, ChatGPT can only read: tools that change something, such as sending a request or editing a form, need Business, Enterprise or Edu. On Business, only admins and owners can use developer mode. OpenAI's own guide: Developer mode and MCP apps in ChatGPT.
Cursor
Add this to .cursor/mcp.json in your project, or to ~/.cursor/mcp.json for every project:
Cline
Cline connects with an API token (see below for how to create one). Add this to Cline's cline_mcp_settings.json:
Or ask Cline to install it: llms-install.md has the steps it follows.
Grok Build
This repository is also a Grok Build plugin: .grok-plugin/plugin.json, the .mcp.json server config and one skill, formstep-requests. The plugin runs nothing on your machine. It calls one network endpoint, https://api.formstep.io/api/mcp, and signs in with Formstep OAuth, or with an API token you add as a header.
Other tools
Any tool that supports remote MCP servers with sign-in works the same way: look for where it adds a server by URL. The connect guide links each tool's own instructions.
Sign in and pick a workspace
The first time the agent uses Formstep, your AI tool opens a Formstep page in the browser. Sign in, pick the workspace, and click Authorize.
A connection reaches that one workspace only. To use another workspace, add Formstep a second time and pick the other one.
To check that it works, ask:
To remove the connection, open OAuth and API Keys in the Formstep workspace sidebar. Under Connected apps, click the trash icon next to the connection and confirm with Disconnect.
Scripts and headless agents: use an API token
Anything that cannot open a browser, such as a script, a CI job or a headless agent, sends an API token as a header instead.
- Open OAuth and API Keys in your workspace sidebar and click Create token (API tokens).
- Copy the token. It starts with
fs_. - Send it as an
Authorization: Bearerheader.
A token reaches exactly one workspace, like an OAuth connection. It expires 30 days after you create it and cannot be extended, so plan to replace it. Keep it out of git.
Claude Code, from the command line:
Or in a config file. This is .mcp.json for Claude Code; Cursor takes the same headers object in its mcp.json:
Other tools take the same URL and header. See their documentation for where.
Try it
Send a request to one person. Use the name of one of your published forms:
The agent reads the form's field keys with fields_list, creates the request with request_create, and gives you the request link.
No form yet? The agent can build one in the same call:
The agent checks the workspace's Stripe and Cal.com connections with workspaceConnection_list, then calls request_create with a form object instead of a formId: a name, the blocks, and the logo and cover you gave it. Formstep builds the form, publishes it and creates the request in one step, and returns the field keys the answers will come back under. The same definition again reuses that form, so a hundred requests make one form.
If the form has Send reminders on, Formstep still emails the recipient its scheduled reminders. To prevent that, also say no reminders.
The agent is not told when the recipient submits, so ask it later:
The agent finds the request by its external ID with request_list, then reads it with request_get. Once the request is completed, the answers come back keyed by field key.
Step by step: Send a request with an AI agent, Create a form and a request in one call and Build a form with an AI agent.
Tools
Every tool is on tools/list with its full input schema as soon as an AI tool connects. The MCP server reference describes them in detail.
Requests
Ask one named person for information and read the result.
fields_list: list the field keys a request can address on a published form. Call it beforerequest_createwith aformId.request_create: assign a form to one recipient, with prefill, locked fields, context, delivery, expiry and an optional callback. PassformIdfor a published form, orformto build the form in the same call (see below).request_get: read one request by its ID. Returns the status, the timeline and, once completed, the answers keyed by field key.request_list: list requests for a form or a workspace, filtered by status, outcome or your own external ID.request_cancel: withdraw a pending request.request_remind: send the recipient a reminder email now.request_replayCallback: send a callback again when it never reached your endpoint.document_create: reserve an upload for a file a request hands to its recipient. One upload can serve any number of requests.workspaceConnection_list: the Stripe and Cal.com accounts the workspace has connected, and theconnectUrlto connect a missing one. Read it before building a form with a payment or a booking.scheduler_listEventTypes: the Cal.com event types a booking block can name, and whether each one can be booked from a form.paymentConnection_setDefault: choose the Stripe account payments charge through by default. Workspace owner only.
Forms built inside a request
request_create takes form in place of formId. Formstep builds an ordinary form from it, publishes it and creates the request in one step: both exist or neither does. The agent needs no editor tool and no fields_list call.
formtakesnameandblocks(1 to 200, in form order), and optionallylanguage, the brand (logo,cover,emoji),theme(a preset id per color mode),settingsandtranslations(every string of the form per extra language). Formstep fetches each image URL once and keeps its own copy; it must be a public JPEG, PNG or WebP.- Blocks take the parameters of the matching
editor_insert*tool, withoutformIdandafter, plus akey. Every block type is there: questions, documents, payment, scheduleAppointment, decision, content blocks, rows, page dividers, repeating groups, hidden and calculated fields, and logic rules that refer to other blocks by key. - The response adds
form: { id, name, reused, fields }, the keys the answers come back under. - One definition, one form. The same
formagain reuses the published form (reused: true). Put the recipient's name, invoice number or amount inprefillandcontext, never in the name, a block or the brand, or every call makes a new form. The agent keeps the brand and sends it unchanged with every request. Setkeyon every question. - Payments and bookings need Stripe or Cal.com connected to the workspace.
workspaceConnection_listsays what is connected and returns theconnectUrla person opens once; an agent cannot connect an account itself.
The full reference is load_skill("requests"), section 2c, and Create a form and a request in one call.
Forms
form_list,form_get,form_create,form_update: find, read, create and rename forms, and set the folder, emoji, cover and logo.form_publish,form_unpublish: start and stop accepting submissions.form_publishis safe to call twice.form_delete,form_restore: move a form to the trash, which also revokes its share links, and bring it back.
form_get returns the questions of the last published version. For a draft, read the content with editor_getDocument.
Editor
editor_getDocument: read the full structure of a form.editor_updateElement,editor_deleteElement: edit, move or remove a block.editor_formatText: format text inside a block.editor_setLogic,editor_testLogic: change the rule of a logic block and test it. Create the block witheditor_insertLogic.
Each block type has its own insert tool with a precise schema:
- Questions:
editor_insertTextQuestion,editor_insertContactQuestion,editor_insertNumberQuestion,editor_insertDateQuestion,editor_insertTimeQuestion,editor_insertRadioQuestion,editor_insertCheckboxQuestion,editor_insertSelectQuestion,editor_insertPictureChoiceQuestion,editor_insertSwitchQuestion,editor_insertRatingQuestion,editor_insertLinearScaleQuestion,editor_insertRankingQuestion,editor_insertMatrixQuestion,editor_insertFileQuestion,editor_insertSignatureQuestion,editor_insertPaymentQuestion,editor_insertScheduleAppointmentQuestion - Decision:
editor_insertDecisionQuestioninserts the approve / decline / changes choice whose answer becomes the request outcome. A radio question built by hand never produces one. - Content:
editor_insertHeader,editor_insertParagraph,editor_insertImage,editor_insertList,editor_insertTable,editor_insertRow,editor_insertEmbedded,editor_insertPageDivider,editor_insertDocumentsBlock - Data and logic:
editor_insertHiddenField,editor_insertCalculatedField,editor_insertVariable,editor_insertRepeatingGroup,editor_insertLogic
Sharing and results
formShareLink_list,formShareLink_create,formShareLink_update: manage share links, also on a custom domain.formSubmission_list: list a form's completed submissions, and drafts on request.formWebhook_list,formWebhook_create,formWebhook_update,formWebhook_delete,formWebhook_test: POST every submission of a form to your endpoint, signed with the webhook's own secret.formAnalytics_get: views, submissions, completion rate, and unique visitors by device, country, browser and source.
Appearance, settings and translations
formTheme_get,formTheme_set: light and dark themes.formSettings_get,formSettings_update: notification emails, completion redirect, password, retention and language.translationLanguage_list,translationDraft_get,translationDraft_update,translationDraft_publish,translationLanguage_delete: translate a form as a draft, then publish it.
Workspace
workspace_list: the one workspace your connection reaches, with its ID.workspaceFolder_list,workspaceFolder_create,workspaceFolder_update,workspaceFolder_delete: manage folders.
Built-in guides
Two tools return documentation instead of doing work:
load_skillloads a guide on one topic:requests,question-types,logic-rules,editing-flows,form-best-practices,form-themes,form-settings,analyticsortoon-format.load_toolsloads usage notes for a group of tools, called a catalog:request-lifecycle(requests, documents and the Stripe and Cal.com connections),editor-inserts,editor-actions,form-lifecycle,form-appearance,form-behavior,form-sharing,form-translations,form-dataorworkspace-management.
Every guide and catalog is also an MCP resource at skill://<name>, such as skill://requests. The server also serves four prompts: identity, capabilities, data_tools and editor_tools.
Tools that ask first
Seven tools are marked destructive, because undoing them takes another call or is not possible: form_delete, form_unpublish, workspaceFolder_delete, editor_deleteElement, translationLanguage_delete, formWebhook_delete and request_cancel. Most AI tools ask you before running them. The prompt comes from your AI tool, so check its approval settings if you need a hard stop.
Two actions cannot be undone:
workspaceFolder_deletepermanently deletes the folder, its subfolders and every form inside.formShareLink_updatewithrevoked: truepermanently disables a share link. This tool is not marked destructive, so your AI tool may not ask first.
Limits
- Rate limit. 120 tool calls per minute per token, shared with the REST API. Only
tools/callcounts. Over the limit, the call returns a failed tool result withRATE_LIMITEDand aretryAfterMs.request_createanddocument_createalso share a second limit of 60 calls per minute per token. - New forms per day. A workspace makes at most 300 new forms through
request_createwithforma day. Past that, a call that would make a new form fails withRATE_LIMITED, while calls that reuse a form keep working. - Monthly allowance. Each
request_createspends one unit of the monthly allowance of the workspace owner's plan, whether or not the recipient ever answers. A test request (test: true) spends nothing. When the allowance is spent,request_createfails withMONTHLY_ALLOWANCE_REACHED. - Paid plans. Emailing a recipient (the invitation and reminders) and
formAnalytics_getneed the Pro or Business plan. See plans and pricing. - No notification when a recipient submits. The server never calls your agent. Ask again later, or pass a
callbackUrltorequest_createso Formstep calls your endpoint (callbacks). - No file uploads through a tool call. Images are set by URL: an
http(s)://URL or adata:imageURI. A document for a request is the exception:document_createreturns an upload URL youPUTthe file to within one hour. PDF and images only, 25 MB per file. - No workspace AI skills. Skills you write in Formstep only work in Formstep's built-in AI chat. The server's own guides (
load_skill) work over MCP.
Protocol details
For anyone who writes their own MCP client or debugs a connection.
- Transport. Streamable HTTP,
POSTonly. Every response is JSON. There is no event stream and no session ID, so each call stands alone. As the MCP spec requires, sendContent-Type: application/jsonandAccept: application/json, text/event-stream. - Protocol version.
2025-11-25. - Sign-in. Every call needs
Authorization: Bearer <token>,initializeincluded. Without one, the server answers401with aWWW-Authenticateheader that points tohttps://api.formstep.io/.well-known/oauth-protected-resource. From there a client finds the OAuth 2.1 server, which requires PKCE (S256) and supports dynamic client registration. The reference lists each step. - Tokens. Both kinds reach one workspace and the same tools.
- An API token starts with
fs_and lasts 30 days from creation. - An OAuth access token starts with
fso_and lasts 1 hour. Your AI tool renews it with a refresh token, which lasts 30 days and is replaced on every use.
- An API token starts with
- Results. A tool result is one text item that holds JSON. A failure has
success: falseand anerrormessage. Request tools add a reason code such asUNKNOWN_FIELD_KEYunderdetails, and asuggestionthat says how to fix the call. Troubleshooting requests explains the common ones. - Browsers. The server allows cross-origin calls from Formstep's own sites only, so a web page on another origin cannot call it directly.
Docs
- MCP server reference: every tool, OAuth for your own client, and limits
- Connect an AI agent
- Build a form with an AI agent
- Send a request with an AI agent
- Requests overview, field keys, and callbacks
- Create a form and a request in one call
- API tokens and the REST API
- Privacy policy and terms of service
Report a problem
- Email [email protected].
- Or open an issue in this repository. Say which AI tool you use, how it signs in, the tool it called, and the error it got back.
Issues are public. Never paste a token (fs_... or fso_...) or a recipient's answers into one; email us instead. To report a security problem, see SECURITY.md.
Fixes to these docs are welcome as pull requests.
License
The files in this repository are MIT licensed; see LICENSE. Using the Formstep service is covered by the terms of service.
来源:README.md,提交 d6def5c
工具
0版本历史
2- v1.2.1最新Nov 1, 2026
- v1.1.0Oct 8, 2026
评分
已满足适用检查项的 85%
该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。
- 近 30 天内可连通必需25 分
- 已声明认证方式必需10 分
- 已列出工具15 分
请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。
- 描述必需15 分
- 图标10 分
- 文档15 分
- 许可证10 分