import gradio as gr import numpy as np import qrcode as qr from PIL import Image import cv2 # build qr code encoder function def qr_code_encoder(url, box_size, border_width, fill_color, back_color): """ Generate a QR code from a given URL. Args: url: The URL to generate the QR code for. fill_color: The color to fill the QR code with. back_color: The background color of the QR code. Returns: The QR code as a numpy array. """ try: qr_code = qr.QRCode(version=1, box_size=box_size, border=border_width) qr_code.add_data(url) qr_code.make(fit=True) img = qr_code.make_image(fill_color=fill_color, back_color=back_color) return np.array(img) except Exception as e: gr.Info("Failed to generate QR code!") # build Gradio MCP frontend qr_code_encoder = gr.Interface(fn=qr_code_encoder, title="QR Code MCP Server", inputs = [gr.Text(label = "URL"), gr.Slider(label = "Select Box Size:",minimum=5,maximum = 20,value = 10,step=1), gr.Slider(label="Select Border Width:",minimum=1,maximum=10,value=5,step=1), gr.Radio(label = "Select Fill Color:", choices = ["black","green","blue"], value="black"), gr.Text(label = "Enter Background Color")], outputs = gr.Image(type="pil",label="QR Code")) # if __name__ == "__main__": qr_code_encoder.launch(mcp_server = True)