Superforms

Human-input bridge for AI agents with voice-first answer links, MCP tools, and HTTP APIs.

사용해야 할까요

품질 및 안전성

A
설명 품질
97%
스키마 완전성
79%
이름 품질
95%
오염 위험
100%
권한 일치
100%
프로토콜 준수
100%

발견 사항 (1)

  • LOWTool 'join_creation_session' description lacks action verbjoin_creation_session에서

도구 정의와 프로토콜 준수에 대한 자동 분석을 기반으로 합니다.

컨텍스트 비용

~2,355토큰 (도구 정의)
~2.2 KB일반적인 응답 크기
중간 정도의 주의 영향 (128k 컨텍스트의 1.84%)

이는 서버의 도구가 모델의 컨텍스트에 로드될 때마다 소비되는 대략적인 토큰 수입니다. 수치가 높을수록 다른 작업에 사용할 수 있는 주의가 줄어듭니다.

설치

원클릭 설치

`claude_desktop_config.json` 파일에 다음을 추가하세요:

{
  "mcpServers": {
    "superforms": {
      "url": "https://superforms.co/mcp"
    }
  }
}

원격 엔드포인트

https://superforms.co/mcpstreamable-http

할 수 있는 일

도구 목록

도구 (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.

입력 스키마

{
  "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.

입력 스키마

{
  "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.

입력 스키마

{
  "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.

입력 스키마

{
  "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.

입력 스키마

{
  "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.

입력 스키마

{
  "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.

입력 스키마

{
  "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.

입력 스키마

{
  "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.

입력 스키마

{
  "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.

입력 스키마

{
  "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.

입력 스키마

{
  "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
}

커뮤니티

이 서버 평가하기

증거

최근 관측

검증됨버전이 기록되지 않음도구 11개
검증됨버전이 기록되지 않음도구 11개