humansurvey-mcp
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 themWhat 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,matrixConditional logic —
showIfin Markdown and JSON schemaExplicit 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 questionAvailable tools:
create_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"}'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/docsOpenAPI:
https://www.humansurvey.co/api/openapi.jsonAI 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 docsContributing
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 packagesLicense
MIT
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/sunsiyuan/human-survey'
If you have feedback or need assistance with the MCP directory API, please join our Discord server