Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Descripción del creador (original en inglés)
Give your AI agents the ability to ask real users why.
Estos tres nunca se combinan en una sola puntuación: las opiniones, las mediciones y la popularidad son cosas distintas.
Todavía no escribimos un resumen sencillo para este. Abajo están los datos que leímos del registro.
Elige la app de IA que usas y copia la configuración.
USERCALL_API_KEY, USERCALL_BASE_URLLos valores marcados como secretos son llaves de tu cuenta. Nunca los compartas ni los pegues en un chat.
Necesitas
¿Qué app usas?
Elige tu app arriba. La recordamos, así que la próxima vez el botón dirá “Instalar en …”.
Funciona en Claude para web, escritorio y móvil:
https://mcp.usercall.coAbre Claude Desktop → Settings → Developer → Edit Config y pega esto en claude_desktop_config.json
{
"mcpServers": {
"usercall": {
"command": "npx",
"args": [
"-y",
"@usercall/mcp"
],
"env": {
"USERCALL_API_KEY": "your-value",
"USERCALL_BASE_URL": "your-value"
}
}
}
}Ejecuta esto en tu terminal
claude mcp add --transport http usercall https://mcp.usercall.coclaude mcp add usercall --env USERCALL_API_KEY=your-value --env USERCALL_BASE_URL=your-value -- npx -y @usercall/mcpCompleta los valores vacíos antes de ejecutarlo.
Pégalo en .cursor/mcp.json de tu proyecto, o en ~/.cursor/mcp.json
{
"mcpServers": {
"usercall": {
"url": "https://mcp.usercall.co"
}
}
}Pégalo en .cursor/mcp.json de tu proyecto, o en ~/.cursor/mcp.json
{
"mcpServers": {
"usercall": {
"command": "npx",
"args": [
"-y",
"@usercall/mcp"
],
"env": {
"USERCALL_API_KEY": "your-value",
"USERCALL_BASE_URL": "your-value"
}
}
}
}Tu navegador te pide permiso para abrir la app; luego la app muestra la configuración y te pide confirmar. Los valores de las claves quedan vacíos para que los completes tú.
Pégalo en .vscode/mcp.json de tu proyecto
{
"servers": {
"usercall": {
"type": "http",
"url": "https://mcp.usercall.co"
}
}
}Pégalo en .vscode/mcp.json de tu proyecto
{
"servers": {
"usercall": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@usercall/mcp"
],
"env": {
"USERCALL_API_KEY": "your-value",
"USERCALL_BASE_URL": "your-value"
}
}
}
}Tu navegador te pide permiso para abrir la app; luego la app muestra la configuración y te pide confirmar. Los valores de las claves quedan vacíos para que los completes tú.
ChatGPT solo se conecta a servidores en internet:
https://mcp.usercall.coLos nombres de los menús pueden variar un poco según el plan y con el tiempo.
Tu elección se guarda en una cookie en este dispositivo; no necesitas cuenta.
USERCALL_BASE_URL envEsta configuración se genera a partir de la ficha del creador en el registro. Si el README dice otra cosa, sigue el README.
Todavía no hemos leído la lista de herramientas de este servidor; revisamos los endpoints por turnos.
Revisamos información que cualquiera puede ver; no hemos leído el código. Las revisiones que no aplican no se cuentan. · Revisado el 6 nov 2026
El nombre en el registro se verificó con el dominio usercall.co (el registro comprueba quién es dueño del dominio)
Todavía no hemos leído este repo en GitHub
Todavía no hemos leído este repo en GitHub
Aún sin revisar; revisamos los endpoints por turnos
Aún sin revisar; revisamos los endpoints por turnos
Aún sin revisar; leemos la lista de herramientas cuando revisamos el endpoint
Comparado con todos los servidores activos de esta categoría en el registro. Las estrellas solo cuentan cuando quien lo publica es dueño del repo.
Superó 1 de 1 revisiones básicas aplicables. No hemos leído el código. Antes de agregar una clave o un token, revisa qué acceso pide el servidor y usa una clave que tenga solo los permisos que necesitas.
Debes completar: USERCALL_API_KEY
Funciona de las dos formas: instálalo en tu computadora o conéctate a la versión en la nube.
El repo de GitHub cambió por última vez –, y la última versión (0.4.0) llegó al registro hace 36 días.
Las apps compatibles con MCP, como Claude Desktop, Claude Code, Cursor y VS Code. Se conecta por URL, así que también funcionan las apps que aceptan servidores MCP remotos, como ChatGPT en modo desarrollador.
En la misma categoría: Spec Driven Development, Remote Desktop Commander, Symantec Cloud DLP AIops
Servidores de la misma categoría hechos por otros creadores, ordenados por estrellas.
Cómo leer una tarjeta:★ Estrellas de GitHubiTres pilares: reseñas · revisiones · usoiActualizado = fecha en que se publicó la última versión en el registroi
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
Governed Symantec Cloud DLP — 14 MCP tools, read-only with audit.
Copiado tal cual del repo del creador. PopNx MCP no lo ha revisado ni lo respalda. Se quitaron HTML, imágenes y scripts. Los enlaces llevan fuera de este sitio.
AI can build products. But it still doesn't talk to users.
Give your AI agents the ability to ask real users why.
Usercall MCP runs AI-moderated voice or text interviews with real users. Use it to learn why users churn, where onboarding drops off, or why an action failed, and get themes, insights, and verbatim quotes.
AI agents can now build and ship products extremely quickly.
But most agents still rely on synthetic feedback or assumptions about users.
Usercall MCP lets agents gather real qualitative feedback directly from users.
Add `https://mcp.usercall.co` as a remote MCP connector / custom connector.
npx).mcp.json so cursor.directory can install the hosted connector. Grok Bot cannot run the local npx package.Root plugin.json, mcp.json, and skills/ are the ChatGPT submission package (version in plugin.json, not package.json). Validate it and write the ZIP with:
pnpm plugin:check
The ZIP is dist/usercall-chatgpt-plugin- .zip. Do not upload it unless someone asks to submit.
Community. Already listed at cursor.directory/plugins/usercall.
Official Marketplace. Once the listing is live, install from the Cursor Marketplace. Submit the repo at cursor.com/marketplace/publish.
Manual. Add the hosted MCP. OAuth sign-in, no API key.
{
"mcpServers": { "usercall": { "url": "https://mcp.usercall.co" } } }
Use @usercall/mcp over stdio when you want a Bearer API key (scripts, local clients, M2M).
npx -y @usercall/mcp with USERCALL_API_KEYAgent: "Why are users confused about onboarding?"
→ create_study → share interview_link with users → get_study_results
The returned interview_link is an https://app.usercall.co/interview/ URL. Share it with participants through email, Slack, Discord, or in-product prompts.
Example result:
{
"themes": [ { "name": "Onboarding confusion", "summary": "Users struggled to understand the second step.", "quotes": [ "I wasn't sure what the app was asking me to do.", "I didn't know I had to verify my email before continuing." ] }, { "name": "Pricing confusion", "summary": "Free plan limits were not clearly communicated.", "quotes": ["I wasn't sure if the free plan included analytics."] } ] }
AI Agent
↓
Usercall MCP (hosted OAuth or this stdio package)
↓
Usercall Agent API
↓
Real user interviews
↓
Themes and verbatim quotes returned to the agent
With Research Triggers, the agent can also target users in your product:
Analytics MCP (PostHog, Mixpanel, …) finds a behavior
↓
Usercall MCP creates a study and a paused Research Trigger
↓
You activate it in Usercall
↓
The Usercall SDK invites matching users to an interview right after the behavior
Analytics tells an agent *what* users do. Research Triggers let it ask them *why*.
User: "Look at our PostHog data and find something worth investigating."
Agent (PostHog MCP): users who test a study rarely launch one.
Agent (Usercall MCP): list_trigger_events() → study_tested, study_launched, … get_trigger_event_schema("study_tested") → properties: source, interview_type traits: plan ("free", "pro"), account_type create_study(...) or list_studies() create_research_trigger({ study_id, event_name: "study_tested", traits: { plan: "free" }, sampling_percent: 25, max_invites_per_day: 10 }) → status: "paused", summary, activation_url
Agent: "I've prepared a Research Trigger. When: study_tested · Audience: plan = free · 25% sampled · max 10 invites/day. It's paused. A human activates it here: "
list_trigger_events returns nothing, call get_trigger_sdk_setup (with your analytics provider and event names) to get the snippet. Coding agents can install it for you.get_trigger_event_schema shows which field is which.get_trigger_capabilities returns the full list.Sign in at app.usercall.co → Home → Developer → Create API key
Claude Desktop (~/Library/Application Support/Claude/claude_desktop_config.json):
{
"mcpServers": { "usercall": { "command": "npx", "args": ["-y", "@usercall/mcp"], "env": { "USERCALL_API_KEY": "your_key_here" } } } }
Cursor (.cursor/mcp.json):
{
"mcpServers": { "usercall": { "command": "npx", "args": ["-y", "@usercall/mcp"], "env": { "USERCALL_API_KEY": "your_key_here" } } } }
For Claude, ChatGPT, or Cursor remote connectors, prefer https://mcp.usercall.co instead of this JSON config.
Restart your MCP client.
Run user interviews to understand why users drop off during onboarding.
Context:
Goal: Identify confusion points and friction.
Target interviews: 5 Language: ko Interview mode: voice
Show participants this prototype during the interview: https://www.figma.com/proto/abcd1234/onboarding-flow
The agent will:
Equivalent create_study tool call:
create_study
key_research_goal: "Understand why users drop off during onboarding" business_context: "B2B SaaS signup flow" target_interviews: 5 languages: ["en"] interview_mode: "voice"
study_media: type: "prototype" url: "https://www.figma.com/proto/abcd1234/onboarding-flow" description: "New onboarding flow concept"
create_studyCreate an AI-moderated interview study to learn why users churn, drop off in onboarding, fail an action, or where a product assumption is wrong. Returns HTTP 201 with study_id and interview_link for a voice, text, or voice-and-text interview. interview_link is an https://app.usercall.co/interview/ URL. key_research_goal is required and cannot be changed later. business_context is optional. Defaults: target_interviews 1, duration_minutes 12, interview_mode voice. One active agent study per account. Does not run the interview or invite a participant. HTTP 402 includes checkout_url.
| Field | Type | Required | Default | ||
|---|---|---|---|---|---|
key_research_goal | string (5–2000) | yes | |||
business_context | string (5–2000) | no | |||
additional_context_prompt | string | no | |||
target_interviews | number (1–200) | no | 1 | ||
languages | string[] | no | |||
duration_minutes | number (5–65) | no | 12 | ||
interview_mode | `voice \ | text \ | voice_and_text` | no | voice |
voice_gender | `female \ | male` | no | ||
enable_link_context | boolean | no | |||
custom_link_variables | { key, label?, default_value? }[] | no | |||
metadata | object | no | |||
study_media | object | no |
One locale turns the language picker off; two or more turn it on. Research goal cannot be changed after create.
study_media (optional). Visual stimulus shown during all interview questions:
| Field | Type | Required | |
|---|---|---|---|
type | `image \ | prototype` | yes |
url | string (URL) | yes | |
description | string (max 500 chars) | no |
image: Direct image URL (.png, .jpg, .gif, .webp)prototype: Figma prototype URL (converted to interactive embed)update_studyUpdate an interview study: slots, guide questions, intro, languages, voice, or an image or Figma prototype shown to participants. Returns the updated study. key_research_goal cannot be changed. is_link_disabled true stops new interviews and keeps recordings. One locale hides the language picker; two or more show it. Query parameters on interview_link are ignored until enable_link_context is true. study_media null clears media. API errors include http_status. Does not dry-run the guide or invite a participant.
| Field | Type | Required | ||
|---|---|---|---|---|
study_id | uuid string | yes | ||
target_interviews | number (1–200) | no | ||
is_link_disabled | boolean | no | ||
ai_agent_intro_message | string | no | ||
key_learning_goals | string | no | ||
workflow_end_message | string | no | ||
workflow_questions | { text, ... }[] | no | ||
interview_mode | `voice \ | text \ | voice_and_text` | no |
languages | string[] | no | ||
voice_gender | `female \ | male` | no | |
enable_link_context | boolean | no | ||
custom_link_variables | { key, label?, default_value? }[] | no | ||
study_media | object or null | no |
Pass study_media: null to clear media. The study_media object follows the same schema as in create_study.
get_study_statusCheck whether interviews about churn, onboarding, or a failed action have started. Returns completed_interviews, target_interviews, interview_link, and next_step. interview_link is an `
Solo se muestra el principio; lee el resto en el repo