MCP App Store
by KeenEthics
Education & Research
Great Question icon

Great Question

by Great Question

Overview

Great Question puts your whole research workflow inside ChatGPT and Codex. Create research studies, recruit participants, and pull what customers said, without leaving the chat. All backed by verbatim quotes you can trace to the session. You don't need to know which study holds the answer. Ask "What have customers said about our checkout in the last six months?" and it searches your transcripts, highlights and insights, then comes back with quotes, so everyone on your team makes research-backed decisions with confidence. It works the other way too. Describe what you want to learn and it sets up the study, an interview, survey or prototype test, with the screener, incentive and participants ready for you to review. Your existing Great Question permissions apply, so it only sees what you can see.

Tools

add_interview_moderator

ChatGPT
Add a new interview moderator. Add a user to an interview as a moderator, collaborator, or observer.

add_interview_participant

ChatGPT
Add a new interview participant. Add existing candidates to an interview as shortlisted participants. Skips candidates already in the study, inaccessible to the caller's teams, uncontactable, or ineligible.

add_interview_screener_question

ChatGPT
Add a new interview screener question. Does not replace existing questions on the screener.

add_study_participant

ChatGPT
Add a new study participant. Add existing candidates to any study as shortlisted participants. Works across interview, survey, and unmoderated test studies. Skips candidates already in the study, inaccessible to the caller's teams, uncontactable, or ineligible.

add_survey_participant

ChatGPT
Add a new survey participant. Add existing candidates to a survey as shortlisted participants. Skips candidates already in the study, inaccessible to the caller's teams, uncontactable, or ineligible.

add_survey_question

ChatGPT
Add a new survey question. Insert a question into a survey body without replacing its existing questions.

add_survey_screener_question

ChatGPT
Add a new survey screener question. Does not replace existing questions on the screener.

add_unmoderated_participant

ChatGPT
Add a new unmoderated participant. Add existing candidates to an unmoderated study as shortlisted participants. Skips candidates already in the study, inaccessible to the caller's teams, uncontactable, or ineligible.

add_unmoderated_screener_question

ChatGPT
Add a new unmoderated screener question. Does not replace existing questions on the screener.

apply_interview_screener_template

ChatGPT
Apply a new interview screener template. Copy a template's questions onto an interview study's screener. All existing questions are removed and replaced.

apply_repo_tag

ChatGPT
Add a tag to artifacts. Takes up to 20 highlights, reels or insights; each keeps the tags it already has. Applying a tag an artifact already has changes nothing. The tag must be global or belong to each artifact's study. Returns each artifact's tag_ids after the change under succeeded; an artifact that cannot be tagged is listed under failed with the reason, and does not stop the rest. Retrying a call is safe.

apply_survey_screener_template

ChatGPT
Apply a new survey screener template. Copy a template's questions onto a survey study's screener. All existing questions are removed and replaced.

apply_unmoderated_screener_template

ChatGPT
Apply a new unmoderated screener template. Copy a template's questions onto an unmoderated study's screener. All existing questions are removed and replaced.

compose_study_message

ChatGPT
Compose a new study message. Set the email template on this study for a kind. Idempotent: creates it from the account default on the first call and updates it thereafter. This is the copy the study sends. A study holds one template per kind, so composing the same kind again replaces what is already there, including copy someone wrote in the app - it is not how you draft several different one-off emails.

create_candidate

ChatGPT
Create a new candidate. Create a research participant (candidate). Idempotent on the account's unique id attribute (email / phone_number / external_identifier) — a matching existing candidate is updated instead of duplicated. Additional per-account custom attribute keys may be passed alongside the core fields.

create_interview_screener

ChatGPT
Create a new interview screener. Replace the screener questions on an existing interview study. All existing questions are replaced by the provided set.

create_interview_study

ChatGPT
Create a new interview study. Create an interview study with optional screener questions in a single call.

create_repo_highlight

ChatGPT
Create a new repo highlight. Highlight words in a session transcript. Choose one selection: a verbatim quote from get_repo_session_transcript, or both start_ms and end_ms. Prefer a quote: the transcript shows only MM:SS times, so use a time range only when you know the exact milliseconds. Use a quote when any selected words lack recording times, as in AI-moderated sessions; a time range selects only timed words. Copy numbers as the transcript spells them, usually in words ("fifteen", not "15"). A quote must match exactly one uninterrupted passage by one speaker; add words if it matches more than one. A time range selects all fully enclosed words, across speakers. A fully timed selection creates a clip usable in reels when source media exists or is uploading. Without source media, or when selected words lack timings, it creates a text-only highlight that cannot be used in reels. Requires a ready transcript and words not already marked by another highlight. Tags must be global or belong to the session's study.

create_repo_insight

ChatGPT
Create a new repo insight. Create an insight. To place a highlight or reel in the body, add a block {"type":"references","attrs":{"items":[{"type":"highlight","id":"<uuid>"}]}}. highlight_uuids and reel_tokens embed after the body.

create_repo_reel

ChatGPT
Create a new repo reel. Compile highlights into a new reel, in the given order. Take highlight uuids from list_repo_highlights, search_repo_highlights or create_repo_highlight. Each highlight must have a clip: a highlight made on untimed transcript words cannot go in a reel. Each highlight may appear once. The reel's video is stitched in the background.

create_repo_tag

ChatGPT
Create a new repo tag. Apply it to a highlight, reel or insight with apply_repo_tag. Give study_id to scope it to that study; omit it for a global tag. A group must belong to the same study, or be global for a global tag. Names are unique within a study, ignoring case. Check search_repo_tags with q first and reuse an existing tag instead of recreating it. If the name is taken, the error names the existing tag and its id; apply that tag with apply_repo_tag instead.

create_survey_screener

ChatGPT
Create a new survey screener. Replace the screener questions on an existing survey study. All existing questions are replaced by the provided set.

create_survey_study

ChatGPT
Create a new survey study. Create a survey, optionally with its questions in a single call. Screener (qualification) questions are added separately via create_survey_study_screener.

create_unmoderated_block

ChatGPT
Create a new unmoderated block. Add a task or question block to an unmoderated study, in a single call. The block's type is set by kind; each kind accepts its own fields (see below). Structural blocks (welcome, thank you, permissions, AI-moderated interview) are created with the study and cannot be added here. Prototype-test blocks fetch their screen graph from the design tool asynchronously, so screens and paths are not present in the immediate response.

create_unmoderated_screener

ChatGPT
Create a new unmoderated screener. Replace the screener questions on an existing unmoderated study. All existing questions are replaced by the provided set.

create_unmoderated_study

ChatGPT
Create a new unmoderated study. Create an unmoderated study with optional screener questions in a single call.

delete_candidate

ChatGPT
Delete a candidate. Permanently forget a candidate: destroys screener responses, detaches clips, and wipes PII (via Customer#forget!). This action is irreversible.

delete_interview_screener

ChatGPT
Delete an interview screener. Remove all questions from an interview study's screener.

delete_interview_screener_question

ChatGPT
Delete an interview screener question. Remove a single question from an interview's screener.

delete_interview_study

ChatGPT
Delete an interview study. Soft-delete (discard) an interview.

delete_repo_highlight

ChatGPT
Delete a repo highlight. Its words are unmarked in the transcript, its clip is removed from every reel that uses it, and insights that embed it stop showing it.

delete_repo_insight

ChatGPT
Delete a repo insight. Its embedded highlights and reels stay.

delete_repo_reel

ChatGPT
Delete a repo reel. Its highlights stay.

delete_survey_question

ChatGPT
Delete a survey question. Remove one question from a survey body and clear branches that target it.

delete_survey_screener

ChatGPT
Delete a survey screener. Remove all questions from a survey study's screener.

delete_survey_screener_question

ChatGPT
Delete a survey screener question. Remove a single question from a survey's screener.

delete_survey_study

ChatGPT
Delete a survey study. Soft-delete (discard) a survey.

delete_unmoderated_block

ChatGPT
Delete an unmoderated block. Remove a block from an unmoderated study. Structural blocks (welcome, thank you, permissions, AI-moderated interview) are pinned and cannot be removed.

delete_unmoderated_screener

ChatGPT
Delete an unmoderated screener. Remove all questions from an unmoderated study's screener.

delete_unmoderated_screener_question

ChatGPT
Delete an unmoderated screener question. Remove a single question from an unmoderated study's screener.

delete_unmoderated_study

ChatGPT
Delete an unmoderated study. Soft-delete (discard) an unmoderated study.

discard_study_message

ChatGPT
Discard a study message. Discard a one-off message written for a single send. A study's own email template cannot be discarded.

get_candidate

ChatGPT
Get a single candidate by ID. Research participants (people who take part in studies). Returns full profile including name, email, and demographics. For a candidate's status in a study, use list_study_participants.

get_candidate_segment

ChatGPT
Get a single candidate segment by ID. A saved candidate-filter definition ("segment") within the account. Returns id and name.

get_interview_calendar_settings

ChatGPT
Get a single interview calendar settings by ID. Fetch calendar booking settings for an interview.

get_interview_response

ChatGPT
Get a single interview response by ID. Fetch a single interview screener response by id with structured answers and qualification data.

get_interview_screener

ChatGPT
Get a single interview screener by ID. Fetch the screener questions for an interview study.

get_interview_screener_response

ChatGPT
Get a single interview screener response by ID. Fetch a single interview screener response by id with structured answers and qualification data.

get_interview_study

ChatGPT
Get a single interview study by ID. Fetch a single interview by id with full details.

get_message_template

ChatGPT
Get a single message template by ID. Fetch the account's default template for a given kind (one of: invite, screener, booked, thanks, welcome, reschedule_request, cancel_interview, cancel_task, booked_reminder, started_reminder, invited_reminder, ad_hoc, signed_consent_form). Falls back to the system default when no account template exists.

get_repo_highlight

ChatGPT
Get a single repo highlight by ID. Repository highlights: annotated excerpts from research sessions. Returns description, content, tags and session reference. used_in lists the reels and insights that use the highlight as {type, id, title}; pass each id to get_repo_reel or get_repo_insight. Items the viewer cannot access are omitted. Free-text fields are masked when the account hides PII from MCP; the candidate name and document title are also masked outside the viewer's teams. No video URLs; use get_repo_session or get_repo_session_transcript.

get_repo_insight

ChatGPT
Get a single repo insight by ID. An insight: title, text, cover image, tags and study. references lists each embed as {type, id, title}. body_doc is the body as TipTap JSON, with highlights and reels cited in place; edit it and send it to update_repo_insight. Embeds you can't see are left out and kept.

get_repo_reel

ChatGPT
Get a single repo reel by ID. Repository reels (highlight compilations) representing curated collections of video clips. Returns full reel details including text, clips, tags, and study. Free-text fields are masked when the account hides PII from MCP; clip titles are additionally masked for candidates outside the viewer's teams. Streamable video URLs are intentionally not exposed; fetch recording content via get_repo_session / get_repo_session_transcript.

get_repo_session

ChatGPT
Get a single repo session by ID. Repository sessions representing research interviews, calls, or observations. Returns session details including title, summary, tags, and associated study/candidate. A session with a recording or transcript does not mean the participant attended: recording starts when the moderator joins. For attendance (completed, no_show), use list_study_participants. When a recording exists, recording includes duration_seconds, recorded_at, and transcript_id. Transcript content is not included — fetch it via get_repo_session_transcript. When recording delivery is enabled for the account (admin opt-in, non-HIPAA), recording also includes a short-lived signed video_url.

get_repo_session_transcript

ChatGPT
Get a single repo session transcript by ID. Transcript for a specific repository session. Returns full speaker-attributed transcript content. If the recording is still importing or transcribing, returns a payload with ready: false, retryable: true, and a retry_after_seconds hint (HTTP 202) rather than an error — poll again after that delay. If transcription failed, returns ready: false, retryable: false (HTTP 422) — do not retry. Retrieval does not require marking the participant complete.

get_repo_tag

ChatGPT
Get a single repo tag by ID. Returns the tag's name, study and group. Use it to resolve tag_ids returned by highlights, reels and insights.

get_report_catalog

ChatGPT
Get the report catalog. Lists this account's reports, with what each one measures, the params it accepts and the shapes it renders as. Call this before run_report: a report only accepts the params named in its allowed_params, and rejects any other rather than ignoring it. Only an entry whose trust is ok can be run — the rest are listed so you can say why they are not.

get_screener_response

ChatGPT
Get a single screener response by ID. Fetch a qualification screener response by id. Returns the screener answers a candidate submitted to apply to a study — works for any study type (interview, survey, unmoderated test). Scoped to qualification screeners only; ids of survey main-form or in-test block responses return 404.

get_skill

ChatGPT
Get a single skill by ID. A single enabled AI skill, addressed by slug. Returns the full instructions artifact plus discovery metadata.

get_study

ChatGPT
Get a single study by ID. User research studies (interviews, surveys, unmoderated tests). Returns full study details including title, status, style, methodology, and configuration.

get_study_message

ChatGPT
Get a single study message by ID. Fetch a single study message by id.

get_study_participant

ChatGPT
Get a single study participant by ID. Fetch one study participant with their status. This is the source of truth for whether the participant attended; a recorded session does not mean they showed up.

get_study_participation_status_counts

ChatGPT
Get a single study participation status counts by ID. Get recruiting progress without fetching participant pages. Returns every public participant status with its count, including zero counts. Counts only visible, non-discarded participants. Does not accept participant filters or expose restricted-candidate subtotals.

get_survey_response

ChatGPT
Get a single survey response by ID. Fetch a single survey participant response by id with structured answers and qualification data.

get_survey_screener

ChatGPT
Get a single survey screener by ID. Fetch the screener questions for a survey study.

get_survey_screener_response

ChatGPT
Get a single survey screener response by ID. Fetch a single survey screener response by id with structured answers and qualification data.

get_survey_study

ChatGPT
Get a single survey study by ID. Fetch a single survey by id with full details.

get_team

ChatGPT
Get a single team by ID. A team within the account. Returns name, color, and icon.

get_template

ChatGPT
Get a single template by ID. Fetch a single template with its full question set. A template with no questions returns an empty list.

get_transcript

ChatGPT
Get a single transcript by ID. Text transcriptions of recorded research sessions. Returns full transcript including speaker-attributed content.

get_unmoderated_response

ChatGPT
Get a single unmoderated response by ID. Fetch a single participant response by id with the full structured answer set, including task metrics, timings, and qualification data. For website-test answers, only the url the participant was shown is captured — there is no click, time-on-page, or path data; the session recording and follow-up question answers are the only behavioral signal. When the participation has an associated session (AI-moderated unmoderated studies), session includes the uuid and a url deep link to the GQ app. When a recording exists, recording includes duration_seconds, recorded_at, and transcript_id; fetch transcript content with get_transcript (passing recording.transcript_id) or get_repo_session_transcript (passing session.uuid). Streamable video URLs are intentionally not exposed.

get_unmoderated_screener

ChatGPT
Get a single unmoderated screener by ID. Fetch the screener questions for an unmoderated study.

get_unmoderated_screener_response

ChatGPT
Get a single unmoderated screener response by ID. Fetch a single unmoderated study screener response by id with structured answers and qualification data.

get_unmoderated_study

ChatGPT
Get a single unmoderated study by ID. Fetch a single unmoderated study by id, including its ordered block configuration — the tasks and questions a participant works through. Prototype-test blocks carry the screens, success paths, screen-to-screen graph, and aggregate analytics (completion_rate, top response paths, drop_off_by_screen) rolled up across every submitted response — including abandoned ones, which power the drop-off breakdown. They also expose heatmap_view_url and funnel_view_url, deep-links to the block's analytics on the study summary page in the Great Question app.

list_candidate_segments

ChatGPT
List all candidate segments with pagination. Saved candidate-filter definitions ("segments") within the account. Returns id and name. Use a segment id as the segment_id filter on search_candidates to retrieve candidates matching the segment.

list_candidates

ChatGPT
List all candidates with pagination. Research participants (people who take part in studies). Returns name, email, and demographics. For a candidate's status in a study, use list_study_participants.

list_interview_moderators

ChatGPT
List all interview moderators with pagination. List users assigned to an interview (moderators, collaborators, observers).

list_interview_responses

ChatGPT
List all interview responses with pagination. List screener responses for an interview study. Each response includes structured answers with labels, values, qualification flags (qualified, qualifying, disqualified), and match score — useful for triaging candidates.

list_interview_screener_responses

ChatGPT
List all interview screener responses with pagination. List screener responses for an interview study. Each response includes structured answers with labels, values, qualification flags (qualified, qualifying, disqualified), and match score — useful for triaging applicants.

list_interview_studies

ChatGPT
List all interview studies with pagination. Interview (video call) studies. Returns title, status, and configuration for each interview.

list_message_templates

ChatGPT
List all message templates with pagination. List the account's message templates. Templates are the per-account defaults used when composing a study message.

list_repo_highlights

ChatGPT
List all repo highlights with pagination. Repository highlights representing annotated excerpts from research sessions. Returns highlight metadata including text, title, and color. Free-text fields are masked when the account hides PII from MCP.

list_repo_insights

ChatGPT
List all repo insights with pagination. Repository insights representing research findings. Returns insight metadata including title, description, and content type.

list_repo_interview_highlights

ChatGPT
List all repo interview highlights with pagination. Highlights of one interview, by the session_uuid from list_repo_sessions: any kind of session, including recordings and unmoderated tests. Includes highlights made on its transcript without a clip. Returns the same highlight metadata as search_repo_highlights; pass a highlight's uuid to get_repo_highlight for its content and tags. Free-text fields are masked when the account hides PII from MCP.

list_repo_reels

ChatGPT
List all repo reels with pagination. Repository reels (highlight compilations) representing curated collections of video clips. Returns reel metadata including title and subtitle. Free-text fields are masked when the account hides PII from MCP.

list_repo_sessions

ChatGPT
List all repo sessions with pagination. Repository sessions representing research interviews, calls, or observations. Returns session metadata including title, summary, and timestamps. A session with a recording or transcript does not mean the participant attended: recording starts when the moderator joins. For attendance (completed, no_show), use list_study_participants. When a recording exists, recording includes duration_seconds, recorded_at, and transcript_id. When recording delivery is enabled for the account (admin opt-in, non-HIPAA), recording also includes a short-lived signed video_url.

list_repo_tags

ChatGPT
List all repo tags with pagination. Repository tags applied to highlights, reels and insights. Returns each tag's ID, name, study and group, so tag_ids on those records can be resolved to names. Lists global tags and tags of studies the caller can read.

list_skills

ChatGPT
List all skills with pagination. Reusable AI skills enabled for the account. Returns slug, name, and description. Use a skill slug with get_skill to retrieve its full instructions.

list_studies

ChatGPT
List all studies with pagination. User research studies (interviews, surveys, unmoderated tests). Returns title, status, style, and configuration.

list_study_messages

ChatGPT
List all study messages with pagination. List a study's messages. A message with custom: true is a one-off written in the app for a single send and no automatic send reads it; every other message is the study's own email template for that kind, the copy the study sends. A kind that has never been opened or sent has no message yet - fetch the account default with get_message_template(kind) and write it with compose_study_message(kind).

list_study_participants

ChatGPT
List all study participants with pagination. List a study's participants with their status. This is the source of truth for whether a participant attended: a session with a recording or transcript does not mean the participant showed up, because recording starts when the moderator joins. candidate_id links a participant to sessions and candidates.

list_survey_questions

ChatGPT
List all survey questions with pagination. List the questions in a survey body in display order.

list_survey_responses

ChatGPT
List all survey responses with pagination. List participant responses for a survey study. Each response includes structured answers with labels, values, qualification flags (qualified, qualifying, disqualified), and match score.

list_survey_screener_responses

ChatGPT
List all survey screener responses with pagination. List screener responses for a survey study. Returns applicants' answers to the qualification screener with structured answers, qualification flags (qualified, qualifying, disqualified), and match score. Distinct from list_survey_responses, which returns the survey's own form answers.

list_survey_studies

ChatGPT
List all survey studies with pagination. Survey studies. Returns title, status, and configuration for each survey.

list_teams

ChatGPT
List all teams with pagination. Teams within the account. Returns name, color, and icon. Use a team id as the team_id when creating a moderated (interview) study.

list_templates

ChatGPT
List all templates with pagination. List the account's reusable templates. Each reports how many questions it carries. Use get_template to read a template's questions.

list_transcripts

ChatGPT
List all transcripts with pagination. Matching passages from recorded research sessions. Each entry carries the excerpt text, its relevance score, and a reference to the transcript it came from; load the full transcript with GET /v1/transcripts/:id.

list_unmoderated_responses

ChatGPT
List all unmoderated responses with pagination. List participant responses for an unmoderated study. Each response includes structured answers (text, choice, prototype test, website test, card sort, tree test) with labels, values, question types, task timings, and qualification data. For website-test answers, only the url the participant was shown is captured — there is no click, time-on-page, or path data; the session recording and follow-up question answers are the only behavioral signal. When the participation has an associated session (AI-moderated unmoderated studies), session includes the uuid and a url deep link to the GQ app. When a recording exists, recording includes duration_seconds, recorded_at, and transcript_id; fetch transcript content with get_transcript (passing recording.transcript_id) or get_repo_session_transcript (passing session.uuid). Streamable video URLs are intentionally not exposed.

list_unmoderated_screener_responses

ChatGPT
List all unmoderated screener responses with pagination. List screener responses for an unmoderated study. Returns applicants' answers to the qualification screener with structured answers, qualification flags (qualified, qualifying, disqualified), and match score. Distinct from list_unmoderated_responses, which returns in-test block answers.

list_unmoderated_studies

ChatGPT
List all unmoderated studies with pagination. List unmoderated studies — participants complete tasks independently (prototype walkthroughs, card sorts, tree tests, website tests, AI-moderated interviews). Returns title and status for each study; call get_unmoderated_study for a study's block configuration.

remove_interview_moderator

ChatGPT
Remove an interview moderator. Remove a user from an interview. Cannot remove the owner.

remove_repo_tag

ChatGPT
Remove a tag from artifacts. Takes up to 20 highlights, reels or insights; each keeps its other tags. Removing a tag an artifact does not have changes nothing. Returns each artifact's tag_ids after the change under succeeded; an artifact that cannot be untagged is listed under failed with the reason, and does not stop the rest. Retrying a call is safe.

reorder_survey_question

ChatGPT
Update an existing survey question. Move a survey question to a new 1-based position and shift the surrounding questions.

reorder_unmoderated_block

ChatGPT
Update an existing unmoderated block. Move a block to a new 1-based position within its unmoderated study. Structural blocks pin the order — a move that would place a block before the permissions block or after the thank-you block is rejected.

revise_study_message

ChatGPT
Update an existing study message. Revise a study message in place, by id. A message with custom: true is a one-off written for a single send, so revising it changes nothing the study sends automatically - reach for compose_study_message(kind) to change the copy the study sends.

run_report

ChatGPT
Run a single report by ID. Returns the same typed columns and rows the Reporting tab renders, capped at the same row limit. The key is a report key from get_report_catalog, which also names the params each report accepts — a param a report does not accept is rejected rather than ignored, so read its allowed_params before passing any.

search_candidate_segments

ChatGPT
Search candidate segments using filters. Saved candidate-filter definitions ("segments") within the account. Returns id and name. Use a segment id as the segment_id filter on search_candidates to retrieve candidates matching the segment.

search_candidates

ChatGPT
Search candidates using filters. Research participants (people who take part in studies). Returns name, email, and demographics. For a candidate's status in a study, use list_study_participants.

search_interview_responses

ChatGPT
Search interview responses using filters. List screener responses for an interview study. Each response includes structured answers with labels, values, qualification flags (qualified, qualifying, disqualified), and match score — useful for triaging candidates.

search_interview_screener_responses

ChatGPT
Search interview screener responses using filters. List screener responses for an interview study. Each response includes structured answers with labels, values, qualification flags (qualified, qualifying, disqualified), and match score — useful for triaging applicants.

search_interview_studies

ChatGPT
Search interview studies using filters. Interview (video call) studies. Returns title, status, and configuration for each interview.

search_repo

ChatGPT
Search the repo. Searches the research repository the way its search page does: highlights, reels, insights (files included), interview sessions and survey results ranked together by relevance, then in sort order. Each result's reference is {type, id, title}; fetch it with the matching tool: insight with get_repo_insight, highlight with get_repo_highlight, reel with get_repo_reel, session with get_repo_session, screener_response with get_screener_response, survey_response with get_survey_response (pass the result's study_id as survey_id) and unmoderated_response with get_unmoderated_response (pass it as unmoderated_study_id). meta.has_more says whether another page follows.

search_repo_highlights

ChatGPT
Search repo highlights using filters. Repository highlights representing annotated excerpts from research sessions. Returns highlight metadata including text, title, and color. Free-text fields are masked when the account hides PII from MCP.

search_repo_insights

ChatGPT
Search repo insights using filters. Repository insights representing research findings. Returns insight metadata including title, description, and content type.

search_repo_reels

ChatGPT
Search repo reels using filters. Repository reels (highlight compilations) representing curated collections of video clips. Returns reel metadata including title and subtitle. Free-text fields are masked when the account hides PII from MCP.

search_repo_sessions

ChatGPT
Search repo sessions using filters. Repository sessions representing research interviews, calls, or observations. Returns session metadata including title, summary, and timestamps. A session with a recording or transcript does not mean the participant attended: recording starts when the moderator joins. For attendance (completed, no_show), use list_study_participants. When a recording exists, recording includes duration_seconds, recorded_at, and transcript_id. When recording delivery is enabled for the account (admin opt-in, non-HIPAA), recording also includes a short-lived signed video_url.

search_repo_tags

ChatGPT
Search repo tags using filters. Repository tags applied to highlights, reels and insights. Returns each tag's ID, name, study and group, so tag_ids on those records can be resolved to names. Lists global tags and tags of studies the caller can read.

search_studies

ChatGPT
Search studies using filters. User research studies (interviews, surveys, unmoderated tests). Returns title, status, style, and configuration.

search_study_participants

ChatGPT
Search study participants using filters. List a study's participants with their status. This is the source of truth for whether a participant attended: a session with a recording or transcript does not mean the participant showed up, because recording starts when the moderator joins. candidate_id links a participant to sessions and candidates.

search_survey_responses

ChatGPT
Search survey responses using filters. List participant responses for a survey study. Each response includes structured answers with labels, values, qualification flags (qualified, qualifying, disqualified), and match score.

search_survey_screener_responses

ChatGPT
Search survey screener responses using filters. List screener responses for a survey study. Returns applicants' answers to the qualification screener with structured answers, qualification flags (qualified, qualifying, disqualified), and match score. Distinct from list_survey_responses, which returns the survey's own form answers.

search_survey_studies

ChatGPT
Search survey studies using filters. Survey studies. Returns title, status, and configuration for each survey.

search_teams

ChatGPT
Search teams using filters. Teams within the account. Returns name, color, and icon. Use a team id as the team_id when creating a moderated (interview) study.

search_templates

ChatGPT
Search templates using filters. List the account's reusable templates. Each reports how many questions it carries. Use get_template to read a template's questions.

search_transcripts

ChatGPT
Search transcripts using filters. Matching passages from recorded research sessions. Each entry carries the excerpt text, its relevance score, and a reference to the transcript it came from; load the full transcript with GET /v1/transcripts/:id.

search_unmoderated_responses

ChatGPT
Search unmoderated responses using filters. List participant responses for an unmoderated study. Each response includes structured answers (text, choice, prototype test, website test, card sort, tree test) with labels, values, question types, task timings, and qualification data. For website-test answers, only the url the participant was shown is captured — there is no click, time-on-page, or path data; the session recording and follow-up question answers are the only behavioral signal. When the participation has an associated session (AI-moderated unmoderated studies), session includes the uuid and a url deep link to the GQ app. When a recording exists, recording includes duration_seconds, recorded_at, and transcript_id; fetch transcript content with get_transcript (passing recording.transcript_id) or get_repo_session_transcript (passing session.uuid). Streamable video URLs are intentionally not exposed.

search_unmoderated_screener_responses

ChatGPT
Search unmoderated screener responses using filters. List screener responses for an unmoderated study. Returns applicants' answers to the qualification screener with structured answers, qualification flags (qualified, qualifying, disqualified), and match score. Distinct from list_unmoderated_responses, which returns in-test block answers.

search_unmoderated_studies

ChatGPT
Search unmoderated studies using filters. List unmoderated studies — participants complete tasks independently (prototype walkthroughs, card sorts, tree tests, website tests, AI-moderated interviews). Returns title and status for each study; call get_unmoderated_study for a study's block configuration.

send_interview_screener_invitation

ChatGPT
Send a new interview screener invitation. Invite candidates to an interview's screener. Creates invited participations and sends the screener invitation message to each contactable candidate.

send_survey_screener_invitation

ChatGPT
Send a new survey screener invitation. Invite candidates to a survey's screener. Creates invited participations and sends the screener invitation message to each contactable candidate.

send_unmoderated_screener_invitation

ChatGPT
Send a new unmoderated screener invitation. Invite candidates to an unmoderated study's screener. Creates invited participations and sends the screener invitation message to each contactable candidate.

update_candidate

ChatGPT
Update an existing candidate. Update a candidate's core attributes. Additional per-account custom attribute keys may be passed alongside the core fields.

update_interview_calendar_settings

ChatGPT
Update an existing interview calendar settings. Update calendar booking settings for an interview.

update_interview_moderator

ChatGPT
Update an existing interview moderator. Update an interview moderator's role or calendar.

update_interview_screener_question

ChatGPT
Update an existing interview screener question. Update attributes of a single screener question.

update_interview_study

ChatGPT
Update an existing interview study. Update an interview's attributes.

update_repo_highlight

ChatGPT
Update an existing repo highlight. Change a highlight's title, description, tags, or selected transcript words. Omitted fields stay unchanged. To move it, provide a verbatim quote from get_repo_session_transcript or both start_ms and end_ms, never both. A quote must match exactly one uninterrupted passage by one speaker; add words if it matches more than one. A time range selects all fully enclosed timed words, across speakers, and snaps the clip to their boundaries. A highlight with a clip can move only to fully timed words; one without a clip can also move to timed words when its session has no source media. The new words must not be marked by another highlight. tag_ids replaces all tags; an empty list removes them. Tags must be global or belong to the session's study.

update_repo_insight

ChatGPT
Update an existing repo insight. Update an insight. Omitted fields stay. body_doc replaces the body; embeds it doesn't cite move after it. highlight_uuids and reel_tokens replace that kind's embeds, except ones the body cites. A file-backed insight has no body or embeds.

update_repo_reel

ChatGPT
Update an existing repo reel. Change a reel's title, subtitle, or highlights. Omitted fields stay unchanged. highlight_uuids replaces the reel's highlights and sets their order: include a highlight to add it, leave one out to remove it. Each highlight must have a clip and may appear once. A reel in a study only holds highlights from that study. The reel's video is restitched in the background when its highlights change.

update_study_participant

ChatGPT
Update an existing study participant. Change a participant's status the way a researcher does in the app. Use removed to remove them from the study; it only applies before they are scheduled (new_to_study, sent_screener, applied, shortlisted, invited), and shortlisting them again undoes it. Use canceled for a participant who is already scheduled. Marking a participant completed does not pay or send an incentive. Incentives cannot be issued through MCP. Completing fails if the study lacks funds. Marking no_show or canceled cancels an unredeemed incentive.

update_survey_question

ChatGPT
Update an existing survey question. Update one question in a survey body. Use reorder_survey_question to change its position.

update_survey_screener_question

ChatGPT
Update an existing survey screener question. Update attributes of a single screener question.

update_survey_study

ChatGPT
Update an existing survey study. Update a survey's title, research goal, team, or owner.

update_unmoderated_block

ChatGPT
Update an existing unmoderated block. Update a block's shared attributes and its kind-specific fields. The block's kind cannot change. Updating a prototype-test url re-fetches its screen graph asynchronously.

update_unmoderated_screener_question

ChatGPT
Update an existing unmoderated screener question. Update attributes of a single screener question.

update_unmoderated_study

ChatGPT
Update an existing unmoderated study. Update an unmoderated study's title, research goal, team, or owner.

Capabilities

Writes

Example Prompts

Click any prompt to copy it.

App Stats

149

Tools

3

Prompts

ChatGPT

Platforms

Works with

ChatGPT

Data refreshed daily