ConfettiDocs

Tools

Reference for the tools exposed by the Confetti MCP server.

All tools are read-only and idempotent — none of them create, edit, or delete data.

ToolDescription
list_teamsLists the Confetti Teams available to you.
list_surveysLists a page of Surveys belonging to a Team.
get_surveyGets a Survey with its complete Question configuration.
list_responsesLists a page of Responses for a Survey.
get_score_distributionsGets score distributions for selected Survey Questions.

Typical flow

Call list_teams first to get a teamSlug, then list_surveys to get a surveyId. From there, use get_survey for the full Question configuration, list_responses for individual Responses, or get_score_distributions for aggregate score counts on selected Questions.

For reporting workflows and example prompts, see Reporting.

list_teams

No input.

Output fieldTypeDescription
teamsarrayTeams you belong to.
teams[].idstringThe Team identifier.
teams[].namestringThe Team name.
teams[].slugstringThe Team slug, used by the other tools.

list_surveys

InputTypeRequiredDescription
teamSlugstringYesTeam slug from list_teams.
pageintegerNoOne-based page number. Defaults to 1.
limitintegerNoSurveys to return, 1–100. Defaults to 10.
Output fieldTypeDescription
surveysarraySurveys on the requested page.
surveys[].idstringThe Survey identifier.
surveys[].titlestringThe Survey title.
surveys[].descriptionstring | nullOptional Survey description.
surveys[].statusactive | inactiveWhether the Survey currently accepts Responses.
surveys[].createdAt / updatedAtstringISO 8601 timestamps.
surveys[].questionsarrayThe first Question, when one exists.
surveys[]._count.responsesintegerNumber of Responses.
hasNextPagebooleanWhether another page is available.

get_survey

InputTypeRequiredDescription
teamSlugstringYesTeam slug from list_teams.
surveyIdstringYesSurvey ID from list_surveys.
Output fieldTypeDescription
idstringThe Survey identifier.
titlestringThe Survey title.
descriptionstring | nullOptional Survey description.
statusactive | inactiveWhether the Survey currently accepts Responses.
createdAt / updatedAtstringISO 8601 timestamps.
confirmationJSONSurvey confirmation configuration.
isPublicForPlatformboolean | nullWhether the Survey is public on the platform.
questionsarrayAll Questions, in display order.
questions[].idstringThe Question identifier.
questions[].titlestringThe Question title.
questions[].descriptionstring | nullOptional Question description.
questions[].surveyIdstringThe parent Survey identifier.
questions[].positioninteger | nullQuestion display position.
questions[].requiredbooleanWhether the Question requires an answer.
questions[].routingLogicJSONThe Question's routing logic.
questions[].propertiesJSONQuestion-type-specific configuration.

Unlike list_surveys, this does not include a _count.responses field.

list_responses

InputTypeRequiredDescription
teamSlugstringYesTeam slug from list_teams.
surveyIdstringYesSurvey ID from list_surveys.
cursorstringNoOpaque cursor from a previous call's nextCursor.
limitintegerNoResponses to return, 1–100. Defaults to 10.
Output fieldTypeDescription
responsesarrayResponses, newest first.
responses[].idstringThe Response identifier.
responses[].respondentstringThe caller-supplied respondent identifier.
responses[].dataJSONAnswers, keyed by Question identifier.
responses[].clientMetadataJSONMetadata supplied by the client that recorded it.
responses[].createdAtstringISO 8601 timestamp.
nextCursorstring, optionalCursor for the next page; omitted on the last page.

get_score_distributions

Only meaningful for Questions with a numeric score (e.g. rating Questions). A questionId with no matching Question returns an empty distribution for it rather than an error. An unknown Survey ID, or one from a different Team, returns a Not Found error.

InputTypeRequiredDescription
teamSlugstringYesTeam slug from list_teams.
surveyIdstringYesSurvey ID from list_surveys.
questionIdsstring[]Yes1–50 unique Question identifiers from get_survey.
timeRangestringNoall-time (default), last-7-days, last-30-days, q<1-4>-<year> (within the current or previous 4 quarters, e.g. q1-2026), or custom_<start>_<end> (e.g. custom_2026-01-01_2026-01-31).
Output fieldTypeDescription
distributionsarrayOne entry per requested Question, in requested order.
distributions[].questionIdstringThe Question identifier.
distributions[].currentarray of {score, count}Score counts for the requested time window.
distributions[].previousQuarterarray of {score, count} | nullScore counts for the previous quarter; null for non-quarter ranges.

Was this page helpful?

On this page