Connectez des assistants IA à vos enquêtes, réponses et analyses Votira via le Model Context Protocol (MCP).
Le Model Context Protocol est une norme ouverte permettant de connecter des assistants IA à des systèmes externes. Votira propose des outils pour les sondages, les résultats, le panneau IA et le compte, avec des autorisations explicites pour les modifications et l’utilisation de l’IA.
Générez une seule clé d’accès MCP dans Paramètres (une clé par compte). Elle n’est affichée qu’une seule fois. Présentez-la comme un jeton Bearer sur le point de terminaison MCP :
Authorization: Bearer vot_mcp_xxxxxxxxxxxxxxxx
Vous pouvez faire une rotation ou supprimer la clé à tout moment ; la rotation invalide immédiatement le secret précédent.
Configurez tout client MCP compatible avec le transport HTTP streamable sur ce point de terminaison. Exemple de configuration :
{
"mcpServers": {
"votira": {
"url": "https://votira.co/mcp",
"headers": { "Authorization": "Bearer vot_mcp_xxxxxxxx" }
}
}
}
| Outil | Arguments | Renvoie |
|---|---|---|
list_surveys | — | Vos enquêtes avec identifiant, titre, statut et nombre de réponses. |
get_survey | survey_id | Une enquête avec ses questions et paramètres. |
get_survey_responses | survey_id, limit?, offset? | Réponses paginées pour une enquête. |
get_survey_analysis | survey_id | Analyse IA mise en cache pour l’ensemble de l’enquête et par question. |
Les nouvelles et anciennes clés MCP sont en lecture seule par défaut. Activez explicitement les autorisations d'écriture, de suppression et de crédits IA dans les paramètres. La rotation conserve les autorisations sélectionnées ; les spectateurs de l'organisation ne peuvent pas effectuer d'écritures.
Les outils de modification nécessitent l'autorisation d'écriture, les outils destructifs nécessitent l'autorisation de suppression, et les outils IA payants requièrent à la fois l'écriture et l'IA. Vérifiez les paramètres de l'outil avant d'approuver une opération d'écriture ou consommant des crédits dans votre assistant.
Les résultats JSON incluent structuredContent. Les exports de fichiers sont retournés comme ressources MCP intégrées : texte pour CSV et JSON, blobs base64 pour PDF. Les opérations asynchrones retournent jobId ; utilisez get_ai_job pour récupérer leur statut et résultat.
Les outils de gestion et d'audit de l'organisation nécessitent des privilèges administrateur. Les clés API personnelles, mots de passe, achats et suppression de compte ne sont pas accessibles en tant qu'outils.
get_integration_capabilitiesLire les opérations disponibles, les schémas, les permissions et les limites.
Autorisations requises: read
{
"additionalProperties": false,
"properties": {},
"required": [],
"type": "object"
}
create_surveyCréez un sondage, incluant pages, questions et paramètres.
Autorisations requises: write
{
"additionalProperties": false,
"properties": {
"payload": {
"type": "object"
}
},
"required": [
"payload"
],
"type": "object"
}
update_surveyModifiez le contenu, les pages, la planification et l’apparence du sondage.
Autorisations requises: 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_surveyDupliquez un sondage en tant que nouveau brouillon sans réponses.
Autorisations requises: 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_statusPubliez, fermez ou repassez un sondage en mode brouillon.
Autorisations requises: 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_surveySupprimez définitivement un sondage, ses réponses, images, analyses et vues.
Autorisations requises: delete
{
"additionalProperties": false,
"properties": {
"survey_id": {
"maxLength": 100,
"minLength": 1,
"pattern": "^[A-Za-z0-9_-]+$",
"type": "string"
}
},
"required": [
"survey_id"
],
"type": "object"
}
list_templatesListez les modèles de sondage localisés.
Autorisations requises: read
{
"additionalProperties": false,
"properties": {},
"required": [],
"type": "object"
}
get_templateConsultez un modèle localisé avec ses questions et son thème.
Autorisations requises: 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_templateCréez un sondage localisé à partir d’un modèle sans crédits AI.
Autorisations requises: 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_typesListez tous les types de questions pris en charge et les champs de configuration spécifiques.
Autorisations requises: read
{
"additionalProperties": false,
"properties": {},
"required": [],
"type": "object"
}
add_questionAjoutez une question à un sondage.
Autorisations requises: 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_questionModifiez une question tout en conservant son identité.
Autorisations requises: 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_questionSupprimez une question et réparez les références de logique.
Autorisations requises: 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_questionsRéorganisez toutes les questions en conservant l’ordre principal par page.
Autorisations requises: 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_previewObtenez les questions A/B résolues sans enregistrer de vue. Utilisez respondent_id pour associer les soumissions JSON suivantes.
Autorisations requises: 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_questionsGénérer des questions à partir d'une idée ou modifier progressivement des questions existantes. Coûte un crédit ; peut retourner un job.
Autorisations requises: 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_jobConsulter le statut et le résultat d'un job AI appartenant à ce compte.
Autorisations requises: read
{
"additionalProperties": false,
"properties": {
"job_id": {
"maxLength": 100,
"minLength": 1,
"pattern": "^[A-Za-z0-9_-]+$",
"type": "string"
}
},
"required": [
"job_id"
],
"type": "object"
}
generate_question_analysisAnalyser une question à réponse libre. Les résultats en cache sont gratuits ; une analyse fraîche coûte un crédit.
Autorisations requises: 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_analysisGénérer l'analyse AI du sondage. Les résultats en cache sont gratuits ; une analyse fraîche coûte un crédit.
Autorisations requises: 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_creditsLire les crédits AI disponibles, l'allocation, la consommation et les coûts des opérations.
Autorisations requises: read
{
"additionalProperties": false,
"properties": {},
"required": [],
"type": "object"
}
list_personasAfficher les personas dans un panel personnel ou organisationnel, éventuellement limité à un pool.
Autorisations requises: 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_personaLire une persona synthétique.
Autorisations requises: 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_personaCréer une persona manuellement sans consommer de crédits AI.
Autorisations requises: 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_personaModifier les attributs d'une persona et remplacer les adhésions aux pools si fourni.
Autorisations requises: 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_personaSupprimer une persona du panel.
Autorisations requises: 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_poolsAfficher les pools nommés et le nombre de personas dans chacun.
Autorisations requises: read
{
"additionalProperties": false,
"properties": {
"scope": {
"enum": [
"user",
"org"
],
"type": "string"
}
},
"required": [],
"type": "object"
}
get_poolLire un pool nommé et ses personas.
Autorisations requises: 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_poolCréer un pool de personas nommé.
Autorisations requises: 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_poolRenommer un pool ou modifier sa description.
Autorisations requises: 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_poolSupprimer un pool et détacher ses membres sans supprimer les personas.
Autorisations requises: 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_personasAjouter ou retirer des personas d'un pool en masse.
Autorisations requises: 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_personasImporter des personas depuis un JSON. Les métadonnées du pool sont ignorées ; les personas importés ne sont pas assignés.
Autorisations requises: 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_personasExporter des personas ou un pool en JSON ou CSV.
Autorisations requises: 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_personasGénérer des personas avec AI. Coûte cinq crédits par persona, avec remboursement en cas de résultat manquant.
Autorisations requises: 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_costEstimer les crédits nécessaires pour administrer un sondage à un pool nommé.
Autorisations requises: 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_panelAdministrer un sondage à un pool nommé. Coûte trois crédits par persona ; peut retourner un job.
Autorisations requises: 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_resultsLire les statistiques par question, les répartitions A/B, les vues, les comptes AI-panel et l'analyse des abandons.
Autorisations requises: read
{
"additionalProperties": false,
"properties": {
"survey_id": {
"maxLength": 100,
"minLength": 1,
"pattern": "^[A-Za-z0-9_-]+$",
"type": "string"
}
},
"required": [
"survey_id"
],
"type": "object"
}
get_partial_responsesConsultez les réponses en cours, séparément des soumissions complètes.
Autorisations requises: 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_resultsTéléchargez les réponses complètes au format CSV (jusqu'à 5000 par page) ou un rapport PDF des résultats.
Autorisations requises: 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_imageImportez une image PNG, JPEG, GIF ou WebP encodée en base64 (maximum 5 Mo) pour le thème du sondage.
Autorisations requises: 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_responseSoumettez une réponse complète pour un répondant externe ; applique les règles de publication, de calendrier, de logique et de doublons.
Autorisations requises: 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_responseEnregistrez automatiquement la réponse partielle d’un répondant externe lorsque la collecte est activée.
Autorisations requises: 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_accountLire le profil, la langue, le domaine, le forfait et l'accès à l'organisation.
Autorisations requises: read
{
"additionalProperties": false,
"properties": {},
"required": [],
"type": "object"
}
update_accountModifier le nom affiché, la langue du service ou le domaine personnalisé. N'affecte pas l'email, les identifiants ou la facturation.
Autorisations requises: 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_organizationConsulter l'organisation, les licences disponibles et les crédits AI partagés.
Autorisations requises: read
{
"additionalProperties": false,
"properties": {},
"required": [],
"type": "object"
}
list_organization_membersAfficher les membres, rôles, licences et la consommation AI de l'organisation. Administrateurs uniquement.
Autorisations requises: read
{
"additionalProperties": false,
"properties": {},
"required": [],
"type": "object"
}
add_organization_memberAjouter un compte Votira existant à l'organisation. Administrateurs uniquement.
Autorisations requises: 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_memberModifier le rôle ou la licence attribuée d'un membre. Administrateurs uniquement ; le propriétaire est protégé.
Autorisations requises: 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_memberRetirer un membre sans supprimer son compte. Administrateurs uniquement.
Autorisations requises: delete
{
"additionalProperties": false,
"properties": {
"member_id": {
"maxLength": 100,
"minLength": 1,
"pattern": "^[A-Za-z0-9_-]+$",
"type": "string"
}
},
"required": [
"member_id"
],
"type": "object"
}
list_organization_invitesAfficher les invitations de l'organisation sans révéler les jetons d'invitation. Administrateurs uniquement.
Autorisations requises: read
{
"additionalProperties": false,
"properties": {},
"required": [],
"type": "object"
}
create_organization_inviteCréer une invitation et retourner son URL de partage. Administrateurs uniquement.
Autorisations requises: 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_inviteRévoquer une invitation en attente dans l'organisation. Administrateurs uniquement.
Autorisations requises: delete
{
"additionalProperties": false,
"properties": {
"invite_id": {
"maxLength": 100,
"minLength": 1,
"pattern": "^[A-Za-z0-9_-]+$",
"type": "string"
}
},
"required": [
"invite_id"
],
"type": "object"
}
get_audit_logRechercher dans le journal d'audit de l'organisation. Administrateurs entreprise uniquement.
Autorisations requises: 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_logExporter jusqu'à 5000 entrées d'audit en CSV. Administrateurs entreprise uniquement.
Autorisations requises: 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_invoicesAfficher les factures personnelles payées et, pour les administrateurs, celles de l'organisation.
Autorisations requises: read
{
"additionalProperties": false,
"properties": {
"limit": {
"maximum": 500,
"minimum": 1,
"type": "integer"
},
"offset": {
"maximum": 100000,
"minimum": 0,
"type": "integer"
}
},
"required": [],
"type": "object"
}
download_invoiceTélécharger un PDF de facture payée après vérification du titulaire de la facturation.
Autorisations requises: read
{
"additionalProperties": false,
"properties": {
"invoice_id": {
"maxLength": 100,
"pattern": "^in_[A-Za-z0-9]+$",
"type": "string"
}
},
"required": [
"invoice_id"
],
"type": "object"
}
list_support_requestsAfficher les tickets de support, rapports de bugs et demandes de fonctionnalités du compte.
Autorisations requises: read
{
"additionalProperties": false,
"properties": {
"limit": {
"maximum": 500,
"minimum": 1,
"type": "integer"
},
"offset": {
"maximum": 100000,
"minimum": 0,
"type": "integer"
}
},
"required": [],
"type": "object"
}
get_support_requestLire une demande de support et les réponses de l'équipe, limité à son propriétaire.
Autorisations requises: read
{
"additionalProperties": false,
"properties": {
"submission_id": {
"maxLength": 100,
"minLength": 1,
"pattern": "^[A-Za-z0-9_-]+$",
"type": "string"
}
},
"required": [
"submission_id"
],
"type": "object"
}
create_support_requestOuvrir un ticket de support, un rapport de bug ou une demande de fonctionnalité.
Autorisations requises: 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"
}
Le point de terminaison implémente les méthodes principales MCP JSON‑RPC : initialize, tools/list et tools/call (plus ping). Exemple de liste d’outils :
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"}'
Appeler un outil
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.Créez votre première enquête alimentée par l’IA en quelques minutes et découvrez si votre idée tient la route.
Commencer l’essai gratuitEssai gratuit de 7 jours avec toutes les fonctionnalités · Aucune carte bancaire requise