Transform LLMs into intelligent interviewers. MCP server for conducting dynamic, conversational surveys with structured data collection. Features skip logic, session resume, multi-tenancy, and pluggable storage backends.
The Survey MCP server demonstrates solid definition quality with 7 well-named tools, comprehensive descriptions (all 150+ characters), and complete input schemas with type definitions. All tools follow verb_noun naming conventions (survey_*). Descriptions clearly state purpose, when to use, and what is returned. Parameters have types and descriptions. However, output schemas are not visible in source, limiting verification to 72. Tool naming is clear and action-oriented. Descriptions are LLM-optimized and include context about session state, conditional logic, and session management. No critical naming or description gaps detected. Minor issue: filter object in survey_export_results lacks detailed structure documentation.
Finalize a survey session after all required questions have been answered. Validates completion eligibility, marks the session as complete, and returns a summary including duration, total questions answered, and final score (if scoring is enabled).
Export survey response data in CSV or JSON format. Supports filtering by session status, date range, and specific participant IDs. Returns the formatted export data as a string.
Check the current progress and completion status of a survey session. Returns remaining required and optional questions, completion eligibility status, and any blockers preventing completion.
Retrieve a specific question with its current eligibility status. Use this to check if a question has become available after conditional logic is satisfied by previous responses.
Discover available surveys that can be started with participants. Returns survey metadata including title, description, estimated duration, and question count.
Output schemas not documented in source code. While input schemas are complete and well-typed, the expected response structure for each tool is not visible in the provided source excerpts. This prevents LLMs from planning downstream calls that depend on response fields.
survey_export_results 'filters' parameter is typed as generic object without documented structure. LLMs cannot infer which keys are valid (session_status, date_range, participant_ids) or their expected types/formats without schema documentation.
survey_list_available tenantId parameter is described as optional with fallback behavior, but no guidance on when to use it vs when to omit. LLMs may pass it redundantly or omit it when necessary.
Inferred effective spec: 2026-07-28+.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-21 | B | 75 | 2026-07-28+ | v2 |
| 2026-03-09 | C | 61 | - | v1 |
Resume an incomplete survey session. Restores the full survey context, lists previously answered questions, provides updated question suggestions, and reports time elapsed since last activity. Continue the conversation naturally from where the participant left off.
Initialize a new survey session for a participant. Returns the complete survey context including all questions with eligibility status and initial suggested questions to ask. Ask the participant questions in a conversational manner, in any order that feels natural to the conversation.
Error handling guidance not visible in descriptions. Tools like survey_complete_session (validates completion eligibility) and survey_resume_session should document what errors can occur (ineligible session, not found, already completed) and recovery guidance.