Skip to main content
Glama
dscovr

surveymonkey-mcp

by dscovr

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
SURVEYMONKEY_TOKENYesYour SurveyMonkey personal access token from the Developer Portal.

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

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
surveymonkey_get_meA

Returns information about the current SurveyMonkey user. Useful to verify the token is working and to see the username and email.

surveymonkey_list_surveysA

Lists surveys in the account with pagination and optional filters.

Args: page: Page number (default 1). per_page: Results per page, max 1000 (default 50). sort_by: Sort field: "title", "date_modified", "num_responses" (default: date_modified). sort_order: Sort direction: "asc" or "desc" (default: desc). title: Filter surveys by title (substring match). start_modified_at: ISO 8601 — surveys modified after this date. end_modified_at: ISO 8601 — surveys modified before this date. folder_id: Filter by folder ID.

surveymonkey_get_surveyA

Returns metadata for a specific survey (title, response count, dates, etc.). Does NOT include questions — use surveymonkey_get_survey_details for that.

Args: survey_id: Survey ID.

surveymonkey_get_survey_detailsB

Returns the full survey definition including all pages and questions.

Args: survey_id: Survey ID.

surveymonkey_create_surveyA

Creates a new SurveyMonkey survey.

Args: survey_definition: Survey definition as a JSON object. Structure: { "title": "My Survey", (required) "nickname": "Internal name", (optional) "language": "en", (optional, default: "en") "folder_id": "123", (optional) "category": "general", (optional) "pages": [ (optional — add pages at creation) { "title": "Page 1", "questions": [ { "headings": [{"heading": "Question text"}], "family": "single_choice", "subtype": "vertical", "answers": { "choices": [ {"text": "Option A"}, {"text": "Option B"} ] } } ] } ] }

surveymonkey_update_surveyA

Fully replaces a survey's definition (PUT). Use surveymonkey_patch_survey for partial updates.

Args: survey_id: ID of the survey to update. survey_definition: New complete definition (same schema as surveymonkey_create_survey).

surveymonkey_patch_surveyA

Partially updates a survey (PATCH).

Args: survey_id: ID of the survey. patch: Object with only the fields to change. Common fields: "title", "nickname", "language", "folder_id", "category". Example: {"title": "New title", "language": "it"}

surveymonkey_delete_surveyA

Permanently deletes a survey and all its responses. WARNING: irreversible operation.

Args: survey_id: ID of the survey to delete.

surveymonkey_list_pagesA

Lists the pages of a survey.

Args: survey_id: Survey ID. page: Page number (default 1). per_page: Results per page (default 50).

surveymonkey_get_pageA

Returns the details of a specific survey page.

Args: survey_id: Survey ID. page_id: Page ID.

surveymonkey_create_pageA

Creates a new page in a survey.

Args: survey_id: Survey ID. payload: Page definition. Structure: { "title": "Page title", (optional) "description": "Description", (optional) "position": 1 (optional) }

surveymonkey_update_pageA

Updates a page in a survey (PATCH).

Args: survey_id: Survey ID. page_id: Page ID. payload: Fields to update: "title", "description", "position".

surveymonkey_delete_pageA

Deletes a page and all its questions from a survey. WARNING: irreversible operation.

Args: survey_id: Survey ID. page_id: Page ID.

surveymonkey_list_questionsB

Lists questions on a specific page of a survey.

Args: survey_id: Survey ID. page_id: Page ID. page: Page number for pagination (default 1). per_page: Results per page (default 50).

surveymonkey_get_questionB

Returns the full definition of a question, including answer choices.

Args: survey_id: Survey ID. page_id: Page ID. question_id: Question ID.

surveymonkey_create_questionA

Creates a new question on a survey page.

Args: survey_id: Survey ID. page_id: Page ID. payload: Question definition. Structure: { "headings": [{"heading": "Question text"}], (required) "family": "single_choice", (required) "subtype": "vertical", (optional) "position": 1, (optional) "required": false, (optional) "answers": { "choices": [ {"text": "Option A"}, {"text": "Option B"} ], "other": {"text": "Other (please specify)", "visible": true} } }

Common families and subtypes:
  - single_choice:   vertical, horiz, menu
  - multiple_choice: vertical, horiz, menu
  - open_ended:      single, multi, numerical, essay
  - matrix:          rating, menu, ranking
  - rating:          star, smiley, numerical (scale 1–10)
  - demographic:     international, us
  - datetime:        both, date_only, time_only
  - presentation:    descriptive_text, image
surveymonkey_update_questionA

Updates an existing question (PATCH).

Args: survey_id: Survey ID. page_id: Page ID. question_id: Question ID. payload: Fields to update (same schema as surveymonkey_create_question).

surveymonkey_delete_questionA

Deletes a question from a survey page. WARNING: irreversible operation.

Args: survey_id: Survey ID. page_id: Page ID. question_id: Question ID.

surveymonkey_list_responsesA

Lists responses for a survey (metadata only, no answers). Use surveymonkey_list_responses_bulk to include answer data.

Args: survey_id: Survey ID. page: Page number (default 1). per_page: Results per page, max 1000 (default 50). start_created_at: ISO 8601 — responses created after this date. end_created_at: ISO 8601 — responses created before this date. status: Filter by status: "completed", "partial", "overquota", "disqualified". email: Filter by respondent email. sort_by: Sort field: "date_modified". sort_order: Sort direction: "asc" or "desc".

surveymonkey_list_responses_bulkA

Lists responses for a survey including all answer data.

Args: survey_id: Survey ID. page: Page number (default 1). per_page: Results per page, max 1000 (default 50). simple: If true, returns simplified answer format (default false). start_created_at: ISO 8601 — responses created after this date. end_created_at: ISO 8601 — responses created before this date. status: Filter: "completed", "partial", "overquota", "disqualified". collector_ids: Comma-separated collector IDs to filter by. page_ids: Comma-separated page IDs to include. question_ids: Comma-separated question IDs to include.

surveymonkey_get_responseA

Returns metadata for a specific response (no answers). Use surveymonkey_get_response_details for answers.

Args: survey_id: Survey ID. response_id: Response ID.

surveymonkey_get_response_detailsA

Returns a specific response with all answer data.

Args: survey_id: Survey ID. response_id: Response ID. page_ids: Comma-separated page IDs to include (empty = all pages). question_ids: Comma-separated question IDs to include (empty = all questions). simple: If true, returns simplified answer format (default false).

surveymonkey_delete_responseA

Permanently deletes a specific response. WARNING: irreversible operation.

Args: survey_id: Survey ID. response_id: Response ID to delete.

surveymonkey_export_responses_csvA

Exports all responses for a survey as CSV (includes all answers). Handles pagination automatically, collecting up to 10,000 responses.

Args: survey_id: Survey ID. start_created_at: ISO 8601 — export responses created after this date. end_created_at: ISO 8601 — export responses created before this date. status: Filter by status: "completed", "partial", etc. (empty = all).

Returns: CSV text with headers in the first row.

surveymonkey_list_collectorsA

Lists all collectors for a survey.

Args: survey_id: Survey ID. page: Page number (default 1). per_page: Results per page (default 50).

surveymonkey_get_collectorB

Returns the details of a specific collector.

Args: collector_id: Collector ID.

surveymonkey_create_collectorB

Creates a new collector for a survey.

Args: survey_id: Survey ID. payload: Collector definition. Structure: { "type": "weblink", (required: "weblink", "email", "sms", "popup") "name": "Collector name", (optional) "status": "open", (optional: "open" | "closed") "thank_you_message": "...", (optional) "close_date": "2026-12-31", (optional — ISO 8601 date) "redirect_url": "https://...", (optional — redirect after completion) "allow_multiple_responses": false (optional) }

surveymonkey_update_collectorA

Updates a collector (PATCH).

Args: collector_id: Collector ID. payload: Fields to update. Common fields: "name", "status" ("open"|"closed"), "close_date", "redirect_url", "allow_multiple_responses".

surveymonkey_delete_collectorA

Deletes a collector and all its responses. WARNING: irreversible operation.

Args: collector_id: Collector ID.

surveymonkey_list_collector_messagesA

Lists email messages for a collector.

Args: collector_id: Collector ID (must be of type "email"). page: Page number (default 1). per_page: Results per page (default 50).

surveymonkey_create_collector_messageA

Creates a new email message for a collector.

Args: collector_id: Collector ID (must be of type "email"). payload: Message definition. Structure: { "type": "invite", (required: "invite" | "reminder" | "thank_you" | "custom") "subject": "Please take our survey", (optional) "body_text": "Click here: [SurveyLink]", (optional) "from_name": "Sender Name", (optional) "reply_to": "reply@example.com" (optional) }

surveymonkey_send_collector_messageA

Sends an email message to all recipients of a collector.

Args: collector_id: Collector ID. message_id: Message ID to send. scheduled_date: ISO 8601 datetime to schedule the send (empty = send immediately).

surveymonkey_list_collector_recipientsB

Lists email recipients for a collector.

Args: collector_id: Collector ID. page: Page number (default 1). per_page: Results per page (default 50).

surveymonkey_list_webhooksA

Lists all webhooks in the account.

Args: page: Page number (default 1). per_page: Results per page (default 50).

surveymonkey_get_webhookB

Returns the details of a specific webhook.

Args: webhook_id: Webhook ID.

surveymonkey_create_webhookA

Creates a new webhook.

Args: payload: Webhook definition. Structure: { "name": "My Webhook", (required) "event_type": "response_completed", (required) "object_type": "survey", (required: "survey" | "collector") "object_ids": ["12345678"], (required — list of survey/collector IDs) "subscription_url": "https://...", (required — HTTPS endpoint) "authorization": "Bearer token_for_your_url" (optional — sent in callback header) }

Supported event_types:
  response_completed, response_disqualified, response_updated,
  response_created, response_deleted, response_overquota,
  survey_created, survey_updated, survey_deleted,
  collector_created, collector_updated, collector_deleted
surveymonkey_update_webhookA

Updates a webhook (PATCH).

Args: webhook_id: Webhook ID. payload: Fields to update (same schema as surveymonkey_create_webhook).

surveymonkey_delete_webhookB

Deletes a webhook.

Args: webhook_id: Webhook ID.

surveymonkey_list_contactsA

Lists contacts in the account.

Args: page: Page number (default 1). per_page: Results per page (default 50). status: Filter by status: "active", "optedout", "bounced". search_by: Field to search by: "email", "first_name", "last_name". search: Search term. sort_by: Sort field: "email", "first_name", "last_name". sort_order: Sort direction: "asc" or "desc".

surveymonkey_get_contactB

Returns the details of a specific contact.

Args: contact_id: Contact ID.

surveymonkey_create_contactB

Creates a new contact.

Args: email: Contact email address (required). first_name: First name (optional). last_name: Last name (optional).

surveymonkey_update_contactA

Updates an existing contact (PATCH).

Args: contact_id: Contact ID. payload: Fields to update. Common fields: "email", "first_name", "last_name". Example: {"first_name": "Jane", "last_name": "Doe"}

surveymonkey_delete_contactB

Deletes a contact.

Args: contact_id: Contact ID.

surveymonkey_list_contact_listsA

Lists all contact lists in the account.

Args: page: Page number (default 1). per_page: Results per page (default 50).

surveymonkey_get_contact_listA

Returns the details of a specific contact list.

Args: list_id: Contact list ID.

surveymonkey_create_contact_listB

Creates a new contact list.

Args: name: Name for the new contact list.

surveymonkey_delete_contact_listC

Deletes a contact list.

Args: list_id: Contact list ID.

surveymonkey_list_contact_list_membersA

Lists contacts that belong to a specific contact list.

Args: list_id: Contact list ID. page: Page number (default 1). per_page: Results per page (default 50).

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A3.6/5.0

Scored across 48 tools

Disambiguation5/5

Each tool targets a distinct resource and action, with clear separation between list/get/create/update/delete operations. Pairs like list_responses/list_responses_bulk and get_survey/get_survey_details are explicitly differentiated in their descriptions.

Naming Consistency5/5

All tools follow a consistent surveymonkey_<verb>_<noun> pattern, using standard verbs like list, get, create, update, patch, delete, and send. There is no mixing of naming conventions or irregular verb styles.

Tool Count2/5

48 tools is well above the 25+ threshold that indicates an overly large tool surface. The tools are not redundant, but the sheer count makes the server feel heavy and harder for an agent to navigate efficiently.

Completeness4/5

The toolkit covers broad CRUD/lifecycle operations across surveys, pages, questions, responses, collectors, webhooks, and contacts. Minor gaps exist, such as no update/delete for collector messages and no add/remove contact-to-list membership operations.

Maintenance

ActivityInactive
ResponsivenessNo issues