MCP.Market

Human Survey MCP server

by sunsiyuan·io.github.sunsiyuan/human-survey·v1.2.0·1 stars

Self-reported attribution: which channel and which creator your users first heard you from.

B78/100grade B
What users say
No reviews yet
Be the first
Safety scan
B78/100

full report

Adoption
New

1 stars36 downloads/wk

Reviews

Write one

Nobody has reviewed Human Survey yet.

If you have run it, two minutes of your experience saves the next person an afternoon.

Human Survey tools (10, 1 write)

write = sends, deletes, buys or posts

Read from the package source without running it. The installed server may list more.

  • configure_form
  • create_formwrite action

    Create a form and return its id, its respondent URL, and the iframe and postMessage listener to embed that URL in a host page. The form has no questions yet and shows nothing to respondents until it is configured. allowed_origins restricts which sites may embed it; leaving it empty allows any site, which means any site can spend this account\u2019s response quota.

  • get_attribution

    What respondents said, aggregated. Reports, per question, how many completed responses named each candidate out of how many answered that question, the unresolved answers in the same list, how often a follow-up question failed to find an answer, and revenue where conversion events have been recorded. Computed fresh on every call, including any mappings made since \u2014 so a rollup of a past windo

  • get_catalog

    List the platforms HumanSurvey knows: the slug to use as catalog_slug, the display label, and which class of channel it is. These are the named channels a respondent can be shown \u2014 TikTok, ChatGPT, LinkedIn, Reddit and so on \u2014 plus the descriptive options that have no brand behind them, like "a friend or colleague told me". No API key needed.

  • get_form

    Read one form: its settings, and the question configuration currently shown to respondents \u2014 every question, every candidate, and the order mode. Returns the configuration as JSON, because that is the exact shape a configuration write takes.

  • list_forms

    List the forms on this account: id, name, respondent URL, whether it is active or paused, whether it has been configured with questions yet, and how many responses it has collected.

  • list_unresolved

    The answers respondents typed instead of picking from the list, grouped by the exact text and ordered by how often it was typed. Reports the spelling variants seen, when each was first and last typed, and whether a mapping already covers it. These are verbatim words. Two texts that read alike may be different people, and a text may name somebody who is not on the candidate list at all.

  • login

    Sign in with an email address and store an API key on this machine. Called with only an email, it mails a six-digit code and returns nothing usable \u2014 the code has to come from the person, out of their inbox. Called with the email and that code, it stores a key at ~/.humansurvey/credentials and reports where it was written. The key itself is never printed. Signing in and signing up are the sam

  • remap

    Record that a specific typed answer means a specific candidate. It applies to every response already carrying that text as well as every future one, so numbers reported for past windows change. The original text is never altered and a mapping can be revoked, but a report may already have been read. Only map a text whose meaning is established \u2014 a text that merely resembles a candidate\u2019s

  • revoke_remap

    Stop a mapping from applying. The typed answers it covered return to the unresolved list \u2014 in past windows as well as future ones, because rollups join mappings when they are read rather than when they are made. Numbers already reported for those windows will therefore change. Nothing is deleted: the mapping is marked revoked and kept, so a report produced while it was live can still be expla

Public scan report

scanner v0.1.9 · 2026-09-24 · same rubric, same numbers if you re-run it

no findings
  • Code scan2 source files scanned25/25
  • –Live reliabilityno gateway calls yet and no remote to proben/a
  • –Tool poisoningtools not inspected (local package is not executed); not countedn/a
  • Auth qualitystatic API keys via environment variables6/15
  • Maintenancelast push 54 days ago12/15
  • Maintainer identityregistry namespace matches repository owner; GitHub account older than a year8/10
Overall 78/100. Components that don't apply are left out of the denominator. Any critical finding is an F.RubricAppeal a findingJSON

How Human Survey compares

Against every graded MCP server, from our own scans and uptime checks. Updated after each scan run.

Safety score
78/100
higher than 57% of 48,255 servers
Tools
10
the typical server has 7
Tools that change things
10%
typical: 0%. Fewer write tools means less an agent can break
GitHub stars
1
more than 65% of 28,688 servers
Downloads a week
36
more than 26% of 12,191 servers with a package

What its tools let an agent do: 8 read · 1 create · 1 delete

Install Human Survey in Claude Code, Cursor or VS Code

Runs npx -y humansurvey-mcp on your machine. Read the scan report first; the gateway never runs local packages.

claude mcp add human-survey -- npx -y humansurvey-mcp
Add to Cursor

What the publisher says

From the Human Survey repository's README, as published. We do not edit it. Read it on GitHub

HumanSurvey

Website: humansurvey.co · Docs: humansurvey.co/docs · FAQ: humansurvey.co/faq

Attribution for the channels that have no referrer.

HumanSurvey asks one question — how did you hear about us — inside the host's own signup or payment flow, at a granularity that is actually actionable: the platform first, then which creator, podcast, event or store.

Agent configures a form   → platforms from the catalog, creators supplied by the caller
Host embeds /s/{id}       → in its signup flow, its payment flow, or both
Respondent answers        → picks a platform; that pick expands the follow-up in place
Host pushes conversions   → POST /api/attribution/events, keyed on its own user id
Agent reads back          → rollup, raw response stream, free text awaiting a mapping

What is this?

An API and MCP server for self-reported attribution. TikTok in-app, Instagram, podcasts, communities, word of mouth, AI assistants: the exposure happens where tracking cannot reach, and asking a human is the only always-on signal that survives every referrer leak.

Two placements answer different questions. In the payment flow, the respondent is already a paying customer, so the answer joins to revenue with no conversion ingest at all. In the signup flow, it is the only way to see the people a channel sends who never pay. Divide a channel's share of the paying population by its share of the signup population. Above 1 it converts better than your average, below 1 worse. Multiply that ratio by your overall signup-to-paid rate to get the channel's own rate.

It is designed for:

  • hosts embedding a form in their own onboarding or checkout
  • agents that keep the candidate list current and read the results back

It is not designed for:

logic were removed in the attribution pivot

  • general-purpose surveys — arbitrary question types, Markdown authoring and conditional

the dashboard

  • a human-facing analytics dashboard: the aggregates are an API resource, and the agent is

it offers (the /s/{id} URL and the iframe embed) are ones you control

  • reaching your audience for you — HumanSurvey never contacts respondents; the transports

Features

follow-up. The first answer is durable before the second is asked, and a respondent who abandons the follow-up is still real data.

  • Progressive disclosure, not pagination — POST the platform answer, PATCH the

by a client-minted render_id, so the raw share is unbiased by construction. fixed order exists for callers who want it and does not hide its bias.

  • Rotation by default — the orderable candidates are permuted per respondent, seeded

table on every read, so one mapping fixes months of history with no backfill.

  • Retroactive remapping — free text is stored verbatim and resolved against the remap

against, so reconfiguring cannot rewrite what history says was shown.

  • Immutable config snapshots — a response is joined to the version it was rendered

per-user attribution back out to your own user table.

  • One join key, both directions — external_id brings revenue in and carries

once, and is final when emitted. Nothing downstream has to upsert.

  • Cursor reads — a response becomes visible once it is complete, is emitted exactly

Product Principles

Shortened. The full README is on GitHub.

Nothing above is checked by us. What we check is on the safety report.

Human Survey: common questions

Is Human Survey MCP server safe?
Mostly: it is graded B (78/100). Read the Human Survey safety report
How do I install Human Survey?
It runs on your machine. Copy the Claude Code, Cursor, VS Code or Claude Desktop config from the install section.
Does Human Survey need an API key?
Yes. The registry entry asks for HUMANSURVEY_API_KEY.
Is Human Survey maintained?
The last commit was 95 days ago (2026-08-01). The latest release is v1.2.0.
How does Human Survey compare with other MCP servers?
safety score 78/100 (higher than 57% of 48,255 servers); tools 10 (the typical server has 7); tools that change things 10% (typical: 0%. Fewer write tools means less an agent can break). Full comparison.