Skip to main content
Glama
yrvelez

Qualtrics MCP Server

by yrvelez

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
RATE_LIMIT_RPMNoRequests per minute50
REQUEST_TIMEOUTNoRequest timeout in ms30000
QUALTRICS_BASE_URLNoCustom base URL overrideAuto-generated
QUALTRICS_API_TOKENYesYour Qualtrics API token
QUALTRICS_READ_ONLYNoBlock all write/delete operations (safe exploration mode)false
QUALTRICS_DATA_CENTERYesData center ID (e.g., yul1)
RATE_LIMITING_ENABLEDNoEnable/disable rate limitingtrue

Capabilities

Features and capabilities supported by this server

CapabilityDetails
tools
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
list_surveysA

List one Qualtrics-managed page of surveys with optional name filtering; use nextPage to continue

get_surveyB

Get detailed information about a specific survey

create_surveyB

Create a new survey in Qualtrics

estimate_export_sizeA

Estimate export size from the survey's question count and an optional expected response count. Qualtrics survey metadata does not expose response totals, so omitting expectedResponseCount returns an honest per-response estimate.

update_surveyA

Update survey metadata such as name, active status, or expiration

delete_surveyA

Delete a survey. Requires name confirmation as a safety measure.

activate_surveyA

Activate a survey to begin collecting responses

deactivate_surveyA

Deactivate a survey to stop collecting responses

list_questionsA

List all questions in a survey with their types and a preview of the question text

get_questionA

Get the full definition of a specific question including choices, validation, and configuration

create_questionA

Create a question in a survey block with full payload control. For Matrix questions: Choices = rows/statements, Answers = columns/scale points (both required). Use additionalFields to pass any other Qualtrics question-definition fields (e.g., a template from get_question_template). For common types, prefer the add_*_question helpers.

update_questionA

Update an existing question. Performs a safe partial update: fetches the current definition and carries all fields forward, so only the fields you pass change. For Matrix questions, choices = rows and answers = columns.

delete_questionA

Remove a question from a survey

add_multiple_choice_questionB

Simplified helper to create a multiple choice question. Automatically maps to the correct Qualtrics QuestionType/Selector.

add_text_entry_questionB

Simplified helper to create a text entry question (single line, multi line, or essay).

add_descriptive_text_questionA

Simplified helper to create a descriptive text (DB/TB) question — commonly used for instructions, processing screens, or HTML content with optional JavaScript.

add_likert_questionA

Simplified helper to create a single-item Likert scale as MC/SAVR. Includes preset scales so you don't have to enumerate choices manually.

add_matrix_questionA

Simplified helper to create a matrix question. Choices = rows/statements, Answers = columns/scale points. Defaults to a Likert single-answer matrix; use selector/subSelector for variants (e.g., selector 'CS' + subSelector 'WOTB' for matrix constant sum). Statements may be objects to enable an inline text-entry box on individual rows (e.g., an 'Other (please specify)' row).

add_rank_order_questionB

Simplified helper to create a rank order question where respondents rank a list of items.

add_constant_sum_questionA

Simplified helper to create a constant sum question where respondents allocate values across items (e.g., percentages summing to 100). The default Choices/text-entry variation works in the New Survey Taking Experience; bars and slider variations require the legacy experience.

get_question_templateA

Get a question's full definition stripped of server-generated fields, ready to reuse as a create_question template (pass it via additionalFields). Best way to replicate complex question types (side-by-side, sliders, heatmaps): build one in the Qualtrics UI, then clone it via the API.

list_blocksA

List all blocks in a survey

get_blockA

Get a block's complete definition, including question order, skip logic, randomization, loop-and-merge, and navigation options

create_blockA

Create a new block. Supports complete Qualtrics block definitions for reference blocks, question ordering, skip logic, randomization, and loop-and-merge.

update_blockA

Safely update part of a block definition. The current block is fetched and carried forward because Qualtrics PUT replaces the complete block. Supports question ordering, skip logic, randomization, and loop-and-merge.

delete_blockA

Remove a block from a survey

export_responsesA

Export survey responses in JSON or CSV format. IMPORTANT: This tool will automatically save large exports to a local file to avoid context limits. Small exports may be returned directly. For better control over data size, consider using 'export_responses_filtered' with date ranges, specific questions, or a saved Qualtrics filter.

check_export_statusA

Check the status of a response export job

download_export_fileA

Download a completed response export using the fileId returned by check_export_status. Saves large files automatically and can save any export to a requested filename.

export_responses_filteredA

Export survey responses with documented Qualtrics filters to reduce data size. Use date bounds, a saved Qualtrics filter, question selection, or inclusion of responses still in progress. Large exports will be automatically saved to your Downloads folder.

get_responseA

Get a single survey response by its response ID

create_responseB

Import/create a response for a survey programmatically

update_responseA

Start a Qualtrics job to update embedded data on one existing survey response. The public API does not support rewriting recorded answer values through this operation; use create_response or response import for answer data.

delete_responseB

Delete a survey response

list_distributionsA

List one cursor-paginated page of distributions for a survey, with optional documented Qualtrics filters

get_distributionA

Get detailed information about a specific distribution including delivery stats

get_distribution_historyA

Get per-recipient delivery history for an email distribution (sent, opened, bounced, blocked, responded), including the contactLookupId that ties each row back to a contact. This is the documented way to recover respondent identity for individual-link distributions after the fact.

list_distribution_linksA

List one page of generated individual survey links. WARNING: Qualtrics documents that this GET can update contact-frequency state and reset email-status dates when used on other distribution types, so the distributions write scope is required.

create_anonymous_linkA

Look up the survey's BrandBaseURL and return its canonical anonymous survey-taking URL. Qualtrics anonymous links do not require creating a distribution; this tool performs no API write.

create_email_distributionB

Send a survey via email to a mailing list

delete_distributionC

Delete a distribution

create_reminderB

Send a reminder for an existing email distribution

create_thank_youA

Send or schedule a thank-you email for respondents in an existing email distribution

list_directoriesA

List the XM Directories (contact pools) available to this account. Use this first to discover the directoryId (POOL_...) that every mailing-list and contact tool requires.

list_mailing_listsA

List one cursor-paginated page of mailing lists in an XM Directory

get_mailing_listA

Get complete metadata for a mailing list

update_mailing_listA

Update the name or owner of an XM Directory mailing list

create_mailing_listA

Create a new mailing list for contact management and survey distribution

delete_mailing_listB

Delete a mailing list

list_contactsA

List one cursor-paginated page of contacts in an XM Directory mailing list

get_contactA

Get detailed information for one contact in an XM Directory mailing list

add_contactA

Add a single contact to a mailing list

update_contactA

Update an existing contact in a mailing list

remove_contactA

Remove a contact from this mailing list only; the contact remains in the XM Directory

bulk_import_contactsA

Create multiple contacts through the documented single-contact endpoint, returning per-contact successes and failures (non-atomic)

list_usersB

List users in your Qualtrics organization

get_userB

Get detailed information about a specific user

list_webhooksA

List all event subscriptions (webhooks) in your Qualtrics account

create_webhookB

Create an event subscription (webhook) to receive notifications for Qualtrics events

delete_webhookA

Delete an event subscription (webhook)

get_survey_flowA

Get the full survey flow tree showing the order of blocks, embedded data, web services, branching, and randomization

update_survey_flowA

Replace the entire survey flow tree. Use get_survey_flow first to get the current flow, modify it, then pass the full tree back.

insert_flow_elementA

Insert any Qualtrics flow element (Block, Branch, Group, BlockRandomizer, EmbeddedData, WebService, EndSurvey, Authenticator, etc.) at an exact position. Allocates a collision-free FlowID when one is not supplied.

update_flow_elementA

Update one flow element by FlowID. By default this fetches and carries forward the existing definition so omitted fields are preserved, then writes the normalized complete flow tree.

move_flow_elementA

Move an existing flow element anywhere in the top-level or nested flow while preserving its definition and FlowID.

delete_flow_elementA

Delete one top-level or nested flow element without rebuilding the rest of the flow

validate_survey_designA

Read-only preflight for a programmed survey. Checks FlowID uniqueness/counts, flow block references, block question references, DataExportTag presence/uniqueness, and unreachable blocks before activation or publishing.

add_embedded_dataA

Add embedded data fields anywhere in the survey flow. Place declarations at the beginning, or place assignments after the question/web service that produces their values. Fields are referenced with ${e://Field/FieldName}.

add_web_serviceA

Add a Web Service element anywhere in the survey flow. Response values can be mapped to embedded data fields for downstream piped text. For authentication, headers, or advanced Qualtrics fields, use additionalFields.

piped_text_referenceA

Look up Qualtrics piped text syntax. Returns the correct syntax for referencing question responses, embedded data, contact fields, and more in question text, default values, or web service configurations. Use this when you need to dynamically insert values into survey questions.

list_embedded_dataA

List all embedded data fields currently defined in a survey's flow

list_web_servicesA

List all Web Service elements currently defined in a survey's flow

qualtrics_api_requestA

Advanced escape hatch for any Qualtrics API v3 endpoint not covered by a dedicated tool. Requests stay on the configured Qualtrics origin. GET is available in read-only mode; otherwise-unmapped writes require the HIGH-risk 'advanced' write scope. Known endpoints still require their normal least-privilege scope. Prefer dedicated tools when available because they validate payloads and provide safer defaults.

list_quotasB

List complete quota definitions for a survey, including logic, limits, actions, schedules, and action options

get_quotaA

Get a quota's complete raw Qualtrics definition, including its logic and actions

create_quotaB

Create a quota from a complete raw Qualtrics quota definition. Optionally add it to a quota group in the same operation.

update_quotaA

Replace a quota with a complete raw Qualtrics definition. Use get_quota first, modify the returned definition, and send the complete payload because PUT may replace omitted fields.

delete_quotaB

Permanently delete a quota from a survey

list_quota_groupsA

List complete quota-group definitions for a survey, including membership and multiple-match behavior

get_quota_groupA

Get a quota group's complete raw Qualtrics definition, including its quota membership

create_quota_groupA

Create a quota group from a complete raw Qualtrics quota-group definition

update_quota_groupA

Replace a quota group with a complete raw Qualtrics definition. Use get_quota_group first, modify the returned definition, and send the complete payload because PUT may replace omitted fields.

delete_quota_groupA

Permanently delete a quota group AND every quota in that group. Qualtrics documents this as a cascading delete; inspect membership first and explicitly acknowledge the cascade.

copy_surveyA

Create a complete copy of an existing survey, preserving complex question types, scoring, flow, styling, and settings that do not have individual public mutation endpoints.

import_survey_qsfA

Create a survey from a complete Qualtrics Survey Format (QSF) object using the official multipart import API. Use a QSF exported by the Qualtrics UI; the Survey Version API's format=qsf response is not the same import format.

import_survey_textA

Create a survey from Qualtrics Simple or Advanced TXT format. Supports question IDs/tags, blocks, page breaks, embedded data, choice randomization, MC, Matrix, TE, Constant Sum, Rank Order, and descriptive text syntax.

import_survey_from_urlA

Create a survey from a publicly accessible QSF, TXT, or DOCX URL. Qualtrics fetches the file, so private/local URLs will not work.

import_survey_docxA

Create a survey from a base64-encoded DOCX prepared in Qualtrics Simple/Advanced import format. Prefer import_survey_text when possible because it is transparent and easier to validate.

list_librariesA

List Qualtrics libraries available to the current API user

list_library_blocksA

List reusable survey blocks in a Qualtrics library. Use these templates to discover complex block definitions before copying or recreating them through MCP.

list_library_questionsA

List reusable survey questions in a Qualtrics library. Use these templates to discover complex question definitions before copying or recreating them through MCP.

list_library_surveysA

List reusable survey surveys in a Qualtrics library. Use these templates to discover complex survey definitions before copying or recreating them through MCP.

list_library_messagesA

List reusable email, survey, validation, SMS, and subject messages in a library. Use this to find messageId values for distributions.

get_library_messageA

Get the complete multilingual content of a library message

create_library_messageB

Create a reusable multilingual library message for invitations, reminders, thank-yous, end-of-survey text, validation, or other supported categories.

update_library_messageA

Safely update a library message. Existing description and language content are fetched and preserved unless explicitly replaced.

delete_library_messageA

Permanently delete a reusable library message

upload_library_graphicA

Upload a non-confidential JPEG, GIF, or PNG graphic to a Qualtrics library from either a public HTTPS URL or base64 bytes. Uploaded graphics can be publicly accessible through their resulting URL.

delete_library_graphicB

Permanently delete a graphic from a Qualtrics library

get_survey_metadataA

Get survey-definition metadata, including ownership, status, language, and lifecycle dates

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/yrvelez/qualtrics-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server