surveymonkey_create_ contactCreate a contact in the address book.
Pull a survey's responses fully expanded with every answer, build new surveys and questions, open weblink or email collectors, and load the contact lists behind your next invite send.
PopMCPSurveyMonkey
Every survey, response, collector, contact, analytics and webhook operation on the connection, plus the events an agent can watch.
surveymonkey_create_ contactCreate a contact in the address book.
surveymonkey_list_ contact_ listsList the account's contact lists.
surveymonkey_list_ contactsList all contacts in the account's address book.
surveymonkey_create_ collector_ responseCreate a survey response programmatically.
surveymonkey_get_ survey_ response_ detailsGet one survey response FULLY EXPANDED with every question and answer.
surveymonkey_get_ survey_ responses_ bulkGet a survey's responses FULLY EXPANDED with every answer (the main way to read survey results across all collectors).
surveymonkey_list_ survey_ responsesList a survey's responses.
surveymonkey_create_ surveyCreate a survey — blank, copied from an existing survey (from_survey_id), built from a SurveyMonkey template (from_template_id), or fully specified with pages+questions.
surveymonkey_get_ surveyGet a survey's top-level details (title, language, page/question counts, href) — WITHOUT the pages and questions.
surveymonkey_get_ survey_ detailsGet the EXPANDED survey: a `pages` array, each with a `questions` array (question ids, families, headings, and answer choices with their ids).
surveymonkey_list_ surveysList surveys owned by or shared with the account — each survey's id, title, and href.
surveymonkey_update_ surveyPartially update a survey — change its title, nickname, language, buttons_text, custom_variables, footer, or folder_id.
surveymonkey_create_ collectorCreate a collector for a survey (a weblink to share, an email invite collector, SMS, or a popup).
surveymonkey_list_ collectorsList a survey's collectors (the ways it's being distributed — weblink, email, etc.).
surveymonkey_create_ pageAdd a new (empty) page to a survey.
surveymonkey_create_ questionAdd a question to a survey page.
surveymonkey_create_ webhookSubscribe a callback URL to SurveyMonkey events (e.g.
surveymonkey_delete_ webhookDelete a webhook subscription.
surveymonkey_get_ survey_ rollupsAggregated answer counts for every question in a survey (answered/skipped, per-choice counts, basic stats).
surveymonkey_get_ survey_ trendsAnswer counts for a survey bucketed into time periods.
surveymonkey_list_ webhooksList the account's webhooks (event subscriptions).
surveymonkey_get_ meGet the authenticated SurveyMonkey account (the user this token acts as) — id, username, email, account_type/plan, language, and scopes.granted/available.
surveymonkey_add_ contact_ to_ listCreate a contact and add it to a list.
surveymonkey_bulk_ add_ contactsCreate many contacts at once.
surveymonkey_bulk_ add_ list_ contactsAdd many contacts to a list at once.
surveymonkey_bulk_ get_ contactsGet all contacts in the account with ALL fields in one call.
surveymonkey_bulk_ get_ list_ contactsGet every contact in a list with ALL fields (including custom_fields) in one call.
surveymonkey_copy_ contact_ listDuplicate a contact list (creates 'Copy of …').
surveymonkey_create_ contact_ listCreate a contact list.
surveymonkey_delete_ contactDelete a contact from the address book.
surveymonkey_delete_ contact_ listDelete a contact list (the contacts themselves remain in the account).
surveymonkey_get_ contactGet one contact.
surveymonkey_get_ contact_ fieldGet one custom contact field.
surveymonkey_get_ contact_ listGet one contact list.
surveymonkey_list_ contact_ fieldsList the (up to 6) custom contact field definitions — their numeric ids and labels.
surveymonkey_list_ contacts_ in_ listList the contacts in a contact list.
surveymonkey_merge_ contact_ listCopy the contacts from one list (list_id) into the list named in the path.
surveymonkey_replace_ contactReplace a contact wholesale.
surveymonkey_replace_ contact_ listReplace a contact list (its name).
surveymonkey_update_ contactPartially update a contact (any create field).
surveymonkey_update_ contact_ fieldRename a custom contact field's label (the 6 field slots are fixed — you can only change labels).
surveymonkey_update_ contact_ listRename a contact list.
surveymonkey_add_ workgroup_ memberAdd one member to a workgroup.
surveymonkey_bulk_ add_ workgroup_ membersAdd several members to a workgroup at once.
surveymonkey_bulk_ create_ workgroup_ sharesShare several surveys with a workgroup at once.
surveymonkey_create_ workgroupCreate a workgroup.
surveymonkey_create_ workgroup_ shareShare a survey with a workgroup (this is how you 'share' a survey via the API).
surveymonkey_delete_ workgroupDelete a workgroup.
surveymonkey_delete_ workgroup_ memberRemove a member from a workgroup.
surveymonkey_delete_ workgroup_ shareUn-share a resource from a workgroup.
surveymonkey_get_ workgroupGet one workgroup.
surveymonkey_get_ workgroup_ memberGet one workgroup member.
surveymonkey_get_ workgroup_ shareGet one workgroup share record.
surveymonkey_list_ rolesList the organization's user roles.
surveymonkey_list_ workgroup_ membersList a workgroup's members.
surveymonkey_list_ workgroup_ sharesList resources (surveys) shared into a workgroup.
surveymonkey_list_ workgroupsList the organization's workgroups.
surveymonkey_update_ workgroupPartially update a workgroup.
surveymonkey_update_ workgroup_ memberUpdate a workgroup member (e.g.
surveymonkey_delete_ all_ collector_ responses⚠️ DANGER: delete EVERY response collected by this collector (not a single one).
surveymonkey_delete_ collector_ responseDelete a single collector response.
surveymonkey_delete_ survey_ responseDelete a single survey response.
surveymonkey_get_ collector_ responseGet one collector response's metadata.
surveymonkey_get_ collector_ response_ detailsGet one collector response fully expanded with every answer.
surveymonkey_get_ collector_ responses_ bulkGet one collector's responses fully expanded with every answer.
surveymonkey_get_ survey_ responseGet one survey response's metadata.
surveymonkey_list_ collector_ responsesList one collector's responses (metadata only).
surveymonkey_replace_ collector_ responseReplace a collector response wholesale.
surveymonkey_replace_ survey_ responseReplace a response wholesale.
surveymonkey_update_ collector_ responsePartially update a collector response.
surveymonkey_update_ survey_ responsePartially update a response (e.g.
surveymonkey_create_ survey_ folderCreate a folder to organize surveys.
surveymonkey_delete_ surveyPermanently delete a survey (and its collectors and responses).
surveymonkey_list_ survey_ foldersList the team's survey folders.
surveymonkey_replace_ surveyReplace a survey's top-level settings wholesale.
surveymonkey_create_ messageCreate an invite, reminder, thank-you, or SMS message on a collector.
surveymonkey_delete_ messageDelete a message from a collector.
surveymonkey_get_ messageGet one message.
surveymonkey_get_ message_ statsGet send/response stats for a single message (responded/partial/not-responded; opened/sent/bounced/opted-out; recipients).
surveymonkey_list_ messagesList the invite/reminder/thank-you messages on an email or SMS collector.
surveymonkey_replace_ messageReplace a not-yet-sent message's editable content.
surveymonkey_send_ messageSend (or schedule) an existing message to all of its recipients.
surveymonkey_update_ messageEdit a not-yet-sent message's subject, body_text/body_html, branding, or recipient_status (reminder/thank-you only).
surveymonkey_delete_ collectorDelete a collector (and the responses gathered through it).
surveymonkey_get_ collectorGet one collector with all its settings.
surveymonkey_get_ collector_ statsGet aggregate send/response stats across all messages on a collector (responded/partial/not-responded counts, mail opened/sent/bounced/opted-out, recipients).
surveymonkey_replace_ collectorReplace a collector's configuration wholesale (same fields as create, minus `type`, plus `status`).
surveymonkey_update_ collectorPartially update a collector — most commonly open or close it with `status`.
surveymonkey_add_ message_ recipientAdd one recipient to a not-yet-sent invite/SMS message — by an existing contact_id, or by email (email collector) / phone_number (SMS collector).
surveymonkey_bulk_ add_ message_ recipientsAdd many recipients to a message at once — from contact ids, whole contact lists, and/or inline contact objects.
surveymonkey_delete_ collector_ recipientRemove a recipient from a collector.
surveymonkey_delete_ pageDelete a survey page and its questions.
surveymonkey_delete_ questionDelete a question from a survey page.
surveymonkey_get_ collector_ recipientGet one recipient on a collector.
surveymonkey_get_ pageGet one survey page's details.
surveymonkey_get_ page_ rollupsAggregated answer counts for the questions on one page.
surveymonkey_get_ page_ trendsAnswer counts over time for one page's questions.
surveymonkey_get_ questionGet one question's full definition (family, subtype, headings, answer choices with ids).
surveymonkey_get_ question_ rollupsAggregated answer counts for a single question.
surveymonkey_get_ question_ trendsAnswer counts over time for a single question.
surveymonkey_get_ webhookGet one webhook.
surveymonkey_list_ collector_ recipientsList ALL recipients across every message on a collector.
surveymonkey_list_ message_ recipientsList the recipients of a specific message.
surveymonkey_list_ pagesList a survey's pages.
surveymonkey_list_ questionsList the questions on a survey page.
surveymonkey_replace_ pageReplace a survey page wholesale (title, description, position).
surveymonkey_replace_ questionReplace a question wholesale.
surveymonkey_replace_ webhookReplace a webhook wholesale.
surveymonkey_update_ pagePartially update a survey page (title, description, position).
surveymonkey_update_ questionPartially update a question.
surveymonkey_update_ webhookPartially update a webhook.
surveymonkey_create_ survey_ translationCreate a translation for a survey in one language.
surveymonkey_delete_ survey_ translationDelete a survey's translation for one language.
surveymonkey_get_ survey_ translationGet the translation structure for one language — the full list of translatable strings with their current translations (empty where untranslated).
surveymonkey_list_ survey_ translationsList a survey's translations (one per language code) with translated/stale/inherited string counts.
surveymonkey_update_ survey_ translationUpdate an existing survey translation.
surveymonkey_analyze_ benchmark_ bundleGet benchmark distribution / quartile values for specific questions in a bundle.
surveymonkey_get_ benchmark_ bundleGet the questions and details in a benchmark bundle.
surveymonkey_get_ groupGet a team's details.
surveymonkey_get_ group_ memberGet a team member's details.
surveymonkey_get_ question_ benchmarkGet the benchmark (num_responses, quartile_values, distribution) for a specific question in your survey.
surveymonkey_list_ benchmark_ bundlesList the benchmark bundles you have access to (industry comparison data).
surveymonkey_list_ group_ membersList a team's members.
surveymonkey_list_ groupsList the team(s) the user belongs to.
surveymonkey_get_ user_ shared_ resourcesList resources (surveys) shared with an user across all workgroups — share_id, workgroup_id, resource_type, resource_id, privileges.
surveymonkey_get_ user_ workgroupsList the workgroups a specific user belongs to (Team/Enterprise).
surveymonkey_list_ survey_ categoriesList survey categories (used to filter survey templates).
surveymonkey_list_ survey_ languagesList supported survey languages (id = language code, name, native_name) — the codes you use when adding survey translations.
surveymonkey_list_ survey_ templatesList SurveyMonkey's built-in survey templates.
surveymonkey_get_ errorGet the details of a known API error code.
surveymonkey_list_ errorsList the known SurveyMonkey API error codes (id, name, href) — a reference for interpreting failures.
Credentials off one SurveyMonkey screen, then an endpoint your client signs into. Nothing to deploy, and nothing to install.
Create a Private app at developer.surveymonkey.com → My Apps, copy the Access token from its Settings, and paste it here. Add Data region (us, eu, or ca) if needed. The token scopes the connection to that one account.
••••••••••••3f7ausRead-only covers reads only — surveys, responses, contacts, rollups. Full access adds writes, so turn on approval before an agent deletes a contact list, a webhook or a live survey. Full catalog reaches the rest.
Drop the PopMCP URL into Claude, ChatGPT, Codex or any other supported client. It signs in through PopMCP with OAuth, so your SurveyMonkey credential never leaves the server.
app.popmcp.com/mcp/…Ask for something harmless before you turn writes on. Once it comes back clean, widen the tool set or switch the connection to full access.
Summarize the top complaints in our Q3 customer satisfaction survey
surveymonkey_list_surveysok
Then just ask for the work
“Summarize the top complaints in our Q3 customer satisfaction survey”
“Rename our NPS surveys with a 2026 prefix and move them into the Archive folder”
“Copy last quarter's NPS survey, add a free-text question, and give me a weblink”
“Which contacts on the VIP list have not finished the onboarding survey yet”
One hosted endpoint, registered once per client. The same tools and the same permissions, whichever window the request comes from.
Add the PopMCP URL under Settings → Connectors and the tools appear in every chat.
The same endpoint, registered in the browser. Nothing to install on the machine you are working from.
Register PopMCP as a custom connector, then let ChatGPT read and update the account.
Wire the endpoint into Codex or the Codex CLI when a task needs live business context, not a fixture.
Register the remote MCP server in OpenCode's config for terminal-first and scripted agent runs.
Add PopMCP as an MCP server in Z.ai's desktop app and work the account from the same window.
FAQ
What teams ask before putting SurveyMonkey behind an AI client.
In the SurveyMonkey developer portal, go to My Apps, create a New app of type Private, and copy the access token shown in that app's Settings. Paste it into the Access token field on the connect form. SurveyMonkey tokens don't expire, so there is no OAuth popup and nothing to re-authenticate later.
The token acts as one SurveyMonkey account, and the connection is locked to it. Listing surveys returns the ones owned by or shared with that account, and surveymonkey_get_me tells you exactly which account you're on — its username, email, plan, and the scopes granted to the token. If a survey isn't owned by or shared with that account, the agent can't see it.
It's the optional second field on the connect form and accepts us, eu, or ca. Set it to match the region your SurveyMonkey account is hosted in. The Access token is the only required value.
Both. surveymonkey_get_survey_responses_bulk is the main way to read results across all collectors — it returns responses fully expanded with every answer, and surveymonkey_get_survey_response_details does the same for a single response. For aggregates, surveymonkey_get_survey_rollups gives answered/skipped and per-choice counts for every question, and surveymonkey_get_survey_trends buckets answer counts into time periods.
SurveyMonkey's API works on ids, not labels. surveymonkey_get_survey_details returns the expanded survey — a pages array, each with its questions, their families and headings, and the answer choices with their ids — which is what a new question or a programmatically created response has to reference. Contacts behave the same way: surveymonkey_list_contact_fields returns the numeric ids for the custom contact field definitions, of which an account has up to six.
Webhook-backed events cover the response lifecycle — started, completed, updated, disqualified, deleted, and over quota — plus collector created, updated and deleted, and survey created, updated and deleted. Two more run on change detection: a contact added to the address book, and a new contact list created. The agent can also manage the subscriptions itself with surveymonkey_list_webhooks, surveymonkey_create_webhook and surveymonkey_delete_webhook.
No. PopMCP hosts it and gives you a Streamable HTTP MCP URL. There is nothing to deploy, no callback URL to register, and no infrastructure to keep running or patch.
Any client that supports a remote Streamable HTTP MCP server — Claude Desktop, Claude Web, ChatGPT custom connectors, Codex and the Codex CLI, OpenCode and Z.ai's ZCode, as well as editors such as Cursor, Windsurf and Zed. Your client signs in to PopMCP with OAuth; the provider credential never leaves the server.
Loading 131 tool definitions into every conversation burns context before the work starts. PopMCP loads a curated 22-tool set covering the everyday workflows and keeps the rest searchable, so your AI pulls a specialist tool only when a task needs it. You can switch a connection to the full catalog at any time.
A tool is something your AI calls — there are 131 here. A trigger is something PopMCP watches for you: 14 SurveyMonkey events that can start work on the PopMCP side. Triggers never enter your AI client's context, and none of them ask you to paste a callback URL into SurveyMonkey.
Launch a hosted MCP endpoint for SurveyMonkey, keep tool access under control, and start testing real workflow prompts right away.