npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@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 install

Lancement / 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 :

  1. Ouvrir Becky dans le navigateur, se connecter
  2. DevTools (F12) → Application → Session Storage → clé bk_token → copier la valeur
  3. 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 Authorization

Lancement :

BECKY_MCP_TRANSPORT=http BECKY_MCP_PORT=3002 node server.js

Chaque 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/ :

  1. Dans Claude.ai : Settings → Connectors → Add a connector
  2. Type : Custom connector (ou MCP server selon la version)
  3. URL : https://<domaine>/mcp/
  4. Authentification : Bearer token, valeur = son JWT Becky
  5. Valider