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

story-theme-mcp

v1.5.0

Published

Serveur MCP du Story Thème : votre assistant IA connaît le thème Shopify Story par cœur et construit des boutiques propres et professionnelles.

Readme

MCP Story Thème

Votre assistant IA connaît le Story Thème par cœur — chaque section, chaque bloc, chaque réglage — et construit des boutiques Shopify propres et professionnelles, sans jamais produire un fichier que Shopify refuserait.

Réservé aux titulaires d'une licence Story Thème. Le jeton se génère dans l'espace membre : Story Thème > MCP & Appli.

Vous : « Crée la boutique Maison Lumen : bougies parfumées coulées à la main à Lyon. »
IA   : couleurs, polices, accueil de 9 sections, fiche produit, collection, pages Notre
       histoire / Comment utiliser / Contact / FAQ / Suivi, thème traduit, démos retirées,
       zip prêt à importer — puis trois questions pour affiner.

Installation

Le plus simple — l'extension Claude. Téléchargez story-theme-mcp.mcpb depuis votre espace membre (page MCP & Appli) et ouvrez le fichier : Claude installe le serveur et vous demande votre jeton dans un formulaire. Rien d'autre à installer, Node compris.

Les deux méthodes ci-dessous restent valables si vous préférez configurer à la main. Elles demandent Node 20 ou plus (nodejs.org).

Claude (application) — Réglages > Développeur > Modifier la configuration, puis dans claude_desktop_config.json :

{
  "mcpServers": {
    "story-theme": {
      "command": "npx",
      "args": ["-y", "story-theme-mcp@latest"],
      "env": { "STORY_MCP_TOKEN": "VOTRE_JETON" }
    }
  }
}

Claude Code :

claude mcp add story-theme --scope user -e STORY_MCP_TOKEN=VOTRE_JETON -- npx -y story-theme-mcp@latest

Redémarrez, puis demandez : « Sur quelle version du Story Thème travailles-tu ? »

Le mode d'emploi complet, avec les cas de dépannage : https://story-theme.com/mcp

Toujours la dernière version du thème

Le MCP ne contient pas le thème : au démarrage, il demande à l'espace membre la dernière version publiée, la télécharge une fois et la garde en cache. Une version sort, il la prend au démarrage suivant — rien à réinstaller. Hors ligne, il travaille sur la version en cache. Les comptes testeurs reçoivent la version en test (STORY_MCP_CANAL=test).

theme_source dit d'où vient le thème et vérifie les mises à jour à la demande.

Ce qu'il fait

| Étape | Outils | |---|---| | Connaître le thème | get_started, theme_source, search_theme, list_sections, get_section, list_blocks, get_block, get_theme_settings, get_theme_template, read_guide | | S'inspirer | inspiration : les 11 boutiques démo composées par le designer — l'ossature de leurs pages, à regarder avant de construire | | Concevoir | recipes (15 compositions de pages), generate_color_schemes, check_contrast, find_fonts | | Construire vite | build_store : la V1 complète d'une boutique en un appel (direction artistique, pages de marque, moments signature, textes, traduction, zip) | | Composer librement | compose_page : n'importe quelle page avec toutes les sections du thème, en donnant seulement le contenu (titre, texte, boutons, étapes, cartes, questions, chiffres…) | | Construire | create_project, update_brief, apply_recipe, localize_template, list_texts, edit_template, write_file, update_theme_settings, read_file, exclude_template | | Contrôler | validate_json, review_project, undo, revert_file | | Livrer | export_theme (zip à importer + check-list), import_theme (auditer un thème téléchargé d'une boutique) | | Vos boutiques | list_shops, shops_overview, shop_graphql (Admin GraphQL sur une, plusieurs ou toutes les boutiques), push_to_shop (écrire le projet dans un thème non publié, sans zip) — via l'appli Shopify Story Apps, sans aucune clé Shopify |

Prompts prêts à l'emploi : creer-boutique, refaire-une-page, auditer-un-theme. Les guides sont aussi exposés en ressources (storytheme://guides/<sujet>).

Garde-fous

  • Aucun fichier invalide n'est enregistré. Chaque modèle, groupe de sections et settings_data.json est validé contre les vrais schémas du thème : types de sections et de blocs, blocs privés, blocs statiques et leurs identifiants, réglages (identifiant, type, options, bornes et pas des curseurs), texte riche, liens, images, palettes, polices de la bibliothèque Shopify, limites Shopify (25 sections, 50 blocs, 8 niveaux). Les erreurs proposent la bonne orthographe (« vouliez-vous dire banner ? »).
  • Plus strict que Shopify Theme Check : sur un même fichier piégé, Theme Check ne voit que le bloc interdit ; le MCP refuse aussi le réglage inconnu et la valeur hors limites.
  • Revue design : textes d'exemple ou en anglais laissés sur une boutique française, faux avis et faux chiffres des presets, bouton sans lien, plusieurs <h1>, contrastes insuffisants (WCAG AA, boutons compris), polices dépréciées par Shopify (Futura → Jost…), compte à rebours qui redémarre et stock simulé (pratiques commerciales trompeuses), pop-ups multiples, rythme des palettes.
  • Jamais le code du thème : seuls templates/*.json, sections/<groupe>.json et config/settings_data.json sont modifiables, dans un dossier de projet. Le Liquid, le CSS et le JS du thème ne sont jamais touchés, ni en local ni à distance.
  • Écrire dans une boutique reste encadré : push_to_shop n'envoie que les fichiers du projet, refuse une boutique qui ne tourne pas sur un Story Thème de la même version majeure, refuse le thème publié sans confirmation explicite, et ne supprime jamais rien à distance. Les accès passent par l'appli Story Apps (OAuth par boutique, révocable par le marchand) et sont journalisés.
  • Historique : chaque écriture est précédée d'un instantané ; undo revient en arrière autant de fois que nécessaire.
  • Export bloqué tant qu'une erreur bloquante reste ; signalé « pas prêt à publier » tant qu'un point 🔴 reste.

Variables

| Variable | Défaut | Rôle | |---|---|---| | STORY_MCP_TOKEN | — | Jeton personnel (espace membre > MCP & Appli). Vérifie la licence et donne accès au thème publié. | | STORY_MCP_HOME | ~/Documents/Story Theme MCP | Projets, historique, exports, cache du thème. | | STORY_MCP_LANGUAGE | fr | Langue par défaut des projets et des textes. | | STORY_MCP_CANAL | stable | test pour la version en test du thème (comptes testeurs). | | STORY_THEME_DIR | — | Dossier de thème local, prioritaire sur le thème publié. Pour développer le thème lui-même. | | STORY_MCP_API | https://story-theme.com | Espace membre interrogé. |

Déroulé type

  1. Premier message (« Crée la boutique X, qui vend Y ») : l'IA appelle build_store sans poser de question. En un appel : couleurs et polices selon le style, accueil de 8 à 10 sections, fiche produit, collection, pages à propos / contact / FAQ / suivi, reste du thème traduit, démos retirées, textes clés de la marque placés, zip exporté.
    • Photos : avec un connecteur Shopify, l'IA copie d'abord 3 à 6 belles photos de la boutique dans Contenu > Fichiers (fileCreate) et les passe à build_store (images) : héro, histoire, ambiance. Seules les photos de 1600 px de large ou plus (images.large) vont en plein écran : une petite photo n'est jamais étirée. Sans photo : héro typographique sur la couleur de marque, et les sections qui exigent des photos sont remplacées. Jamais de carré « image manquante ».
    • Preuves : avis, note et chiffres uniquement réels (proofs). Sans eux, les sections d'avis, de chiffres et de presse sont remplacées par des sections factuelles ou catalogue, pas supprimées.
    • Direction artistique (direction) : editorial, minimal, organique, artisan, douceur, pop, energie, tech. Chacune règle arrondis, boutons, survols, transitions de page, formes de séparation animées et polices.
    • Moments signature (selon la direction et copy) : manifeste qui s'illumine au défilement, mots qui tournent dans le titre, cartes empilées, étapes de fabrication.
    • Pages de marque créées d'office : Notre histoire (page.story) et Comment utiliser (page.utilisation).
  2. Elle résume la V1, donne le zip, puis pose 3 à 5 questions (collection principale, avis réels, conditions de livraison, couleur et logo, photos).
  3. Chaque réponse s'applique au projet en cours, sans le re-préciser.
  4. review_project, puis export_theme pour un nouveau zip.
  5. Dans Shopify : Boutique en ligne > Thèmes > Ajouter un thème > Importer un fichier zip, vérifier dans l'éditeur, suivre la check-list, publier.

Limites

Le MCP ne publie jamais un thème : il écrit dans un thème non publié, le marchand vérifie et publie lui-même. Sans l'appli Story Apps installée sur la boutique, il fabrique seulement un zip à importer. Il ne crée ni produits, ni collections, ni menus, ni images, ni réductions par lui-même : shop_graphql le permet quand une boutique est connectée, sinon la check-list les liste. Et il ne remplace pas une vérification visuelle dans l'éditeur Shopify.

Développement (New Story)

npm test          # validateur, presets, recettes, couleurs, polices, projets, export, source, serveur MCP
npm run check     # après une mise à jour du thème : presets, recettes et descriptions toujours valides ?
npm run fonts     # recharge la bibliothèque de polices Shopify (shopify.dev)
npm run bundle    # fabrique build/story-theme-mcp-<version>.mcpb (extension Claude, un clic)

Après npm run bundle, déposer le .mcpb dans le dossier mcp/ de l'espace membre : la page MCP & Appli sert automatiquement la version la plus récente qu'elle y trouve.

Avec STORY_THEME_DIR sur le dépôt du thème, le MCP lit le thème en cours d'écriture et n'appelle pas l'espace membre. Les connaissances rédigées à la main vivent dans src/knowledge/ ; tout le reste vient du thème.

Publication : npm version <x.y.z> (mettre à jour src/version.js à l'identique), npm publish — prepublishOnly vérifie l'ensemble.

Licence

Propriétaire — voir LICENSE. Réservé aux licences Story Thème actives.