Superforms
Human-input bridge for AI agents with voice-first answer links, MCP tools, and HTTP APIs.
Sollte ich dies verwenden
Qualität und Sicherheit
Befunde (1)
- LOWin join_creation_session
Basierend auf einer automatisierten Analyse der Tool-Definitionen und der Einhaltung des Protokolls.
Kontextkosten
Dies ist die ungefähre Anzahl der Tokens, die jedes Mal verbraucht werden, wenn die Tools des Servers in den Kontext eines Modells geladen werden. Höhere Werte verringern die Aufmerksamkeit, die für andere Aufgaben verfügbar ist.
Installieren
Installation mit einem Klick
Fügen Sie dies Ihrer Datei `claude_desktop_config.json` hinzu:
{
"mcpServers": {
"superforms": {
"url": "https://superforms.co/mcp"
}
}
}Remote-Endpunkte
https://superforms.co/mcpstreamable-httpWas es kann
Tool-Inventar
Tools (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.
Eingabe-Schema
{
"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.
Eingabe-Schema
{
"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.
Eingabe-Schema
{
"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.
Eingabe-Schema
{
"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.
Eingabe-Schema
{
"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.
Eingabe-Schema
{
"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.
Eingabe-Schema
{
"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.
Eingabe-Schema
{
"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.
Eingabe-Schema
{
"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.
Eingabe-Schema
{
"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.
Eingabe-Schema
{
"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
}Community
Nachweis