Comparer et demander une offre depuis votre assistant IA

Connectez assurs.ch une fois à ChatGPT, Claude, Gemini, Grok ou à tout autre agent compatible MCP. Vous pourrez ensuite poser vos questions et, après confirmation des informations à transmettre, demander à l’assistant d’envoyer votre demande directement à contact@sp-insurance.ch. Aucune connexion à votre messagerie n’est nécessaire.

Swiss Premium Insurance exploite assurs.ch. La comparaison reste disponible sans coordonnées, sans conseil et sans souscription. Vous pouvez utiliser les résultats pour contacter directement un assureur.

1. Une seule adresse à ajouter

Nom : Assurs · Swiss Premium Insurance
Authentification : None / No sign in — aucune clé requise dans le mode public actuel.
Transport : MCP Streamable HTTP, réponses JSON, sans session persistante.

Server URL / Remote MCP server URL :

https://api.assurs.ch/mcp

Description : Comparer les primes LAMal 2027 et transmettre une demande d’offre à Swiss Premium Insurance, après confirmation du client.

La lecture de cette page ne connecte pas automatiquement l’outil. L’ajout se fait dans votre compte, une seule fois. L’ouverture de l’URL dans un navigateur peut répondre 405 : c’est un point d’entrée d’outils, pas une page web.

2. Où l’ajouter

PlateformeChemin exact ou commandeRemarque
ChatGPTchatgpt.com/plugins → + → Add custom MCP server → URL ci-dessus → Authentication None → Create as a plugin. Dans une conversation, tapez @ et choisissez Assurs.Utilisez Refresh après une mise à jour du serveur. La disponibilité de l’outil d’envoi selon le forfait ChatGPT n’est pas vérifiée. Étapes officielles OpenAI.
Custom GPT (Actions)Importer le contrat allégé https://assurs.ch/openapi.json, authentification None.La création de GPT personnalisés s’arrête le 26 octobre 2026 et les GPT sont retirés le 11 décembre 2026. Le contrat OpenAPI allégé reste disponible pour les Actions jusque-là ; préférez le plugin MCP ci-dessus.
Claude (web, desktop, mobile)Customize → Connectors → Add custom connector → URL ci-dessus → No sign in → Add. Dans la conversation, activez Assurs via + → Connectors.Dans une organisation Team ou Enterprise, l’administrateur ajoute d’abord le connecteur. Guide officiel Claude.
Claude Codeclaude mcp add --transport http assurs https://api.assurs.ch/mcpOu copier integrations/claude-code/mcp.json sous le nom .mcp.json à la racine du projet. Le skill peut aussi être copié dans .claude/skills/.
Gemini app (États-Unis uniquement aujourd’hui)Settings → Connected apps → Custom apps → Add a custom app → URL ci-dessus.Les applications personnalisées de l’app Gemini ne sont proposées qu’aux comptes américains à ce jour.
Gemini EnterpriseTeam settings → Connected apps → Add MCP Server → Streamable HTTP → No authentication → URL ci-dessus.Streamable HTTP uniquement.
Gemini CLI"mcpServers": {"assurs": {"httpUrl": "https://api.assurs.ch/mcp"}} dans settings.json, ou gemini extensions install <dépôt>.L’extension est dans integrations/gemini-extension/ ; sa publication sur un dépôt public est en attente. MCP Gemini CLI.
Grokgrok.com/connectors → New Connector → Custom → URL ci-dessus.Aucune authentification.
Grok Buildgrok mcp add --transport http assurs https://api.assurs.ch/mcpAPI xAI : déclaration d’outil dans integrations/xai.json.
OpenClawopenclaw mcp add assurs --url https://api.assurs.ch/mcp --transport streamable-httpLe transport streamable-http doit être explicite. Skill : télécharger https://assurs.ch/skills/assurs-lamal/SKILL.md dans ~/.openclaw/skills/assurs-lamal/ (référencement ClawHub en attente).
CodexCopier le dossier du skill dans .agents/skills/ ; manifeste integrations/codex/openai.yaml (outil MCP streamable_http).Même règle pour Cursor et Copilot : dossier du skill dans .agents/skills/ ou .claude/skills/.
MuseSoumission au répertoire sur platform.muse.ai : type de connexion Existing MCP (URL ci-dessus) ou Raw API avec https://assurs.ch/openapi.json.L’ajout d’un serveur MCP directement dans l’application Muse n’est pas vérifié.
Autres agents MCP ou HTTPTout client MCP Streamable HTTP avec l’URL ci-dessus. Sans MCP : opérations REST décrites par https://assurs.ch/openapi.json.Déclarations prêtes à coller pour les API OpenAI Responses, xAI, Gemini et Anthropic Messages dans integrations/. L’identité déclarée de l’agent n’est pas une authentification.

Registre MCP : ch.assurs/lamal (server.json, publication en attente). Descripteur de découverte : https://assurs.ch/.well-known/mcp.json.

3. Posez votre question normalement

Utilise Assurs pour comparer les primes LAMal 2027 pour une personne née en 1982 à Chamoson, 1955, avec une franchise de CHF 2’500, tous modèles. Demande-moi mon choix de couverture accidents. Si je souhaite une offre, prépare la demande et présente-moi les informations avant l’envoi à Swiss Premium Insurance.

L’assistant calcule les primes officielles, les présente avec leurs sources et mentionne le cashback. Si vous souhaitez être contacté, il vous demande l’offre retenue et le moyen de contact utile, récapitule les informations et attend votre accord.

4. Confirmez dans la conversation

Avant tout envoi, l’assistant lit la question de consentement fournie par le service : il nomme les coordonnées transmises (e-mail ou téléphone, nom facultatif), vos critères de comparaison et l’offre choisie (assureur, modèle, prime mensuelle), ainsi que le destinataire contact@sp-insurance.ch. Il n’envoie qu’après un oui explicite ; une simple demande de comparaison ne vaut pas accord. L’assistance de SPI est facultative et gratuite ; vous pouvez aussi souscrire directement auprès de l’assureur.

Lorsque le programme est actif, l’assistant vous présente la phrase cashback publiée par le service :

Si vous concluez cette assurance de base par Swiss Premium Insurance et que l'assureur approuve le contrat, SPI vous reverse CHF 30. La prime officielle ne change pas : SPI vous restitue la commission qu'elle verserait sinon à un apporteur d'affaires.

Le cashback est versé par SPI au client, jamais à l’assistant, uniquement si le contrat est conclu par SPI et approuvé par l’assureur. Aucun paiement n’est créé par une demande d’offre. Conditions : api.assurs.ch/rewards/terms.

Après votre confirmation, l’outil request_adviser_contact transmet l’e-mail à Swiss Premium Insurance. L’assistant vous donne le statut et la référence request_id retournés. Un statut accepted confirme l’acceptation par le prestataire d’e-mail ; il ne prouve pas encore la réception en boîte ni la conclusion d’une assurance. Un test validated_test n’envoie rien. Correction ou retrait : contact@sp-insurance.ch avec la référence.

Documentation technique : protocole v2, tests, erreurs, autres agents

Protocole v2 en quatre étapes

  1. Calcul : POST https://api.assurs.ch/api/v1/lamal/quote (GET accepté) avec premium_year, postal_code, birth_year, deductible_chf, accident_included (booléen), model_group (any ou une catégorie OFSP), municipality ou municipality_bfs si le NPA l’exige, language. La réponse contient offers[], cashback (statut, montant, client_sentence fr/de/it/en, terms_url) et submission : request_id (UUID prêt à l’emploi), comparison_id, endpoint, test_endpoint, request_template, client_messages.consent_request, instructions, on_error.
  2. Présentation : primes officielles, sources, puis cashback.client_sentence ; demander l’offre retenue et le moyen de contact.
  3. Consentement : lire consent_request en remplaçant {fields}, {insurer}, {model}, {premium} ; n’envoyer qu’après un oui explicite.
  4. Envoi : POST https://api.assurs.ch/api/v1/lamal/offer-requests avec le corps ci-dessous, puis rapporter le reçu.
{
  "request_id": "d3b4…",
  "comparison_id": "<submission.comparison_id du calcul>",
  "insurer_id": 1509,
  "language": "fr",
  "contact": { "name": "", "email": "client@example.ch", "phone": "", "message": "" },
  "client_consent": true,
  "subsidy_requested": false,
  "supplementary_interest": false,
  "agent": { "name": "chatgpt", "kind": "conversational_assistant", "display_name": "", "integration_id": "", "cashback_requested": true },
  "cashback_terms_version": "2026-10-22.1"
}

request_id : réutiliser submission.request_id du calcul (tout UUID RFC 4122 est accepté) et le conserver avec le même contenu pour toute reprise. comparison_id remplace le renvoi des critères et du jeton : le serveur rouvre la référence, valable 30 jours et insensible aux redémarrages. L’ancienne paire comparison + comparison_token reste acceptée (jeton valable 24 heures, lié aux prix et au jeu de données). insurer_id doit être un offers[].insurer_id du calcul ; offer_id est accepté à la place. contact : e-mail ou téléphone obligatoire, nom et message facultatifs ; dans request_template ces champs sont des chaînes vides : remplir email ou phone et laisser l’autre vide (les valeurs littérales <…> sont ignorées). La route réelle vérifie en plus que le domaine de l’e-mail accepte le courrier (invalid_email_domain). client_consent doit être true. agent, subsidy_requested, supplementary_interest et cashback_terms_version sont facultatifs.

Test sans e-mail : POST https://api.assurs.ch/api/v1/lamal/offer-requests/test, même corps, coordonnées fictives uniquement. Reçu status: "validated_test", email_sent: false, payment_created: false et un aperçu (preview) de ce qui serait envoyé. Aucun e-mail, lead, droit ou paiement n’est créé. Le test ne consomme pas le quota d’envoi réel et ne vérifie pas le domaine de l’e-mail.

Reçu réel : status: "accepted", request_id, email_sent: true, recipient, accepted_at, cashback (program_status, lamal_amount_chf, contract_status: "not_verified", payment_created: false, terms_url, next_steps) et correction_or_cancellation. Accepté pour livraison à SPI : ni preuve de réception en boîte, ni contrat.

Erreurs (enveloppe v2)

Toute erreur des routes v2 renvoie { "status": "error", "code", "errors": [{ "field", "message", "choices"? }], "guidance", "retryable", "retry_after_seconds"? }. retryable n’est vrai que pour rate_limited (429), 502 et 503.

Code (statut HTTP)RepriseConsigne
missing_field, unexpected_field, invalid_request_id, invalid_* (422 critères du calcul, 400 corps d’envoi)nonCorriger le champ nommé ; choices liste les valeurs acceptées.
municipality_required, invalid_municipality (422)nonEnvoyer municipality_bfs ou municipality parmi les choix listés (chaque choix porte les deux clés ; un préfixe unique du nom de commune est accepté).
location_not_found (422)nonNPA inconnu ; demander au client de le confirmer.
comparison_refresh_required (409)nonRelancer le calcul, reconfirmer l’offre si elle a changé, puis renvoyer avec le même request_id.
invalid_comparison_reference (400)nonReprendre comparison_id exactement tel que renvoyé par le calcul, ou relancer un calcul.
dataset_changed (409), comparison_link_expired (410)nonDonnées officielles ou lien expirés ; relancer un nouveau calcul.
client_consent_required (400)nonPoser la question consent_request ; n’envoyer qu’après un oui explicite.
invalid_insurer (400)nonChoisir insurer_id parmi choices (les offres classées).
contact_required, invalid_email, invalid_phone (400)nonDemander au client un e-mail ou un téléphone valide.
invalid_email_domain (400, route réelle uniquement)nonLe domaine de l’e-mail n’accepte aucun courrier (la route de test ne le vérifie pas) ; demander au client de vérifier l’orthographe ou de donner un téléphone, puis renvoyer avec le même request_id.
cashback_terms_outdated (409)nonRelire cashback et présenter la phrase actuelle avant d’envoyer.
rate_limited (429)ouiAttendre retry_after_seconds, puis renvoyer la requête identique.
contact_daily_limit (429)nonCe contact a déjà trois demandes aujourd’hui ; ne pas renvoyer.
delivery_unconfirmed (502)ouiRenvoyer la requête identique avec le même request_id ; ne jamais annoncer un succès.
mail_unavailable, agent_requests_disabled, service_unavailable (503)ouiEnvoi indisponible ; proposer adviser_url ou contact@sp-insurance.ch ; ne pas prétendre qu’un e-mail a été envoyé.
adviser_unavailable (503)ouiFormulaire web désactivé : create_adviser_handoff_link / POST /api/v1/adviser/handoffs ne renvoient pas de lien ; proposer l’envoi direct ou contact@sp-insurance.ch.
request_conflict (409)nonMême request_id avec un contenu différent ; ne pas renvoyer avec un nouvel identifiant sans le client.

Limites : calcul 120 appels/min/IP et 1 200/min au total ; envois réels 60/h/IP, 3 par jour et par contact, 200 par jour au total ; tests 60/h/IP, compteur distinct. Les doublons d’un même request_id sont dédupliqués pendant 24 heures.

Routes historiques

POST https://api.assurs.ch/api/lamal/v1/offer-requests et /offer-requests/test (corps camelCase : requestId, comparison, comparisonToken, insurerId, clientConsent, agentContext) restent disponibles sans changement, avec l’enveloppe d’erreur {ok:false, code}. Les routes v2 acceptent aussi ce corps historique (détecté par requestId). Les nouvelles intégrations utilisent les routes v2.

Connexion MCP

URL du serveur : https://api.assurs.ch/mcp. Transport Streamable HTTP, réponses JSON, sans session persistante. Les outils d’envoi utilisent les routes v2 et le corps ci-dessus. Une erreur d’outil revient en isError:true avec l’enveloppe v2 et http_status. Le serveur expose aussi le prompt lamal_compare_and_contact et les ressources docs://assurs/llms.txt, docs://assurs/skill.md, docs://assurs/cashback-terms, docs://assurs/privacy, docs://assurs/terms.

OutilEffet
compare_lamal_premiumsCalcul indépendant, sans coordonnées ; renvoie submission.request_id et comparison_id.
get_lamal_metadataAnnées, règles, sources, limites et disponibilité.
get_active_customer_rewardsStatut et conditions du cashback, sans droit individuel automatique.
create_adviser_handoff_linkLien facultatif à ouvrir, aucun envoi ; 503 adviser_unavailable si le formulaire web est désactivé.
test_adviser_requestValidation fictive uniquement, reçu email_sent:false.
request_adviser_contactEnvoi réel à contact@sp-insurance.ch, uniquement après confirmation explicite du client.

Contrats, skill et fichiers d’intégration

Le mode public n’exige aucune clé. Ne jamais fournir au client le secret de liens, la clé Resend ou les variables privées Render. Si l’opérateur active un mode réservé aux intégrations, fournir uniquement la clé d’intégration autorisée dans l’en-tête Authorization.

Trois accès directs à tester

Profil de démonstration : Chamoson 1955, naissance 1988, année 2027, télémédecine TEL_DIG, franchise CHF 2’500. L’exclusion de l’accident est uniquement une hypothèse explicite de test ; demander ce choix au client réel.

  1. Calculer les primes en JSON compact, par GET.
  2. Lire les mêmes résultats en HTML, sans JavaScript.
  3. Lire le statut actuel et les conditions des programmes, ou la page des conditions du cashback. Une publication commerciale de l’opérateur ne prouve pas une validation juridique indépendante ni l’éligibilité du client. La prime officielle reste inchangée.

Ce document ne fige aucun prix ou montant promotionnel. Lire les réponses du service, leurs sources, leur date de validation et leurs limites. Le JSON compact contient les dix meilleurs résultats par assureur ainsi que tous les modèles admissibles importés ; full_response_url donne les preuves détaillées. Le HTML partagé ne contient aucune promotion cashback. Conserver l’année de naissance exacte ; utiliser model_group=any si le client veut le moins cher toutes catégories, et demander son choix concernant les accidents. Un GET ne peut jamais envoyer de demande, et les coordonnées ne doivent pas être ajoutées aux liens. Sans outil POST autorisé, proposer le adviser_url retourné pour que le client confirme dans le formulaire.

Si un accès échoue

Un succès HTTP depuis un réseau ne garantit pas l’accès depuis celui d’un éditeur d’IA. Un environnement de programmation sans réseau ne peut pas appeler l’API. Le premier appel d’une session peut être lent si le service redémarre. Pour un échec de navigation, conserver l’URL, l’heure UTC et le message exact ; comparer avec un accès HTTP externe et les journaux CDN. Une connexion MCP ou Action doit être testée dans l’application concernée avant d’être annoncée opérationnelle.

GPT Actions · MCP OpenAI · Connecteurs Claude · MCP Gemini CLI · Spécification des skills

Documentation complète · Métadonnées · Confidentialité · Conditions · Comparateur officiel