Superforms
Human-input bridge for AI agents with voice-first answer links, MCP tools, and HTTP APIs.
¿Debería usar esto?
Calidad y seguridad
Hallazgos (1)
- LOWen join_creation_session
Basado en el análisis automatizado de las definiciones de herramientas y el cumplimiento del protocolo.
Costo de contexto
Este es el número aproximado de tokens que se consumen cada vez que las herramientas del servidor se cargan en el contexto de un modelo. Los recuentos más altos reducen la atención disponible para otras tareas.
Instalar
Instalación con un clic
Agrega esto a tu archivo `claude_desktop_config.json`:
{
"mcpServers": {
"superforms": {
"url": "https://superforms.co/mcp"
}
}
}Puntos de conexión remotos
https://superforms.co/mcpstreamable-httpQué puede hacer
Inventario de herramientas
Herramientas (11)
🟡create_form(prompt, questions, goal, context, questionContext, ...)
Publish a voice-first form link immediately after creator confirmation, collect human answers, and pipe responses back to the agent.
Esquema de entrada
{
"type": "object",
"properties": {
"prompt": {
"type": "string",
"description": "Plain-English ask or request. Use only when explicit questions are not already known."
},
"questions": {
"type": "array",
"description": "Explicit questions to ask the respondent. Use this whenever questions already exist; preserve them exactly.",
"items": {
"anyOf": [
{
"type": "string",
"minLength": 1,
"maxLength": 200
},
{
"type": "object",
"properties": {
"id": {
"type": "string"
},
"text": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"context": {
"type": "string"
}
},
"required": [
"text"
],
"additionalProperties": false
}
]
}
},
"goal": {
"type": "string"
},
"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."
},
"questionContext": {
"type": "object",
"additionalProperties": {
"type": "string"
}
},
"creationSessionUrl": {
"type": "string"
},
"title": {
"type": "string"
},
"persistent": {
"type": "boolean"
},
"followUpMode": {
"type": "string",
"enum": [
"none",
"smart",
"deep_dive"
],
"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."
},
"max_followups_per_question": {
"type": "number",
"description": "Optional compatibility setting. Omit for adaptive one-question smart follow-ups."
},
"max_total_questions": {
"type": "number",
"description": "Optional compatibility setting. Omit for adaptive one-question smart follow-ups."
},
"responseMode": {
"type": "string",
"enum": [
"voice_preferred",
"text_only",
"voice_only"
]
},
"responseLimit": {
"type": "string",
"enum": [
"one",
"multiple"
],
"description": "Use \"one\" for a form intended for one named person/client. Use \"multiple\" for forms, surveys, feedback, customers, users, and public/embedded links."
}
},
"additionalProperties": false
}🟡create_feedback_form(prompt, questions, goal, context, questionContext, ...)
Publish a voice-first feedback, cancellation, feature request, survey, or research form immediately after creator confirmation, with optional smart follow-ups.
Esquema de entrada
{
"type": "object",
"properties": {
"prompt": {
"type": "string",
"description": "Plain-English ask or request. Use only when explicit questions are not already known."
},
"questions": {
"type": "array",
"description": "Explicit questions to ask the respondent. Use this whenever questions already exist; preserve them exactly.",
"items": {
"anyOf": [
{
"type": "string",
"minLength": 1,
"maxLength": 200
},
{
"type": "object",
"properties": {
"id": {
"type": "string"
},
"text": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"context": {
"type": "string"
}
},
"required": [
"text"
],
"additionalProperties": false
}
]
}
},
"goal": {
"type": "string"
},
"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."
},
"questionContext": {
"type": "object",
"additionalProperties": {
"type": "string"
}
},
"creationSessionUrl": {
"type": "string"
},
"title": {
"type": "string"
},
"persistent": {
"type": "boolean"
},
"followUpMode": {
"type": "string",
"enum": [
"none",
"smart",
"deep_dive"
],
"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."
},
"max_followups_per_question": {
"type": "number",
"description": "Optional compatibility setting. Omit for adaptive one-question smart follow-ups."
},
"max_total_questions": {
"type": "number",
"description": "Optional compatibility setting. Omit for adaptive one-question smart follow-ups."
},
"responseMode": {
"type": "string",
"enum": [
"voice_preferred",
"text_only",
"voice_only"
]
},
"responseLimit": {
"type": "string",
"enum": [
"one",
"multiple"
],
"description": "Use \"one\" for a form intended for one named person/client. Use \"multiple\" for forms, surveys, feedback, customers, users, and public/embedded links."
}
},
"additionalProperties": false
}🟡create_ask(prompt, questions, goal, context, questionContext, ...)
Create a voice-first Superforms answer link for human input. Backward-compatible alias for create_form.
Esquema de entrada
{
"type": "object",
"properties": {
"prompt": {
"type": "string",
"description": "Plain-English ask or request. Use only when explicit questions are not already known."
},
"questions": {
"type": "array",
"description": "Explicit questions to ask the respondent. Use this whenever questions already exist; preserve them exactly.",
"items": {
"anyOf": [
{
"type": "string",
"minLength": 1,
"maxLength": 200
},
{
"type": "object",
"properties": {
"id": {
"type": "string"
},
"text": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"context": {
"type": "string"
}
},
"required": [
"text"
],
"additionalProperties": false
}
]
}
},
"goal": {
"type": "string"
},
"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."
},
"questionContext": {
"type": "object",
"additionalProperties": {
"type": "string"
}
},
"creationSessionUrl": {
"type": "string"
},
"title": {
"type": "string"
},
"persistent": {
"type": "boolean"
},
"followUpMode": {
"type": "string",
"enum": [
"none",
"smart",
"deep_dive"
],
"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."
},
"max_followups_per_question": {
"type": "number",
"description": "Optional compatibility setting. Omit for adaptive one-question smart follow-ups."
},
"max_total_questions": {
"type": "number",
"description": "Optional compatibility setting. Omit for adaptive one-question smart follow-ups."
},
"responseMode": {
"type": "string",
"enum": [
"voice_preferred",
"text_only",
"voice_only"
]
},
"responseLimit": {
"type": "string",
"enum": [
"one",
"multiple"
],
"description": "Use \"one\" for a form intended for one named person/client. Use \"multiple\" for forms, surveys, feedback, customers, users, and public/embedded links."
}
},
"additionalProperties": false
}⚪join_creation_session(creationSessionUrl, agentName)
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.
Esquema de entrada
{
"type": "object",
"properties": {
"creationSessionUrl": {
"type": "string"
},
"agentName": {
"type": "string"
}
},
"required": [
"creationSessionUrl"
],
"additionalProperties": false
}🟡update_creation_session(creationSessionUrl, title, goal, context, questions, ...)
Update a homepage creation handoff draft with the current form title, questions, and settings before the user clicks Set live.
Esquema de entrada
{
"type": "object",
"properties": {
"creationSessionUrl": {
"type": "string"
},
"title": {
"type": "string"
},
"goal": {
"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",
"description": "Current draft questions to show in the live form preview.",
"items": {
"anyOf": [
{
"type": "string"
},
{
"type": "object",
"properties": {
"id": {
"type": "string"
},
"text": {
"type": "string"
},
"context": {
"type": "string"
}
},
"required": [
"text"
],
"additionalProperties": false
}
]
}
},
"followUpMode": {
"type": "string",
"enum": [
"none",
"smart",
"deep_dive"
]
},
"max_followups_per_question": {
"type": "number",
"description": "Use 0 by default. Use 1 only when smart follow-ups are explicitly requested."
},
"max_total_questions": {
"type": "number",
"description": "Use 20 for deep-dive interviews."
},
"responseMode": {
"type": "string",
"enum": [
"voice_preferred",
"text_only",
"voice_only"
]
},
"responseLimit": {
"type": "string",
"enum": [
"one",
"multiple"
],
"description": "Use one for a named person/client. Use multiple for feedback forms, surveys, customers, users, and public links."
}
},
"required": [
"creationSessionUrl"
],
"additionalProperties": false
}🟢get_responses(askId, agentToken, since)
Fetch persisted raw responses for a Superforms ask. This is the MCP equivalent of the HTTP bridge answers endpoint.
Esquema de entrada
{
"type": "object",
"properties": {
"askId": {
"type": "string"
},
"agentToken": {
"type": "string"
},
"since": {
"type": "string"
}
},
"required": [
"askId",
"agentToken"
],
"additionalProperties": false
}🟢list_asks(agentToken)
List recent asks for a provided private agent token.
Esquema de entrada
{
"type": "object",
"properties": {
"agentToken": {
"type": "string"
}
},
"required": [
"agentToken"
],
"additionalProperties": false
}🟢watch_ask(url, askId, agentToken, since, timeoutMs)
Return as soon as an individual answer is saved, including answers received while an agent was reconnecting and while the form remains in progress. Use since for durable per-answer catch-up; the HTTP bridge also exposes an SSE stream endpoint.
Esquema de entrada
{
"type": "object",
"properties": {
"url": {
"type": "string"
},
"askId": {
"type": "string"
},
"agentToken": {
"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."
}
},
"required": [
"url",
"agentToken"
],
"additionalProperties": false
}🟢list_my_forms
List forms owned by the connected Superforms account, including response counts and latest response timestamps.
Esquema de entrada
{
"type": "object",
"properties": {},
"additionalProperties": false
}🟢get_my_form_responses(askId, since)
Read persisted raw responses for a form owned by the connected Superforms account. No per-form agent token is required.
Esquema de entrada
{
"type": "object",
"properties": {
"askId": {
"type": "string"
},
"since": {
"type": "string",
"description": "Optional ISO timestamp cursor."
}
},
"required": [
"askId"
],
"additionalProperties": false
}🟢watch_my_form_responses(askId, since, timeoutMs)
Return any existing individual answers immediately, or wait briefly until the respondent saves their next answer, even while the form remains in progress.
Esquema de entrada
{
"type": "object",
"properties": {
"askId": {
"type": "string"
},
"since": {
"type": "string",
"description": "Optional ISO timestamp cursor."
},
"timeoutMs": {
"type": "number",
"description": "Maximum wait in milliseconds, capped at 120000."
}
},
"required": [
"askId"
],
"additionalProperties": false
}Comunidad
Evidencia