MCP Server

Superforms

co.superforms/superforms
Communication Productivity Public & reachable MCP 2026-07-28

What this MCP does

Creates voice-first forms and feedback requests, collects human responses, and lets agents retrieve or monitor submitted answers.

create_ask
Create Superforms Ask
Create a voice-first Superforms answer link for human input. Backward-compatible alias for create_form.
Input schema
{'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}
create_feedback_form
Create Feedback Form
Publish a voice-first feedback, cancellation, feature request, survey, or research form immediately after creator confirmation, with optional smart follow-ups.
Input schema
{'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}
create_form
Create Superforms Form
Publish a voice-first form link immediately after creator confirmation, collect human answers, and pipe responses back to the agent.
Input schema
{'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}
get_my_form_responses
Get My Form Responses
Read persisted raw responses for a form owned by the connected Superforms account. No per-form agent token is required.
Read only Open world Idempotent
Input schema
{'type': 'object', 'required': ['askId'], 'properties': {'askId': {'type': 'string'}, 'since': {'type': 'string', 'description': 'Optional ISO timestamp cursor.'}}, 'additionalProperties': False}
get_responses
Get Superforms Responses
Fetch persisted raw responses for a Superforms ask. This is the MCP equivalent of the HTTP bridge answers endpoint.
Read only Open world Idempotent
Input schema
{'type': 'object', 'required': ['askId', 'agentToken'], 'properties': {'askId': {'type': 'string'}, 'since': {'type': 'string'}, 'agentToken': {'type': 'string'}}, 'additionalProperties': False}
join_creation_session
Join Superforms Creation Session
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.
Input schema
{'type': 'object', 'required': ['creationSessionUrl'], 'properties': {'agentName': {'type': 'string'}, 'creationSessionUrl': {'type': 'string'}}, 'additionalProperties': False}
list_asks
List Superforms Asks
List recent asks for a provided private agent token.
Read only Open world Idempotent
Input schema
{'type': 'object', 'required': ['agentToken'], 'properties': {'agentToken': {'type': 'string'}}, 'additionalProperties': False}
list_my_forms
List My Superforms
List forms owned by the connected Superforms account, including response counts and latest response timestamps.
Read only Open world Idempotent
Input schema
{'type': 'object', 'properties': {}, 'additionalProperties': False}
update_creation_session
Update Superforms Draft
Update a homepage creation handoff draft with the current form title, questions, and settings before the user clicks Set live.
Input schema
{'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}
watch_ask
Watch Superforms Ask
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.
Read only Open world Idempotent
Input schema
{'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}
watch_my_form_responses
Watch My Form Responses
Return any existing individual answers immediately, or wait briefly until the respondent saves their next answer, even while the form remains in progress.
Read only Open world Idempotent
Input schema
{'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}
Added
watch_my_form_responses
Sept. 17, 2026, 12:38 p.m.
Added
get_my_form_responses
Sept. 17, 2026, 12:38 p.m.
Added
list_my_forms
Sept. 17, 2026, 12:38 p.m.
Added
watch_ask
Sept. 17, 2026, 12:38 p.m.
Added
list_asks
Sept. 17, 2026, 12:38 p.m.
Added
get_responses
Sept. 17, 2026, 12:38 p.m.
Added
update_creation_session
Sept. 17, 2026, 12:38 p.m.
Added
join_creation_session
Sept. 17, 2026, 12:38 p.m.
Added
create_ask
Sept. 17, 2026, 12:38 p.m.
Added
create_feedback_form
Sept. 17, 2026, 12:38 p.m.
Added
create_form
Sept. 17, 2026, 12:38 p.m.