MCP Servers

A collection of Model Context Protocol servers, templates, tools and more.

Survey MCP Server — a survey platform: create (typed questions), deliver (collectors + email invitations), and measure (NPS, CSAT, distributions, cross-tabs)

Created 6/9/2026
Updated about 17 hours ago
Repository documentation and setup instructions

Survey MCP Server

Crates.io License ADK-Rust Enterprise Registry Ready

A survey platform for ADK-Rust Enterprise agents — create, deliver, and measure surveys. 21 MCP tools spanning authoring (typed questions with validation), distribution (collectors + email invitations with quotas), response collection (validated, partial or complete), and a measurement layer (completion/response rates, NPS, CSAT, distributions, and cross-tabs) — with a full audit trail.

A platform, not a point solution

This is modeled as a general survey/feedback backbone (à la SurveyMonkey / Qualtrics / Typeform), so any agent that needs to ask people questions and act on the answers is a client: customer-experience (NPS/CSAT), employee engagement, product research, market research, event feedback, lead qualification, and more.

The three pillars map directly to the request — create → deliver → measure:

| Stage | Tools | |-------|-------| | Create | create_survey · add_question (7 types) · list_questions · set_survey_status | | Deliver | create_collector (web/email/api) · add_invitations · send_invitations · set_collector_status · submit_response | | Measure | response_summary · question_results · nps · csat · cross_tab |

Architecture

Survey MCP Architecture

Capabilities

  • Authoring — surveys with 7 question types: single_choice, multi_choice, text, rating (bounded scale), nps (0–10), number, boolean. Questions are validated at authoring time and only editable while the survey is a draft.
  • Distributioncollectors as named channels (open web link, tracked email, or API). Email collectors carry deduplicated invitations with delivery/response status; collectors support a response quota.
  • Collection — responses are type-validated against their questions, required-question completeness is enforced on completion, and quota/closed-collector/closed-survey states are respected. Partial responses are supported. Anonymous surveys drop respondent identity.
  • Measurement — response funnel (invited → started → completed with completion & response rates), per-question aggregation by type, NPS (promoter/detractor breakdown), CSAT (top-box), and cross-tabs to segment any metric by a choice question (e.g. CSAT by channel/plan).

Governance posture

  • Two writes are gated (requires_approval): opening a survey for collection (set_survey_status → open) and sending email invitations (send_invitations, classed external_write — it delivers to real inboxes).
  • Opening is guarded — a survey can't be opened with zero questions.
  • All measurement and listing is read_only — analytics never mutate state.
  • Everything is audited — every state change appends to an audit trail (audit_log). Sample data is fictitious.

Tools (21)

Authoring (6)

create_survey · get_survey · list_surveys · add_question · list_questions · set_survey_status (gated)

Distribution (6)

create_collector · list_collectors · set_collector_status · add_invitations · send_invitations (gated, external) · list_invitations

Collection (3)

submit_response · get_response · list_responses

Measurement (6)

response_summary · question_results · nps · csat · cross_tab · audit_log

Example

// Create
{"name": "create_survey", "arguments": {"title": "Q3 NPS", "category": "customer-experience"}}
{"name": "add_question", "arguments": {"survey_id": "SRV-1001",
  "prompt": "How likely are you to recommend us?", "qtype": "nps", "required": true}}
{"name": "set_survey_status", "arguments": {"survey_id": "SRV-1001", "status": "open"}}

// Deliver
{"name": "create_collector", "arguments": {"survey_id": "SRV-1001", "ctype": "web_link"}}
{"name": "submit_response", "arguments": {"collector_id": "COL-1003",
  "answers": [{"question_id": "QN-1002", "value": 9}]}}

// Measure
{"name": "nps", "arguments": {"survey_id": "SRV-1001"}}
{"name": "cross_tab", "arguments": {"survey_id": "SRV-1001",
  "segment_question_id": "QN-1004", "metric_question_id": "QN-1002"}}

Install & run

cargo install mcp-survey
mcp-survey            # serves MCP over stdio

Or build from source:

git clone https://github.com/zavora-ai/mcp-survey
cd mcp-survey && cargo build --release
./target/release/mcp-survey

Registry manifest

server_id = "mcp_survey"
display_name = "Survey Platform"
version = "1.0.0"
domain = "research"
risk_level = "medium"
writes_allowed = "gated"

The full mcp-server.toml declares all 21 tools with risk classes and approval gates for registry onboarding.

License

Apache-2.0

Quick Setup
Installation guide for this server

Installation Command (package not published)

git clone https://github.com/zavora-ai/mcp-survey
Manual Installation: Please check the README for detailed setup instructions and any additional dependencies required.

Cursor configuration (mcp.json)

{ "mcpServers": { "zavora-ai-mcp-survey": { "command": "git", "args": [ "clone", "https://github.com/zavora-ai/mcp-survey" ] } } }