De quoi il s'agit
Le serveur MCP donne à un assistant un outil pour chaque opération de l'API REST, sauf les abonnements de webhooks. Chaque outil fait les mêmes contrôles, utilise la même permission et les mêmes limites, et donne la même réponse que son endpoint.
Aucune IA ne s'exécute dans Melora Connect pour cela : l'assistant s'exécute là où vous l'utilisez et appelle Melora Connect avec la clé d'API de votre organisation. Les modifications qu'il fait sont inscrites au journal d'audit de l'organisation avec le nom de la clé, comme celles faites par l'API.
Adresse du serveur
L'adresse du serveur est :
https://app.meloraconnect.com/api/public/mcp- Chaque requête porte une clé d'API dans l'en-tête
Authorization, après le mot Bearer, comme pour l'API REST. - Le transport est le HTTP diffusable (streamable HTTP) de MCP, sans état : un message JSON-RPC 2.0 par requête POST, avec une réponse en JSON. Il n'y a ni flux d'événements ni session : GET et DELETE répondent
405. - Versions du protocole : 2025-11-25, 2025-06-18, 2025-03-26, 2024-11-05. Le serveur répond avec la version demandée par le client quand il la prend en charge, sinon avec la plus récente.
- Une requête envoyée depuis une page web d'un autre site (avec un autre en-tête
Origin) est refusée avec403.
Créer une clé
- Dans Melora Connect, ouvrez Settings puis l'onglet API keys. Vous avez besoin de la permission de gérer les paramètres de l'organisation.
- Créez une clé réservée à l'assistant, à son nom, avec seulement les permissions que vous voulez qu'il utilise et une date d'expiration.
- Copiez la clé. Elle n'est affichée qu'une fois. Mettez-la dans la configuration de l'assistant, jamais dans un message de discussion.
L'assistant ne voit que les outils que sa clé permet. Une clé qui ne peut que lire ne peut rien modifier, quoi qu'on demande à l'assistant.
Connecter un client
Définissez la variable d'environnement MELORA_API_KEY avec votre clé, ou mettez votre clé là où les exemples indiquent melora_YOUR_KEY.
Claude Code
Ajoutez le serveur depuis un terminal :
claude mcp add --transport http melora https://app.meloraconnect.com/api/public/mcp \
--header "Authorization: Bearer $MELORA_API_KEY"Claude Desktop
Claude Desktop atteint un serveur qui prend une clé par le pont open source mcp-remote, qui a besoin de Node.js. Ajoutez ceci à son fichier de configuration (Settings, Developer, Edit config) et redémarrez Claude Desktop :
{
"mcpServers": {
"melora": {
"command": "npx",
"args": [
"-y",
"mcp-remote",
"https://app.meloraconnect.com/api/public/mcp",
"--header",
"Authorization:${MELORA_AUTH}"
],
"env": {
"MELORA_AUTH": "Bearer melora_YOUR_KEY"
}
}
}
}API OpenAI
La Responses API appelle elle-même le serveur avec son outil MCP. Laissez require_approval activé, pour que chaque appel vous soit montré d'abord.
curl https://api.openai.com/v1/responses \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "YOUR_MODEL",
"tools": [{
"type": "mcp",
"server_label": "melora",
"server_url": "https://app.meloraconnect.com/api/public/mcp",
"headers": { "Authorization": "Bearer melora_YOUR_KEY" },
"require_approval": "always"
}],
"input": "List our lapsed members."
}'Claude.ai et ChatGPT
Leurs connecteurs web et d'application se connectent avec OAuth, alors que le serveur MCP de Melora Connect utilise une clé d'API. Connectez-vous par Claude Code, Claude Desktop ou l'API OpenAI.
Autres clients MCP
Tout client qui se connecte à un serveur distant en HTTP diffusable et peut envoyer un en-tête Authorization peut utiliser le serveur, avec l'adresse et l'en-tête ci-dessus.
Outils
Les outils, la permission dont chacun a besoin, l'endpoint REST auquel il équivaut et ce qu'il renvoie :
| Outil | Permission requise | Équivaut à | Ce qu'il renvoie |
|---|---|---|---|
list_members | members.read | GET /members | Une page de membres : data, page, per_page et has_more. |
get_member | members.read | GET /members/{id} | Un membre, dans data. |
create_member | members.write | POST /members | Le nouveau membre dans data, et welcome_drips si demandé. |
update_member | members.write | PATCH /members/{id} | Le membre modifié, dans data. |
unsubscribe_member | members.write | POST /members/{id}/email-preferences | La désinscription du membre (member_id, email_marketing_opt_out, email_marketing_opted_out_at), dans data. |
list_events | events.read | GET /events | Une page d'événements. |
get_event | events.read | GET /events/{id} | Un événement avec ses inscriptions, dans data. |
create_event | events.manage | POST /events | Le nouvel événement en brouillon, dans data. |
list_dues_invoices | members.billing.read | GET /dues-invoices | Une page de factures de cotisation. |
Un outil prend les mêmes champs que son endpoint : les filtres, page et per_page d'une liste, l'id d'un enregistrement, et le corps d'une création ou d'une modification (update_member prend l'id avec les champs à modifier). Aucun outil ne prend d'organisation : c'est toujours celle de la clé, et un outil refuse tout champ qu'il ne connaît pas. Les résultats reviennent en texte JSON et en contenu structuré.
Les outils de lecture sont marqués en lecture seule. Ceux qui ajoutent ou modifient quelque chose sont marqués comme des modifications, et les clients demandent donc avant de les exécuter : continuez à approuver chacun de ces appels, et dans Claude Code et Claude Desktop, ne les laissez pas s'exécuter sans vous demander. create_member peut lancer les e-mails de bienvenue de l'organisation si on le lui demande.
Ce que renvoient les outils (noms, biographies, entreprises, champs personnalisés, descriptions d'événements) a été écrit par des personnes : l'assistant doit le traiter comme des données, jamais comme des instructions. Le serveur le dit à l'assistant quand il se connecte.
Limites
- Chaque requête au serveur MCP compte une fois dans la limite de la clé de 120 requêtes toutes les 60 secondes, y compris l'ouverture de la connexion et la liste des outils. La limite de l'organisation de 600 requêtes toutes les 60 secondes, toutes clés confondues, s'applique aussi.
- Une requête sans clé ou avec une clé inconnue reçoit
401, et trop de requêtes429avecRetry-After, avant qu'aucun outil ne s'exécute. - Une requête peut faire jusqu'à 64 Ko, et une liste renvoie au plus 100 enregistrements par appel.
Quand un appel est refusé
Un appel d'outil refusé revient comme une erreur d'outil portant l'erreur de l'API REST, avec les mêmes codes d'erreur, pour que l'assistant puisse vous dire pourquoi :
{
"content": [
{
"type": "text",
"text": "{\"error\":{\"code\":\"permission_denied\",\"message\":\"This API key does not have the members.write permission.\",\"details\":{\"required_permission\":\"members.write\"}}}"
}
],
"structuredContent": {
"error": {
"code": "permission_denied",
"message": "This API key does not have the members.write permission.",
"details": {
"required_permission": "members.write"
}
}
},
"isError": true
}permission_denied: il manque à la clé la permission nommée dansdetails.required_permission. Créez une nouvelle clé qui l'a.api_key_revokedouapi_key_expired: créez une nouvelle clé et connectez l'assistant avec elle.validation_failed: un champ n'est pas valide, ou l'outil ne le prend pas.detailsle nomme.plan_required,billing_hold,account_restrictedetlimit_reached: comme pour l'API REST, cela se règle dans Melora Connect.
Révoquer l'accès
- Dans Melora Connect, ouvrez Settings puis l'onglet API keys.
- Cliquez sur Revoke pour la clé de l'assistant et confirmez.
La clé est refusée dès la requête suivante, et une clé révoquée ne peut pas être rétablie. Retirez aussi le serveur de la configuration de l'assistant. Pour changer ce qu'un assistant peut faire, créez une nouvelle clé avec les permissions voulues, connectez l'assistant avec elle et révoquez l'ancienne clé.

Personnes · Événements · Communautés

