URL2QR-MCP

guangxiangdebizi/URL2QR-MCP

3.2

If you are the rightful owner of URL2QR-MCP and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.

URL2QR MCP Server is a powerful tool for converting URLs into QR codes, designed for seamless integration with AI assistants and MCP clients.

Tools
1
Resources
0
Prompts
0

šŸ”— URL2QR MCP Server

npm version MCP

A powerful MCP (Model Context Protocol) server that converts URLs into QR codes with downloadable links. Built with Express and TypeScript, providing seamless integration with AI assistants like Claude.

✨ Features

  • šŸ”— URL to QR Code Conversion - Transform any URL into a scannable QR code
  • šŸ“„ Downloadable Links - Get HTTP download links for generated QR codes
  • āš™ļø Customizable Options - Control error correction level and image size
  • šŸš€ Streamable HTTP - Modern MCP transport protocol support
  • šŸŒ Remote Service Available - Use our hosted service at http://47.79.147.241:3055/mcp
  • šŸ”Œ Easy Integration - Works with Claude Desktop and other MCP clients
  • šŸŽØ Clean API - RESTful endpoints for health checks and file serving

šŸ“¦ Installation

Via npm (Global)

npm install -g @xingyuchen/url2qr-mcp

Via npm (Local Project)

npm install @xingyuchen/url2qr-mcp

From Source

git clone https://github.com/guangxiangdebizi/URL2QR-MCP.git
cd URL2QR-MCP
npm install
npm run build

šŸš€ Quick Start

Option 1: Use Remote Service (Recommended for Quick Testing) šŸŒ

No installation needed! We provide a hosted service for immediate use:

Add to your MCP client configuration (e.g., Claude Desktop's claude_desktop_config.json):

{
  "mcpServers": {
    "url2qr": {
      "type": "streamableHttp",
      "url": "http://47.79.147.241:3055/mcp",
      "timeout": 600
    }
  }
}

✨ That's it! You can now use the QR code generation tool without running your own server.

Option 2: Run Your Own Local Server

1. Start the Server
# If installed globally
url2qr-mcp

# If installed locally or from source
npm start

# For development
npm run dev

The server will start on http://localhost:3000 by default.

2. Configure MCP Client

Add to your MCP client configuration (e.g., Claude Desktop's claude_desktop_config.json):

{
  "mcpServers": {
    "url2qr": {
      "type": "streamableHttp",
      "url": "http://localhost:3000/mcp",
      "timeout": 600
    }
  }
}

3. Use the Tool

In Claude Desktop or any MCP-compatible client:

Convert https://github.com to a QR code

The AI will use the url_to_qrcode tool and provide you with a download link!

šŸ”§ API Reference

Tool: url_to_qrcode

Converts a URL into a QR code image.

Parameters:

ParameterTypeRequiredDefaultDescription
urlstringāœ… Yes-The URL to convert into a QR code
errorCorrectionLevelstringāŒ No"M"Error correction level: "L" (7%), "M" (15%), "Q" (25%), "H" (30%)
widthnumberāŒ No300Width of the QR code image in pixels

Example Response:

āœ… QR Code Generated Successfully

Original URL: https://github.com

Download Link: http://localhost:3000/qrcodes/qr-abc123.png

QR Code Details:
- Filename: qr-abc123.png
- Size: 300x300px
- Error Correction: M

🌐 HTTP Endpoints

GET /

API information and documentation.

GET /health

Health check endpoint.

Response:

{
  "status": "healthy",
  "transport": "streamable-http",
  "activeSessions": 2,
  "serverName": "URL2QR-MCP",
  "version": "1.0.0"
}

POST /mcp

MCP protocol endpoint (JSON-RPC).

GET /qrcodes/:filename

Download generated QR code images.

āš™ļø Configuration

Create a .env file in the project root:

PORT=3000
QR_OUTPUT_DIR=./qrcodes

Environment Variables:

  • PORT - Server port (default: 3000)
  • QR_OUTPUT_DIR - Directory for storing QR code images (default: ./qrcodes)

šŸ—ļø Project Structure

URL2QR-MCP/
ā”œā”€ā”€ src/
│   ā”œā”€ā”€ index.ts              # MCP server entry point
│   └── tools/
│       └── url2qr.ts         # QR code generation tool
ā”œā”€ā”€ qrcodes/                  # Generated QR codes (auto-created)
ā”œā”€ā”€ build/                    # Compiled JavaScript (auto-generated)
ā”œā”€ā”€ package.json
ā”œā”€ā”€ tsconfig.json
ā”œā”€ā”€ .env                      # Configuration
└── README.md

šŸ”’ Session Management

The server implements automatic session cleanup:

  • Sessions expire after 30 minutes of inactivity
  • Cleanup runs every 15 minutes
  • Session IDs are managed via Mcp-Session-Id headers

🌐 Deployment Options

Remote Service (Production)

We provide a hosted service at:

  • Endpoint: http://47.79.147.241:3055/mcp
  • Health Check: http://47.79.147.241:3055/health
  • Status: 🟢 Online and ready to use

This is perfect for:

  • Quick testing without setup
  • Production use without infrastructure
  • Teams sharing a single endpoint

Local Deployment

Run your own instance for:

  • Development and testing
  • Private/isolated environments
  • Custom configurations
  • On-premise requirements

šŸ“ Examples

Basic Usage

// Tool parameters
{
  "url": "https://example.com"
}

Custom Error Correction

{
  "url": "https://example.com",
  "errorCorrectionLevel": "H"  // High error correction (30%)
}

Custom Size

{
  "url": "https://example.com",
  "width": 500  // 500x500 pixels
}

šŸ¤ Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

šŸ“„ License

This project is licensed under the Apache License 2.0 - see the file for details.

šŸ‘¤ Author

Xingyu Chen

šŸ™ Acknowledgments

šŸ“š Resources


⭐ If you find this project useful, please consider giving it a star on GitHub!