Human-input bridge for AI agents with voice-first answer links, MCP tools, and HTTP APIs.
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Create a voice-first Superforms answer link for human input. Backward-compatible alias for create_form.
Plain-English ask or request. Use only when explicit questions are not already known.
Private context for smart follow-ups. Summarize relevant non-sensitive host-conversation context and append any extra context the creator provides. Never shown to respondents.
Explicit questions to ask the respondent. Use this whenever questions already exist; preserve them exactly.
For exactly one question, set this only after asking the creator "Want smart follow-up questions?" Use deep_dive for yes or none for no. For multiple questions, use none unless explicitly requested.
Use "one" for a form intended for one named person/client. Use "multiple" for forms, surveys, feedback, customers, users, and public/embedded links.
Optional compatibility setting. Omit for adaptive one-question smart follow-ups.
Optional compatibility setting. Omit for adaptive one-question smart follow-ups.
This tool isn't marked read-only, so it may change something on the server or in an account you connected.
Create a voice-first Superforms answer link for human input. Backward-compatible alias for create_form.
| Argument | Type | Description |
|---|---|---|
| goal | string | |
| title | string | |
| prompt | string | Plain-English ask or request. Use only when explicit questions are not already known. |
| context | string | Private context for smart follow-ups. Summarize relevant non-sensitive host-conversation context and append any extra context the creator provides. Never shown to respondents. |
| questions | array | Explicit questions to ask the respondent. Use this whenever questions already exist; preserve them exactly. |
| persistent | boolean | |
| followUpMode | string | For exactly one question, set this only after asking the creator "Want smart follow-up questions?" Use deep_dive for yes or none for no. For multiple questions, use none unless explicitly requested. |
| responseMode | string | |
| responseLimit | string | Use "one" for a form intended for one named person/client. Use "multiple" for forms, surveys, feedback, customers, users, and public/embedded links. |
| questionContext | object | |
| creationSessionUrl | string | |
| max_total_questions | number | Optional compatibility setting. Omit for adaptive one-question smart follow-ups. |
| max_followups_per_question | number | Optional compatibility setting. Omit for adaptive one-question smart follow-ups. |
{
"type": "object",
"properties": {
"goal": {
"type": "string"
},
"title": {
"type": "string"
},
"prompt": {
"type": "string",
"description": "Plain-English ask or request. Use only when explicit questions are not already known."
},
"context": {
"type": "string",
"description": "Private context for smart follow-ups. Summarize relevant non-sensitive host-conversation context and append any extra context the creator provides. Never shown to respondents."
},
"questions": {
"type": "array",
"items": {
"anyOf": [
{
"type": "string",
"maxLength": 200,
"minLength": 1
},
{
"type": "object",
"required": [
"text"
],
"properties": {
"id": {
"type": "string"
},
"text": {
"type": "string",
"maxLength": 200,
"minLength": 1
},
"context": {
"type": "string"
}
},
"additionalProperties": false
}
]
},
"description": "Explicit questions to ask the respondent. Use this whenever questions already exist; preserve them exactly."
},
"persistent": {
"type": "boolean"
},
"followUpMode": {
"enum": [
"none",
"smart",
"deep_dive"
],
"type": "string",
"description": "For exactly one question, set this only after asking the creator \"Want smart follow-up questions?\" Use deep_dive for yes or none for no. For multiple questions, use none unless explicitly requested."
},
"responseMode": {
"enum": [
"voice_preferred",
"text_only",
"voice_only"
],
"type": "string"
},
"responseLimit": {
"enum": [
"one",
"multiple"
],
"type": "string",
"description": "Use \"one\" for a form intended for one named person/client. Use \"multiple\" for forms, surveys, feedback, customers, users, and public/embedded links."
},
"questionContext": {
"type": "object",
"additionalProperties": {
"type": "string"
}
},
"creationSessionUrl": {
"type": "string"
},
"max_total_questions": {
"type": "number",
"description": "Optional compatibility setting. Omit for adaptive one-question smart follow-ups."
},
"max_followups_per_question": {
"type": "number",
"description": "Optional compatibility setting. Omit for adaptive one-question smart follow-ups."
}
},
"additionalProperties": false
}Publish a voice-first feedback, cancellation, feature request, survey, or research form immediately after creator confirmation, with optional smart follow-ups.
| Argument | Type | Description |
|---|---|---|
| goal | string | |
| title | string | |
| prompt | string | Plain-English ask or request. Use only when explicit questions are not already known. |
| context | string | Private context for smart follow-ups. Summarize relevant non-sensitive host-conversation context and append any extra context the creator provides. Never shown to respondents. |
| questions | array | Explicit questions to ask the respondent. Use this whenever questions already exist; preserve them exactly. |
| persistent | boolean | |
| followUpMode | string | For exactly one question, set this only after asking the creator "Want smart follow-up questions?" Use deep_dive for yes or none for no. For multiple questions, use none unless explicitly requested. |
| responseMode | string | |
| responseLimit | string |
Publish a voice-first form link immediately after creator confirmation, collect human answers, and pipe responses back to the agent.
| Argument | Type | Description |
|---|---|---|
| goal | string | |
| title | string | |
| prompt | string | Plain-English ask or request. Use only when explicit questions are not already known. |
| context | string | Private context for smart follow-ups. Summarize relevant non-sensitive host-conversation context and append any extra context the creator provides. Never shown to respondents. |
| questions | array | Explicit questions to ask the respondent. Use this whenever questions already exist; preserve them exactly. |
| persistent | boolean | |
| followUpMode | string | For exactly one question, set this only after asking the creator "Want smart follow-up questions?" Use deep_dive for yes or none for no. For multiple questions, use none unless explicitly requested. |
| responseMode | string | |
| responseLimit | string | Use "one" for a form intended for one named person/client. Use "multiple" for forms, surveys, feedback, customers, users, and public/embedded links. |
Read persisted raw responses for a form owned by the connected Superforms account. No per-form agent token is required.
| Argument | Type | Description |
|---|---|---|
| askId* | string | |
| since | string | Optional ISO timestamp cursor. |
{
"type": "object",
"required": [
"askId"
],
"properties": {
"askId": {
"type": "string"
},
"since": {
"type": "string",
"description": "Optional ISO timestamp cursor."
}
},
"additionalProperties": false
}Fetch persisted raw responses for a Superforms ask. This is the MCP equivalent of the HTTP bridge answers endpoint.
| Argument | Type | Description |
|---|---|---|
| askId* | string | |
| since | string | |
| agentToken* | string |
{
"type": "object",
"required": [
"askId",
"agentToken"
],
"properties": {
"askId": {
"type": "string"
},
"since": {
"type": "string"
},
"agentToken": {
"type": "string"
}
},
"additionalProperties": false
}Join a Superforms homepage creation handoff session before creating the real form. Pass agentName with the client name, such as Codex, Claude Code, Claude, ChatGPT, or Cursor.
| Argument | Type | Description |
|---|---|---|
| agentName | string | |
| creationSessionUrl* | string |
{
"type": "object",
"required": [
"creationSessionUrl"
],
"properties": {
"agentName": {
"type": "string"
},
"creationSessionUrl": {
"type": "string"
}
},
"additionalProperties": false
}List recent asks for a provided private agent token.
| Argument | Type | Description |
|---|---|---|
| agentToken* | string |
{
"type": "object",
"required": [
"agentToken"
],
"properties": {
"agentToken": {
"type": "string"
}
},
"additionalProperties": false
}List forms owned by the connected Superforms account, including response counts and latest response timestamps.
No arguments.
{
"type": "object",
"properties": {},
"additionalProperties": false
}Update a homepage creation handoff draft with the current form title, questions, and settings before the user clicks Set live.
| Argument | Type | Description |
|---|---|---|
| goal | string | |
| title | string | |
| context | string | Private smart-follow-up context. Summarize relevant non-sensitive host-conversation context and append any extra context the creator provides. Never shown to respondents. |
| questions | array | Current draft questions to show in the live form preview. |
| followUpMode | string | |
| responseMode | string | |
| responseLimit | string | Use one for a named person/client. Use multiple for feedback forms, surveys, customers, users, and public links. |
| creationSessionUrl* | string | |
| max_total_questions | number | Use 20 for deep-dive interviews. |
| max_followups_per_question |
Wait up to two minutes and return as soon as an individual answer is saved, including answers received while an agent was reconnecting and while the form remains in progress. The wait ends when this call returns; nothing keeps watching afterward. Pass the returned nextSince as since to continue without repeating answers; the HTTP bridge also exposes an SSE stream endpoint.
| Argument | Type | Description |
|---|---|---|
| url* | string | |
| askId | string | |
| since | string | ISO timestamp cursor from the last response the agent processed. |
| timeoutMs | number | Maximum wait in milliseconds, capped at 120000. |
| agentToken* | string |
{
"type": "object",
"required": [
"url",
"agentToken"
],
"properties": {
"url": {
"type": "string"
},
"askId": {
"type": "string"
},
"since": {
"type": "string",
"description": "ISO timestamp cursor from the last response the agent processed."
},
"timeoutMs": {
"type": "number",
"description": "Maximum wait in milliseconds, capped at 120000."
},
"agentToken": {
"type": "string"
}
},
"additionalProperties": false
}Return any existing individual answers immediately, or wait briefly until the respondent saves their next answer, even while the form remains in progress.
| Argument | Type | Description |
|---|---|---|
| askId* | string | |
| since | string | Optional ISO timestamp cursor. |
| timeoutMs | number | Maximum wait in milliseconds, capped at 120000. |
{
"type": "object",
"required": [
"askId"
],
"properties": {
"askId": {
"type": "string"
},
"since": {
"type": "string",
"description": "Optional ISO timestamp cursor."
},
"timeoutMs": {
"type": "number",
"description": "Maximum wait in milliseconds, capped at 120000."
}
},
"additionalProperties": false
}| Use "one" for a form intended for one named person/client. Use "multiple" for forms, surveys, feedback, customers, users, and public/embedded links. |
| questionContext | object |
| creationSessionUrl | string |
| max_total_questions | number | Optional compatibility setting. Omit for adaptive one-question smart follow-ups. |
| max_followups_per_question | number | Optional compatibility setting. Omit for adaptive one-question smart follow-ups. |
{
"type": "object",
"properties": {
"goal": {
"type": "string"
},
"title": {
"type": "string"
},
"prompt": {
"type": "string",
"description": "Plain-English ask or request. Use only when explicit questions are not already known."
},
"context": {
"type": "string",
"description": "Private context for smart follow-ups. Summarize relevant non-sensitive host-conversation context and append any extra context the creator provides. Never shown to respondents."
},
"questions": {
"type": "array",
"items": {
"anyOf": [
{
"type": "string",
"maxLength": 200,
"minLength": 1
},
{
"type": "object",
"required": [
"text"
],
"properties": {
"id": {
"type": "string"
},
"text": {
"type": "string",
"maxLength": 200,
"minLength": 1
},
"context": {
"type": "string"
}
},
"additionalProperties": false
}
]
},
"description": "Explicit questions to ask the respondent. Use this whenever questions already exist; preserve them exactly."
},
"persistent": {
"type": "boolean"
},
"followUpMode": {
"enum": [
"none",
"smart",
"deep_dive"
],
"type": "string",
"description": "For exactly one question, set this only after asking the creator \"Want smart follow-up questions?\" Use deep_dive for yes or none for no. For multiple questions, use none unless explicitly requested."
},
"responseMode": {
"enum": [
"voice_preferred",
"text_only",
"voice_only"
],
"type": "string"
},
"responseLimit": {
"enum": [
"one",
"multiple"
],
"type": "string",
"description": "Use \"one\" for a form intended for one named person/client. Use \"multiple\" for forms, surveys, feedback, customers, users, and public/embedded links."
},
"questionContext": {
"type": "object",
"additionalProperties": {
"type": "string"
}
},
"creationSessionUrl": {
"type": "string"
},
"max_total_questions": {
"type": "number",
"description": "Optional compatibility setting. Omit for adaptive one-question smart follow-ups."
},
"max_followups_per_question": {
"type": "number",
"description": "Optional compatibility setting. Omit for adaptive one-question smart follow-ups."
}
},
"additionalProperties": false
}| questionContext | object |
| creationSessionUrl | string |
| max_total_questions | number | Optional compatibility setting. Omit for adaptive one-question smart follow-ups. |
| max_followups_per_question | number | Optional compatibility setting. Omit for adaptive one-question smart follow-ups. |
{
"type": "object",
"properties": {
"goal": {
"type": "string"
},
"title": {
"type": "string"
},
"prompt": {
"type": "string",
"description": "Plain-English ask or request. Use only when explicit questions are not already known."
},
"context": {
"type": "string",
"description": "Private context for smart follow-ups. Summarize relevant non-sensitive host-conversation context and append any extra context the creator provides. Never shown to respondents."
},
"questions": {
"type": "array",
"items": {
"anyOf": [
{
"type": "string",
"maxLength": 200,
"minLength": 1
},
{
"type": "object",
"required": [
"text"
],
"properties": {
"id": {
"type": "string"
},
"text": {
"type": "string",
"maxLength": 200,
"minLength": 1
},
"context": {
"type": "string"
}
},
"additionalProperties": false
}
]
},
"description": "Explicit questions to ask the respondent. Use this whenever questions already exist; preserve them exactly."
},
"persistent": {
"type": "boolean"
},
"followUpMode": {
"enum": [
"none",
"smart",
"deep_dive"
],
"type": "string",
"description": "For exactly one question, set this only after asking the creator \"Want smart follow-up questions?\" Use deep_dive for yes or none for no. For multiple questions, use none unless explicitly requested."
},
"responseMode": {
"enum": [
"voice_preferred",
"text_only",
"voice_only"
],
"type": "string"
},
"responseLimit": {
"enum": [
"one",
"multiple"
],
"type": "string",
"description": "Use \"one\" for a form intended for one named person/client. Use \"multiple\" for forms, surveys, feedback, customers, users, and public/embedded links."
},
"questionContext": {
"type": "object",
"additionalProperties": {
"type": "string"
}
},
"creationSessionUrl": {
"type": "string"
},
"max_total_questions": {
"type": "number",
"description": "Optional compatibility setting. Omit for adaptive one-question smart follow-ups."
},
"max_followups_per_question": {
"type": "number",
"description": "Optional compatibility setting. Omit for adaptive one-question smart follow-ups."
}
},
"additionalProperties": false
}| number |
| Use 0 by default. Use 1 only when smart follow-ups are explicitly requested. |
{
"type": "object",
"required": [
"creationSessionUrl"
],
"properties": {
"goal": {
"type": "string"
},
"title": {
"type": "string"
},
"context": {
"type": "string",
"description": "Private smart-follow-up context. Summarize relevant non-sensitive host-conversation context and append any extra context the creator provides. Never shown to respondents."
},
"questions": {
"type": "array",
"items": {
"anyOf": [
{
"type": "string"
},
{
"type": "object",
"required": [
"text"
],
"properties": {
"id": {
"type": "string"
},
"text": {
"type": "string"
},
"context": {
"type": "string"
}
},
"additionalProperties": false
}
]
},
"description": "Current draft questions to show in the live form preview."
},
"followUpMode": {
"enum": [
"none",
"smart",
"deep_dive"
],
"type": "string"
},
"responseMode": {
"enum": [
"voice_preferred",
"text_only",
"voice_only"
],
"type": "string"
},
"responseLimit": {
"enum": [
"one",
"multiple"
],
"type": "string",
"description": "Use one for a named person/client. Use multiple for feedback forms, surveys, customers, users, and public links."
},
"creationSessionUrl": {
"type": "string"
},
"max_total_questions": {
"type": "number",
"description": "Use 20 for deep-dive interviews."
},
"max_followups_per_question": {
"type": "number",
"description": "Use 0 by default. Use 1 only when smart follow-ups are explicitly requested."
}
},
"additionalProperties": false
}