Servidor MCP

Conecte Claude, Cursor y otros asistentes de IA a SurveyNinja mediante el Protocolo de Contexto de Modelo

MCP Server

Model Context Protocol (MCP) es un estándar que permite a los modelos de IA (Claude, Cursor, Copilot, etc.) conectarse a SurveyNinja y trabajar con sus datos directamente: leer encuestas, respuestas, analíticas y realizar acciones sin copiar manualmente.

1. Conexión

Obtener una clave API

  1. Inicie sesión en su cuenta de SurveyNinja.
  2. Vaya a SettingsAPI / MCP.
  3. Haga clic en "Crear clave API" y cópiela — la clave solo se muestra una vez.

Endpoint

POST https://mcp.surveyninja.io/mcp/v1

Autenticación

Pase la clave API en el encabezado Authorization :

Authorization: Bearer 42|xK7mP9nQ2wL5eH8jR3vU6tY0iD4aF1bG

Configuración para Claude Desktop

Archivo claude_desktop_config.json

{ "mcpServers": { "surveyninja": { "command": "npx", "args": ["-y", "@modelcontextprotocol/server-fetch"], "env": { "MCP_URL": "https://mcp.surveyninja.io/mcp/v1", "MCP_AUTH_HEADER": "Authorization", "MCP_AUTH_VALUE": "Bearer <your_api_key>" } } } }

Configuración para Cursor / VS Code

{ "mcp.servers": { "surveyninja": { "url": "https://mcp.surveyninja.io/mcp/v1", "headers": { "Authorization": "Bearer <your_api_key>" } } } }

Límites de frecuencia

  • 180 solicitudes por minuto por usuario (tools/call, resources/read, etc.)
  • Los enlaces de exportación son válidos durante 1 hora

2. Recursos

Los recursos son de solo lectura. Para utilizarlos, envíe una solicitud resources/read con el URI correspondiente.

URI Descripción
Usuario y espacios de trabajo
user://meInformación básica sobre el usuario actual
workspace://listLista de todos los espacios de trabajo del usuario
Carpetas y encuestas
folder://listLista de todas las carpetas del usuario
quiz://listLista de todas las encuestas disponibles
Estructura y configuración de la encuesta
quiz://{'{id}'}/structureEstructura completa de widgets de la encuesta
quiz://{'{id}'}/textsEtiquetas personalizadas de la interfaz de usuario
quiz://{'{id}'}/variablesVariables ocultas (campos adicionales)
quiz://{'{id}'}/hidden_optionsOpciones de configuración de servicio de la encuesta
quiz://{'{id}'}/widgets_hiddenMetadatos de widgets ocultos
Respuestas y analíticas
quiz://{'{id}'}/answersLista paginada de respuestas de encuestados
quiz://{'{id}'}/summaryAnalíticas de resumen (embudo, dispositivos, geo)
quiz://{'{id}'}/reportInforme detallado de widgets (con filtros)
quiz://{'{id}'}/report_filtersFiltros guardados del usuario
quiz://{'{id}'}/report/{'{uuid}'}/inputsRespuestas de texto para widgets de entrada
quiz://{'{id}'}/report/{'{uuid}'}/filesArchivos subidos por los encuestados
Temas y códigos promocionales
theme://listLista de temas del espacio de trabajo
theme://{'{id}'}/detailsConfiguración detallada del tema
promocode://listListas de grupos de códigos promocionales
promocode://{'{id}'}/codesCódigos en una lista de códigos promocionales específica

3. Herramientas

Las herramientas son acciones ejecutadas en el lado de SurveyNinja a solicitud de un modelo de IA mediante el método tools/call .

Formato de respuesta de herramienta

Cada herramienta devuelve un objeto con los campos content (arreglo de bloques de texto) y isError (false — éxito, true — error). En caso de éxito, se añaden campos de datos adicionales.

Gestión de encuestas

Herramienta Descripción Parámetros requeridos
create_quizCrea una nueva encuestafolder_id
rename_quizRenombra una encuestaquiz_id, name
duplicate_quizDuplica una encuestaquiz_id
archive_quizArchiva / desarchivaquiz_id, archive
delete_quizElimina una encuesta (eliminación temporal)quiz_id
publish_quizPublica la versión actualquiz_id
move_quizMueve la encuesta a otra carpetaquiz_id, folder_id
make_quiz_templateCrea una plantilla a partir de una encuestaquiz_id
create_folderCrea una carpeta de encuestasworkspace_id, name

Contenido y estructura de la encuesta

Herramienta Descripción Parámetros requeridos
update_quiz_widgetsGuarda la estructura de widgetsquiz_id, ids, entities
update_quiz_textsActualiza los textos de botones y elementos (plan de pago)quiz_id, texts
update_quiz_settingsActualiza la configuración de la encuesta (idioma, límites, tema, scripts, etc.)quiz_id
update_quiz_logicGuarda la lógica de transición y puntuaciónquiz_id
update_quiz_noteAñade/actualiza una nota internaquiz_id, notes
upload_quiz_mediaSube medios para el bloque multimedia (plan de pago)quiz_id, type
upload_quiz_widget_imageSube una imagen para un widget con opciones de mediosquiz_id

Temas de diseño

Herramienta Descripción Parámetros requeridos
apply_quiz_themeAplica un tema a una encuestaquiz_id, theme_id
create_themeCrea un tema y lo aplica a una encuesta (plan de pago)workspace_id, quiz_id
update_themeActualiza un tema existenteworkspace_id, theme_id

Variables de encuesta

Herramienta Descripción Parámetros requeridos
create_quiz_variableCrea una variable oculta (campo adicional)quiz_id, name
update_quiz_variableRenombra una variablequiz_id, field_id, name
delete_quiz_variableElimina una variablequiz_id, field_id

Opciones ocultas

Herramienta Descripción Parámetros requeridos
create_hidden_optionCrea una opción de servicio de encuestaquiz_id, name, value
update_hidden_optionActualiza una opción de encuestaquiz_id, opt_id, name, value
delete_hidden_optionElimina una opción de encuestaquiz_id, opt_id
create_widget_hidden_optionCrea una opción para un widget específicoquiz_id, widget_uuid, name, value
update_widget_hidden_optionActualiza una opción de widgetquiz_id, opt_id, name, value
delete_widget_hidden_optionElimina una opción de widgetquiz_id, opt_id

Respuestas, analíticas y enlaces públicos

Herramienta Descripción Parámetros requeridos
toggle_answer_visibilityOculta/muestra una respuestaquiz_id, answer_id, is_hide
tag_answerAñade/sincroniza etiquetas de respuestaquiz_id, answer_id, tags
generate_filtered_reportGenera un informe con filtros → report_uuidquiz_id
share_summary_linkEnlace público al resumenquiz_id
share_report_linkEnlace público al informequiz_id
share_answers_linkEnlace público a la lista de respuestasquiz_id

Exportación

Todas las herramientas aceptan quiz_id (requerido). El enlace de descarga es válido durante 1 hora.

Herramienta Descripción
export_answers_csvExportar respuestas a CSV
export_answers_xlsxExportar respuestas a XLSX
export_answers_wordExportar respuestas a Word
export_summary_pdfExportar resumen a PDF
export_filtered_report_pdfExportar informe filtrado a PDF
export_filtered_report_wordExportar informe filtrado a Word

Códigos promocionales (plan de pago)

Herramienta Descripción Parámetros requeridos
create_promocode_groupCrea una lista de códigos promocionalesquiz_id, name, codes
add_promocodesAñade códigos a una lista existentequiz_id, list_id, codes

4. Detalles técnicos

Versión del protocolo

2025-06-18

Transporte

HTTP POST (JSON-RPC 2.0)

Método de conexión

POST /mcp/v1

Métodos JSON-RPC estándar

Método Descripción
initializeInicialización de sesión, obtención de capacidades del servidor
tools/listListar todas las herramientas disponibles
tools/callLlamar a una herramienta con parámetros
resources/listListar todos los recursos disponibles
resources/readLeer el contenido de un recurso por URI
prompts/listListar plantillas de prompts
prompts/getObtener una plantilla de prompt específica

Ejemplo de solicitud

POST https://mcp.surveyninja.io/mcp/v1 Authorization: Bearer 42|xK7mP9nQ2wL5eH8jR3vU6tY0iD4aF1bG Content-Type: application/json { "jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": { "name": "rename_quiz", "arguments": { "quiz_id": 123, "name": "New survey name" } } }

Formato de respuesta de error

{ "jsonrpc": "2.0", "id": 1, "error": { "code": -32602, "message": "Invalid params: quiz_id is required" } }

5. Escenarios típicos

1. Obtener la lista de encuestas y la estructura de una específica

1. resources/read: quiz://list → obtener lista de encuestas con IDs

2. resources/read: quiz://{'{id}'}/structure → obtener la estructura de widgets

2. Trabajo con respuestas

1. resources/read: quiz://{'{id}'}/answers → obtener respuestas (con answer_id)

2. tools/call: tag_answer (añadir etiquetas) o toggle_answer_visibility (ocultar/mostrar)

3. Exportación con filtrado

1. tools/call: generate_filtered_report (quiz_id, dateFrom/dateTo d.m.Y formato, filters) → report_uuid

⚠ El formato de fecha aquí es d.m.Y (01.01.2024), mientras que el recurso quiz://report usa Y-m-d

2. resources/read: quiz://{'{id}'}/report/{'{uuid}'}/files o /inputs

3. tools/call: export_filtered_report_pdf (quiz_id) → PDF link

⚠ export_filtered_report_pdf y _word aceptan solo quiz_id; no se debe pasar report_uuid

4. Añadir códigos promocionales

1. tools/call: create_promocode_group → crear una lista con códigos iniciales → obtener list_id

2. tools/call: add_promocodes → añadir más códigos a la lista

3. resources/read: promocode://{'{list_id}'}/codes → verificar los códigos añadidos

5. Aplicar un tema y obtener inmediatamente la estructura de la encuesta

1. resources/read: theme://list → obtener la lista de temas con IDs

2. tools/call: apply_quiz_theme (quiz_id, theme_id)

→ la respuesta ya incluye un campo quiz con la estructura — no se necesita un resources/read adicional

Documentación completa de MCP en formato markdown para trabajar con IA:

/static/mcp_user_guide.md — referencia completa de recursos y herramientas.