UserTold.ai: Real user research for coding agents
UserTold.ai: AI-интервью и юзабилити-тесты прямо на сайте, пока люди пользуются продуктом
Что умеет
- Искать и просматривать доказательства из интервью по темам
- Создавать находки из доказательств и отправлять их в GitHub или Linear
- Запускать и настраивать исследования с целями и скриптом
- Проверять статус обработки записей и получать артефакты интервью
- Настраивать виджет сбора обратной связи на сайте
Какие данные видит
Ассистент видит записи интервью, доказательства, находки и настройки проектов, привязанных к аккаунту UserTold.
Нужен ли аккаунт
Не нужен: сервер работает без входа
UserTold проводит интервью и юзабилити-тесты с помощью AI-интервьюера, записывая голос, экран и действия пользователя с его согласия. Цитаты остаются привязаны к конкретным моментам записи, что позволяет видеть и слышать, что происходило на самом деле. Через MCP ассистент помогает планировать исследования, разбирать находки и отправлять их в GitHub или Linear вместе с источниками.
Как подключить
Как подключить UserTold.ai: Real user research for coding agents к Claude
Адрес сервера, который нужно вставить в настройках Claude:
https://usertold.run.tools
- Откройте Claude (сайт claude.ai или приложение для компьютера).
- Перейдите в Настройки → Коннекторы (в английском интерфейсе: Settings → Connectors).
- Нажмите Добавить пользовательский коннектор (Add custom connector).
- Вставьте адрес сервера, скопированный ниже, в поле URL удалённого MCP-сервера и нажмите Добавить.
- В чате нажмите + → Коннекторы и включите новый коннектор.
Пользовательские коннекторы доступны на тарифах Free, Pro, Max, Team и Enterprise. На Free можно добавить только один. В Team и Enterprise коннектор сначала добавляет владелец организации в Настройки организации → Коннекторы.
Авторизация
После нажатия Добавить откроется окно входа в сервис. Войдите под своим аккаунтом и подтвердите доступ. Пароль Claude не видит.
Как подключить UserTold.ai: Real user research for coding agents к ChatGPT
Адрес сервера, который нужно вставить в настройках ChatGPT:
https://usertold.run.tools
- Откройте ChatGPT в браузере (chatgpt.com). Нужен тариф Plus, Pro, Business, Enterprise или Edu.
- Один раз включите режим разработчика: Настройки → Приложения → Дополнительные настройки → Режим разработчика (Settings → Apps → Advanced settings → Developer mode).
- Откройте Настройки → Коннекторы и нажмите Создать (Create).
- Заполните форму: Название (любое), Описание (одна фраза, что делает сервис), URL MCP-сервера (скопируйте ниже).
- В поле Аутентификация выберите OAuth, если сервис требует вход, иначе Нет. Нажмите Создать.
- В новом чате откройте + → Приложения/Коннекторы и включите коннектор.
Название раздела у OpenAI менялось (Connectors → Apps/Plugins). Если пункт называется иначе, ищите «режим разработчика» в настройках. В рабочих пространствах Business/Enterprise администратор должен разрешить пользовательские коннекторы.
Авторизация
При первом использовании ChatGPT откроет окно входа в сервис. Войдите и подтвердите доступ.
Как подключить UserTold.ai: Real user research for coding agents к Cursor
Адрес сервера, который нужно вставить в настройках Cursor:
https://usertold.run.tools
Быстрый способ: нажмите кнопку Открыть в Cursor ниже, Cursor сам предложит добавить сервер.
Вручную:
- В Cursor откройте Settings → Cursor Settings → MCP и нажмите Add new global MCP server.
- Вставьте JSON, скопированный ниже, в открывшийся файл
~/.cursor/mcp.json(для одного проекта:.cursor/mcp.jsonв корне проекта). - Сохраните файл. Сервер появится в списке MCP; при необходимости пройдите авторизацию по кнопке рядом с ним.
Авторизация
Если сервис требует вход, рядом с сервером в списке MCP появится кнопка авторизации.
Список инструментов сервера (24)
Технические названия из tools/list. Нужны только разработчикам.
| evidence.get | Use when verifying one observation from evidence.list or study results. Returns the quote, observed behavior, interpretation, source interview and timestamp, page context, review state, and linked findings. Use interviews.get_context to inspect the surrounding moment. |
| evidence.list | Use when searching interview evidence for user problems, needs, workarounds, or successful experiences. Returns paginated quotes, observations, and source references for review or grouping into findings. Defaults to product_under_test; pass target_surface="all" to include other areas. |
| evidence.update | Use when reviewing an interview observation. Replaces or clears its annotation, dismisses it with a reason, or restores it with dismissed=false; returns the updated evidence. Changes private UserTold review state and recalculates linked findings when dismissal changes. |
| feedback.submit | Use when the user authorizes sending a bug report or suggestion about UserTold to its team. Queues a report and notification that cannot be recalled. Not for collecting feedback about the user's product. Exclude credentials, personal data, and raw private content. |
| findings.create_from_evidence | Use after reviewing related interview observations that describe one actionable product problem. Creates a private backlog finding, links the selected evidence, and calculates priority. Requires source review before marking it ready; does not create a GitHub or Linear issue. |
| findings.get_evidence | Use before editing a product finding, planning follow-up research, defining acceptance criteria, or sending it to GitHub or Linear. Returns linked evidence, interview timestamps, uncertainty, related findings, possible recurrence, and a decision summary. Check truncation flags before drawing conclusions. |
| findings.list | Use when reviewing the product problems and improvement opportunities collected from interviews. Returns paginated findings with priority and supporting interview/evidence counts. Closed findings are hidden by default; use findings.get_evidence to inspect the sources before deciding what to change. |
| findings.send | Use when the user authorizes sending a reviewed finding with linked evidence to GitHub or Linear. Creates an external issue and returns its link, or returns the previously recorded issue. Omit provider to use the configured destination; pass "github" or "linear" only as an explicit override. The issue cannot be recalled by this tool. |
| findings.update | Use when editing a product finding or its evidence links. Overwrites supplied fields and can attach or detach evidence. Set status="ready" only after checking sources, grouping, product relevance, and uncertainty. Changes UserTold only; findings.send is the separate GitHub or Linear handoff. |
| interviews.get_artifacts | Use when retrieving a complete interview transcript, audio, screen recording, or activity events. Returns availability and resource links, not file contents. Download transcript_text once for the full exact transcript. Links expire after five minutes; request fresh links if needed. Original recordings, transcripts, and source events remain unchanged. Downloads contain original captured content. |
| interviews.get_context | Use when checking what a participant said or did before and after a quote or confusing interaction. Returns a limited transcript window and sanitized navigation/click events around timestamp_ms. Check truncation flags; use interviews.get_artifacts for the complete transcript or recordings. |
| interviews.list | Use when listing recorded participant interviews to review, download, or check for processing failures. A projectRef is sufficient; no study lookup is needed. Returns paginated summaries and interviewRef values for context, artifact, and processing tools. Can filter by study or interview status; does not return participant identity fields. |
| interviews.processing_status | Use when interview results are missing or still processing, or before considering a retry. Returns saved processing and evidence extraction status with result counts. Does not start processing; use interviews.retry_processing only for an eligible failure or stalled attempt. |
| interviews.retry_processing | Use after interviews.processing_status when processing has durably failed or made no progress for 24 hours. Starts a new attempt, replacing generated evidence while preserving manual evidence. If the outcome is uncertain, check status and do not retry automatically. |
| projects.create | Use when setting up UserTold for a new product. Creates a private project and starter interview study in an organization from usertold://organizations; returns projectRef for later calls. Does not configure billing, members, or GitHub/Linear connections. |
| projects.get_widget_setup | Use when installing interviews on a website or checking what setup is missing. Returns the project widget snippet, saved installation verification, and interview readiness. Install once across the website; page and language rules select the active interview study. Does not run a new verification. |
| projects.verify_widget_installation | Use after installing the UserTold widget on a public HTTPS page. Checks the loader, project key, and browser security policies; saves a passing verification and preserves previous success on warnings or failures. Does not execute the app or verify microphone and screen permissions in a browser. |
| setup.recommend | Use when planning customer discovery, user interviews, usability tests, concept testing, or research into onboarding, churn, pricing, and feature feedback. Pass the user's goal in their own words. Returns guidance grounded in UserTold documentation; saves requests and responses for service improvement without changing projects or studies. For existing research results or an exact operation, use the relevant tool directly. |
| studies.create | Use when saving a validated interview or usability test script as a draft study. Configures invitations, page placement, and websites; a direct-link invitation provisions a revocable recruitment link, retrieved with studies.get. Does not activate collection. Get the install-once snippet from projects.get_widget_setup. |
| studies.get | Use when inspecting an interview study before editing or sharing it. Returns its script, goals, invitation, page and language placement, websites, and existing recruitment link. If scriptOmitted=true, retrieve the full script through the dashboard or CLI. |
| studies.get_results | Use when reviewing what a user interview study found. Returns existing results with interview counts, supporting quotes, source references, related findings, and uncertainty. Follow continuation offsets for omitted records; use evidence.get or interviews.get_context for individual moments. Does not generate a new synthesis. |
| studies.list | Use when finding a configured interview study or usability test by title, research topic, or status. For recorded participant interviews, use interviews.list instead. Returns paginated summaries, newest first, and studyRef values for studies.get or studies.get_results. Full scripts and page placement are available through studies.get. |
| studies.update | Use when changing interview questions, invitations, page placement, or collection status on an existing study. Overwrites supplied settings and can publish or revoke recruitment links. status="active" starts collection; "paused" or "closed" stops new interviews without interrupting one in progress. Supply at least one change; validate revised scripts first. Uses the existing project widget; no per-study install is needed. |
| studies.validate_script | Use before saving a new or revised interview flow with studies.create or studies.update. Validates the supplied StudyScriptV2 and returns errors or a summary of steps, goals, and modes. Does not save or activate a study; no project is required. |