@jacquesf/becky-mcp
v0.2.0
Published
Serveur MCP exposant les données Becky (via SW_query) à Claude
Readme
Becky MCP
Serveur MCP (Model Context Protocol) qui expose les données Becky à Claude.
Permet à Claude (via Claude Code, Claude Desktop ou Claude.ai+Team) d'interroger 4D pour répondre à des questions analytiques.
Outils exposés
| Tool | Rôle |
|---|---|
| sw_query | Exécute une requête ORDA sur 4D (le moteur de SW_query) |
| read_schema | Renvoie le contenu de SCHEMA.md (structure de la base, conventions) |
Architecture
Claude (client MCP) ──stdio──► node server.js ──HTTPS──► /SW_query ──► 4D
▲
│ BECKY_TOKEN (env)Le serveur ne fait aucune validation du token : il relaie tel quel vers 4D, qui applique le filtrage par profil. C'est intentionnel pour simplicité.
Installation locale
cd mcp
npm installLancement / test manuel
Le serveur MCP communique en stdio et n'est pas pensé pour être lancé à la main : il est démarré automatiquement par Claude Code / Desktop.
Pour vérifier qu'il démarre sans erreur :
BECKY_API_URL=http://127.0.0.1:1979 BECKY_TOKEN="..." node server.js(Le process attend des messages JSON-RPC sur stdin. Ctrl+C pour quitter.)
Configuration Claude Code
Ajouter dans ~/.claude/settings.json (config globale) ou .claude/settings.json du projet :
{
"mcpServers": {
"becky": {
"command": "node",
"args": ["/Users/Jefferson/Documents/beckywasserman/Becky/mcp/server.js"],
"env": {
"BECKY_API_URL": "http://127.0.0.1:1979",
"BECKY_TOKEN": "VOTRE_JWT_ICI"
}
}
}
}Récupérer le token :
- Ouvrir Becky dans le navigateur, se connecter
- DevTools (F12) → Application → Session Storage → clé
bk_token→ copier la valeur - Coller dans
BECKY_TOKEN
Le token expire au bout de quelques heures d'inactivité. Si Claude vous dit "session expirée", récupérez un nouveau token.
Vérification
Une fois la config en place, redémarrer Claude Code. Dans une session :
« Liste les outils MCP disponibles »
Claude devrait mentionner becky avec sw_query et read_schema. Puis :
« Lis le schéma Becky puis donne-moi les 5 premiers clients par CA en 2024 »
Claude appellera read_schema, comprendra la structure, puis appellera sw_query avec les bons paramètres.
Sécurité
- Le serveur écoute uniquement sur stdio (pas exposé sur le réseau)
- Le token est en clair dans la config — équivalent à un mot de passe, ne pas commit
- En cas de doute, déconnecter la session Becky pour invalider le token
Mode HTTP (production / multi-utilisateurs)
Le même server.js supporte aussi un transport HTTP pour exposer le MCP à plusieurs utilisateurs via Claude.ai (abonnement Team requis).
Variables d'environnement :
BECKY_MCP_TRANSPORT=http # active le mode HTTP
BECKY_MCP_PORT=3002 # port d'écoute (défaut 3002)
BECKY_API_URL=http://127.0.0.1:1979 # URL 4D (inchangée)
# Pas de BECKY_TOKEN : chaque requête HTTP fournit son propre header AuthorizationLancement :
BECKY_MCP_TRANSPORT=http BECKY_MCP_PORT=3002 node server.jsChaque requête HTTP doit fournir le JWT de l'utilisateur dans le header Authorization: Bearer <token>. Le serveur extrait ce token et le relaie à 4D (qui applique le filtrage par profil habituel).
Le serveur écoute sur 127.0.0.1 uniquement — il doit être exposé via Nginx en HTTPS. Voir Docs/installation_serveur.md pour la procédure complète (PM2 + Nginx + Let's Encrypt).
Configuration côté utilisateur Claude.ai
Une fois le serveur déployé sur https://<domaine>/mcp/ :
- Dans Claude.ai : Settings → Connectors → Add a connector
- Type : Custom connector (ou MCP server selon la version)
- URL :
https://<domaine>/mcp/ - Authentification : Bearer token, valeur = son JWT Becky
- Valider
