Conecta asistentes de IA a tus encuestas, respuestas y análisis de Votira mediante el Model Context Protocol (MCP).
El Model Context Protocol es un estándar abierto para conectar asistentes de IA con sistemas externos. Votira ofrece herramientas de encuesta, resultados, Panel de IA y cuenta, con permisos explícitos para cambios y uso de IA.
Genera una única clave de acceso MCP en Configuración (una clave por cuenta). Se muestra solo una vez. Preséntala como un token Bearer en el endpoint MCP:
Authorization: Bearer vot_mcp_xxxxxxxxxxxxxxxx
Puedes rotar o eliminar la clave en cualquier momento; la rotación invalida inmediatamente el secreto anterior.
Dirige cualquier cliente MCP que soporte el transporte HTTP por streaming al endpoint. Ejemplo de configuración del cliente:
{
"mcpServers": {
"votira": {
"url": "https://votira.co/mcp",
"headers": { "Authorization": "Bearer vot_mcp_xxxxxxxx" }
}
}
}
| Herramienta | Argumentos | Devuelve |
|---|---|---|
list_surveys | — | Tus encuestas con id, título, estado y número de respuestas. |
get_survey | survey_id | Una encuesta con sus preguntas y ajustes. |
get_survey_responses | survey_id, limit?, offset? | Respuestas paginadas de una encuesta. |
get_survey_analysis | survey_id | Análisis AI en caché de la encuesta completa y por pregunta. |
Las nuevas y existentes claves MCP son solo de lectura por defecto. Activa los permisos de escritura, eliminación y créditos de IA explícitamente en Configuración. La rotación mantiene los permisos seleccionados; los visualizadores de la organización no pueden realizar escrituras.
Las herramientas de modificación requieren permiso de escritura, las destructivas requieren permiso de eliminación y las herramientas de IA de pago requieren ambos: escritura y ai. Revisa los argumentos de la herramienta antes de aprobar una operación de escritura o que consuma créditos en tu asistente.
Los resultados JSON incluyen structuredContent. Las exportaciones de archivos se devuelven como recursos MCP incrustados: texto para CSV y JSON, blobs base64 para PDF. Las operaciones asíncronas devuelven jobId; usa get_ai_job para consultar su estado y resultado.
Las herramientas de gestión y auditoría de la organización requieren privilegios de administrador. Las claves API personales, contraseñas, compras y eliminación de cuentas no se exponen como herramientas.
get_integration_capabilitiesConsultar operaciones disponibles, esquemas, permisos y límites.
Permisos requeridos: read
{
"additionalProperties": false,
"properties": {},
"required": [],
"type": "object"
}
create_surveyCrea una encuesta, incluidas páginas, preguntas y ajustes.
Permisos requeridos: write
{
"additionalProperties": false,
"properties": {
"payload": {
"type": "object"
}
},
"required": [
"payload"
],
"type": "object"
}
update_surveyActualiza el contenido de la encuesta, páginas, programación y apariencia.
Permisos requeridos: write
{
"additionalProperties": false,
"properties": {
"payload": {
"type": "object"
},
"survey_id": {
"maxLength": 100,
"minLength": 1,
"pattern": "^[A-Za-z0-9_-]+$",
"type": "string"
}
},
"required": [
"survey_id",
"payload"
],
"type": "object"
}
duplicate_surveyDuplica una encuesta como un nuevo borrador sin respuestas.
Permisos requeridos: write
{
"additionalProperties": false,
"properties": {
"survey_id": {
"maxLength": 100,
"minLength": 1,
"pattern": "^[A-Za-z0-9_-]+$",
"type": "string"
},
"title": {
"maxLength": 2000,
"type": "string"
}
},
"required": [
"survey_id"
],
"type": "object"
}
set_survey_statusPublica, cierra o devuelve una encuesta a borrador.
Permisos requeridos: write
{
"additionalProperties": false,
"properties": {
"status": {
"enum": [
"draft",
"published",
"closed"
]
},
"survey_id": {
"maxLength": 100,
"minLength": 1,
"pattern": "^[A-Za-z0-9_-]+$",
"type": "string"
}
},
"required": [
"survey_id",
"status"
],
"type": "object"
}
delete_surveyElimina permanentemente una encuesta, respuestas, imágenes, análisis y vistas.
Permisos requeridos: delete
{
"additionalProperties": false,
"properties": {
"survey_id": {
"maxLength": 100,
"minLength": 1,
"pattern": "^[A-Za-z0-9_-]+$",
"type": "string"
}
},
"required": [
"survey_id"
],
"type": "object"
}
list_templatesLista plantillas de encuestas localizadas.
Permisos requeridos: read
{
"additionalProperties": false,
"properties": {},
"required": [],
"type": "object"
}
get_templateLee una plantilla localizada con preguntas y tema.
Permisos requeridos: read
{
"additionalProperties": false,
"properties": {
"template_id": {
"maxLength": 100,
"minLength": 1,
"pattern": "^[A-Za-z0-9_-]+$",
"type": "string"
}
},
"required": [
"template_id"
],
"type": "object"
}
create_survey_from_templateCrea una encuesta localizada a partir de una plantilla sin créditos de IA.
Permisos requeridos: write
{
"additionalProperties": false,
"properties": {
"template_id": {
"maxLength": 100,
"minLength": 1,
"pattern": "^[A-Za-z0-9_-]+$",
"type": "string"
},
"title": {
"maxLength": 2000,
"type": "string"
}
},
"required": [
"template_id"
],
"type": "object"
}
get_question_typesLista todos los tipos de preguntas compatibles y los campos de configuración específicos de cada tipo.
Permisos requeridos: read
{
"additionalProperties": false,
"properties": {},
"required": [],
"type": "object"
}
add_questionAñade una pregunta a una encuesta.
Permisos requeridos: write
{
"additionalProperties": false,
"properties": {
"question": {
"type": "object"
},
"survey_id": {
"maxLength": 100,
"minLength": 1,
"pattern": "^[A-Za-z0-9_-]+$",
"type": "string"
}
},
"required": [
"survey_id",
"question"
],
"type": "object"
}
update_questionActualiza una pregunta manteniendo su identidad.
Permisos requeridos: write
{
"additionalProperties": false,
"properties": {
"question": {
"type": "object"
},
"question_id": {
"maxLength": 100,
"minLength": 1,
"pattern": "^[A-Za-z0-9_-]+$",
"type": "string"
},
"survey_id": {
"maxLength": 100,
"minLength": 1,
"pattern": "^[A-Za-z0-9_-]+$",
"type": "string"
}
},
"required": [
"survey_id",
"question_id",
"question"
],
"type": "object"
}
delete_questionElimina una pregunta y repara las referencias de ramificación.
Permisos requeridos: delete
{
"additionalProperties": false,
"properties": {
"question_id": {
"maxLength": 100,
"minLength": 1,
"pattern": "^[A-Za-z0-9_-]+$",
"type": "string"
},
"survey_id": {
"maxLength": 100,
"minLength": 1,
"pattern": "^[A-Za-z0-9_-]+$",
"type": "string"
}
},
"required": [
"survey_id",
"question_id"
],
"type": "object"
}
reorder_questionsReordena todas las preguntas, manteniendo el orden principal por página.
Permisos requeridos: write
{
"additionalProperties": false,
"properties": {
"order": {
"items": {
"maxLength": 100,
"minLength": 1,
"pattern": "^[A-Za-z0-9_-]+$",
"type": "string"
},
"maxItems": 50,
"type": "array",
"uniqueItems": true
},
"survey_id": {
"maxLength": 100,
"minLength": 1,
"pattern": "^[A-Za-z0-9_-]+$",
"type": "string"
}
},
"required": [
"survey_id",
"order"
],
"type": "object"
}
get_survey_previewObtén preguntas A/B resueltas sin registrar una visualización. Usa respondent_id para asociar envíos JSON posteriores.
Permisos requeridos: read
{
"additionalProperties": false,
"properties": {
"respondent_id": {
"maxLength": 100,
"minLength": 1,
"pattern": "^[A-Za-z0-9_-]+$",
"type": "string"
},
"seed": {
"maxLength": 2000,
"type": "string"
},
"survey_id": {
"maxLength": 100,
"minLength": 1,
"pattern": "^[A-Za-z0-9_-]+$",
"type": "string"
}
},
"required": [
"survey_id"
],
"type": "object"
}
generate_survey_questionsGenerar preguntas a partir de una idea o editar preguntas existentes de forma incremental. Cuesta un crédito; puede devolver un trabajo.
Permisos requeridos: write, ai
{
"additionalProperties": false,
"properties": {
"idea": {
"maxLength": 2000,
"type": "string"
},
"pages": {
"items": {
"type": "object"
},
"maxItems": 20,
"type": "array"
},
"questions": {
"items": {
"type": "object"
},
"maxItems": 50,
"type": "array"
},
"survey_id": {
"maxLength": 100,
"minLength": 1,
"pattern": "^[A-Za-z0-9_-]+$",
"type": "string"
}
},
"required": [
"idea"
],
"type": "object"
}
get_ai_jobConsultar el estado y resultado de un trabajo de IA propiedad de esta cuenta.
Permisos requeridos: read
{
"additionalProperties": false,
"properties": {
"job_id": {
"maxLength": 100,
"minLength": 1,
"pattern": "^[A-Za-z0-9_-]+$",
"type": "string"
}
},
"required": [
"job_id"
],
"type": "object"
}
generate_question_analysisAnalizar una pregunta de texto libre. Los resultados en caché son gratuitos; el análisis nuevo cuesta un crédito.
Permisos requeridos: write, ai
{
"additionalProperties": false,
"properties": {
"question_id": {
"maxLength": 100,
"minLength": 1,
"pattern": "^[A-Za-z0-9_-]+$",
"type": "string"
},
"survey_id": {
"maxLength": 100,
"minLength": 1,
"pattern": "^[A-Za-z0-9_-]+$",
"type": "string"
}
},
"required": [
"survey_id",
"question_id"
],
"type": "object"
}
generate_survey_analysisGenerar el análisis de IA de la encuesta. Los resultados en caché son gratuitos; el análisis nuevo cuesta un crédito.
Permisos requeridos: write, ai
{
"additionalProperties": false,
"properties": {
"survey_id": {
"maxLength": 100,
"minLength": 1,
"pattern": "^[A-Za-z0-9_-]+$",
"type": "string"
}
},
"required": [
"survey_id"
],
"type": "object"
}
get_ai_creditsConsultar créditos de IA disponibles, asignación, consumo y costes de operación.
Permisos requeridos: read
{
"additionalProperties": false,
"properties": {},
"required": [],
"type": "object"
}
list_personasListar personas en un panel personal u organizativo, opcionalmente restringido a un grupo.
Permisos requeridos: read
{
"additionalProperties": false,
"properties": {
"pool_id": {
"maxLength": 100,
"minLength": 1,
"pattern": "^[A-Za-z0-9_-]+$",
"type": "string"
},
"scope": {
"enum": [
"user",
"org"
],
"type": "string"
}
},
"required": [],
"type": "object"
}
get_personaConsultar una persona sintética.
Permisos requeridos: read
{
"additionalProperties": false,
"properties": {
"persona_id": {
"maxLength": 100,
"minLength": 1,
"pattern": "^[A-Za-z0-9_-]+$",
"type": "string"
},
"scope": {
"enum": [
"user",
"org"
],
"type": "string"
}
},
"required": [
"persona_id"
],
"type": "object"
}
create_personaCrear una persona manualmente sin consumir créditos de IA.
Permisos requeridos: write
{
"additionalProperties": false,
"properties": {
"attributes": {
"type": "object"
},
"name": {
"maxLength": 2000,
"type": "string"
},
"poolIds": {
"items": {
"maxLength": 100,
"minLength": 1,
"pattern": "^[A-Za-z0-9_-]+$",
"type": "string"
},
"maxItems": 500,
"type": "array",
"uniqueItems": true
},
"scope": {
"enum": [
"user",
"org"
],
"type": "string"
}
},
"required": [
"name"
],
"type": "object"
}
update_personaEditar atributos de una persona y reemplazar membresías de grupo si se indica.
Permisos requeridos: write
{
"additionalProperties": false,
"properties": {
"attributes": {
"type": "object"
},
"name": {
"maxLength": 2000,
"type": "string"
},
"persona_id": {
"maxLength": 100,
"minLength": 1,
"pattern": "^[A-Za-z0-9_-]+$",
"type": "string"
},
"poolIds": {
"items": {
"maxLength": 100,
"minLength": 1,
"pattern": "^[A-Za-z0-9_-]+$",
"type": "string"
},
"maxItems": 500,
"type": "array",
"uniqueItems": true
},
"scope": {
"enum": [
"user",
"org"
],
"type": "string"
}
},
"required": [
"persona_id"
],
"type": "object"
}
delete_personaEliminar una persona del panel.
Permisos requeridos: delete
{
"additionalProperties": false,
"properties": {
"persona_id": {
"maxLength": 100,
"minLength": 1,
"pattern": "^[A-Za-z0-9_-]+$",
"type": "string"
},
"scope": {
"enum": [
"user",
"org"
],
"type": "string"
}
},
"required": [
"persona_id"
],
"type": "object"
}
list_poolsListar grupos con nombre y el número de personas en cada uno.
Permisos requeridos: read
{
"additionalProperties": false,
"properties": {
"scope": {
"enum": [
"user",
"org"
],
"type": "string"
}
},
"required": [],
"type": "object"
}
get_poolConsultar un grupo por nombre y sus personas.
Permisos requeridos: read
{
"additionalProperties": false,
"properties": {
"pool_id": {
"maxLength": 100,
"minLength": 1,
"pattern": "^[A-Za-z0-9_-]+$",
"type": "string"
},
"scope": {
"enum": [
"user",
"org"
],
"type": "string"
}
},
"required": [
"pool_id"
],
"type": "object"
}
create_poolCrear un grupo de personas con nombre.
Permisos requeridos: write
{
"additionalProperties": false,
"properties": {
"description": {
"maxLength": 2000,
"type": "string"
},
"name": {
"maxLength": 2000,
"type": "string"
},
"scope": {
"enum": [
"user",
"org"
],
"type": "string"
}
},
"required": [
"name"
],
"type": "object"
}
update_poolRenombrar un grupo o actualizar su descripción.
Permisos requeridos: write
{
"additionalProperties": false,
"properties": {
"description": {
"maxLength": 2000,
"type": "string"
},
"name": {
"maxLength": 2000,
"type": "string"
},
"pool_id": {
"maxLength": 100,
"minLength": 1,
"pattern": "^[A-Za-z0-9_-]+$",
"type": "string"
},
"scope": {
"enum": [
"user",
"org"
],
"type": "string"
}
},
"required": [
"pool_id"
],
"type": "object"
}
delete_poolEliminar un grupo y desvincular sus miembros sin borrar personas.
Permisos requeridos: delete
{
"additionalProperties": false,
"properties": {
"pool_id": {
"maxLength": 100,
"minLength": 1,
"pattern": "^[A-Za-z0-9_-]+$",
"type": "string"
},
"scope": {
"enum": [
"user",
"org"
],
"type": "string"
}
},
"required": [
"pool_id"
],
"type": "object"
}
assign_pool_personasAñadir o quitar personas de un grupo de forma masiva.
Permisos requeridos: write
{
"additionalProperties": false,
"properties": {
"action": {
"enum": [
"add",
"remove"
]
},
"personaIds": {
"items": {
"maxLength": 100,
"minLength": 1,
"pattern": "^[A-Za-z0-9_-]+$",
"type": "string"
},
"maxItems": 500,
"type": "array",
"uniqueItems": true
},
"pool_id": {
"maxLength": 100,
"minLength": 1,
"pattern": "^[A-Za-z0-9_-]+$",
"type": "string"
},
"scope": {
"enum": [
"user",
"org"
],
"type": "string"
}
},
"required": [
"pool_id",
"personaIds",
"action"
],
"type": "object"
}
import_personasImportar personas desde JSON. Se ignora la información del grupo; las personas importadas quedan sin asignar.
Permisos requeridos: write
{
"additionalProperties": false,
"properties": {
"personas": {
"items": {
"type": "object"
},
"maxItems": 200,
"minItems": 1,
"type": "array"
},
"scope": {
"enum": [
"user",
"org"
],
"type": "string"
}
},
"required": [
"personas"
],
"type": "object"
}
export_personasExportar personas o un grupo como JSON o CSV.
Permisos requeridos: read
{
"additionalProperties": false,
"properties": {
"format": {
"enum": [
"json",
"csv"
]
},
"persona_id": {
"maxLength": 100,
"minLength": 1,
"pattern": "^[A-Za-z0-9_-]+$",
"type": "string"
},
"pool_id": {
"maxLength": 100,
"minLength": 1,
"pattern": "^[A-Za-z0-9_-]+$",
"type": "string"
},
"scope": {
"enum": [
"user",
"org"
],
"type": "string"
}
},
"required": [],
"type": "object"
}
generate_personasGenerar personas con IA. Cuesta cinco créditos por persona, con reembolso si faltan resultados.
Permisos requeridos: write, ai
{
"additionalProperties": false,
"properties": {
"ageMax": {
"maximum": 120,
"minimum": 13,
"type": "integer"
},
"ageMin": {
"maximum": 120,
"minimum": 13,
"type": "integer"
},
"count": {
"maximum": 50,
"minimum": 1,
"type": "integer"
},
"description": {
"maxLength": 2000,
"type": "string"
},
"extra": {
"maxLength": 2000,
"type": "string"
},
"genderMix": {
"additionalProperties": false,
"properties": {
"female": {
"maximum": 50,
"minimum": 0,
"type": "integer"
},
"male": {
"maximum": 50,
"minimum": 0,
"type": "integer"
},
"non_binary": {
"maximum": 50,
"minimum": 0,
"type": "integer"
}
},
"type": "object"
},
"scope": {
"enum": [
"user",
"org"
],
"type": "string"
}
},
"required": [
"description"
],
"type": "object"
}
estimate_panel_costEstimar los créditos necesarios para administrar una encuesta a un grupo con nombre.
Permisos requeridos: read
{
"additionalProperties": false,
"properties": {
"pool_id": {
"maxLength": 100,
"minLength": 1,
"pattern": "^[A-Za-z0-9_-]+$",
"type": "string"
},
"scope": {
"enum": [
"user",
"org"
],
"type": "string"
},
"survey_id": {
"maxLength": 100,
"minLength": 1,
"pattern": "^[A-Za-z0-9_-]+$",
"type": "string"
}
},
"required": [
"pool_id",
"survey_id"
],
"type": "object"
}
administer_panelAdministrar una encuesta a un grupo con nombre. Cuesta tres créditos por persona; puede devolver un trabajo.
Permisos requeridos: write, ai
{
"additionalProperties": false,
"properties": {
"pool_id": {
"maxLength": 100,
"minLength": 1,
"pattern": "^[A-Za-z0-9_-]+$",
"type": "string"
},
"scope": {
"enum": [
"user",
"org"
],
"type": "string"
},
"survey_id": {
"maxLength": 100,
"minLength": 1,
"pattern": "^[A-Za-z0-9_-]+$",
"type": "string"
}
},
"required": [
"pool_id",
"survey_id"
],
"type": "object"
}
get_survey_resultsConsultar estadísticas por pregunta, desglose A/B, visualizaciones, recuentos en panel de IA y análisis de abandono.
Permisos requeridos: read
{
"additionalProperties": false,
"properties": {
"survey_id": {
"maxLength": 100,
"minLength": 1,
"pattern": "^[A-Za-z0-9_-]+$",
"type": "string"
}
},
"required": [
"survey_id"
],
"type": "object"
}
get_partial_responsesLee respuestas en curso, por separado de los envíos completados.
Permisos requeridos: read
{
"additionalProperties": false,
"properties": {
"limit": {
"maximum": 500,
"minimum": 1,
"type": "integer"
},
"offset": {
"maximum": 100000,
"minimum": 0,
"type": "integer"
},
"survey_id": {
"maxLength": 100,
"minLength": 1,
"pattern": "^[A-Za-z0-9_-]+$",
"type": "string"
}
},
"required": [
"survey_id"
],
"type": "object"
}
export_survey_resultsDescarga las respuestas completadas en formato CSV (hasta 5000 por página) o un informe de resultados en PDF.
Permisos requeridos: read
{
"additionalProperties": false,
"properties": {
"format": {
"enum": [
"csv",
"pdf"
]
},
"offset": {
"maximum": 100000,
"minimum": 0,
"type": "integer"
},
"survey_id": {
"maxLength": 100,
"minLength": 1,
"pattern": "^[A-Za-z0-9_-]+$",
"type": "string"
}
},
"required": [
"survey_id"
],
"type": "object"
}
upload_survey_imageSube una imagen en formato PNG, JPEG, GIF o WebP codificada en base64 (máximo 5 MB) para el tema de la encuesta.
Permisos requeridos: write
{
"additionalProperties": false,
"properties": {
"content": {
"maxLength": 6990510,
"type": "string"
},
"contentType": {
"enum": [
"image/png",
"image/jpeg",
"image/gif",
"image/webp"
]
},
"field": {
"enum": [
"headerImage",
"backgroundImage"
]
},
"survey_id": {
"maxLength": 100,
"minLength": 1,
"pattern": "^[A-Za-z0-9_-]+$",
"type": "string"
}
},
"required": [
"survey_id",
"field",
"contentType",
"content"
],
"type": "object"
}
submit_survey_responseEnvía una respuesta completada para un participante externo; se aplican las reglas de publicación, programación, ramificación y duplicados.
Permisos requeridos: write
{
"additionalProperties": false,
"properties": {
"answers": {
"type": "object"
},
"completionTimeSeconds": {
"maximum": 604800,
"minimum": 0,
"type": "integer"
},
"respondentInfo": {
"type": "object"
},
"respondent_id": {
"maxLength": 100,
"minLength": 1,
"pattern": "^[A-Za-z0-9_-]+$",
"type": "string"
},
"survey_id": {
"maxLength": 100,
"minLength": 1,
"pattern": "^[A-Za-z0-9_-]+$",
"type": "string"
}
},
"required": [
"survey_id",
"respondent_id",
"answers"
],
"type": "object"
}
save_partial_responseGuarda automáticamente una respuesta parcial de un participante externo cuando la recopilación está habilitada.
Permisos requeridos: write
{
"additionalProperties": false,
"properties": {
"answers": {
"type": "object"
},
"completionTimeSeconds": {
"maximum": 604800,
"minimum": 0,
"type": "integer"
},
"respondentInfo": {
"type": "object"
},
"respondent_id": {
"maxLength": 100,
"minLength": 1,
"pattern": "^[A-Za-z0-9_-]+$",
"type": "string"
},
"survey_id": {
"maxLength": 100,
"minLength": 1,
"pattern": "^[A-Za-z0-9_-]+$",
"type": "string"
}
},
"required": [
"survey_id",
"respondent_id",
"answers"
],
"type": "object"
}
get_accountLeer perfil, idioma, dominio, plan y acceso a la organización.
Permisos requeridos: read
{
"additionalProperties": false,
"properties": {},
"required": [],
"type": "object"
}
update_accountActualizar nombre visible, idioma del servicio o dominio personalizado. No modifica el correo, credenciales ni facturación.
Permisos requeridos: write
{
"additionalProperties": false,
"properties": {
"customDomain": {
"maxLength": 253,
"type": [
"string",
"null"
]
},
"displayName": {
"maxLength": 100,
"minLength": 2,
"type": "string"
},
"preferredLanguage": {
"maxLength": 10,
"type": "string"
}
},
"required": [],
"type": "object"
}
get_organizationConsultar la organización, licencias disponibles y créditos de IA compartidos.
Permisos requeridos: read
{
"additionalProperties": false,
"properties": {},
"required": [],
"type": "object"
}
list_organization_membersListar miembros, roles, licencias y consumo de IA de la organización. Solo administradores.
Permisos requeridos: read
{
"additionalProperties": false,
"properties": {},
"required": [],
"type": "object"
}
add_organization_memberAñadir una cuenta de Votira existente a la organización. Solo administradores.
Permisos requeridos: write
{
"additionalProperties": false,
"properties": {
"email": {
"maxLength": 254,
"pattern": "^[^@\\s]+@[^@\\s]+\\.[^@\\s]+$",
"type": "string"
},
"role": {
"enum": [
"viewer",
"editor",
"admin"
]
}
},
"required": [
"email",
"role"
],
"type": "object"
}
update_organization_memberActualizar el rol o la licencia asignada de un miembro. Solo administradores; el propietario está protegido.
Permisos requeridos: write
{
"additionalProperties": false,
"properties": {
"hasLicense": {
"type": "boolean"
},
"member_id": {
"maxLength": 100,
"minLength": 1,
"pattern": "^[A-Za-z0-9_-]+$",
"type": "string"
},
"role": {
"enum": [
"viewer",
"editor",
"admin"
]
}
},
"required": [
"member_id"
],
"type": "object"
}
remove_organization_memberEliminar un miembro sin borrar su cuenta. Solo administradores.
Permisos requeridos: delete
{
"additionalProperties": false,
"properties": {
"member_id": {
"maxLength": 100,
"minLength": 1,
"pattern": "^[A-Za-z0-9_-]+$",
"type": "string"
}
},
"required": [
"member_id"
],
"type": "object"
}
list_organization_invitesListar invitaciones de la organización sin mostrar los tokens de invitación. Solo administradores.
Permisos requeridos: read
{
"additionalProperties": false,
"properties": {},
"required": [],
"type": "object"
}
create_organization_inviteCrear una invitación y devolver su URL para compartir. Solo administradores.
Permisos requeridos: write
{
"additionalProperties": false,
"properties": {
"email": {
"maxLength": 254,
"pattern": "^[^@\\s]+@[^@\\s]+\\.[^@\\s]+$",
"type": "string"
},
"role": {
"enum": [
"viewer",
"editor",
"admin"
]
},
"type": {
"enum": [
"member",
"guest"
]
}
},
"required": [
"role"
],
"type": "object"
}
revoke_organization_inviteRevocar una invitación pendiente de la organización. Solo administradores.
Permisos requeridos: delete
{
"additionalProperties": false,
"properties": {
"invite_id": {
"maxLength": 100,
"minLength": 1,
"pattern": "^[A-Za-z0-9_-]+$",
"type": "string"
}
},
"required": [
"invite_id"
],
"type": "object"
}
get_audit_logBuscar en el registro de auditoría de la organización. Solo administradores Enterprise.
Permisos requeridos: read
{
"additionalProperties": false,
"properties": {
"category": {
"enum": [
"auth",
"survey",
"results",
"ai",
"keys",
"billing",
"organization",
"profile",
"audit",
"api",
"mcp"
]
},
"date_from": {
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"type": "string"
},
"date_to": {
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"type": "string"
},
"limit": {
"maximum": 500,
"minimum": 1,
"type": "integer"
},
"offset": {
"maximum": 100000,
"minimum": 0,
"type": "integer"
},
"search": {
"maxLength": 100,
"type": "string"
}
},
"required": [],
"type": "object"
}
export_audit_logExportar hasta 5000 registros de auditoría como CSV. Solo administradores Enterprise.
Permisos requeridos: read
{
"additionalProperties": false,
"properties": {
"category": {
"enum": [
"auth",
"survey",
"results",
"ai",
"keys",
"billing",
"organization",
"profile",
"audit",
"api",
"mcp"
]
},
"date_from": {
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"type": "string"
},
"date_to": {
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"type": "string"
},
"limit": {
"maximum": 500,
"minimum": 1,
"type": "integer"
},
"offset": {
"maximum": 100000,
"minimum": 0,
"type": "integer"
},
"search": {
"maxLength": 100,
"type": "string"
}
},
"required": [],
"type": "object"
}
list_invoicesListar facturas personales pagadas y, para administradores, facturas de la organización.
Permisos requeridos: read
{
"additionalProperties": false,
"properties": {
"limit": {
"maximum": 500,
"minimum": 1,
"type": "integer"
},
"offset": {
"maximum": 100000,
"minimum": 0,
"type": "integer"
}
},
"required": [],
"type": "object"
}
download_invoiceDescargar un PDF de factura pagada tras verificar la titularidad de la facturación.
Permisos requeridos: read
{
"additionalProperties": false,
"properties": {
"invoice_id": {
"maxLength": 100,
"pattern": "^in_[A-Za-z0-9]+$",
"type": "string"
}
},
"required": [
"invoice_id"
],
"type": "object"
}
list_support_requestsListar los tickets de soporte, informes de errores y solicitudes de funciones de la cuenta.
Permisos requeridos: read
{
"additionalProperties": false,
"properties": {
"limit": {
"maximum": 500,
"minimum": 1,
"type": "integer"
},
"offset": {
"maximum": 100000,
"minimum": 0,
"type": "integer"
}
},
"required": [],
"type": "object"
}
get_support_requestLeer una solicitud de soporte y las respuestas del equipo, solo para su propietario.
Permisos requeridos: read
{
"additionalProperties": false,
"properties": {
"submission_id": {
"maxLength": 100,
"minLength": 1,
"pattern": "^[A-Za-z0-9_-]+$",
"type": "string"
}
},
"required": [
"submission_id"
],
"type": "object"
}
create_support_requestAbrir un ticket de soporte, informe de error o solicitud de función.
Permisos requeridos: write
{
"additionalProperties": false,
"properties": {
"category": {
"enum": [
"bug",
"feature",
"ticket"
]
},
"description": {
"maxLength": 5000,
"minLength": 10,
"type": "string"
},
"priority": {
"enum": [
"low",
"normal",
"high",
"urgent"
]
},
"problemSolved": {
"maxLength": 5000,
"type": "string"
},
"severity": {
"enum": [
"low",
"medium",
"high",
"critical"
]
},
"stepsToReproduce": {
"maxLength": 5000,
"type": "string"
},
"subject": {
"maxLength": 150,
"minLength": 3,
"type": "string"
},
"ticketCategory": {
"enum": [
"billing",
"technical",
"account",
"other"
]
}
},
"required": [
"category",
"subject",
"description"
],
"type": "object"
}
El endpoint implementa los métodos principales MCP JSON‑RPC: initialize, tools/list y tools/call (más ping). Ejemplo de listado de herramientas:
curl -X POST https://votira.co/mcp \
-H "Authorization: Bearer $VOTIRA_MCP_KEY" \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'
Ejecutar una herramienta
curl -X POST https://votira.co/mcp \
-H "Authorization: Bearer $VOTIRA_MCP_KEY" \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":2,"method":"tools/call",
"params":{"name":"get_survey","arguments":{"survey_id":"srv_123"}}}'
403 Forbidden.Crea tu primera encuesta con IA en minutos y descubre si tu idea tiene potencial.
Empieza tu prueba gratisPrueba gratuita de 7 días con todas las funciones · No se requiere tarjeta de crédito