Survey Solutions MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {} |
| prompts | {} |
| resources | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| survey_solutions_orientationA | Explain Survey Solutions concepts and safe MCP usage: workspaces, questionnaire versions, assignments, interviews, statuses, comments, roster vectors, exports, and permissions. |
| list_profilesA | List configured Survey Solutions profiles. Secrets are never returned. |
| get_active_profileA | Return the currently active Survey Solutions profile and redacted connection details. |
| set_active_profileA | Switch the active profile for this MCP server's local config. This writes local configuration but does not change credentials, permissions, or Survey Solutions server data. |
| get_server_infoB | Fetch basic Survey Solutions server information and capability summary for the active profile. The surveySolutionsHeader value, when present, is the server's x-survey-solutions response header and usually identifies the Headquarters application/build version. |
| get_mcp_diagnosticsA | Return MCP package/runtime diagnostics including package version, process start time, config path, config load time, Node.js version, and active profile. Does not expose secrets. |
| check_connectionA | Verify that the selected profile can reach and authenticate with Survey Solutions Headquarters. For the mock profile, returns a mock success result. |
| get_api_capabilitiesB | Inspect REST/GraphQL capabilities for the Survey Solutions server. Uses /swagger/v1/swagger.json when available. |
| describe_permission_modesB | Return human-readable explanations of MCP permission modes, including what each allows/blocks and risk warnings. |
| get_profile_permissionsB | Show effective permission flags for the active or requested profile. |
| get_tool_catalogB | Return an agent-facing catalog of all MCP tools with permission requirement, side effect class, confirmation requirement, mock support, required REST endpoint, and current-server availability when OpenAPI is available. |
| recommend_permission_modeB | Recommend the least-permissive permission mode for a described task, e.g. export data, reject interviews, create users, or call raw API endpoints. |
| generate_permission_change_commandA | Generate the bash/PowerShell command a user can run to change a profile's permission mode. The MCP does not silently grant itself more permission. |
| explain_blocked_toolA | Explain whether a tool is blocked by the current permission mode and suggest a CLI command or safer alternatives. For rest_request, distinguishes GET, write, and DELETE raw permissions. |
| list_workspacesA | List Survey Solutions workspaces available to the configured API user. Workspaces are logical areas inside Headquarters, often one per project. |
| get_workspace_statusA | Check whether a workspace can be deleted and inspect blocking counts before deletion. |
| create_workspaceB | Create a new Survey Solutions workspace. Requires admin_write permission. |
| update_workspaceB | Update a workspace display name. Requires admin_write permission. |
| disable_workspaceC | Disable a Survey Solutions workspace. Requires admin_write permission. |
| enable_workspaceB | Enable a disabled Survey Solutions workspace. Requires admin_write permission. |
| delete_workspaceB | Delete a Survey Solutions workspace. Requires admin_write permission and should only be used for empty/test workspaces after checking workspace status. |
| list_questionnairesA | List imported questionnaires and versions. Questionnaire versioning matters because fieldwork changes create new versions with different schemas. |
| get_questionnaire_web_interview_statusA | Check whether questionnaire-level web interview mode is active. If inactive, web assignment links may show as expired. |
| activate_web_interviewA | Activate questionnaire-level web interviews through the same HQ endpoint used by Web Interview Settings. Requires fieldwork_write or admin_write permission. |
| deactivate_web_interviewA | Deactivate questionnaire-level web interviews. Requires fieldwork_write or admin_write permission and exact questionnaire identity confirmation. |
| list_assignmentsC | List Survey Solutions assignments. Assignments define responsible users, identifying data, quantities, and rules used to create interviews. |
| get_assignmentC | Get details for one Survey Solutions assignment, including web mode state where available. |
| create_assignmentB | Create a Survey Solutions assignment. Can create open web interview links by setting web_mode true and quantity -1. Requires fieldwork_write or admin_write permission. |
| archive_assignmentC | Archive an assignment. Requires fieldwork_write or admin_write permission. |
| unarchive_assignmentB | Unarchive an assignment. Requires fieldwork_write or admin_write permission. |
| list_interviewsB | List Survey Solutions interviews using the active workspace interview list endpoint. Interviews are collected or in-progress cases with ID/key/status/responsible user and history; available filters depend on the Headquarters build. |
| get_interview_detailsA | Get available answer/detail values for one interview by interview ID. Use get_interview_history and get_interview_stats for audit trail, status changes, comments, and operational counts. |
| get_interview_historyA | Get audit/history records for one interview, including status changes, answers, comments, and assignment actions returned by the active Headquarters build. |
| get_interview_statsB | Get interview-level statistics such as answered/not answered, valid/invalid, comments count, duration, key, status, and web interview URL. |
| download_interview_pdfB | Download the PDF transcript for one interview to a local file path on the MCP host. |
| comment_on_interview_variableA | Post a question-level comment using a variable name and optional roster vector. Requires fieldwork_write or admin_write permission. This is a live mutation with no automatic idempotency key; read the interview first and use exact interview/variable/roster targeting. |
| approve_interviewA | Approve an interview as supervisor. Requires fieldwork_write or admin_write permission and exact interview ID confirmation. Live mutation; read current status first and expect the returned state/audit fields to vary by Headquarters build. |
| reject_interviewA | Reject an interview as supervisor. Requires fieldwork_write or admin_write permission and exact interview ID confirmation. Live mutation; include a clear comment and read current status first. |
| hq_approve_interviewA | Approve an interview as Headquarters. Requires fieldwork_write or admin_write permission and exact interview ID confirmation. Live mutation; read current status first and expect the returned state/audit fields to vary by Headquarters build. |
| hq_reject_interviewA | Reject an interview as Headquarters. Requires fieldwork_write or admin_write permission and exact interview ID confirmation. Live mutation; include a clear comment and read current status first. |
| hq_unapprove_interviewA | Move an HQ-approved interview out of HQ approved state. Requires fieldwork_write or admin_write permission and exact interview ID confirmation. Live mutation; read current status first and use only on a known target case. |
| list_export_jobsA | List Survey Solutions export jobs for the active workspace. Exports are asynchronous: start a job, poll status, then download the file. |
| start_exportB | Start a Survey Solutions export job for a questionnaire identity such as GUID$Version. Export creation is allowed in read_only mode because it does not alter fieldwork data. |
| get_export_jobC | Get status/details for a Survey Solutions export job. |
| download_export_fileA | Download a completed Survey Solutions export job to a local file path on the MCP host. |
| inspect_export_fileA | Inspect a downloaded Survey Solutions export zip on the MCP host. Lists files, classifies data/comment/action/DDI/preview files, and samples lightweight text/tabular metadata without parsing binary Stata/SPSS data. |
| summarize_export_qcA | Create a first structural QC summary from a downloaded Survey Solutions export zip: expected file roles, DDI sample variables, readable tabular row/column counts, fieldwork signals, support files, warnings, and next steps. Does not yet parse binary Stata/SPSS values. |
| cancel_export_jobB | Cancel an export job. Requires fieldwork_write or admin_write permission because it changes server job state. |
| get_global_noticeC | Read the Survey Solutions Headquarters global notice setting. |
| set_global_noticeB | Set the Survey Solutions Headquarters global notice. Requires admin_write permission. |
| clear_global_noticeA | Remove the Survey Solutions Headquarters global notice. Requires admin_write permission. |
| list_supervisorsB | List active supervisors in the workspace. |
| list_supervisor_interviewersC | List interviewers assigned to a supervisor. |
| get_userC | Get details for a supervisor or interviewer user by ID. |
| create_userA | Create a supervisor or interviewer user. Requires admin_write permission. Passwords are accepted by the API but should be handled as temporary setup secrets. |
| archive_userB | Archive a supervisor or interviewer user. Requires admin_write permission. |
| unarchive_userA | Unarchive a supervisor or interviewer user. Requires admin_write permission. |
| graphql_queryB | Run a Survey Solutions GraphQL query. Read-only queries are allowed; mutations require raw_api permission and allowRawGraphqlMutations. |
| prepare_designer_questionnaire_importA | Prepare human-in-the-loop instructions for importing a questionnaire from Designer into Headquarters when no public import API is available. |
| get_questionnaireC | Get metadata for one imported questionnaire/version by GUID$Version identity. |
| get_questionnaire_documentC | Retrieve questionnaire document/design metadata where the active Headquarters build exposes it. |
| list_interview_statusesA | Return canonical Survey Solutions interview status names used by export/status filters and fieldwork workflows. |
| get_questionnaire_criticality_levelA | Read questionnaire criticality settings where supported by the active Headquarters build. |
| set_questionnaire_criticality_levelB | Set questionnaire criticality settings. Requires admin_write permission and exact questionnaire identity confirmation. |
| get_questionnaire_audio_recordingA | Read questionnaire audio-recording settings where supported by the active Headquarters build. |
| set_questionnaire_audio_recordingA | Set questionnaire audio-recording settings. Requires admin_write permission and exact questionnaire identity confirmation. |
| get_assignment_historyC | Inspect assignment history/changes where the active Headquarters build exposes assignment history. |
| get_assignment_quantity_settingsC | Read quantity/limit behavior for one assignment. |
| get_assignment_audio_recordingA | Read audio-recording setting for one assignment. |
| assign_assignmentA | Reassign an assignment to another responsible user. Requires fieldwork_write/admin_write and exact assignment confirmation. |
| change_assignment_quantityB | Change assignment quantity. Requires fieldwork_write/admin_write and exact assignment confirmation. |
| change_assignment_statusC | Change assignment status. Requires fieldwork_write/admin_write and exact assignment confirmation. |
| change_assignment_target_areaB | Change assignment target area. Requires fieldwork_write/admin_write and exact assignment confirmation. |
| downsize_assignmentC | Set assignment size to collected interviews where supported. Requires fieldwork_write/admin_write and exact assignment confirmation. |
| set_assignment_audio_recordingA | Set assignment audio-recording flag. Requires fieldwork_write/admin_write and exact assignment confirmation. |
| comment_on_interview_questionA | Post a question-level comment using the OpenAPI questionId format. For roster questions, include roster coordinates in question_id as documented by Survey Solutions. Requires fieldwork_write/admin_write. |
| assign_interviewB | Reassign an interview to another responsible user. Requires fieldwork_write/admin_write and exact interview confirmation. |
| assign_interview_supervisorB | Reassign an interview at supervisor level where supported by the active Headquarters build. Requires fieldwork_write/admin_write and exact interview confirmation. |
| delete_interviewA | Delete an interview where supported by the active Headquarters build. Requires fieldwork_write/admin_write and exact interview confirmation. Use only on throwaway/test cases. |
| get_supervisorC | Get supervisor details by exact user ID. |
| get_interviewerC | Get interviewer details by exact user ID. |
| get_interviewer_actions_logC | Read interviewer actions/audit log over an optional UTC date window where supported. |
| get_statistics_reportC | Read a built-in Survey Solutions statistics report using query parameters. |
| list_statistics_questionnairesC | List questionnaire options available to Survey Solutions statistics reporting. |
| list_statistics_questionsA | List questions available to Survey Solutions statistics reporting for a questionnaire. Uses the 26.07 OpenAPI statistics questions endpoint with questionnaireId/version query parameters. |
| summarize_fieldwork_statusB | High-level read-only fieldwork summary over questionnaires, assignments, interviews, and users. |
| find_stale_interviewsB | Find interviews with no movement for at least min_days using available updated/history timestamps. |
| summarize_interviewer_activityC | Summarize interview counts/statuses for one or more interviewers from available interview list data. |
| openapi_operationA | Execute a REST operation by method/path after checking API capabilities. Curated escape hatch with the same raw API permission rules as rest_request for writes. |
| prepare_latest_export_for_analysisD | High-level workflow: start an export for one questionnaire and return export job/download next steps. |
| export_all_questionnaire_versionsC | Start exports for all imported versions of a questionnaire title or ID. |
| combine_versioned_exportsA | Prepare a version-aware combine plan for already downloaded exports, treating later-added variables as structurally missing in earlier versions. |
| export_and_combine_questionnaire_versionsC | High-level workflow that starts exports for all versions and returns the combine plan and pending download steps. |
| compare_questionnaire_versionsC | Compare known questionnaire version metadata from Headquarters and summarize version differences visible through the API. |
| generate_fieldwork_briefB | Generate a compact fieldwork brief from current read-only fieldwork status. |
| prepare_qc_feedback_batchA | Convert a structured issue list into a dry-run feedback batch. Does not write to Survey Solutions. |
| apply_qc_feedback_batchA | Apply a prepared feedback batch after explicit approval. Requires fieldwork_write/admin_write and exact batch confirmation. |
| investigate_interviewer_anomalyC | Gather read-only evidence around an interviewer anomaly using interviews, assignments, and available action logs. |
| setup_questionnaire_fieldwork_projectB | Plan or perform guarded setup for a fieldwork project: workspace, manual Designer import, users, and first web-test assignment. |
| generate_tablet_setup_instructionsC | Generate practical tablet setup instructions from workspace/server/user details. |
| create_external_test_linkB | Create an external web-interview test link: activate web mode if needed and create an unlimited web assignment. |
| export_all_formatsC | Start exports for one questionnaire in multiple formats. |
| export_and_combine_all_versions_all_formatsB | Start exports for all questionnaire versions in one or more formats and return version-aware combine guidance. |
| compare_questionnaire_version_schemasC | Compare schemas for downloaded version exports or available questionnaire metadata. |
| qc_interview_durationB | qc_interview_duration: Flag unusually short or long interviews using duration fields from Tabular data or duration events from Paradata. |
| qc_straightliningC | qc_straightlining: Flag repeated identical answers across selected ordinal/categorical variables. |
| qc_duplicate_recordsB | qc_duplicate_records: Flag duplicate interview IDs or duplicate combinations of user-supplied identifying variables. |
| qc_gps_duplicates_and_clustersB | qc_gps_duplicates_and_clusters: Flag repeated or tightly clustered GPS points across interviews. |
| qc_gps_accuracy_and_areaC | qc_gps_accuracy_and_area: Flag low GPS accuracy or coordinates outside expected areas. |
| qc_nonresponse_by_enumeratorC | qc_nonresponse_by_enumerator: Compare missing/nonresponse rates across interviewers. |
| qc_targeted_missingnessC | qc_targeted_missingness: Flag missingness in specific high-priority variables or sections. |
| qc_heaping_round_numbersC | qc_heaping_round_numbers: Flag numeric heaping such as excessive 0/5/10 endings. |
| qc_submission_timing_burstsC | qc_submission_timing_bursts: Flag suspicious bursts of submissions or very short gaps between submissions. |
| qc_roster_consistencyB | qc_roster_consistency: Check roster counts and nested roster relationships for internal consistency. |
| qc_logical_consistencyB | qc_logical_consistency: Apply user-supplied logical rules across variables. |
| qc_response_distribution_shiftC | qc_response_distribution_shift: Compare response distributions across interviewers, dates, areas, or versions. |
| qc_comment_theme_summaryC | qc_comment_theme_summary: Summarize comment themes without exposing unnecessary free text. |
| qc_intervention_followupB | qc_intervention_followup: Compare post-feedback outcomes for targeted interviewers, variables, or cases. |
| qc_generate_check_planC | qc_generate_check_plan: Build or run a guarded QC/support workflow. |
| plan_hq_auto_approvalC | plan_hq_auto_approval: Build or run a guarded QC/support workflow. |
| apply_hq_auto_approvalD | apply_hq_auto_approval: Build or run a guarded QC/support workflow. |
| summarize_hq_review_queueC | summarize_hq_review_queue: Build or run a guarded QC/support workflow. |
| rest_requestB | Advanced raw REST escape hatch. Read-only GET is allowed by default when raw API is enabled. Writes/deletes require explicit raw permission flags. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| survey_solutions_orientation | Orient the LLM/user to Survey Solutions concepts and safe MCP use. |
| download_export_for_stata_cleaning | Workflow prompt for preparing a Survey Solutions export for Stata cleaning. |
| find_cases_stuck_by_status | Workflow prompt for identifying interviews stuck in workflow statuses. |
| design_modular_qc_plan | Workflow prompt for choosing modular QC checks for a survey. |
| setup_questionnaire_with_manual_designer_import | Workflow prompt for preparing workspace/users around a manual Designer questionnaire import. |
| setup_web_test_after_import | Workflow prompt for turning an imported questionnaire into a working web-test link. |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| Survey Solutions orientation | Survey Solutions domain context for LLMs using this MCP. |
| Configured profiles | Redacted Survey Solutions profile list. |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/lbruce-wq/survey-solutions-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server