mcpField
H
human-survey

human-survey

本地服务
github.com/sunsiyuan商业与营销113 周前更新

关于 human-survey

HumanSurvey 是用于收集自报渠道归因的 API 和 MCP 服务,可嵌入注册或付款流程。它帮助产品运营者和 Agent 识别追踪链接无法捕获的平台及具体创作者来源。

主要功能

  1. 01在注册或结账流程嵌入归因表单
  2. 02逐步询问平台及创作者
  3. 03为每位受访者轮换候选项顺序
  4. 04追溯映射自由文本答案
  5. 05通过 API 读取汇总及回答

适用场景

  1. 01了解用户最初从何处得知产品
  2. 02比较注册用户与付费用户的渠道占比
  3. 03通过外部用户 ID 将归因回答关联到收入

MCP 相关

MCP 服务提供配置归因表单及通过归因 API 读取结果的工具。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"sunsiyuan-human-survey": {
"command": "npx",
"args": [
"-y",
"humansurvey-mcp"
],
"env": {
"HUMANSURVEY_API_KEY": "<HUMANSURVEY_API_KEY>"
}
}
}
}
启动命令npx -y humansurvey-mcp
需要配置的环境变量
HUMANSURVEY_API_KEY密钥Your HumanSurvey API key (starts with hs_sk_). Get one at https://www.humansurvey.co

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npmhumansurvey-mcp1.2.0

工具

10

收录的工具列表 · 更新于 2 周前

参数类型必填说明
codestring否邮件中的六位数。首次调用时省略——您无法预先知道此值;请向用户询问。
namestring否密钥的标签,例如它所属的项目。
emailstring是用户的电子邮件地址。用户会从此收件箱中读取代码。

详细介绍

HumanSurvey

网站: humansurvey.co · 文档: humansurvey.co/docs · 常见问题: humansurvey.co/faq

human-survey MCP 服务

为没有来源标记的渠道提供归因。

HumanSurvey 会在宿主自身的注册或付款流程中提出一个问题——你是如何知道我们的——并细化到真正可采取行动的程度:先了解平台,再了解具体的创作者、播客、活动或商店。

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

这是什么?

一款用于自述归因的 API 和 MCP 服务。TikTok 应用内、Instagram、播客、社群、口碑传播、AI 助手:曝光发生在追踪无法触及的地方,而询问用户是唯一始终有效、能够跨越所有来源信息丢失情况的信号。

两种放置方式回答不同的问题。在付款流程中,受访者已经是付费客户,因此答案可以直接关联收入,无需导入转化数据。在注册流程中,这是了解渠道带来的未付费用户的唯一方式。用某渠道在付费用户中的占比除以它在注册用户中的占比。比值大于 1,表示其转化率高于平均水平;小于 1,则表示低于平均水平。将这个比值乘以整体注册转付费率,即可得出该渠道自身的转化率。

它专为以下场景设计:

  • 在自有引导流程或结账流程中嵌入表单的宿主
  • 维护候选列表并读取结果的 Agent

它不适用于以下场景:

  • 通用调查问卷——在转向归因后,任意问题类型、Markdown 编辑和条件逻辑都已移除
  • 面向用户的分析仪表板:汇总数据是一个 API 资源,而 Agent 就是仪表板
  • 代你触达受众——HumanSurvey 从不联系受访者;它提供的传输方式(/s/{id} URL 和 iframe 嵌入)均由你控制

功能

  • 渐进式展示,而非分页 — 先 POST 平台答案,再 PATCH 后续答案。第一个答案在询问第二个答案之前就已持久化;即使受访者中途放弃后续问题,也仍是有效数据。
  • 默认轮换顺序 — 可排序的候选项会针对每位受访者进行排列,并以客户端生成的 render_id 作为种子,因此原始占比在设计上就不受顺序偏差影响。调用方可以选择 fixed 顺序,但它不会掩盖其中的偏差。
  • 追溯映射 — 自由文本会按原样存储,并在每次读取时依据映射表进行解析,因此只需一次映射,就能修正数月的历史数据,无需回填。
  • 不可变的配置快照 — 响应会关联到呈现时所依据的版本,因此重新配置不会改写历史记录中的展示内容。
  • 双向共用一个关联键 — external_id 可导入收入,也可将每位用户的归因信息回传到你自己的用户表。
  • 游标读取 — 响应完成后即可见,只会发出一次,且发出后即为最终结果。下游无需执行 upsert。

产品原则

  • AI 优先的输入输出:由 Agent 配置表单并使用结果;人类参与其中。
  • 一切皆为 API:创作者功能必须可通过经过身份验证的 HTTP 和 MCP 使用。
  • 专注于窄领域:把一个问题问好。主要服务于人工问卷操作员的功能可能不适合这里。
  • 不提供缺乏依据的百分比:每个数字都与计算它所依据的分母一同提供;无法如实计算的数字将显示为 null,而不是经过平滑处理。

快速开始

获取 API 密钥
curl -X POST https://www.humansurvey.co/api/auth/code \
  -H "Content-Type: application/json" \
  -d '{ "email": "[email protected]" }'

curl -X POST https://www.humansurvey.co/api/auth/verify \
  -H "Content-Type: application/json" \
  -d '{ "email": "[email protected]", "code": "481920", "grant": "api_key" }'

匿名创建密钥的方式已取消。每个密钥从创建之初就属于某个账户,因此密钥丢失后可以恢复,轮换密钥也无需付费。

创建表单,然后进行配置
curl -X POST https://www.humansurvey.co/api/attribution/forms \
  -H "Authorization: Bearer hs_sk_..." \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Checkout — how did you hear about us",
    "allowed_origins": ["https://app.example.com"]
  }'
{
  "id": "abc123efgh45",
  "form_url": "https://www.humansurvey.co/s/abc123efgh45",
  "warnings": ["this form has no config yet; PUT /api/attribution/forms/abc123efgh45 with {nodes} before embedding it"]
}

表单在配置完成前不会呈现任何内容。PUT 会将配置保存为不可变快照:

curl -X PUT https://www.humansurvey.co/api/attribution/forms/abc123efgh45 \
  -H "Authorization: Bearer hs_sk_..." \
  -H "Content-Type: application/json" \
  -d '{
    "nodes": [
      {
        "id": "channel",
        "prompt": "Where did you first hear about us?",
        "candidates": [
          { "id": "tiktok", "catalog_slug": "tiktok", "expands": "creator" },
          { "id": "reddit", "catalog_slug": "reddit" },
          { "id": "friend", "label": "A friend or colleague" },
          { "id": "dunno", "label": "I don'\''t remember", "pinned": "end", "dont_remember": true }
        ]
      },
      {
        "id": "creator",
        "prompt": "Which account was it?",
        "candidates": [
          { "id": "oecuid_8812", "label": "Jade", "handle": "@jade.work0" }
        ]
      }
    ]
  }'

平台标签、标记和别名来自 GET /api/attribution/catalog,并会复制到快照中。创作者候选项由你提供:产品会呈现候选集并返回所选项的 id;将模糊描述与创作者数据库匹配则属于上游工作。

读取结果
curl "https://www.humansurvey.co/api/attribution/rollup?form_id=abc123efgh45&by=candidate&from=2026-07-01&to=2026-08-01" \
  -H "Authorization: Bearer hs_sk_..."

读取端还提供:GET /api/attribution/forms/{id}/responses(游标流,或通过 ?external_id= 获取单个身份的结果)、用于查看等待映射的自由文本的 .../unresolved,以及用于追溯解决问题的 POST .../remaps。完整的请求和响应结构请参阅OpenAPI 文档。

与 Claude Code 搭配使用
{
  "mcpServers": {
    "survey": {
      "command": "npx",
      "args": ["-y", "humansurvey-mcp"],
      "env": {
        "HUMANSURVEY_API_KEY": "hs_sk_your_key_here"
      }
    }
  }
}

服务名称仍为 survey,包名称仍为 humansurvey-mcp——两者都包含在每位现有用户的配置中。其十个工具现已接入归因 API——请参阅 packages/mcp-server/README.md。npm 的发布与此仓库分开,因此 npm 上的版本可能落后于此处的版本。

公共资源

  • 文档页面:https://www.humansurvey.co/docs
  • OpenAPI:https://www.humansurvey.co/api/openapi.json
  • AI 索引:https://www.humansurvey.co/llms.txt

技术栈

组件技术
框架Next.js(App Router)
数据库Neon(无服务器 Postgres)
前端React + Tailwind CSS
MCP 服务@modelcontextprotocol/sdk
部署Vercel

项目结构

├── apps/web/            # Next.js app (API + respondent page + site)
│   ├── lib/attribution/ # config, responses, reads, rollup, remap
│   └── supabase/migrations/  # applied through scripts/migrate.sh, with a ledger
├── packages/mcp-server/ # MCP server for Claude Code
└── docs/                # architecture, roadmap, design docs

贡献

提交 PR 前,请阅读 CONTRIBUTING.md。最重要的规则是严格控制范围:新增 UI 变体、分析仪表板和人工操作员功能通常不在范围之内。

开发

pnpm install
pnpm dev               # Start Next.js dev server
pnpm test              # node --test over apps/web/lib/**/*.test.ts
pnpm build             # Build all packages

许可证

MIT

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。