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

Endpoint

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

Dos formas de conectarse

  • Permitir acceso (recomendado). Agregue la dirección del servidor a su asistente, inicie sesión en SurveyNinja cuando se lo pida, elija un espacio de trabajo y haga clic en Permitir acceso. No necesita clave: el asistente trabaja en el espacio que eligió y renueva el acceso por sí solo.
  • Clave API. Para clientes que no pueden iniciar sesión, o cuando un asistente debe trabajar en todos los espacios donde usted es propietario o miembro. Pase la clave en un encabezado, como se muestra abajo.

Claude

  1. En Claude en la web o en la app de escritorio, abra Settings, luego Connectors, y haga clic en Add custom connector.
  2. Escriba un nombre, por ejemplo SurveyNinja, y la dirección del servidor.
  3. Haga clic en Add, luego en Connect, y permita el acceso en SurveyNinja.

En los planes Team y Enterprise de Claude, primero el propietario de la organización agrega el conector y después cada miembro lo conecta.

ChatGPT

  1. Active el modo de desarrollador en la configuración de ChatGPT. Está disponible en algunos planes de ChatGPT.
  2. Cree un conector con la dirección del servidor y autenticación OAuth.
  3. Permita el acceso en SurveyNinja.

Claude Code

Ejecute el comando en la terminal, luego escriba /mcp en Claude Code, elija surveyninja e inicie sesión.

claude mcp add --transport http surveyninja https://mcp.surveyninja.io/mcp/v1

Con las skills listas, como plugin que agrega el servidor y todas las skills en una sola instalación:

/plugin marketplace add surveyninjaio/surveyninja-mcp /plugin install surveyninja@surveyninja

Cursor

Agregue el servidor a ~/.cursor/mcp.json para todos los proyectos, o a .cursor/mcp.json para uno solo. Luego abra la sección MCP en la configuración de Cursor e inicie sesión en el servidor surveyninja.

{
  "mcpServers": {
    "surveyninja": {
      "url": "https://mcp.surveyninja.io/mcp/v1"
    }
  }
}

VS Code

Agregue el servidor a .vscode/mcp.json en su proyecto, inícielo desde el archivo e inicie sesión cuando VS Code lo pida. El servidor funciona en GitHub Copilot Chat en modo agente.

{
  "servers": {
    "surveyninja": {
      "type": "http",
      "url": "https://mcp.surveyninja.io/mcp/v1"
    }
  }
}

Obtener una clave API

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

Autenticación

Pase la clave API en el encabezado Authorization :

Authorization: Bearer 42|xK7mP9nQ2wL5eH8jR3vU6tY0iD4aF1bG

Para un cliente que acepta el formato mcpServers con encabezados, reemplace YOUR_API_KEY por su clave:

{
  "mcpServers": {
    "surveyninja": {
      "url": "https://mcp.surveyninja.io/mcp/v1",
      "headers": {
        "Authorization": "Bearer YOUR_API_KEY"
      }
    }
  }
}

Configuraciones para cada cliente y las skills como archivos: github.com/surveyninjaio/surveyninja-mcp.

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 elementosquiz_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.