MobOpinions Survey Light — MCP server
MCP serverEverything elseBuild, target, launch and analyse consumer surveys from your AI assistant (Survey Light, 71 tools).
Available today. Use it from your connected AI after setup.
No other account needed.
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
| Endpoint | https://surveys.mobopinions.com/light-api/mcp |
| Transport | Streamable HTTP (MCP 2025-06-18), stateless JSON responses |
| Auth | OAuth 2.1 — RFC 9728/8414 discovery, RFC 7591 dynamic registration, PKCE S256, refresh tokens |
| Sign-in | your existing surveys.mobopinions.com email + password |
| Tools | 71 |
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)
| Tool | What it does |
|---|---|
get_profile | Who am I: the linked account (user id, email, display name), the workspaces |
get_account | Account card: full name, email, Survey Light workspaces (id, name, role, |
update_account | Set the account's full name and optionally rename the ACTIVE workspace. |
list_workspaces | My Survey Light workspaces plus the id of the one this session is switched to. |
switch_workspace | Make a workspace the active one for this session. Surveys, wallet and |
create_workspace | Create a new Survey Light workspace (you become its owner) and switch to it. |
rename_workspace | Rename a workspace you own. |
list_workspace_members | Members (user id, email, role) and pending invitations of a workspace you own. |
invite_workspace_member | Email an invitation to join a workspace you own (link valid 7 days). |
remove_workspace_member | Remove a user from a workspace you own. Confirm with the user first. |
cancel_workspace_invitation | Revoke a pending workspace invitation. |
accept_workspace_invitation | Redeem a workspace invitation token (from the invitation email) for the |
Surveys (16)
| Tool | What it does |
|---|---|
get_survey_options | Reference lists for creating a survey: countries available for fielding |
list_surveys | Surveys in the active workspace (newest first, max 300) with status |
create_survey | Create an empty draft survey in the active workspace. Then add questions |
suggest_survey_topic | AI-pick the best topic category (from get_survey_options.categories) for a research question. |
create_survey_from_question | Build a complete survey (questions, screeners, skip logic, images) from ONE |
create_survey_from_template | Create a new draft by copying a template survey (a survey marked with |
clone_survey | Deep-copy a survey (questions, answers, targeting, skip logic) into a new draft. |
translate_survey | Clone a survey once per language and machine-translate every question and |
set_survey_template_flag | Mark (or unmark) a survey as a reusable workspace template. |
preview_survey | Get a respondent-view preview link for a survey and mark it as tested. |
pause_survey | Pause a live survey (stops collecting; funds stay reserved). Resume with resume_survey. |
resume_survey | Resume a paused survey that was previously launched. |
delete_survey | Permanently delete a draft or closed survey with no completes. Live/paused |
get_survey_status | Cheap liveness snapshot for a survey in field: status, is_live, accepted/ |
launch_survey | Take a draft live: reserves the full project value from the wallet as a hold |
close_survey | Close a running survey for good: stops fielding, charges accepted completes |
Questions & answers (13)
| Tool | What it does |
|---|---|
list_questions | The questionnaire: every question with type, text, answer options, matrix |
add_question | Append a question with its answer options. single_select / multi_select / |
update_question | Edit an existing question's text, mandatory flag, answer randomisation, |
delete_question | Delete a question and its answers/statements. Irreversible. |
add_answer_option | Add one answer option to a single_select / multi_select / ranking / matrix question. |
update_answer_option | Change an answer option's text, flags, image or position. |
remove_answer_option | Delete one answer option from a question. |
reorder_answer_options | Set the display order of a question's answers by listing their codes in order. |
reorder_questions | Set the order of the editable questions by listing their qids. Locked |
set_question_routing | Skip logic for a single_select question: per answer code, jump to a later |
parse_questionnaire_document | AI-parse a questionnaire document (PDF, DOCX, XLSX or CSV, max 20 MB) fetched |
get_complete_answers | Full question-by-question answers of one complete (by location_id from list_completes). |
get_close_preview | What closing would settle: accepted/rejected counts, held amount, charge and release-back. |
Audience & targeting (14)
| Tool | What it does |
|---|---|
get_targeting | Current audience: country, gender, age ranges, employment, education, |
set_targeting | Replace the survey's demographic targeting (each list you pass REPLACES that |
convert_location_text | Turn a free-text location description (e.g. 'Texas and Florida', 'Greater |
set_location_targeting | Apply location targeting: EITHER an admin-area selection (assoc_type + values, |
list_quotas | Quota cells of a survey with limit, filled, remaining and their conditions |
create_quota | Cap how many completes a group may fill. Demographic cell: quota_type 'gender' |
update_quota | Change a quota's limit (any cell) or name/descriptor (manual cells only). |
delete_quota | Delete a manual quota cell (auto cells follow targeting — freeze them instead). |
freeze_auto_quota | Freeze an auto-generated (targeting-derived) quota so it never fills and is |
add_quota_condition | Add a (question, answer code) condition to a manual quota. A condition on a |
update_quota_condition | Change the question and/or answer code of a quota condition. |
remove_quota_condition | Remove one condition from a manual quota. |
split_quota_limits | Spread the completes target across cells — e.g. scope 'gender' = 50/50 |
set_target_completes | Change the target number of completes. In field, raising it reserves the |
Launch & field (2)
| Tool | What it does |
|---|---|
finish_builder | Call after editing questions: recomputes LOI from the final question count |
get_launch_summary | Pre-launch check: final quote (question count, LOI, CPI, total), whether the |
Results, insights & export (6)
| Tool | What it does |
|---|---|
get_results | Per-question aggregates over accepted completes: counts and percentages for |
export_results_csv | Raw respondent-level CSV: one row per complete (accepted and rejected), one column per question. |
export_results_xlsx | Excel workbook of every complete: 'Responses' (labels), 'Codes' (stored |
get_ai_results_summary | AI-written digest of the results: headline, key points and watch-outs |
get_insights_report | The full Insights report: methodology, banner columns, per-question findings |
run_insights_function | Advanced Insights operations by name: AI narrative (insights_ai_summary with |
Wallet & billing (2)
| Tool | What it does |
|---|---|
get_wallet | Wallet balance (total_credits, pre-formatted with currency symbol) and the |
create_wallet_topup_checkout | Create a Stripe Checkout link to add funds to the wallet. Returns checkout_url — |
Other (6)
| Tool | What it does |
|---|---|
get_price_quote | Price a hypothetical survey without creating anything: incidence estimate, |
list_piping_sources | Questions whose answer can be piped into later text with the {{Q}} token |
upload_media | Upload an image or video from a public URL to use in question text or as an |
list_completes | Every complete (accepted and rejected) with timestamps, duration and rate, |
reject_complete | Reject a low-quality complete before close (excluded from billing, slot |
get_crosstab | Cross-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
- Product: https://surveys.mobopinions.com
- Company: https://mobopinions.com
- Questions: support@mobopinions.com
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