Qualtrics MCP服务器
一个模型上下文协议(MCP)服务器,使Claude能够完全控制Qualtrics平台。构建调查、管理问题、配置逻辑流、通过电子邮件分发、处理联系人、导出回复等等——所有这些都是通过自然语言完成的。
它能做什么?
53工具 覆盖整个Qualtrics API表面的8个域:
| 域 | 工具 | 功能 |
|---|---|---|
| 调查 | 8 | 创建、列出、获取、更新、删除、激活、停用、估计导出大小 |
| 问题 | 7 | 完整的CRUD+简化的多选、文本输入和矩阵/李克特助手 |
| 积木 | 4 | 创建、列出、更新、删除测量块 |
| 调查流程 | 7 | 获取/更新流、添加嵌入式数据、添加web服务、列表字段、管道文本引用 |
| 回复 | 7 | 导出(智能过滤+自动保存),获取/创建/更新/删除单个响应 |
| 联系人 | 7 | 邮件列表CRUD、个人+批量联系人导入、更新、删除 |
| 分布 | 5 | 电子邮件分发、匿名链接、提醒、列表、删除 |
| 网络钩子 | 3 | 调查生命周期事件的事件订阅 |
| 用户 | 2 | 列出组织用户,获取用户详细信息 |
调查管理
list_surveys--列出具有过滤和分页功能的调查get_survey--获取调查详细信息,可选择完整定义create_survey--创建新调查update_survey--更新名称、状态、过期时间delete_survey--删除名称确认安全检查activate_survey/deactivate_survey--切换收藏estimate_export_size--下载前预览数据大小
问题管理
list_questions--列出所有问题及其类型和预览get_question--获取完整的问题定义create_question--使用完整的Qualtrics规范创建(任何类型/选择器)update_question--修改文本、选项、验证delete_question--删除问题add_multiple_choice_question--从选择字符串列表简化MC创建add_text_entry_question--简化TE创作(单篇/多篇/短文)add_matrix_question--带有语句+刻度点的简化李克特/矩阵
区块管理
list_blocks/create_block/update_block/delete_block
调查流程和逻辑
get_survey_flow--全流树(块、随机化器、分支、嵌入式数据、web服务)update_survey_flow--更换整个流程add_embedded_data--将嵌入式数据字段注入流中add_web_service--在调查中期调用外部API,以响应现场映射list_embedded_data--列出所有声明的嵌入式数据字段list_web_services--列出所有web服务元素piped_text_reference查找${e://Field/...},${q://QID.../...}等语法
响应导出和数据
export_responses--导出所有响应(自动将大文件保存到下载)export_responses_filtered--导出日期范围、完成过滤器、问题选择check_export_status--轮询正在进行的导出作业get_response/create_response/update_response/delete_response
联系人和邮件列表
list_mailing_lists/create_mailing_list/delete_mailing_listlist_contacts--分页联系人列表add_contact/update_contact/remove_contactbulk_import_contacts--一次导入多个联系人
分布
list_distributions/get_distribution/delete_distributioncreate_anonymous_link--生成可共享的调查URLcreate_email_distribution--将调查邀请发送到邮件列表create_reminder--发送现有发行版的后续提醒
网络钩子
list_webhooks/create_webhook/delete_webhook- 订阅以下活动
completedResponse.{surveyId},controlpanel.activateSurvey等等。
用户
list_users/get_user
服务器控制
set_read_only_mode--在运行时切换只读模式(阻止所有写入/更新/删除操作)
设置
先决条件
- Node.js 22+
- 具有适当权限的Qualtrics API令牌
- Qualtrics数据中心ID
安装
git clone https://github.com/yrvelez/qualtrics-mcp-server.git
cd qualtrics-mcp-server
pnpm install配置环境变量:
cp .env.example .env
# Edit .env with your Qualtrics credentials配置
将这些设置在您的 .env 文件:
| 变量 | 必填 | 默认 | 描述 |
|---|---|---|---|
QUALTRICS_API_TOKEN | 是 | - | 您的Qualtrics API代币 |
QUALTRICS_DATA_CENTER | 是 | -- | 数据中心ID(例如。, yul1) |
QUALTRICS_BASE_URL | 否 | 自动生成 | 自定义基URL覆盖 |
QUALTRICS_READ_ONLY | 没有 | false | 阻止所有写入/删除操作(安全探索模式) |
RATE_LIMITING_ENABLED | 没有 | true | 启用/禁用速率限制 |
RATE_LIMIT_RPM | 没有 | 50 | 每分钟请求数 |
REQUEST_TIMEOUT | 没有 | 30000 | 请求超时(毫秒) |
只读模式
集 QUALTRICS_READ_ONLY=true 阻止所有写入、更新和删除操作。这对于安全地探索调查和导出数据而没有意外更改的风险非常有用。您还可以在运行时使用 set_read_only_mode 工具。
Claude桌面集成
添加到您的 claude_desktop_config.json:
{
"mcpServers": {
"qualtrics": {
"command": "npx",
"args": ["tsx", "/path/to/qualtrics-mcp-server/src/index.ts"],
"env": {
"QUALTRICS_API_TOKEN": "your_api_token",
"QUALTRICS_DATA_CENTER": "your_data_center_id"
}
}
}
}用法示例
配置后,问Claude以下问题:
测量楼:
- “创建一项名为‘2026年第一季度客户满意度’的调查”
- “添加一个衡量服务质量的5点李克特矩阵问题”
- “设置一个随机数发生器,将参与者分为两种情况”
- “为条件分配和参与者ID添加嵌入式数据字段”
数据收集:
- “创建邮件列表并导入这50个联系人”
- “将调查发送到我的研究参与者邮件列表”
- “为预筛选调查生成匿名链接”
- “向所有尚未回复的人发送提醒”
数据导出:
- “将过去30天的所有完整回复导出为CSV”
- “我的调查有多少回复?估计出口规模”
- “仅下载问题QID1-QID5的回复”
流程和逻辑:
- “显示当前调查流程”
- “向我的API添加一个设置刺激条件的web服务调用”
- “我使用什么管道文本语法来引用嵌入式数据?”
建筑
src/
config/settings.ts — Environment config with Zod validation
services/
qualtrics-client.ts — HTTP client with auth, rate limiting, read-only enforcement
survey-api.ts — Survey + question + block CRUD
flow-api.ts — Survey flow management
response-api.ts — Response export + individual response CRUD
contact-api.ts — Mailing list + contact management
distribution-api.ts — Email distributions + anonymous links
user-api.ts — Organization user lookups
webhook-api.ts — Event subscription management
tools/
survey-tools.ts — Survey MCP tool definitions
question-tools.ts — Question MCP tools (raw + simplified helpers)
block-tools.ts — Block MCP tools
flow-tools.ts — Flow, embedded data, web service, piped text tools
response-tools.ts — Export + individual response tools
contact-tools.ts — Mailing list + contact tools
distribution-tools.ts — Distribution tools
user-tools.ts — User tools
webhook-tools.ts — Webhook tools
_helpers.ts — Shared tool result helpers
index.ts — Tool registry
types/ — TypeScript type definitions
utils/ — File saving utilities发展
pnpm start # Run the server
pnpm dev # Run with file watching
pnpm typecheck # Type check with tsgo故障排除
| 问题 | 解决方案 |
|---|---|
"Unexpected token 'Q'" | 确保没有 console.log 语句干扰MCP JSON协议 |
"Read-only file system" | 使用绝对路径或让写入自动保存到下载 |
| 大文件超时 | 使用 export_responses_filtered 带有日期范围和 questionIds |
| 速率限制错误 | 内置速率限制会自动处理此问题;减少 RATE_LIMIT_RPM 如果需要 |
许可证
麻省理工学院
