QR Code MCP Server
This MCP server generates highly customizable QR codes from text or URLs in multiple formats with batch processing capabilities.
• Generate QR codes as Data URLs: Create base64-encoded images in PNG, JPEG, or WebP formats • Generate QR codes as SVG: Produce scalable vector graphics for crisp display at any size • Generate QR codes for terminal display: Create QR codes optimized for terminal output with compact format option • Batch processing: Generate up to 10 QR codes simultaneously in a single operation • Advanced customization: Control error correction levels (L, M, Q, H), dimensions (50-2000px), margins (0-10 modules), and custom color schemes with hexadecimal codes • Standardized MCP interface: Compatible with all MCP clients including Claude Desktop and GitHub Copilot • Multiple deployment options: Available via Docker, Podman, or local Node.js installation
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@QR Code MCP Servergenerate a QR code for https://mywebsite.com with blue color and high error correction"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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-devDé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.orgQR 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 installErreur de compilation TypeScript
Vérifiez la configuration dans tsconfig.json et rebuilder :
npm run buildLe 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 workflowProcessus 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.
🔗 Liens utiles
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/antoBrugnot/qrcode-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server