sunsiyuan/human-survey

sunsiyuan/human-survey

от sunsiyuan
HumanSurvey — это минималистичное API и MCP-сервер для сбора структурированной обратной связи от групп людей через AI-агентов. Позволяет создавать опросы с JSON-схемой, поддерживает типы вопросов (...

HumanSurvey

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

human-survey MCP server

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 typeschoice, text, scale, matrix
  • Conditional logicshowIf in Markdown and JSON schema
  • Explicit lifecycle — close surveys, expiry, and max response limits
Инструменты были проиндексированы:
configure_form

Задаёт вопросы и варианты ответов, которые показывает форма. Заменяет всю конфигурацию и сохраняет её как новую неизменяемую версию, поэтому уже собранные ответы продолжают описывать список, который им реально показывался. Повторная отправка идентичной конфигурации переиспользует существующую версию, а не создаёт ещё одну. Форма - это один вопрос с одиночным выбором, который при необходимости раскрывается во второй. Задайте варианту параметр expands, который называет другой вопрос, чтобы показать его при выборе этого варианта, именно так "TikTok" превращается в "which account". Идентификаторы вариантов должны быть стабильными ключами, которые переживают переименование. Использование хэндла в качестве идентификатора разделяет историю этого создателя на две части в тот день, когда он его изменит. Присвойте catalog_slug, чтобы взять метку и логотип варианта из каталога платформы. Порядок по умолчанию - "rotate", который рандомизируется для каждого респондента, и именно это делает сообщаемые доли несмещёнными; "fixed" сохраняет ваш порядок и принимает, что более ранние варианты выбираются чаще из-за того, что они раньше.

Настраивает вопросы

Параметры
  • form_idstringобязательный

    The form to configure.

  • nodesobject[]обязательный

    One to twelve questions. Exactly one must not be reachable by any expands — that one is asked first.

create_form

Создаёт форму и возвращает её id, URL для респондентов, а также iframe и слушатель postMessage для встраивания этого URL на страницу-хост. Форма пока не содержит вопросов и ничего не показывает респондентам, пока не будет настроена. allowed_origins ограничивает, какие сайты могут встраивать её; если оставить это поле пустым, встраивать сможет любой сайт, а значит, любой сайт сможет потратить квоту ответов этого аккаунта.

Создаёт форму.

Параметры
  • allowed_originsstring[]

    Origins permitted to embed the form, e.g. ["https://app.example.com"]. Scheme and host only — a path is rejected rather than trimmed.

  • namestringобязательный

    An internal label. Respondents never see it.

  • themeobject

    Exactly these four tokens. Any other key is rejected rather than ignored.

get_attribution

Сводка ответов респондентов. По каждому вопросу сообщает, сколько завершённых ответов назвали каждого кандидата из числа ответивших на этот вопрос, показывает неразрешённые ответы в том же списке, как часто уточняющий вопрос не находил ответа, и выручку, если зафиксированы события конверсии. При каждом вызове пересчитывается заново, с учётом всех сопоставлений, сделанных с тех пор, поэтому сводка за прошлый период может обоснованно измениться между двумя чтениями.

Агрегация атрибуции.

Параметры
  • byenum

    "candidate" (default) is one row per option; "node" collapses to one row per question.

  • form_idstringобязательный

    The form to report on. Required: combining forms would mix two respondent populations into one denominator.

  • fromstring

    Start of the window, inclusive. ISO 8601; a value with no timezone is read as UTC.

  • metricenum

    Sort order only; counts and revenue are both reported either way. Revenue appears on the rows of the first question and nowhere else, because a respondent’s money belongs to the respondent rather than to each question they answered.

  • tostring

    End of the window, exclusive.

get_catalog

Перечисли платформы, которые знает HumanSurvey: slug для использования в качестве catalog_slug, отображаемое название и класс канала. Это именованные каналы, которые можно показать респонденту: TikTok, ChatGPT, LinkedIn, Reddit и так далее, плюс описательные варианты без бренда, например «мне рассказал друг или коллега». API-ключ не нужен.

Каталог платформ

Параметры

Без параметров.

get_form

Читает одну форму: ее настройки и конфигурацию вопросов, которая сейчас показывается респондентам, каждый вопрос, каждый вариант ответа и режим порядка. Возвращает конфигурацию в формате JSON, потому что это точно та структура, которую принимает запись конфигурации.

Считывает форму.

Параметры
  • form_idstringобязательный

    The form id, as reported by the forms listing.

list_forms

Перечисляет формы в этой учётной записи: id, имя, URL респондента, активна ли форма или приостановлена, настроена ли она уже с вопросами и сколько ответов она собрала.

Перечисляет формы.

Параметры

Без параметров.

list_unresolved

Ответы, которые респонденты вводили вручную вместо выбора из списка, сгруппированные по точному тексту и упорядоченные по частоте ввода. Сообщает о замеченных вариантах написания, когда каждый был введён впервые и в последний раз, а также о том, покрывает ли его уже существующее сопоставление. Это дословные формулировки. Два похожих текста могут принадлежать разным людям, а текст может упоминать кого-то, кого вообще нет в списке кандидатов.

Ответы в свободной форме.

Параметры
  • form_idstringобязательный

    The form to read.

  • fromstring

    Start of the window, inclusive.

  • include_mappedboolean

    Include texts that a live mapping already resolves. Off by default.

  • limitinteger
  • tostring

    End of the window, exclusive.

login

Входит с адресом электронной почты и сохраняет API-ключ на этой машине. При вызове только с адресом электронной почты отправляет на него шестизначный код и не возвращает ничего полезного: код должен поступить от человека, из его почтового ящика. При вызове с адресом и этим кодом сохраняет ключ в ~/.humansurvey/credentials и сообщает, куда он записан. Сам ключ никогда не выводится. Вход и регистрация - это одно и то же действие: адрес, который никогда не использовался, получает аккаунт.

Войти

Параметры
  • codestring

    The six digits from the email. Omit on the first call — you cannot know this value; ask the person for it.

  • emailstringобязательный

    The person’s email address. They will read the code out of this inbox.

  • namestring

    A label for the key, e.g. the project it is for.

remap

Записываем, что конкретный введённый ответ означает конкретного кандидата. Это касается каждого ответа, который уже содержит этот текст, а также любого будущего ответа, поэтому числа, сообщённые для прошлых окон, меняются. Исходный текст никогда не изменяется, и сопоставление можно отменить, но отчёт уже может быть прочитан. Сопоставляйте только текст, значение которого установлено: текст, лишь похожий на имя кандидата, не доказательство того, что это он. Одно действующее сопоставление на каждый текст и на каждый вопрос.

Сопоставляет введенный ответ с кандидатом.

Параметры
  • candidate_idstringобязательный

    The candidate it means. Not validated against the current configuration, because a candidate may have been removed while its history still needs the mapping.

  • form_idstringобязательный
  • node_idstringобязательный

    The question the text was typed into. The same words can mean different things in different questions.

  • notestring

    Why. Kept with the mapping.

  • rawstringобязательный

    The typed text, exactly as reported. It is normalized the same way on both sides.

revoke_remap

Останавливает применение сопоставления. Введённые ответы, которые оно охватывало, возвращаются в список нерешённых, причём и в прошлых окнах, и в будущих, потому что сводки присоединяют сопоставления при чтении, а не при создании. Поэтому уже выведенные для этих окон числа изменятся. Ничего не удаляется: сопоставление помечается как отозванное и сохраняется, так что отчёт, созданный, пока оно действовало, всё ещё можно объяснить. Отзыв уже отозванного сопоставления не считается ошибкой и не сдвигает момент, когда оно перестало действовать. Идентификаторы сопоставлений появляются в списке свободного ввода рядом с любым уже сопоставленным текстом, а также в подтверждении, которое показывается при создании сопоставления.

Отменяет сопоставление.

Параметры
  • form_idstringобязательный

    The form the mapping belongs to.

  • remap_idstringобязательный

    The mapping to revoke. A mapping id alone is never enough — it is checked against this form and this account.

Похожие MCP-сервера

olalonde/mcp-human

olalonde/mcp-human

MCP-сервер для запроса ответов от реальных людей через Amazon Mechanical Turk. AI-ассистенты отправляют вопросы, а люди на платформе отвечают. Инструмент для построения human-in-the-loop систем на ...

JavaScript26
blurrah/mcp-graphql

blurrah/mcp-graphql

MCP сервер для работы ИИ-агентов с GraphQL API. Автоматически извлекает схему через интроспекцию и выполняет запросы. Мутации по умолчанию отключены. Полезен при создании AI-инструментов для GraphQL.

TypeScript407
mercurialsolo/counsel-mcp

mercurialsolo/counsel-mcp

Сервер Counsel MCP подключает AI-агентов к API стратегического мышления и многостороннего анализа. Позволяет запускать дебаты, уточнять вопросы, получать синтезированные отчёты и проводить интеракт...

JavaScript6
aashari/mcp-server-atlassian-confluence

aashari/mcp-server-atlassian-confluence

MCP сервер для подключения ИИ-ассистентов к Confluence: задавайте вопросы документации, ищите по всем пространствам, создавайте и обновляйте страницы. Полезен разработчикам, менеджерам и всем, кто ...

TypeScript61
line/line-bot-mcp-server

line/line-bot-mcp-server

официальный

MCP-сервер для интеграции AI-агентов с LINE Official Account через Messaging API. Отправляет текстовые и гибкие сообщения, управляет богатыми меню, получает профили пользователей и список подписчик...

TypeScript775
kehvinbehvin/json-mcp-filter

kehvinbehvin/json-mcp-filter

MCP-сервер для JSON-схем и фильтрации данных. Работает с локальными файлами и удаленными HTTP-эндпоинтами. Извлекает нужные поля из больших JSON (до 50 MB) для контекста LLM. Генерирует TypeScript-...

JavaScript25
© Каталог MCP, 2026. Все права защищены.
Проект не аффилирован с Anthropic и любыми упомянутыми продуктами.
Все названия и торговые марки принадлежат их владельцам.
Контакты для связи: hi@mcp-katalog.ru

Лука Никитин