# SurveyMethods MCP

> SurveyMethods MCP Server handles all aspects of online data collection. Your AI client uses this server to manage surveys, track contacts, and analyze responses without leaving your chat window. You can list all active surveys (`list_surveys`), create new collectors (`create_collector`), pull individual feedback records by ID (`get_response`), or retrieve a full list of submissions for deep analysis. It’s the control panel for gathering structured user data.

## Overview
- **Category:** data-analytics
- **Price:** Free
- **Tags:** online-surveys, poll-software, response-tracking, feedback-analysis, newsletter-tools, data-reporting

## Description

Your agent uses `get_me` when you need to confirm the connection to SurveyMethods or check your account details. This confirms that everything's running smooth and ready for action.

**Building and Modifying Surveys**

The process starts with creating a survey using `create_survey`, which builds and launches an entirely new questionnaire into the system. You can then use `list_surveys` to see every single survey you've got sitting in your account right now. Need to know what’s going on with one specific poll? `get_survey` pulls all the metadata and details for that individual, existing survey. If you gotta tweak something—change a question, adjust the settings, or update the core information of a live questionnaire—you use `update_survey`. When a survey is totally done and you don't want it visible anymore, `delete_survey` permanently removes it from your account.

**Managing Contacts and Distribution Channels**

You gotta keep track of who's answering. You add specific people to your database using `create_contact`, which handles a single person's details for your respondent list. To get a full picture of everyone you've collected data from, run `list_contacts`. Before sending out the survey, you set up distribution channels or methods using `create_collector` to ensure data can be gathered properly. You can check all the active ways you're collecting submissions by running `list_collectors`, which shows every current collector associated with a specific survey.

**Analyzing Submission Data**

When it comes time for the numbers, this server is your control panel. If you need to review one person's feedback only, `get_response` pulls the full data record just using that response's unique ID number. To see everything submitted for a given poll—a massive dump of every single submission record—you use `list_responses`. This function lets you do mass reviews across an entire survey ID. You can also get the overall status and details of submissions by listing all responses with `list_responses`.

**Putting It All Together: Workflow Management**

The server gives your AI client full control over structured user data collection, letting you manage the whole lifecycle without ever leaving your chat window. After setting up a survey with `create_survey`, you use `get_survey` to confirm its status and details, then use `list_collectors` to verify that all intended distribution channels are active for it. If you've already added contacts using `create_contact`, you can review the entire list using `list_contacts`. When you need deep analysis on submissions, your agent retrieves every single response record by calling `list_responses`. You don't have to pull data from different platforms; this server handles everything: building surveys, managing who takes them, and collecting all the resulting feedback. It’s designed so that whether you're adding a new collector using `create_collector`, reviewing an old poll with `get_survey`, or deleting it completely with `delete_survey`, your AI agent controls every step.

## Tools

### create_collector
Sets up a new distribution channel or method for collecting survey data.

### create_contact
Adds a single person's details to your respondent database.

### create_survey
Builds and launches an entirely new survey within the system.

### delete_survey
Permanently removes a survey from your account, making it inaccessible.

### get_me
Checks if the connection to SurveyMethods is working and confirms account details.

### get_response
Pulls the full data record for one specific survey response using its ID.

### get_survey
Retrieves all metadata and details about a single, existing survey.

### list_collectors
Lists every active distribution channel (collector) associated with a specific survey.

### list_contacts
Provides an overview of all contacts stored in your respondent list.

### list_responses
Retrieves every single response record for a specific survey ID, allowing mass review.

### list_surveys
Lists all surveys currently created and stored in your account.

### update_survey
Changes or modifies the questions, settings, or metadata of a survey that's already live.

## Prompt Examples

**Prompt:** 
```
List all active surveys in my account.
```

**Response:** 
```
You have 2 active surveys: 'Q2 Employee Satisfaction' and 'Product Beta Feedback'.
```

**Prompt:** 
```
Get the completion rate for the 'Product Beta Feedback' survey.
```

**Response:** 
```
The survey currently has 150 views and 95 full completions (63.3% completion rate).
```

**Prompt:** 
```
Close the survey ID 3042.
```

**Response:** 
```
Survey ID 3042 has been successfully marked as Closed and will no longer accept responses.
```

## Capabilities

### Build and Modify Surveys
Your agent can generate new surveys (`create_survey`), update existing ones (`update_survey`), or permanently delete them if they're retired.

### Manage Respondents and Channels
You can add specific contacts to your database using `create_contact`, list all current respondents (`list_contacts`), and set up new distribution channels with `create_collector`.

### Analyze Submission Data
The server lets you pull detailed response data by ID (`get_response`) or retrieve every single submission for a given survey using `list_responses`.

### View Survey Status
You can list all surveys in your account (`list_surveys`), check details on one specific survey (`get_survey`), and see which collectors are active for that survey (`list_collectors`).

### Maintain Data Integrity
The `delete_survey` tool allows you to immediately retire a survey, removing it from the system.

## Use Cases

### The Product Launch Debrief
A PM needs a full picture of the beta test. They prompt their agent: 'Give me all feedback for Beta Survey.' The agent runs `list_responses` on the correct survey ID, gathering every single piece of data point from hundreds of users into one stream for immediate review.

### Fixing a Bad Campaign Flow
A Marketing Manager realizes their new campaign is going to fail if they don't adjust the target audience list. They use `list_contacts` to audit who signed up, then run `create_collector` to push an updated link only to the correct segment.

### Audit and Cleanup
The Research Lead finishes a study and needs to clean house. They use `list_surveys` to see everything active, then use `delete_survey` on old, irrelevant forms, ensuring the system is accurate for the next project.

### One-Off Data Retrieval
A sales rep needs to check if a specific client submitted feedback. Instead of searching through dashboards, they provide the ID and ask their agent to run `get_response`, pulling only that single data record for them.

## Benefits

- Stop jumping between tabs. Instead of manually logging into the survey platform to list all active surveys, you just tell your agent to run `list_surveys`. It pulls that roster directly into your conversation history.
- Deep dive into feedback without exporting CSVs. Use `get_response` and feed the raw data record straight to your AI client for immediate analysis on sentiment or keywords. No manual copy/pasting required.
- Scale up your user base management. Instead of maintaining a separate spreadsheet, you use `list_contacts` to see who's in your database and `create_contact` to add them programmatically via chat.
- Maintain data integrity with confidence. If a survey is retired, don't just archive it—use `delete_survey`. This permanently removes the tool from circulation, preventing accidental use.
- Build robust campaigns easily. Need multiple ways to reach people? Use `create_collector` to set up new distribution channels and then link them directly to your main survey ID.

## How It Works

The bottom line is, it lets you treat complex data management—like creating a collector or listing all contacts—as simple conversation commands.

1. First, tell your agent which data set or resource you need. For example, 'List all surveys I have.'
2. The server executes the relevant tool (e.g., `list_surveys`) and returns a list of IDs or names to your AI client.
3. You then prompt the agent again with the specific action: 'Get responses for survey ID 452.' The server runs `list_responses` and delivers the data.

## Frequently Asked Questions

**How do I get all the responses for a specific survey using list_responses?**
You use `list_responses` and provide the target Survey ID. This tool pulls every single submission record associated with that specific form.

**Can I add new contacts to my database using create_contact?**
Yes, you can run `create_contact`. Just give your agent the necessary details, and it adds the person's profile to your respondent list.

**What if I need to change questions on a live survey? Do I use update_survey?**
You run `update_survey`. However, always verify the current structure first by calling `get_survey` so you don't break anything.

**How do I check if my connection to SurveyMethods is working before running any tools?**
Just call the `get_me` tool. This confirms API connectivity and gives you confidence that your agent can talk to the server right now.

**How do I view every survey I have created using list_surveys?**
The `list_surveys` tool gives you a comprehensive rundown of all surveys in your account. This is the best way to check IDs or names before you start working on data analysis.

**If I need to set up a new way for people to submit responses, what do I use? (list_collectors)**
You'll use `create_collector` to establish distribution channels. This tool sets up the specific pathway where your survey results will come in.

**I only need one piece of feedback, not all of them. How do I check it with get_response?**
`get_response` retrieves a single response when you provide the ID number. It's faster than listing everything if you just want to check one specific entry.

**Where can I pull the list of all my current respondents? (list_contacts)**
`list_contacts` pulls an overview of everyone in your respondent database. Use this when you need a complete roster or want to verify contact information.

**Can I check the completion rate of a live survey?**
Yes, specify the Survey ID and the agent will extract the current views, starts, and full completions.

**How do I fetch individual user responses?**
You can request the raw data for specific respondents if your integration permissions allow reading payload data.

**Is it possible to close a survey via the AI?**
If write access is enabled, you can command the AI to change a survey's status from 'Open' to 'Closed'.