Qrcode MCP
An awesome mcp server for qrcode generation
Installation
npx qrcode-mcpAsk AI about Qrcode MCP
Powered by Claude · Grounded in docs
I know everything about Qrcode MCP. Ask me about installation, configuration, usage, or troubleshooting.
0/500
Reviews
Documentation
QR Code MCP Server
Un serveur MCP (Model Context Protocol) pour générer des QR codes à partir de texte ou d'URLs en utilisant Node.js et TypeScript.
đ FonctionnalitĂ©s
- Génération de QR codes en multiple formats : DataURL (base64), SVG, et affichage terminal
- Options de personnalisation avancées : Niveau de correction d'erreur, taille, marge, couleurs
- Génération en lot : Traiter plusieurs textes/URLs en une seule commande
- Interface MCP standardisée : Compatible avec tous les clients MCP
- Support TypeScript complet : Types sûrs et auto-complétion
đŠ Installation
Option 1: Docker/Podman (RecommandĂ©) đł
Prérequis: Docker ou Podman installé sur votre systÚme
# Avec Docker
docker pull antobrugnot/qrcode-mcp-server:latest
# Ou avec Podman (plus sécurisé, rootless)
podman pull antobrugnot/qrcode-mcp-server:latest
# Build local avec Docker
docker build -t qrcode-mcp-server .
# Build local avec Podman
podman build -t qrcode-mcp-server .
Option 2: Installation locale
Prérequis:
- Node.js 18.0.0 ou supérieur
- npm ou yarn
# Cloner le projet
git clone <votre-repo>
cd qrcode-mcp
# Installer les dépendances
npm install
# Builder le projet
npm run build
đ ïž Utilisation
Avec Docker/Podman (Recommandé)
# Avec Docker
docker run -i --rm antobrugnot/qrcode-mcp-server:latest
# Avec Podman (plus sécurisé)
podman run -i --rm antobrugnot/qrcode-mcp-server:latest
# Avec Docker Compose
docker-compose up qrcode-mcp-server
# Avec Podman Compose
podman-compose up qrcode-mcp-server
# Mode développement
docker-compose --profile dev up qrcode-mcp-dev
# ou
podman-compose --profile dev up qrcode-mcp-dev
Développement local
# Mode développement avec rechargement automatique
npm run dev
# Ou en mode watch
npm run watch
# Builder pour la production
npm run build
# Lancer la version buildée
npm start
đ§ Outils MCP disponibles
1. generate-qrcode-dataurl
GénÚre un QR code et le retourne sous forme de Data URL (base64).
ParamĂštres :
text(string, requis) : Le texte ou URL à encoderoptions(object, optionnel) : Options de générationerrorCorrectionLevel: 'L', 'M', 'Q', ou 'H' (défaut: 'M')width: Largeur en pixels (50-2000)margin: Marge en modules (0-10, défaut: 4)color.dark: Couleur des modules sombres (défaut: '#000000')color.light: Couleur de l'arriÚre-plan (défaut: '#FFFFFF')type: Type MIME ('image/png', 'image/jpeg', 'image/webp')
Exemple d'utilisation :
{
"text": "https://github.com",
"options": {
"width": 300,
"errorCorrectionLevel": "H",
"color": {
"dark": "#1f2937",
"light": "#f3f4f6"
}
}
}
2. generate-qrcode-svg
GénÚre un QR code au format SVG.
ParamĂštres :
text(string, requis) : Le texte ou URL à encoderoptions(object, optionnel) : Options de génération (similaires à dataurl)
Exemple d'utilisation :
{
"text": "Hello, World!",
"options": {
"width": 200,
"margin": 2
}
}
3. generate-qrcode-terminal
GénÚre un QR code pour affichage dans le terminal.
ParamĂštres :
text(string, requis) : Le texte ou URL à encoderoptions(object, optionnel) :small(boolean) : Utiliser le format compact (défaut: false)
Exemple d'utilisation :
{
"text": "Terminal QR Code",
"options": {
"small": true
}
}
4. generate-qrcode-batch
GénÚre plusieurs QR codes en une seule opération (maximum 10).
ParamĂštres :
texts(array[string], requis) : Tableau de textes/URLs à encoder (max 10)format(string, optionnel) : Format de sortie ('dataurl', 'svg', 'terminal', défaut: 'dataurl')options(object, optionnel) : Options de génération
Exemple d'utilisation :
{
"texts": [
"https://github.com",
"https://www.google.com",
"Hello World"
],
"format": "dataurl",
"options": {
"width": 200
}
}
đŻ Utilisation avec des clients MCP
Claude Desktop (ou Github Copilot)
âčïž Astuce GitHub Copilot :
Pour GitHub Copilot, la clémcpServersdans la configuration devient simplementservers.
Option 1: Avec Docker/Podman (Recommandé)
Ajoutez cette configuration Ă votre claude_desktop_config.json :
{
"mcpServers": {
"qrcode-generator": {
"command": "docker",
"args": ["run", "-i", "--rm", "antobrugnot/qrcode-mcp-server:latest"]
}
}
}
Ou avec Podman (plus sécurisé, rootless) :
{
"mcpServers": {
"qrcode-generator": {
"command": "podman",
"args": ["run", "-i", "--rm", "antobrugnot/qrcode-mcp-server:latest"]
}
}
}
Option 2: Installation locale
{
"mcpServers": {
"qrcode-generator": {
"command": "node",
"args": ["/chemin/vers/qrcode-mcp/dist/index.js"]
}
}
}
Autres clients MCP
Le serveur utilise le transport stdio standard et peut ĂȘtre utilisĂ© avec n'importe quel client MCP compatible.
đ Exemples d'utilisation
Générer un QR code simple
Générez un QR code pour "https://github.com"
QR code personnalisé
Générez un QR code pour "Mon site web" avec une largeur de 400px et des couleurs personnalisées (sombre: #2563eb, clair: #eff6ff)
QR codes en lot
Générez des QR codes pour ces URLs : https://github.com, https://stackoverflow.com, https://nodejs.org
QR code pour terminal
Générez un QR code terminal pour "Test terminal" en format compact
đ SĂ©curitĂ©
Mesures de sécurité implémentées
- Container sécurisé : Utilisation d'un utilisateur non-root (UID 1001)
- Image Alpine : Image de base minimale pour réduire la surface d'attaque
- Capabilities limitées : Suppression de toutes les capabilities Linux non nécessaires
- Read-only filesystem : Container en lecture seule pour prévenir les modifications
- Resource limits : Limites CPU et mémoire pour éviter les attaques DoS
- Security scanning : Scan automatique des vulnérabilités avec Trivy
- Dependency audit : Vérification automatique des dépendances npm
- Multi-stage build : Build optimisé sans outils de développement en production
Bonnes pratiques
- Utilisez toujours la derniÚre version taguée
- Vérifiez réguliÚrement les mises à jour de sécurité
- Surveillez les alertes GitHub Security
- Utilisez des secrets GitHub pour les tokens DockerHub
đ CI/CD
Processus automatisé
- Tests automatiques : TypeScript, build et audits de sécurité
- Build multi-architecture : Support AMD64 et ARM64
- Push automatique : DockerHub avec tags appropriés
- Scan de sécurité : Trivy pour détecter les vulnérabilités
- Release automatique : GitHub Releases avec notes générées
Variables d'environnement Ă configurer
# Dans GitHub Secrets
DOCKERHUB_TOKEN=your_dockerhub_token
đïž Architecture
qrcode-mcp/
âââ .github/
â âââ workflows/ # GitHub Actions CI/CD
âââ scripts/
â âââ release.sh # Script de release
âââ src/
â âââ index.ts # Serveur MCP principal
âââ dist/ # Fichiers compilĂ©s
âââ Dockerfile # Configuration Docker
âââ docker-compose.yml # Orchestration Docker
âââ .dockerignore # Exclusions Docker
âââ package.json # DĂ©pendances et scripts
âââ tsconfig.json # Configuration TypeScript
âââ CONFIGURATION.md # Guide de configuration
âââ README.md # Documentation
đ§ Technologies utilisĂ©es
- Node.js : Runtime JavaScript
- TypeScript : Typage statique
- @modelcontextprotocol/sdk : SDK MCP officiel
- qrcode : BibliothÚque de génération de QR codes
- zod : Validation de schémas
đ Niveaux de correction d'erreur
- L (Low) : ~7% de récupération d'erreur
- M (Medium) : ~15% de récupération d'erreur (recommandé)
- Q (Quartile) : ~25% de récupération d'erreur
- H (High) : ~30% de récupération d'erreur
đ DĂ©pannage
Erreur "Module not found"
Assurez-vous d'avoir installé les dépendances :
npm install
Erreur de compilation TypeScript
Vérifiez la configuration dans tsconfig.json et rebuilder :
npm run build
Le serveur ne démarre pas
Vérifiez que Node.js 18+ est installé :
node --version
đ Release et DĂ©ploiement
Créer une nouvelle release
# Utiliser le script de release
./scripts/release.sh v1.0.0
# Ou déclencher manuellement via GitHub Actions
# GitHub â Actions â Release â Run workflow
Processus de release automatique
- Validation : Tests, build et vérifications
- Versioning : Mise à jour package.json et création du tag
- Docker Build : Build et push multi-architecture
- Security Scan : Analyse de sécurité avec Trivy
- GitHub Release : Création avec notes automatiques
- Notification : Confirmation du succĂšs
Images Docker disponibles
# DerniĂšre version stable
docker pull antobrugnot/qrcode-mcp-server:latest
# Version spécifique
docker pull antobrugnot/qrcode-mcp-server:v1.0.0
# Version de développement (branch develop)
docker pull antobrugnot/qrcode-mcp-server:develop
đ€ Contribution
Les contributions sont les bienvenues ! N'hésitez pas à ouvrir une issue ou soumettre une pull request.
Processus de contribution
- Fork le projet
- Créer une branche feature (
git checkout -b feature/amazing-feature) - Commiter vos changements (
git commit -m 'Add amazing feature') - Pousser vers la branche (
git push origin feature/amazing-feature) - Ouvrir une Pull Request
Standards de code
- Utilisez TypeScript avec strict mode
- Suivez les conventions ESLint/Prettier
- Ajoutez des tests pour les nouvelles fonctionnalités
- Mettez à jour la documentation si nécessaire
đ Licence
MIT License - voir le fichier LICENSE pour plus de détails.
