# SurveyMonkey MCP

> SurveyMonkey MCP Server connects your AI client directly to all your survey data and content. Your agent can list surveys, dynamically add questions or pages, manage distribution channels, and pull bulk responses for immediate analysis—all without manual exports. It gives you full programmatic control over the entire market research workflow.

## Overview
- **Category:** marketing-automation
- **Price:** Free
- **Tags:** surveys, feedback, data-collection, market-research, customer-insights

## Description

**You gotta tell your AI client to connect directly to all your SurveyMonkey data.** This server gives your agent full control over your market research process. You can manage entire surveys—from creation to cleanup—and pull every piece of response data you need for analysis, all without manually exporting files.

**Managing the Core Surveys:** 
You'll start by seeing everything with **`list_surveys`**, which shows you all the survey containers in your account. Need details on one? You can call **`get_survey`** to grab the core metadata for a specific survey ID. If you gotta tweak general settings or update that basic info, use **`update_survey`**. Want to start fresh? The **`create_survey`** tool lets you build an entire new survey container using a JSON configuration payload. When a survey is dead and you never wanna look at it again, run **`delete_survey`** to wipe the whole thing out.

**Mapping Out the Structure:** 
To see exactly how your form flows—the complete blueprint—you use **`get_survey_details`**. This tool returns everything: every page and every question contained within that survey. You can also drill down by calling **`list_survey_pages`** to get an index of all the pages, then grab specific details for any one using **`get_survey_page`**. For granular control over what's on a page, use **`list_survey_questions`** to list every question present on that page. If you need more info about a particular question, you can get it with the appropriate tool.

**Building Dynamic Forms:** 
Your agent doesn't just read; it writes too. You can programmatically build complex forms by calling **`create_survey_page`**, which adds an entirely new page to your existing survey structure. Once that page is up, you use **`create_survey_question`** to insert one or more specific questions onto that designated page. This lets you build custom logic and complicated question flows on the fly.

**Tracking Distribution Channels:** 
To make sure people are actually taking your surveys, you gotta track how they're being shared. **`list_survey_collectors`** shows you all active distribution channels linked to a survey ID. You can then get specific details about any of those collection methods using **`get_collector`**. If you need a new way for people to access the poll—say, setting up an email link or a web endpoint—use **`create_survey_collector`**.

**Pulling and Analyzing Responses:** 
This is where the data magic happens. You can check how many responses came in by calling **`list_survey_responses`**, which gives you an index list of all submitted records. If you only need to look at one person's answers, use **`get_response`** and feed it a specific response ID. When you gotta analyze massive amounts of data, forget the single calls; hit up **`list_survey_responses_bulk`**. This tool pulls full data payloads for multiple respondents all at once, which is what you need for serious dataset work.

## Tools

### create_survey_collector
Sets up a new distribution channel (like a web link or email) for an existing survey.

### create_survey_page
Adds a specific page to the structure of an already existing survey.

### create_survey_question
Inserts one or more new questions onto a designated survey page.

### create_survey
Builds a brand new survey container using a provided JSON configuration payload.

### delete_survey
Permanently removes an entire survey from your account.

### get_collector
Retrieves all the current details for a specified survey collector.

### get_response
Fetches the full data payload for one specific submitted response record.

### get_survey_details
Gets the complete blueprint of a survey, listing all pages and questions it contains.

### get_survey_page
Retrieves specific details for one page within a larger survey structure.

### get_survey
Retrieves core metadata and details for a single, identified survey.

### list_survey_collectors
Lists all the active distribution channels associated with a particular survey ID.

### list_survey_pages
Retrieves an index list of every page included in a survey's structure.

### list_survey_questions
Lists all the specific questions present on a given page within a survey.

### list_survey_responses_bulk
Pulls full data payloads for multiple respondents at once, ideal for large dataset analysis.

### list_survey_responses
Retrieves an index list of response records for a given survey, allowing you to count submissions.

### list_surveys
Lists all surveys you have access to in your SurveyMonkey account.

### update_survey
Modifies general metadata or settings for an existing survey container.

## Prompt Examples

**Prompt:** 
```
List all my surveys in SurveyMonkey.
```

**Response:** 
```
I've retrieved your surveys. You have 3 active surveys: 'Customer Satisfaction 2024' (ID: 401234), 'Product Feedback' (ID: 401235), and 'Employee Engagement' (ID: 401236).
```

**Prompt:** 
```
Show me the full structure and questions for survey 401234.
```

**Response:** 
```
Fetching details for survey 401234... This survey has 2 pages. Page 1 contains 3 questions (Multiple Choice and Text), and Page 2 contains a Rating Scale question. Would you like to see the specific question texts?
```

**Prompt:** 
```
Get the latest bulk responses for survey 401235.
```

**Response:** 
```
I've pulled the latest bulk responses for survey 401235. I found 50 recent responses. Most respondents rated the product 'Very Satisfied'. Would you like a summary of the open-ended comments?
```

## Capabilities

### Manage Survey Assets
Create, update, or delete entire survey containers using the `create_survey` tool.

### Map Survey Structure
Retrieve the full page-by-page blueprint of a survey, including all questions and types, via `get_survey_details`.

### Extract Response Data
Pull single responses (`get_response`) or large batches of data from multiple respondents using `list_survey_responses_bulk`.

### Build Dynamic Forms
Add new pages or specific questions to a survey at runtime, letting you build complex forms programmatically.

### Track Distribution Channels
List and retrieve details on the collection methods (collectors) used for distributing your surveys.

## Use Cases

### Need a quick sentiment report on a new feature?
A Product Manager needs to know how users reacted to the beta release of Feature X. They prompt their agent: 'Get all responses for survey 401235.' The agent uses `list_survey_responses_bulk` and immediately provides a summary, letting the PM check sentiment without running manual reports.

### Running an A/B test across multiple departments.
The Marketing Team needs to measure engagement for two different campaign ideas. Instead of creating two surveys manually, they tell their agent: 'Create a new survey for Campaign B and add three pages.' The agent uses `create_survey` followed by calls to `create_survey_page` and `create_survey_question`.

### Reviewing the entire survey lifecycle.
A data analyst needs a full audit of all surveys from Q1. They prompt: 'List every survey I have.' The agent uses `list_surveys`, providing an immediate list of IDs and names, which is far faster than navigating multiple dashboard tabs.

### Troubleshooting missing form elements.
The Operations team finds a report that says a specific page isn't showing up. They prompt: 'What pages are in survey 401234?' The agent uses `list_survey_pages` and provides the exact list, identifying the structural problem immediately.

## Benefits

- **Instant Data Retrieval:** Don't wait for CSV exports. Use `list_survey_responses_bulk` to pull thousands of responses into your agent environment instantly, letting you analyze trends without leaving the chat.
- **Full Structure Visibility:** The `get_survey_details` tool shows you exactly how a survey is built—all pages and questions—so your agent knows which part of the form needs modification or inspection.
- **Zero-Friction Content Creation:** Need to run an ad-hoc test? Use `create_survey_question` and `create_survey_page` to build complex, variable forms right from your chat interface. No need to log into the web dashboard.
- **Comprehensive Inventory:** The `list_surveys` tool gives you a single command point to see every survey you own, making it easy for an agent to manage multiple projects simultaneously.
- **Targeted Feedback Pulls:** Instead of dumping all data, use `get_response` to pull the specific details for one user who submitted feedback last night. It's precise and fast.

## How It Works

The bottom line is, you stop clicking through dashboards and start instructing your AI client directly on the SurveyMonkey API.

1. Subscribe to this server and provide your SurveyMonkey Access Token from the Developer Portal.
2. Your AI client uses natural language prompts (e.g., 'List all my active surveys') to determine which specific tool needs running.
3. The server executes the requested action, returning structured data—like a list of survey IDs or raw response JSON—directly to your agent.

## Frequently Asked Questions

**How do I list all my surveys using SurveyMonkey MCP Server?**
Run the `list_surveys` tool. It returns a list of every survey ID and name you have access to, letting you quickly know what data is available.

**Can I get detailed information about a single survey with SurveyMonkey MCP Server?**
Yes, use `get_survey_details`. This tool returns the complete structure, including all pages and questions, giving you the full blueprint of the form.

**What is the best way to get large amounts of feedback data?**
Use `list_survey_responses_bulk`. This function retrieves structured data for multiple respondents at once, which is far more efficient than listing responses one by one using `get_response`.

**How do I add a new section to my survey?**
You first use `create_survey_page` to add the page, then you call `create_survey_question` and provide the JSON payload for all the questions that belong on it.

**What credentials do I need to start using the SurveyMonkey MCP Server?**
You need a Developer Portal Access Token. After subscribing, paste this token into your Vinkius client settings to authenticate your connection and allow your agent to work with your account.

**How do I generate new sharing links using the SurveyMonkey MCP Server?**
You use the `create_survey_collector` tool. This operation creates distribution channels—like web links or email lists—which you can then share with respondents for your survey.

**Can I modify an existing survey using the SurveyMonkey MCP Server?**
Yes, call the `update_survey` tool. You must provide a JSON payload detailing exactly which fields need changing; this ensures you maintain data structure and integrity while revising the form.

**How can I safely remove a survey using the SurveyMonkey MCP Server?**
Use the `delete_survey` tool. This action is permanent, so always verify the specific Survey ID before running the command to prevent accidental data loss.

**Can I retrieve the entire structure of a survey including all its questions at once?**
Yes. Use the `get_survey_details` tool with the specific Survey ID. It will return the full hierarchy of pages and questions configured for that survey.

**Is it possible to export or list all responses for a survey in bulk?**
Absolutely. The `list_survey_responses_bulk` tool allows you to fetch multiple responses at once, making it ideal for data analysis and reporting.

**Can I see how my survey is being distributed?**
Yes. You can use `list_survey_collectors` to see all active distribution channels (links, emails, etc.) associated with a specific survey.