pollbolt
AI-native survey & form builder. Manage surveys, responses, analytics, and webhooks.
¿Debería usar esto?
Calidad y seguridad
Hallazgos (2)
- LOWen list_webhooks
- LOWen delete_webhook
Basado en el análisis automatizado de las definiciones de herramientas y el cumplimiento del protocolo.
Costo de contexto
Este es el número aproximado de tokens que se consumen cada vez que las herramientas del servidor se cargan en el contexto de un modelo. Los recuentos más altos reducen la atención disponible para otras tareas.
Instalar
Instalación con un clic
Agrega esto a tu archivo `claude_desktop_config.json`:
{
"mcpServers": {
"pollbolt": {
"url": "https://api.pollbolt.com/mcp"
}
}
}Puntos de conexión remotos
https://api.pollbolt.com/mcpstreamable-httpQué puede hacer
Inventario de herramientas
Herramientas (15)
🟡create_survey(title, questions, settings, hidden_fields, variables, ...)
Create a new survey. Returns the survey details including share_url. Supported question types: short_text, long_text, multiple_choice, checkbox, checkbox_list, numeric, star_rating, picture_choice, opinion_scale, date, email, contact_info, poll_question, statement.
Esquema de entrada
{
"type": "object",
"properties": {
"title": {
"type": "string",
"description": "Survey title"
},
"questions": {
"type": "array",
"description": "Array of questions",
"items": {
"type": "object",
"properties": {
"type": {
"type": "string",
"description": "Question type (e.g. multiple_choice, short_text, opinion_scale)"
},
"text": {
"type": "string",
"description": "Question text"
},
"required": {
"type": "boolean",
"description": "Whether the question is required"
},
"options": {
"type": "array",
"items": {
"type": "string"
},
"description": "Options for multiple_choice, checkbox_list, poll_question"
},
"description": {
"type": "string",
"description": "Optional help text"
},
"placeholder": {
"type": "string",
"description": "Optional placeholder for input questions"
},
"scale_start": {
"type": "number",
"description": "Opinion scale start value (opinion_scale only)"
},
"scale_end": {
"type": "number",
"description": "Opinion scale end value (opinion_scale only)"
},
"scale_start_label": {
"type": "string",
"description": "Opinion scale start label (opinion_scale only)"
},
"scale_end_label": {
"type": "string",
"description": "Opinion scale end label (opinion_scale only)"
},
"contact_fields": {
"type": "array",
"description": "Contact info fields (contact_info only)",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"label": {
"type": "string"
},
"placeholder": {
"type": "string"
},
"type": {
"type": "string"
},
"required": {
"type": "boolean"
},
"enabled": {
"type": "boolean"
}
},
"required": [
"label"
]
}
},
"button_text": {
"type": "string",
"description": "Continue button text for statement questions"
},
"logic": {
"type": "object",
"description": "Per-question branching logic (goto / calculation).",
"properties": {
"default_target": {
"type": "string",
"description": "Default target question/ending ID"
},
"default_target_type": {
"type": "string",
"enum": [
"question",
"ending"
]
},
"rules": {
"type": "array",
"items": {
"type": "object",
"properties": {
"rule_id": {
"type": "string"
},
"rule_type": {
"type": "string",
"enum": [
"if",
"always"
]
},
"matching_conditions": {
"type": "array",
"description": "Array of condition objects or 'and'/'or' strings",
"items": {
"anyOf": [
{
"type": "string",
"enum": [
"and",
"or"
]
},
{
"type": "object"
}
]
}
},
"result_type": {
"type": "string",
"enum": [
"logic",
"calculation"
]
},
"result_name": {
"type": "string",
"enum": [
"goto",
"add",
"devide",
"subtract",
"multiply"
]
},
"result_value": {
"type": "number"
},
"target_variable": {
"type": "string"
},
"target_type": {
"type": "string",
"enum": [
"question",
"ending"
]
},
"target_id": {
"type": "string"
}
},
"required": [
"rule_type",
"result_type",
"result_name"
]
}
}
}
}
},
"required": [
"type",
"text"
]
}
},
"settings": {
"type": "object",
"properties": {
"is_open": {
"type": "boolean",
"description": "Whether survey accepts responses (default: true)"
},
"is_published": {
"type": "boolean",
"description": "Whether survey is publicly published"
},
"allow_multiple_submissions": {
"type": "boolean",
"description": "Allow multiple submissions per user"
}
}
},
"hidden_fields": {
"type": "array",
"description": "Hidden fields for URL parameters or custom data, passed through the survey URL.",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"name": {
"type": "string",
"description": "Field name (used as URL param name)"
},
"default_value": {
"type": "string"
},
"source": {
"type": "string",
"enum": [
"url_param",
"manual"
]
}
},
"required": [
"name"
]
}
},
"variables": {
"type": "array",
"description": "Custom variables for scoring, calculations, and recall.",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"name": {
"type": "string",
"description": "Variable name"
},
"type": {
"type": "string",
"enum": [
"number",
"text"
]
},
"default_value": {
"type": "number",
"description": "Default value"
}
},
"required": [
"name"
]
}
},
"styles": {
"type": "object",
"description": "Optional styling configuration for branding and visual design.",
"properties": {
"font_family": {
"type": "string"
},
"title_size": {
"type": "string",
"enum": [
"xl",
"2xl",
"4xl",
"6xl"
]
},
"question_size": {
"type": "string",
"enum": [
"base",
"xl",
"2xl"
]
},
"submit_button_color": {
"type": "string",
"description": "Hex color, e.g. #4F46E5"
},
"submit_button_text_color": {
"type": "string",
"description": "Hex color, e.g. #FFFFFF"
},
"next_button_text": {
"type": "string"
},
"submit_button_text": {
"type": "string"
},
"background_color": {
"type": "string",
"description": "Hex color, e.g. #FFFFFF"
},
"question_text_color": {
"type": "string",
"description": "Hex color"
},
"option_text_color": {
"type": "string",
"description": "Hex color"
},
"corner_radius": {
"type": "string",
"enum": [
"none",
"medium",
"large"
]
},
"rtl_enabled": {
"type": "boolean"
},
"use_number_labels": {
"type": "boolean"
},
"show_next_button": {
"type": "boolean"
},
"logo": {
"type": "object",
"properties": {
"url": {
"type": "string"
},
"size": {
"type": "string",
"enum": [
"sm",
"md",
"lg"
]
},
"alignment": {
"type": "string",
"enum": [
"left",
"center",
"right"
]
}
}
}
}
},
"welcome_screen": {
"type": [
"object",
"null"
],
"description": "Optional welcome screen configuration.",
"properties": {
"id": {
"type": "string"
},
"type": {
"type": "string"
},
"title": {
"type": "string"
},
"description": {
"type": "string"
},
"button_text": {
"type": "string"
},
"estimated_time": {
"type": "string"
},
"show_estimated_time": {
"type": "boolean"
},
"show_submissions_count": {
"type": "boolean"
},
"background_image": {
"type": "string"
},
"background_video": {
"type": "string"
},
"background_alignment": {
"type": "string",
"enum": [
"cover",
"left",
"right",
"inline"
]
},
"background_alignment_mobile": {
"type": "string",
"enum": [
"cover",
"top",
"bottom",
"inline"
]
},
"overlay_color": {
"type": "string"
},
"overlay_opacity": {
"type": "number"
}
}
},
"ending_screens": {
"type": "array",
"description": "Optional ending screens list.",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"type": {
"type": "string"
},
"title": {
"type": "string"
},
"description": {
"type": "string"
},
"button_text": {
"type": "string"
},
"button_url": {
"type": "string"
},
"buttons": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"text": {
"type": "string"
},
"url": {
"type": "string"
},
"style": {
"type": "string",
"enum": [
"primary",
"secondary"
]
}
}
}
},
"is_default": {
"type": "boolean"
},
"score_range": {
"type": "object",
"properties": {
"min": {
"type": "number"
},
"max": {
"type": "number"
}
}
},
"background_image": {
"type": "string"
},
"background_video": {
"type": "string"
},
"background_alignment": {
"type": "string",
"enum": [
"cover",
"left",
"right"
]
},
"background_alignment_mobile": {
"type": "string",
"enum": [
"cover",
"top",
"bottom"
]
},
"overlay_color": {
"type": "string"
},
"overlay_opacity": {
"type": "number"
}
},
"required": [
"id"
]
}
}
},
"required": [
"title",
"questions"
]
}🟢list_surveys(page, per_page, status)
List all surveys in your PollBolt account with pagination.
Esquema de entrada
{
"type": "object",
"properties": {
"page": {
"type": "number",
"description": "Page number (default: 1)"
},
"per_page": {
"type": "number",
"description": "Results per page (default: 20, max: 100)"
},
"status": {
"type": "string",
"enum": [
"open",
"closed",
"all"
],
"description": "Filter by status"
}
}
}🟢get_survey(survey_id)
Get full details of a specific survey including all questions.
Esquema de entrada
{
"type": "object",
"properties": {
"survey_id": {
"type": "string",
"description": "The survey ID"
}
},
"required": [
"survey_id"
]
}🔴update_survey(survey_id, title, questions, settings, hidden_fields, ...)
Update a survey's title, questions, settings, styles, screens, or logic. Providing questions replaces all existing questions.
Esquema de entrada
{
"type": "object",
"properties": {
"survey_id": {
"type": "string",
"description": "The survey ID"
},
"title": {
"type": "string",
"description": "New title"
},
"questions": {
"type": "array",
"description": "Replacement questions array (replaces all questions)",
"items": {
"type": "object",
"properties": {
"type": {
"type": "string"
},
"text": {
"type": "string"
},
"required": {
"type": "boolean"
},
"options": {
"type": "array",
"items": {
"type": "string"
}
},
"description": {
"type": "string"
},
"placeholder": {
"type": "string"
},
"scale_start": {
"type": "number"
},
"scale_end": {
"type": "number"
},
"scale_start_label": {
"type": "string"
},
"scale_end_label": {
"type": "string"
},
"contact_fields": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"label": {
"type": "string"
},
"placeholder": {
"type": "string"
},
"type": {
"type": "string"
},
"required": {
"type": "boolean"
},
"enabled": {
"type": "boolean"
}
},
"required": [
"label"
]
}
},
"button_text": {
"type": "string"
},
"logic": {
"type": "object",
"properties": {
"default_target": {
"type": "string"
},
"default_target_type": {
"type": "string",
"enum": [
"question",
"ending"
]
},
"rules": {
"type": "array",
"items": {
"type": "object",
"properties": {
"rule_id": {
"type": "string"
},
"rule_type": {
"type": "string",
"enum": [
"if",
"always"
]
},
"matching_conditions": {
"type": "array",
"items": {
"anyOf": [
{
"type": "string",
"enum": [
"and",
"or"
]
},
{
"type": "object"
}
]
}
},
"result_type": {
"type": "string",
"enum": [
"logic",
"calculation"
]
},
"result_name": {
"type": "string",
"enum": [
"goto",
"add",
"devide",
"subtract",
"multiply"
]
},
"result_value": {
"type": "number"
},
"target_variable": {
"type": "string"
},
"target_type": {
"type": "string",
"enum": [
"question",
"ending"
]
},
"target_id": {
"type": "string"
}
},
"required": [
"rule_type",
"result_type",
"result_name"
]
}
}
}
}
},
"required": [
"type",
"text"
]
}
},
"settings": {
"type": "object",
"properties": {
"is_open": {
"type": "boolean"
},
"is_published": {
"type": "boolean"
},
"allow_multiple_submissions": {
"type": "boolean"
}
}
},
"hidden_fields": {
"type": "array",
"description": "Replace all hidden fields.",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"name": {
"type": "string"
},
"default_value": {
"type": "string"
},
"source": {
"type": "string",
"enum": [
"url_param",
"manual"
]
}
},
"required": [
"name"
]
}
},
"variables": {
"type": "array",
"description": "Replace all variables.",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"name": {
"type": "string"
},
"type": {
"type": "string",
"enum": [
"number",
"text"
]
},
"default_value": {
"type": "number"
}
},
"required": [
"name"
]
}
},
"styles": {
"type": "object",
"description": "Partial styling update. Only provided fields are changed.",
"properties": {
"font_family": {
"type": "string"
},
"title_size": {
"type": "string",
"enum": [
"xl",
"2xl",
"4xl",
"6xl"
]
},
"question_size": {
"type": "string",
"enum": [
"base",
"xl",
"2xl"
]
},
"submit_button_color": {
"type": "string"
},
"submit_button_text_color": {
"type": "string"
},
"next_button_text": {
"type": "string"
},
"submit_button_text": {
"type": "string"
},
"background_color": {
"type": "string"
},
"question_text_color": {
"type": "string"
},
"option_text_color": {
"type": "string"
},
"corner_radius": {
"type": "string",
"enum": [
"none",
"medium",
"large"
]
},
"rtl_enabled": {
"type": "boolean"
},
"use_number_labels": {
"type": "boolean"
},
"show_next_button": {
"type": "boolean"
},
"logo": {
"type": "object",
"properties": {
"url": {
"type": "string"
},
"size": {
"type": "string",
"enum": [
"sm",
"md",
"lg"
]
},
"alignment": {
"type": "string",
"enum": [
"left",
"center",
"right"
]
}
}
}
}
},
"welcome_screen": {
"type": [
"object",
"null"
],
"description": "Replace welcome screen (set null to remove).",
"properties": {
"id": {
"type": "string"
},
"type": {
"type": "string"
},
"title": {
"type": "string"
},
"description": {
"type": "string"
},
"button_text": {
"type": "string"
},
"estimated_time": {
"type": "string"
},
"show_estimated_time": {
"type": "boolean"
},
"show_submissions_count": {
"type": "boolean"
},
"background_image": {
"type": "string"
},
"background_video": {
"type": "string"
},
"background_alignment": {
"type": "string",
"enum": [
"cover",
"left",
"right",
"inline"
]
},
"background_alignment_mobile": {
"type": "string",
"enum": [
"cover",
"top",
"bottom",
"inline"
]
},
"overlay_color": {
"type": "string"
},
"overlay_opacity": {
"type": "number"
}
}
},
"ending_screens": {
"type": "array",
"description": "Replace all ending screens.",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"type": {
"type": "string"
},
"title": {
"type": "string"
},
"description": {
"type": "string"
},
"button_text": {
"type": "string"
},
"button_url": {
"type": "string"
},
"buttons": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"text": {
"type": "string"
},
"url": {
"type": "string"
},
"style": {
"type": "string",
"enum": [
"primary",
"secondary"
]
}
}
}
},
"is_default": {
"type": "boolean"
},
"score_range": {
"type": "object",
"properties": {
"min": {
"type": "number"
},
"max": {
"type": "number"
}
}
},
"background_image": {
"type": "string"
},
"background_video": {
"type": "string"
},
"background_alignment": {
"type": "string",
"enum": [
"cover",
"left",
"right"
]
},
"background_alignment_mobile": {
"type": "string",
"enum": [
"cover",
"top",
"bottom"
]
},
"overlay_color": {
"type": "string"
},
"overlay_opacity": {
"type": "number"
}
},
"required": [
"id"
]
}
}
},
"required": [
"survey_id"
]
}🔴delete_survey(survey_id)
Permanently delete a survey and all its responses.
Esquema de entrada
{
"type": "object",
"properties": {
"survey_id": {
"type": "string",
"description": "The survey ID to delete"
}
},
"required": [
"survey_id"
]
}🟢list_responses(survey_id, page, per_page, status, since, ...)
List responses for a survey with pagination and filters. Returns response metadata and answers.
Esquema de entrada
{
"type": "object",
"properties": {
"survey_id": {
"type": "string",
"description": "The survey ID"
},
"page": {
"type": "number",
"description": "Page number (default: 1)"
},
"per_page": {
"type": "number",
"description": "Results per page (default: 20, max: 50)"
},
"status": {
"type": "string",
"enum": [
"completed",
"partial",
"all"
],
"description": "Filter by response status (default: completed)"
},
"since": {
"type": "string",
"description": "ISO date - only responses after this date"
},
"until": {
"type": "string",
"description": "ISO date - only responses before this date"
}
},
"required": [
"survey_id"
]
}🟢get_response(survey_id, response_id)
Get a single response by ID.
Esquema de entrada
{
"type": "object",
"properties": {
"survey_id": {
"type": "string",
"description": "The survey ID"
},
"response_id": {
"type": "string",
"description": "The response ID"
}
},
"required": [
"survey_id",
"response_id"
]
}🟡submit_response(survey_id, answers, user_id, completion_time)
Submit a response to a survey programmatically. Answers is a map of question_id to answer value.
Esquema de entrada
{
"type": "object",
"properties": {
"survey_id": {
"type": "string",
"description": "The survey ID"
},
"answers": {
"type": "object",
"description": "Map of question_id -> answer value"
},
"user_id": {
"type": "string",
"description": "Optional user identifier"
},
"completion_time": {
"type": "number",
"description": "Completion time in milliseconds"
}
},
"required": [
"survey_id",
"answers"
]
}🟢get_analytics(survey_id)
Get analytics summary for a survey (views, responses, completion rate).
Esquema de entrada
{
"type": "object",
"properties": {
"survey_id": {
"type": "string",
"description": "The survey ID"
}
},
"required": [
"survey_id"
]
}🟢list_media_library_images(search, limit)
List images from the account's media library, including brandkits, uploaded media, logos, and theme backgrounds.
Esquema de entrada
{
"type": "object",
"properties": {
"search": {
"type": "string",
"description": "Optional search term to filter images by name/URL."
},
"limit": {
"type": "number",
"description": "Max images to return (default 100, max 500)."
}
}
}🟡duplicate_survey(survey_id, title)
Create a copy of an existing survey with all its questions, styles, logic, and screens. Returns the new survey details including share_url.
Esquema de entrada
{
"type": "object",
"properties": {
"survey_id": {
"type": "string",
"description": "The survey ID to duplicate"
},
"title": {
"type": "string",
"description": "Optional title for the copy (defaults to 'Original Title (Copy)')"
}
},
"required": [
"survey_id"
]
}🟡create_webhook(url, events, survey_id, secret)
Register a webhook to receive notifications when survey events occur.
Esquema de entrada
{
"type": "object",
"properties": {
"url": {
"type": "string",
"description": "Webhook URL to receive POST requests"
},
"events": {
"type": "array",
"items": {
"type": "string",
"enum": [
"response.completed",
"response.created",
"survey.opened",
"survey.closed"
]
},
"description": "Events to subscribe to (default: response.completed)"
},
"survey_id": {
"type": "string",
"description": "Specific survey ID or '*' for all surveys"
},
"secret": {
"type": "string",
"description": "Secret for HMAC-SHA256 webhook signatures"
}
},
"required": [
"url"
]
}🟢list_webhooks(survey_id)
List all registered webhooks for your account.
Esquema de entrada
{
"type": "object",
"properties": {
"survey_id": {
"type": "string",
"description": "Optional: filter by survey ID"
}
}
}🟡update_webhook(webhook_id, url, events, is_active, secret)
Update a webhook's URL, events, active status, or secret.
Esquema de entrada
{
"type": "object",
"properties": {
"webhook_id": {
"type": "string",
"description": "The webhook ID"
},
"url": {
"type": "string"
},
"events": {
"type": "array",
"items": {
"type": "string",
"enum": [
"response.completed",
"response.created",
"survey.opened",
"survey.closed"
]
}
},
"is_active": {
"type": "boolean"
},
"secret": {
"type": "string"
}
},
"required": [
"webhook_id"
]
}🔴delete_webhook(webhook_id)
Delete a registered webhook.
Esquema de entrada
{
"type": "object",
"properties": {
"webhook_id": {
"type": "string",
"description": "The webhook ID to delete"
}
},
"required": [
"webhook_id"
]
}Comunidad
Evidencia