humansurvey-mcp
Feedback collection for AI agents. Create surveys from JSON schema, collect responses from groups of people, and retrieve structured results.
README
HumanSurvey
Feedback collection infrastructure for AI agents.
HumanSurvey lets an agent doing long-horizon work collect structured feedback from a group of people:
Agent is doing a job
→ needs structured feedback from a group
→ creates survey from JSON schema
→ shares /s/{id} URL with respondents
→ humans respond over hours or days
→ agent retrieves structured JSON results and acts on them
What is this?
HumanSurvey is a minimal API and MCP server for one narrow job: let agents collect structured feedback from groups of humans and get machine-usable results back.
It is designed for:
- AI agents running event management, product launches, or community workflows that need to survey a group
- Developers building agent products that need a lightweight feedback-collection primitive
It is not designed for:
- survey dashboards
- visual form builders
- template libraries
- email campaigns
- analytics/reporting UI
Features
- JSON schema input — structured, precise, and directly machine-generated
- MCP server — create surveys and read results directly from Claude Code
- Minimal API surface — authenticated creator routes, public respondent submission
- Four semantic question types —
choice,text,scale,matrix - Conditional logic —
showIfin Markdown and JSON schema - Explicit lifecycle — close surveys, expiry, and max response limits
Product Principles
- Semantic over visual: HumanSurvey has a small protocol, not a zoo of UI-specific field types.
- AI-first I/O: agents write the survey and agents consume the results; humans are in the middle.
- Everything is an API: creator functionality must be available over authenticated HTTP and MCP.
- Narrow scope wins: if a feature mainly serves human survey operators, it probably does not belong here.
Supported Question Types
single_choicemulti_choicetextscalematrix
Markdown Syntax
# Survey Title
**Description:** Instructions for the respondent.
## Section Name
**Q1. Your question here?**
- ☐ Option A
- ☐ Option B
- ☐ Option C
**Q2. Multi-select question?** (select all that apply)
- ☐ Choice 1
- ☐ Choice 2
- ☐ Choice 3
**Q3. Open-ended question:**
> _______________
| # | Item | Rating |
|---|------|--------|
| 1 | Item A | ☐Good ☐OK ☐Bad |
| 2 | Item B | ☐Good ☐OK ☐Bad |
Scale questions:
**Q4. How severe is this issue?**
[scale 1-5 min-label="Low" max-label="Critical"]
Conditional logic:
**Q1. Did the deploy fail?**
- ☐ Yes
- ☐ No
**Q2. Which step failed?**
> show if: Q1 = "Yes"
> _______________________________________________
Quick Start
Use with Claude Code
Add to your Claude Code config (~/.claude.json):
{
"mcpServers": {
"survey": {
"command": "npx",
"args": ["-y", "humansurvey-mcp"],
"env": {
"HUMANSURVEY_API_KEY": "hs_sk_your_key_here"
}
}
}
}
Then in Claude Code:
> Create a post-event feedback survey with a 1-5 rating, open text, and a yes/no question
Available tools:
create_key— self-provision an API key; no human setup requiredcreate_survey— create from JSON schema; optionalmax_responses,expires_at,webhook_urlget_results— aggregated results + raw responseslist_surveys— list surveys owned by your keyclose_survey— close a survey immediately
Use the HTTP API
curl -X POST https://www.humansurvey.co/api/keys \
-H "Content-Type: application/json" \
-d '{
"name": "my claude agent",
"email": "you@example.com",
"wallet_address": "eip155:8453:0xabc..."
}'
All fields optional. wallet_address uses CAIP-10 format — will be used for agent-native payments in the future.
Then create a survey:
curl -X POST https://www.humansurvey.co/api/surveys \
-H "Authorization: Bearer hs_sk_..." \
-H "Content-Type: application/json" \
-d '{
"schema": {
"title": "Post-Event Feedback",
"sections": [{
"questions": [
{ "type": "scale", "label": "How would you rate the event?", "min": 1, "max": 5 },
{ "type": "text", "label": "What should we improve?" }
]
}]
}
}'
Response:
{
"survey_url": "/s/abc123",
"question_count": 1
}
Read results:
curl https://www.humansurvey.co/api/surveys/abc123/responses \
-H "Authorization: Bearer hs_sk_..."
Public Surface
- Docs page:
https://www.humansurvey.co/docs - OpenAPI:
https://www.humansurvey.co/api/openapi.json - AI index:
https://www.humansurvey.co/llms.txt
Tech Stack
| Component | Technology |
|---|---|
| Framework | Next.js (App Router) |
| Database | Neon (serverless Postgres) |
| Parser | remark (unified ecosystem) |
| Frontend | React + Tailwind CSS |
| MCP Server | @modelcontextprotocol/sdk |
| Deployment | Vercel |
Project Structure
├── apps/web/ # Next.js app (API + frontend)
├── packages/parser/ # Markdown → Survey JSON parser
├── packages/mcp-server/ # MCP server for Claude Code
└── docs/ # Architecture docs
Contributing
Read CONTRIBUTING.md before opening a PR. The most important rule is scope discipline: new UI variants, analytics dashboards, and human-operator features are usually out of scope.
Development
pnpm install
pnpm dev # Start Next.js dev server
pnpm --filter @mts/parser test
pnpm build # Build all packages
License
MIT
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。