Servidor MCP

Conecte Claude, Cursor e outros assistentes de IA ao SurveyNinja via Protocolo de Contexto de Modelo

MCP Server

Model Context Protocol (MCP) é um padrão que permite que modelos de IA (Claude, Cursor, Copilot, etc.) se conectem ao SurveyNinja e trabalhem com seus dados diretamente — lendo pesquisas, respostas, análises e realizando ações sem cópia manual.

1. Conexão

Obtendo uma chave de API

  1. Faça login em sua conta do SurveyNinja.
  2. Acesse SettingsAPI / MCP.
  3. Clique em "Criar chave de API" e copie-a — a chave é exibida apenas uma vez.

Endpoint

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

Autenticação

Passe a chave de API no cabeçalho Authorization :

Authorization: Bearer 42|xK7mP9nQ2wL5eH8jR3vU6tY0iD4aF1bG

Configuração para Claude Desktop

Arquivo 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>" } } } }

Configuração para Cursor / VS Code

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

Limites de taxa

  • 180 requisições por minuto por usuário (tools/call, resources/read, etc.)
  • Os links de exportação são válidos por 1 hora

2. Recursos

Os recursos são somente leitura. Para utilizá-los, envie uma requisição resources/read com o URI correspondente.

URI Descrição
Usuário e espaços de trabalho
user://meInformações básicas sobre o usuário atual
workspace://listLista de todos os espaços de trabalho do usuário
Pastas e pesquisas
folder://listLista de todas as pastas do usuário
quiz://listLista de todas as pesquisas disponíveis
Estrutura e configuração da pesquisa
quiz://{'{id}'}/structureEstrutura completa de widgets da pesquisa
quiz://{'{id}'}/textsRótulos personalizados da interface do usuário
quiz://{'{id}'}/variablesVariáveis ocultas (campos adicionais)
quiz://{'{id}'}/hidden_optionsOpções de configuração de serviço da pesquisa
quiz://{'{id}'}/widgets_hiddenMetadados de widgets ocultos
Respostas e análises
quiz://{'{id}'}/answersLista paginada de respostas dos entrevistados
quiz://{'{id}'}/summaryAnálises de resumo (funil, dispositivos, geo)
quiz://{'{id}'}/reportRelatório detalhado de widgets (com filtros)
quiz://{'{id}'}/report_filtersFiltros salvos do usuário
quiz://{'{id}'}/report/{'{uuid}'}/inputsRespostas de texto para widgets de entrada
quiz://{'{id}'}/report/{'{uuid}'}/filesArquivos enviados pelos entrevistados
Temas e códigos promocionais
theme://listLista de temas do espaço de trabalho
theme://{'{id}'}/detailsConfigurações detalhadas do tema
promocode://listListas de grupos de códigos promocionais
promocode://{'{id}'}/codesCódigos em uma lista de códigos promocionais específica

3. Ferramentas

As ferramentas são ações executadas no lado do SurveyNinja mediante solicitação de um modelo de IA pelo método tools/call .

Formato de resposta da ferramenta

Cada ferramenta retorna um objeto com os campos content (array de blocos de texto) e isError (false — sucesso, true — erro). Em caso de sucesso, campos de dados adicionais são incluídos.

Gerenciamento de pesquisas

Ferramenta Descrição Parâmetros obrigatórios
create_quizCria uma nova pesquisafolder_id
rename_quizRenomeia uma pesquisaquiz_id, name
duplicate_quizDuplica uma pesquisaquiz_id
archive_quizArquiva / desarquivaquiz_id, archive
delete_quizExclui uma pesquisa (exclusão suave)quiz_id
publish_quizPublica a versão atualquiz_id
move_quizMove a pesquisa para outra pastaquiz_id, folder_id
make_quiz_templateCria um modelo a partir de uma pesquisaquiz_id
create_folderCria uma pasta de pesquisasworkspace_id, name

Conteúdo e estrutura da pesquisa

Ferramenta Descrição Parâmetros obrigatórios
update_quiz_widgetsSalva a estrutura de widgetsquiz_id, ids, entities
update_quiz_textsAtualiza os textos de botões e elementos (plano pago)quiz_id, texts
update_quiz_settingsAtualiza as configurações da pesquisa (idioma, limites, tema, scripts, etc.)quiz_id
update_quiz_logicSalva a lógica de transição e pontuaçãoquiz_id
update_quiz_noteAdiciona/atualiza uma nota internaquiz_id, notes
upload_quiz_mediaFaz upload de mídia para o bloco multimídia (plano pago)quiz_id, type
upload_quiz_widget_imageFaz upload de imagem para um widget com opções de mídiaquiz_id

Temas de design

Ferramenta Descrição Parâmetros obrigatórios
apply_quiz_themeAplica um tema a uma pesquisaquiz_id, theme_id
create_themeCria um tema e o aplica a uma pesquisa (plano pago)workspace_id, quiz_id
update_themeAtualiza um tema existenteworkspace_id, theme_id

Variáveis da pesquisa

Ferramenta Descrição Parâmetros obrigatórios
create_quiz_variableCria uma variável oculta (campo adicional)quiz_id, name
update_quiz_variableRenomeia uma variávelquiz_id, field_id, name
delete_quiz_variableExclui uma variávelquiz_id, field_id

Opções ocultas

Ferramenta Descrição Parâmetros obrigatórios
create_hidden_optionCria uma opção de serviço da pesquisaquiz_id, name, value
update_hidden_optionAtualiza uma opção da pesquisaquiz_id, opt_id, name, value
delete_hidden_optionExclui uma opção da pesquisaquiz_id, opt_id
create_widget_hidden_optionCria uma opção para um widget específicoquiz_id, widget_uuid, name, value
update_widget_hidden_optionAtualiza uma opção de widgetquiz_id, opt_id, name, value
delete_widget_hidden_optionExclui uma opção de widgetquiz_id, opt_id

Respostas, análises e links públicos

Ferramenta Descrição Parâmetros obrigatórios
toggle_answer_visibilityOculta/exibe uma respostaquiz_id, answer_id, is_hide
tag_answerAdiciona/sincroniza etiquetas de respostaquiz_id, answer_id, tags
generate_filtered_reportGera um relatório com filtros → report_uuidquiz_id
share_summary_linkLink público para o resumoquiz_id
share_report_linkLink público para o relatórioquiz_id
share_answers_linkLink público para a lista de respostasquiz_id

Exportação

Todas as ferramentas aceitam quiz_id (obrigatório). O link de download é válido por 1 hora.

Ferramenta Descrição
export_answers_csvExportar respostas para CSV
export_answers_xlsxExportar respostas para XLSX
export_answers_wordExportar respostas para Word
export_summary_pdfExportar resumo para PDF
export_filtered_report_pdfExportar relatório filtrado para PDF
export_filtered_report_wordExportar relatório filtrado para Word

Códigos promocionais (plano pago)

Ferramenta Descrição Parâmetros obrigatórios
create_promocode_groupCria uma lista de códigos promocionaisquiz_id, name, codes
add_promocodesAdiciona códigos a uma lista existentequiz_id, list_id, codes

4. Detalhes técnicos

Versão do protocolo

2025-06-18

Transporte

HTTP POST (JSON-RPC 2.0)

Método de conexão

POST /mcp/v1

Métodos JSON-RPC padrão

Método Descrição
initializeInicialização de sessão, obtenção de capacidades do servidor
tools/listListar todas as ferramentas disponíveis
tools/callChamar uma ferramenta com parâmetros
resources/listListar todos os recursos disponíveis
resources/readLer o conteúdo de um recurso por URI
prompts/listListar modelos de prompt
prompts/getObter um modelo de prompt específico

Exemplo de requisição

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 resposta de erro

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

5. Cenários típicos

1. Obter lista de pesquisas e estrutura de uma específica

1. resources/read: quiz://list → obter lista de pesquisas com IDs

2. resources/read: quiz://{'{id}'}/structure → obter a estrutura de widgets

2. Trabalhando com respostas

1. resources/read: quiz://{'{id}'}/answers → obter respostas (com answer_id)

2. tools/call: tag_answer (adicionar etiquetas) ou toggle_answer_visibility (ocultar/exibir)

3. Exportação com filtragem

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

⚠ O formato de data aqui é d.m.Y (01.01.2024), enquanto o recurso quiz://report usa Y-m-d

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

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

⚠ export_filtered_report_pdf e _word aceitam apenas quiz_id; report_uuid não deve ser passado

4. Adicionando códigos promocionais

1. tools/call: create_promocode_group → criar uma lista com códigos iniciais → obter list_id

2. tools/call: add_promocodes → adicionar mais códigos à lista

3. resources/read: promocode://{'{list_id}'}/codes → verificar os códigos adicionados

5. Aplicar um tema e obter imediatamente a estrutura da pesquisa

1. resources/read: theme://list → obter lista de temas com IDs

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

→ a resposta já inclui um campo quiz com a estrutura — nenhum resources/read adicional é necessário

Documentação completa do MCP em formato markdown para uso com IA:

/static/mcp_user_guide.md — referência completa de recursos e ferramentas.