SurveyLane / MCP v0.1.0
Model Context Protocol · en direct

Analysez vos résultats SurveyLane avec l'IA.

Un point de terminaison MCP hébergé, en lecture seule, qui permet à Claude (ou à tout client compatible MCP) de lire les enquêtes et réponses de votre compte SurveyLane — pour résumer les réponses ouvertes, tester quelles différences sont significatives, trouver les facteurs clés, comparer les segments et rédiger les conclusions. Sans SDK, sans code de liaison.

Point de terminaison https://mcp.surveylane.app

01Démarrage rapide

Trois étapes, de zéro à une conversation avec vos données d'enquête.

1

Générer un jeton

Ouvrez Paramètres → API access et cliquez sur Générer. Copiez la valeur une seule fois — elle n'est affichée qu'à la création.

2

Connecter votre client

Ajoutez le point de terminaison et l'en-tête Bearer à Claude Code, Claude Desktop ou Cursor — une commande CLI ou un petit extrait JSON.

3

Demandez en langage naturel

Le modèle décide quels outils appeler. Vous décrivez ce que vous voulez apprendre, pas la requête à exécuter.

02Installation

Insérez le point de terminaison dans n'importe quel client compatible MCP. Transport HTTP, authentification Bearer, sans SDK.

Ajoutez le serveur avec un seul appel CLI. Les arguments positionnels viennent avant les options, sinon l'URL est absorbée par --header.

terminal
claude mcp add surveylane https://mcp.surveylane.app \
  --transport http \
  --header "Authorization: Bearer slk_..."

Vérifiez avec claude mcp list — vous devriez voir surveylane aux côtés de vos autres serveurs.

03Authentification & confidentialité

Toute requête autre que GET /health doit porter un jeton Bearer. Les jetons sont personnels, en lecture seule, et affichés une seule fois à la création.

read

En lecture seule par conception

L'IA peut lister et analyser vos enquêtes, résultats et réponses — elle ne peut rien créer, modifier ni supprimer. À confier en toute sécurité à n'importe quel client MCP auquel vous voulez donner de la visibilité.

  • list_surveys, get_survey
  • get_results, get_open_text, get_funnel
  • get_responses, whoami
privacy

Confidentialité des répondants

Pour les enquêtes anonymes, les noms et adresses e-mail des répondants ne sont jamais renvoyés — uniquement des agrégats et des réponses anonymisées. Pour les enquêtes non anonymes, le choix que vous avez fait sur l'enquête est respecté.

  • isAnonymous appliqué côté serveur
  • les outils d'agrégation n'exposent jamais de PII
  • limité à votre seul compte
Les jetons sont par utilisateur et révocables

Chaque requête d'outil est limitée à vos propres données et ne peut pas voir d'autres comptes. Révoquez un jeton compromis depuis Paramètres → API access — c'est effectif immédiatement.

04Outils · 22

Tout ce que l'IA peut appeler. Tout en lecture seule. Chacun renvoie de simples briques de base (décomptes, distributions, texte brut) — le modèle se charge de l'interprétation.

whoami
read
Return the caller's plan and account context.
list_surveys
read
List the caller's surveys with response totals and completion rate.
get_survey (survey_id)
read
Get the full structure of a survey (groups, questions, options). No responses, no PII.
get_results (survey_id, only_complete, filter, segment_by)
read
Aggregated results per question: choice counts, rich numeric summary (mean/median/stddev/quartiles + histogram), and scale distributions with NPS/top-2-box. Optional `filter` ({question_id, equals}) restricts to a subgroup; optional `segment_by` (a choice question id) returns results split per option. yes_no/single_choice counts are correct (not just multiple_choice).
get_open_text (question_id, limit, offset)
read
Free-text answers for one question, paginated. Use to summarise themes/sentiment.
get_responses (survey_id, only_complete, limit, offset, include_pii, question_ids)
read
Individual responses as a compact answer matrix (response x question), paginated. PII (name/email) is omitted by default and only included with include_pii=true on a non-anonymous survey. Use question_ids to fetch only specific columns and keep payloads small. Prefer get_crosstab/get_results for analysis.
get_funnel (survey_id)
read
Drop-off funnel: total vs completed responses, per-question answered/shown/skipped and reached counts. Conditional (branched) questions report drop-off relative to who actually saw them, not all starters.
get_crosstab (question_a, question_b)
read
Cross-tabulate two questions of the same survey. Numeric×numeric returns a Pearson correlation; otherwise a contingency table (counts of A categories × B categories).
get_group_summary (survey_id)
read
Roll-up of numeric/VAS scores per question group (cluster): pooled group mean + per-question means, so clusters are comparable at a glance.
get_data_quality (survey_id)
read
Data-quality signals for a survey: completion-time stats (median/quartiles + speeders) and straightlining detection (respondents giving near-identical answers across numeric/scale questions).
compare_surveys (survey_a, survey_b)
read
Compare two surveys (e.g. baseline vs follow-up). Matches numeric/VAS questions by text and reports per-question mean deltas, sorted by magnitude. Useful for 0-meting vs nameting.
test_significance (survey_id, question_id, group_question_id, group_a, group_b)
read
Statistically test whether a target question differs across subgroups defined by another question. Numeric target -> Welch t-test (two groups) or one-way ANOVA (all groups), with Cohen's d / eta². Categorical target -> chi-square + Cramér's V. Returns p-values so you don't over-interpret small samples.
get_correlation_matrix (survey_id, group_id)
read
Pairwise Pearson correlations (with p-values, significance) across all numeric/VAS questions, sorted by strength. Optionally scope to one group/cluster. One call instead of N² crosstabs.
key_drivers (survey_id, target)
read
Driver analysis: rank all numeric questions by their correlation (with p-value) to a target numeric question. Answers 'what most relates to low energy / high stress?'.
scale_reliability (survey_id)
read
Cronbach's alpha per question group (cluster) over its numeric items, with an interpretation. Validates whether a cluster measures one coherent construct before averaging it.
query_cohort (survey_id, where, aggregate)
read
Define a cohort with multiple AND/OR conditions (numeric ranges, option matches, answered/not_answered) and get its size/share. With aggregate=true, returns full get_results-style aggregates for just that cohort.
get_weighted_results (survey_id, weight_question_id, target_shares)
read
Post-stratification weighting on a single variable: supply target shares for a demographic question (e.g. gender 50/50) and get weighted numeric means vs unweighted, plus Kish effective sample size. Corrects sample skew.
compute_index (survey_id, items, normalize, segment_by)
read
Build a composite index from chosen items (optional per-item weight/reverse/min-max, optional 0..100 normalization) and get its distribution overall and per segment. E.g. a wellbeing index from selected VAS questions.
auto_insights (survey_id, top_n)
read
Automatically scan every segmentation question × numeric question, ANOVA-test each, and return the significant differences ranked by effect size (eta²). The 'do the analysis for me' tool, guarded by significance.
get_verbatims (question_id, link_question_id, min_score, max_score, limit)
read
Free-text verbatims for a question (text answers, or the 'other' texts of a choice question), optionally linked to another numeric question's score and filtered by a score range (e.g. comments of the lowest scorers). Includes keyword frequency.
response_timeline (survey_id, bucket)
read
Response volume over the fielding period: started/completed per day or hour, cumulative and completion rate. Shows when responses came in (e.g. after a reminder) and where people abandon.
report_bundle (survey_id, driver_target)
read
One call returns a full analysis pack: overview results, per-cluster summary, scale reliability, data quality, funnel, and auto-insights (optionally key drivers for a target). Feeds a report/PDF directly.

05Invites

Modèles d'invites hébergés sur le serveur que l'IA invoque directement. Dans Claude Code : /mcp__surveylane__<name>. Un clic vous donne une analyse guidée complète au lieu d'avoir à poser vous-même les bonnes questions.

analyze_survey Analyze a survey

Run a full analysis of a survey's results and write a report with findings and recommendations.

06Exemples d'invites

De vraies questions que vous pouvez coller dans votre client IA — d'un résumé rapide aux tests de significativité, à l'analyse des facteurs clés, aux cohortes, à la pondération et aux comparaisons avant/après. Le modèle décide quels outils appeler et les enchaîne ; vous restez en langage naturel.

“Lesquelles de mes enquêtes ont le plus de réponses ?”
“Donne-moi le taux de complétion de chaque enquête.”
“Quelles enquêtes sont encore en brouillon, et lesquelles sont clôturées ?”
“Quand mon enquête Aanmelden interventieperiode a-t-elle reçu sa dernière réponse ?”

07Des données à un rapport soigné

Demandez une analyse complète à votre IA : elle lit les chiffres directement depuis les outils MCP, puis un petit script les transforme en un PDF à votre charte, prêt pour le comité de direction. Voici le déroulé et un exemple.

  1. 1
    Demandez en langage clair

    “Lance une analyse complète et rédige un rapport confidentiel au niveau du groupe, avec conclusions et recommandations.”

  2. 2
    L'IA appelle les outils

    Elle enchaîne report_bundle, key_drivers, compute_index, test_significance et d'autres — tous en lecture seule, tous limités à votre compte.

  3. 3
    Un script génère le PDF

    Transmettez les chiffres renvoyés à un petit script ReportLab (ou HTML‑vers‑PDF) avec vos couleurs et votre logo. Relancez-le dès que les données changent.

Outils derrière l'exemple : report_bundle, key_drivers, get_correlation_matrix, test_significance, compute_index, get_weighted_results, query_cohort, response_timeline.

SurveyLane · RAPPORT D'ANALYSE
Vitalité au travail
Veldhoek Logistiek
Vision au niveau du groupe de l'énergie, la concentration, le stress et la récupération.
97démarrés
86complétés
89%complétion
69.2indice de bien-être
Le bien-être en un coup d'œil (0–100)
Sécurité psychologique84
Motivation79
Concentration72
Énergie71
Qualité du sommeil70
Stress (calme)64
Plus grande opportunité

22% restent assis plus de 8 h/jour et ne font jamais de mobilité — une cohorte concrète pour l'intervention. Le mouvement et l'alimentation ont le plus d'effet.

Généré via le serveur MCP SurveyLane · Confidentiel — au niveau du groupe uniquement
Exemple illustratif — entreprise fictive, chiffres au niveau du groupe uniquement.

08Limites de débit

Par utilisateur, fenêtre glissante de 60 secondes. Atteindre la limite renvoie une erreur d'outil propre avec une indication retry_after_seconds — pas un HTTP 429 — pour que votre client IA puisse temporiser sans interrompre la conversation.

reads
120 / min

Comptabilisé sur l'ensemble de vos jetons, donc créer plus de jetons ne peut pas multiplier le budget. Tous les outils sont de pures lectures de base de données.

scope
read v1

En lecture seule dans cette version. La colonne de portée existe afin que des outils d'écriture puissent être ajoutés plus tard, derrière une mise à niveau explicite.

Indications de temporisation, pas de HTTP 429

Le SDK MCP n'a pas de sémantique de réessai au niveau du transport. Les clients IA lisent BIEN le texte de l'erreur — la réponse rejetée inclut un retry_after_seconds précis.

09FAQ

Ouvrez Paramètres → API access dans SurveyLane et cliquez sur révoquer sur la ligne du jeton. C'est effectif immédiatement — la requête suivante depuis ce jeton échoue à l'authentification.
Le trafic MCP utilise POST sur ce même chemin racine. Un GET de navigateur (Accept: text/html) obtient cette page d'aide ; le flux SSE GET autonome d'un client MCP (Accept: text/event-stream) est refusé avec un 405, car notre transport sans état n'envoie aucune notification initiée par le serveur.
Uniquement lorsque l'enquête n'est pas anonyme. Pour les enquêtes anonymes, les noms et adresses e-mail des répondants ne sont jamais renvoyés — les outils ne restituent que des agrégats et des réponses anonymisées. Le réglage de confidentialité que vous avez choisi sur l'enquête est appliqué côté serveur.
Non. Chaque requête est limitée à votre propre compte via votre jeton personnel, et les données ne circulent que vers le client MCP que vous avez connecté (par ex. votre propre Claude). Le serveur ne renvoie jamais les enquêtes d'un autre utilisateur.
Le serveur renvoie la distribution brute de 0–10 comme briques de base ; l'IA calcule le NPS (promoteurs moins détracteurs). Cela garde le serveur simple et laisse le modèle raisonner sur les chiffres, paginer les grands ensembles de résultats et expliquer son raisonnement.
Pas dans cette version — le serveur MCP est en lecture seule et conçu pour l'analyse. Les jetons sont émis avec une portée de lecture. Des outils de création pourraient arriver plus tard, derrière une portée d'écriture distincte.
Oui. Demandez une analyse complète à votre IA : elle extrait les chiffres directement des outils (report_bundle, key_drivers, compute_index …) ; un petit script les transforme ensuite en un PDF à votre charte. Voyez la section Rapports pour un exemple concret.
Tout client compatible MCP via HTTP — Claude Code, Claude Desktop et Cursor sont décrits sous Installation, mais tout ce qui parle le Model Context Protocol fonctionne.
Non. Le serveur ne fait que lire vos données et les transmettre au client MCP que vous avez connecté ; SurveyLane ne les envoie nulle part ailleurs et ne s'en sert pas pour entraîner quoi que ce soit. Ce que vous demandez à votre client IA relève des conditions du fournisseur de ce client.
Oui. Les outils renvoient le contenu propre à votre enquête — néerlandais, allemand, français ou autre — et l'IA analyse et rédige dans la langue que vous demandez. Cette page elle-même est disponible en quatre langues.
En temps réel. Chaque appel d'outil lit la base de données SurveyLane au moment de la requête : vous travaillez toujours avec les réponses les plus récentes — sans synchronisation ni export.