MobOpinions Survey Light — MCP server

MCP serverEverything else

Build, target, launch and analyse consumer surveys from your AI assistant (Survey Light, 71 tools).

Available today. Use it from your connected AI after setup.

Connect ahel once, and every AI you use reads what you have installed.

Then ask your AI: use MobOpinions Survey Light — MCP server

From the project's README

As published by menaker/mobopinions-survey-mcp in README.md.

Run consumer surveys from your AI assistant. Every action in Survey Light (MobOpinions' self-service survey platform) is exposed as a Model Context Protocol tool, so Claude, ChatGPT, Cursor, VS Code or any MCP client can create a survey, write the questions, target a real consumer audience through the MobOpinions panel network, launch it and read the results — inside your own MobOpinions workspace.

Registry name: com.mobopinions/survey-light · Remote server (no install) · License: MIT

Endpointhttps://surveys.mobopinions.com/light-api/mcp
TransportStreamable HTTP (MCP 2025-06-18), stateless JSON responses
AuthOAuth 2.1 — RFC 9728/8414 discovery, RFC 7591 dynamic registration, PKCE S256, refresh tokens
Sign-inyour existing surveys.mobopinions.com email + password
Tools71

Connect

Claude Code

claude mcp add --transport http surveys https://surveys.mobopinions.com/light-api/mcp
# then in a session: /mcp → surveys → Authenticate (browser login)

Claude.ai / Claude Desktop — Settings → Connectors → Add custom connector → URL https://surveys.mobopinions.com/light-api/mcp → Connect → sign in.

ChatGPT — Settings → Connectors → Create (developer mode) → MCP server URL https://surveys.mobopinions.com/light-api/mcp, authentication OAuth → sign in.

Cursor / VS Code / any Streamable-HTTP + OAuth client{ "mcpServers": { "surveys": { "url": "https://surveys.mobopinions.com/light-api/mcp" } } }

There is no API key: the client discovers the authorization server, registers itself, opens the login page and stores the token. Tokens last 30 days and refresh automatically. Every tool runs with exactly the permissions of the signed-in user, in the workspace they select.

What you can do

Ask your assistant things like:

  • "Create a 6-question survey about oat-milk buying habits for 300 UK adults aged 25–44 and launch it."
  • "Add a screener so only people who bought running shoes in the last 6 months qualify."
  • "How many completes do we have on the Berlin survey, and what's the top answer to question 3?"
  • "Export the results as an Excel file and pause the survey."

Tools (71)

Account & workspaces (12)

ToolWhat it does
get_profileWho am I: the linked account (user id, email, display name), the workspaces
get_accountAccount card: full name, email, Survey Light workspaces (id, name, role,
update_accountSet the account's full name and optionally rename the ACTIVE workspace.
list_workspacesMy Survey Light workspaces plus the id of the one this session is switched to.
switch_workspaceMake a workspace the active one for this session. Surveys, wallet and
create_workspaceCreate a new Survey Light workspace (you become its owner) and switch to it.
rename_workspaceRename a workspace you own.
list_workspace_membersMembers (user id, email, role) and pending invitations of a workspace you own.
invite_workspace_memberEmail an invitation to join a workspace you own (link valid 7 days).
remove_workspace_memberRemove a user from a workspace you own. Confirm with the user first.
cancel_workspace_invitationRevoke a pending workspace invitation.
accept_workspace_invitationRedeem a workspace invitation token (from the invitation email) for the

Surveys (16)

ToolWhat it does
get_survey_optionsReference lists for creating a survey: countries available for fielding
list_surveysSurveys in the active workspace (newest first, max 300) with status
create_surveyCreate an empty draft survey in the active workspace. Then add questions
suggest_survey_topicAI-pick the best topic category (from get_survey_options.categories) for a research question.
create_survey_from_questionBuild a complete survey (questions, screeners, skip logic, images) from ONE
create_survey_from_templateCreate a new draft by copying a template survey (a survey marked with
clone_surveyDeep-copy a survey (questions, answers, targeting, skip logic) into a new draft.
translate_surveyClone a survey once per language and machine-translate every question and
set_survey_template_flagMark (or unmark) a survey as a reusable workspace template.
preview_surveyGet a respondent-view preview link for a survey and mark it as tested.
pause_surveyPause a live survey (stops collecting; funds stay reserved). Resume with resume_survey.
resume_surveyResume a paused survey that was previously launched.
delete_surveyPermanently delete a draft or closed survey with no completes. Live/paused
get_survey_statusCheap liveness snapshot for a survey in field: status, is_live, accepted/
launch_surveyTake a draft live: reserves the full project value from the wallet as a hold
close_surveyClose a running survey for good: stops fielding, charges accepted completes

Questions & answers (13)

ToolWhat it does
list_questionsThe questionnaire: every question with type, text, answer options, matrix
add_questionAppend a question with its answer options. single_select / multi_select /
update_questionEdit an existing question's text, mandatory flag, answer randomisation,
delete_questionDelete a question and its answers/statements. Irreversible.
add_answer_optionAdd one answer option to a single_select / multi_select / ranking / matrix question.
update_answer_optionChange an answer option's text, flags, image or position.
remove_answer_optionDelete one answer option from a question.
reorder_answer_optionsSet the display order of a question's answers by listing their codes in order.
reorder_questionsSet the order of the editable questions by listing their qids. Locked
set_question_routingSkip logic for a single_select question: per answer code, jump to a later
parse_questionnaire_documentAI-parse a questionnaire document (PDF, DOCX, XLSX or CSV, max 20 MB) fetched
get_complete_answersFull question-by-question answers of one complete (by location_id from list_completes).
get_close_previewWhat closing would settle: accepted/rejected counts, held amount, charge and release-back.

Audience & targeting (14)

ToolWhat it does
get_targetingCurrent audience: country, gender, age ranges, employment, education,
set_targetingReplace the survey's demographic targeting (each list you pass REPLACES that
convert_location_textTurn a free-text location description (e.g. 'Texas and Florida', 'Greater
set_location_targetingApply location targeting: EITHER an admin-area selection (assoc_type + values,
list_quotasQuota cells of a survey with limit, filled, remaining and their conditions
create_quotaCap how many completes a group may fill. Demographic cell: quota_type 'gender'
update_quotaChange a quota's limit (any cell) or name/descriptor (manual cells only).
delete_quotaDelete a manual quota cell (auto cells follow targeting — freeze them instead).
freeze_auto_quotaFreeze an auto-generated (targeting-derived) quota so it never fills and is
add_quota_conditionAdd a (question, answer code) condition to a manual quota. A condition on a
update_quota_conditionChange the question and/or answer code of a quota condition.
remove_quota_conditionRemove one condition from a manual quota.
split_quota_limitsSpread the completes target across cells — e.g. scope 'gender' = 50/50
set_target_completesChange the target number of completes. In field, raising it reserves the

Launch & field (2)

ToolWhat it does
finish_builderCall after editing questions: recomputes LOI from the final question count
get_launch_summaryPre-launch check: final quote (question count, LOI, CPI, total), whether the

Results, insights & export (6)

ToolWhat it does
get_resultsPer-question aggregates over accepted completes: counts and percentages for
export_results_csvRaw respondent-level CSV: one row per complete (accepted and rejected), one column per question.
export_results_xlsxExcel workbook of every complete: 'Responses' (labels), 'Codes' (stored
get_ai_results_summaryAI-written digest of the results: headline, key points and watch-outs
get_insights_reportThe full Insights report: methodology, banner columns, per-question findings
run_insights_functionAdvanced Insights operations by name: AI narrative (insights_ai_summary with

Wallet & billing (2)

ToolWhat it does
get_walletWallet balance (total_credits, pre-formatted with currency symbol) and the
create_wallet_topup_checkoutCreate a Stripe Checkout link to add funds to the wallet. Returns checkout_url —

Other (6)

ToolWhat it does
get_price_quotePrice a hypothetical survey without creating anything: incidence estimate,
list_piping_sourcesQuestions whose answer can be piped into later text with the {{Q}} token
upload_mediaUpload an image or video from a public URL to use in question text or as an
list_completesEvery complete (accepted and rejected) with timestamps, duration and rate,
reject_completeReject a low-quality complete before close (excluded from billing, slot
get_crosstabCross-tabulate one question (rows) by up to 4 banner questions (columns) with

Pricing

Building, editing and analysing surveys is free. Fieldwork (real respondents) is paid per completed response from the workspace wallet, at the price shown before you launch. Using the MCP server adds nothing on top.

Support

Advanced
Delivery
survey-light MCP server → your ahel gateway (mcp.ahel.ai) → every connected AI client.
Catalog kind
mcp-server
Gateway key
com-mobopinions-survey-light
Source
github.com/menaker/mobopinions-survey-mcp
Hosted endpoint
https://surveys.mobopinions.com/light-api/mcp