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

Endpoint

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

Duas formas de conectar

  • Permitir acesso (recomendado). Adicione o endereço do servidor no seu assistente, entre no SurveyNinja quando ele pedir, escolha um espaço de trabalho e clique em Permitir acesso. Não precisa de chave: o assistente trabalha no espaço que você escolheu e renova o acesso sozinho.
  • Chave de API. Para clientes que não suportam login, ou quando um assistente deve trabalhar em todos os espaços em que você é dono ou membro. Passe a chave em um cabeçalho, como mostrado abaixo.

Claude

  1. No Claude na web ou no app para desktop, abra Settings, depois Connectors, e clique em Add custom connector.
  2. Digite um nome, por exemplo SurveyNinja, e o endereço do servidor.
  3. Clique em Add, depois em Connect, e permita o acesso no SurveyNinja.

Nos planos Team e Enterprise do Claude, primeiro o dono da organização adiciona o conector e depois cada membro o conecta.

ChatGPT

  1. Ative o modo de desenvolvedor nas configurações do ChatGPT. Ele está disponível em alguns planos do ChatGPT.
  2. Crie um conector com o endereço do servidor e autenticação OAuth.
  3. Permita o acesso no SurveyNinja.

Claude Code

Rode o comando no terminal, depois digite /mcp no Claude Code, selecione surveyninja e entre.

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

Com as skills prontas, como plugin que adiciona o servidor e todas as skills em uma única instalação:

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

Cursor

Adicione o servidor em ~/.cursor/mcp.json para todos os projetos, ou em .cursor/mcp.json para um projeto. Depois abra a seção MCP nas configurações do Cursor e entre no servidor surveyninja.

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

VS Code

Adicione o servidor em .vscode/mcp.json no seu projeto, inicie-o a partir do arquivo e entre quando o VS Code pedir. O servidor funciona no GitHub Copilot Chat no modo agente.

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

Obtendo uma chave de API

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

Autenticação

Passe a chave de API no cabeçalho Authorization :

Authorization: Bearer 42|xK7mP9nQ2wL5eH8jR3vU6tY0iD4aF1bG

Para um cliente que aceita o formato mcpServers com cabeçalhos, troque YOUR_API_KEY pela sua chave:

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

Configurações para cada cliente e as skills como arquivos: github.com/surveyninjaio/surveyninja-mcp.

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