✨ From vibe coding to vibe deployment. UBOS MCP turns ideas into infra with one message.

Learn more

#+TITLE: MCP QR Code Server

  • Overview Generate QR codes seamlessly using the Model Context Protocol (MCP). This server connects large language models to QR code generation capabilities across multiple client interfaces.

  • Features

  • Generate QR codes for multiple content types:
    • URLs and website links
    • WiFi network credentials
    • Contact information (vCard)
    • Plain text
    • Calendar events (iCal)
  • Multiple output formats:
    • PNG images (base64-encoded)
    • ASCII/text representation
    • Data URL format
  • Customization options:
    • Size adjustment (100-1000px)
    • Error correction levels (L, M, Q, H)
    • Format selection (image, text)
  • Quick Examples

#+begin_example Please generate a QR code for https://example.com #+end_example

#+begin_example Generate a QR code for the Wi-Fi network β€œGuestWiFi” with password β€œWelcome123” #+end_example

#+begin_example Create a QR code for my contact information: Name: John Doe Email: john@example.com Phone: 555-123-4567 #+end_example

  • Installation

#+begin_src bash npm install -g @jwalsh/mcp-server-qrcode #+end_src

  • Usage

** Claude Desktop #+begin_src json { β€œmcpServers”: { β€œqrcode”: { β€œcommand”: β€œnpx”, β€œargs”: [ β€œ-y”, β€œ@jwalsh/mcp-server-qrcode” ] } } } #+end_src

For detailed setup instructions, please refer to:

  • [[https://modelcontextprotocol.io/quickstart/user][MCP for Claude Desktop Users]]
  • [[https://modelcontextprotocol.io/quickstart/server][Building MCP Servers]]
  • [[https://docs.anthropic.com/en/docs/agents-and-tools/mcp][Anthropic MCP Documentation]]

** Claude Desktop

#+begin_src json { β€œmcpServers”: { β€œqrcode”: { β€œargs”: [ β€œ-y”, β€œ@jwalsh/mcp-server-qrcode” ], β€œcommand”: β€œnpx” } } } #+end_src

** Emacs with mcp.el #+begin_src elisp :results silent ;; Basic installation with straight.el (use-package mcp :straight (mcp :type git :host github :repo β€œlizqwerscott/mcp.el”)) #+end_src

#+begin_src elisp :results silent ;; Connect to the QR code server (mcp-connect-server β€œqrcode” β€œnpx” '(β€œ-y” β€œ@jwalsh/mcp-server-qrcode”) :initial-callback (lambda (connection) (message β€œConnected to %s” (jsonrpc-name connection))) :tools-callback (lambda (connection tools) (message β€œAvailable tools: %s” tools))) #+end_src

#+begin_src elisp :results raw :wrap example ;; Generate a QR code (let ((connection (gethash β€œqrcode” mcp-server-connections))) (mcp-call-tool connection β€œgenerate-qrcode” '(:content β€œhttps://example.com” :format β€œtext”))) #+end_src

#+RESULTS: #+begin_example (:content [(:type text :text QR Code for β€œhttps://example.com”:

β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ β–ˆβ–ˆβ–ˆβ–ˆ β–„β–„β–„β–„β–„ β–ˆβ–„β–€ β–ˆ β–€ β–ˆβ–€β–ˆ β–„β–„β–„β–„β–„ β–ˆβ–ˆβ–ˆβ–ˆ β–ˆβ–ˆβ–ˆβ–ˆ β–ˆ β–ˆ β–ˆβ–„ β–„β–ˆβ–€ β–€β–ˆβ–„β–ˆ β–ˆ β–ˆ β–ˆβ–ˆβ–ˆβ–ˆ β–ˆβ–ˆβ–ˆβ–ˆ β–ˆβ–„β–„β–„β–ˆ β–ˆβ–€ β–ˆ β–€β–ˆ β–ˆβ–ˆβ–ˆ β–ˆβ–„β–„β–„β–ˆ β–ˆβ–ˆβ–ˆβ–ˆ β–ˆβ–ˆβ–ˆβ–ˆβ–„β–„β–„β–„β–„β–„β–„β–ˆβ–„β–€β–„β–ˆ β–ˆ β–€ β–ˆβ–„β–„β–„β–„β–„β–„β–„β–ˆβ–ˆβ–ˆβ–ˆ β–ˆβ–ˆβ–ˆβ–ˆ β–€β–„β–€β–€β–€β–„β–„β–€β–€ β–„β–€β–„β–€β–€ β–ˆβ–€β–„β–€ β–ˆβ–ˆβ–ˆβ–ˆ β–ˆβ–ˆβ–ˆβ–ˆβ–„β–€β–ˆβ–„β–€ β–„β–„β–€ β–€β–€β–ˆβ–„β–€β–„β–ˆβ–€β–„ β–„β–ˆβ–„β–ˆβ–ˆβ–ˆβ–ˆ β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–€β–€β–„ β–„β–„β–„ β–€ β–ˆ β–„β–ˆ β–ˆ β–ˆβ–ˆβ–ˆβ–€ β–ˆβ–ˆβ–ˆβ–ˆ β–ˆβ–ˆβ–ˆβ–ˆβ–„β–„β–„β–ˆβ–„β–„β–„β–€β–„β–€β–ˆβ–€ β–„ β–„ β–„β–€β–€ β–„β–ˆβ–„β–ˆβ–ˆβ–ˆβ–ˆ β–ˆβ–ˆβ–ˆβ–ˆβ–„β–„β–ˆβ–ˆβ–„β–ˆβ–„β–„β–€β–„β–ˆβ–ˆβ–ˆ β–ˆ β–„β–„β–„ β–ˆβ–ˆβ–„β–€β–ˆβ–ˆβ–ˆβ–ˆ β–ˆβ–ˆβ–ˆβ–ˆ β–„β–„β–„β–„β–„ β–ˆβ–„β–ˆβ–„β–„β–ˆβ–€β–ˆβ–€ β–ˆβ–„β–ˆ β–ˆβ–ˆβ–€ β–ˆβ–ˆβ–ˆβ–ˆ β–ˆβ–ˆβ–ˆβ–ˆ β–ˆ β–ˆ β–ˆβ–ˆ β–ˆβ–„ β–„β–ˆβ–„β–„ β–„β–„ β–ˆβ–€ β–„β–ˆβ–ˆβ–ˆβ–ˆ β–ˆβ–ˆβ–ˆβ–ˆ β–ˆβ–„β–„β–„β–ˆ β–ˆβ–„ β–ˆβ–€ β–„ β–€ β–„β–ˆβ–„β–„β–ˆβ–ˆβ–ˆβ–ˆ β–ˆβ–ˆβ–ˆβ–ˆβ–„β–„β–„β–„β–„β–„β–„β–ˆβ–„β–„β–„β–ˆβ–ˆβ–„β–„β–ˆβ–„β–ˆβ–„β–ˆβ–ˆβ–„β–ˆβ–ˆβ–„β–ˆβ–ˆβ–ˆβ–ˆ β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ )]) #+end_example

** MCP Inspector

#+begin_src bash npx -y @modelcontextprotocol/inspector npx -y @jwalsh/mcp-server-qrcode #+end_src

** NPM Package CLI

#+begin_src bash

Verify installation

echo β€˜{β€œmethod”:β€œtools/list”,β€œparams”:{},β€œid”:1,β€œjsonrpc”:β€œ2.0”}’ | mcp-server-qrcode | jq -r β€˜.result.tools[]|.name’ #+end_src

#+RESULTS: : generate-qrcode

#+begin_src bash :results raw :results raw

Generate QR code via JSON-RPC

echo β€˜{β€œmethod”:β€œtools/call”,β€œparams”:{β€œname”:β€œgenerate-qrcode”,β€œarguments”:{β€œcontent”:β€œhttps://example.com”,β€œformat”:β€œtext”}},β€œid”:1,β€œjsonrpc”:β€œ2.0”}’ | mcp-server-qrcode | jq -r β€˜.result.content[0].text’ #+end_src

#+RESULTS: QR Code for β€œhttps://example.com”:

β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ β–ˆβ–ˆβ–ˆβ–ˆ β–„β–„β–„β–„β–„ β–ˆβ–„β–€ β–ˆ β–€ β–ˆβ–€β–ˆ β–„β–„β–„β–„β–„ β–ˆβ–ˆβ–ˆβ–ˆ β–ˆβ–ˆβ–ˆβ–ˆ β–ˆ β–ˆ β–ˆβ–„ β–„β–ˆβ–€ β–€β–ˆβ–„β–ˆ β–ˆ β–ˆ β–ˆβ–ˆβ–ˆβ–ˆ β–ˆβ–ˆβ–ˆβ–ˆ β–ˆβ–„β–„β–„β–ˆ β–ˆβ–€ β–ˆ β–€β–ˆ β–ˆβ–ˆβ–ˆ β–ˆβ–„β–„β–„β–ˆ β–ˆβ–ˆβ–ˆβ–ˆ β–ˆβ–ˆβ–ˆβ–ˆβ–„β–„β–„β–„β–„β–„β–„β–ˆβ–„β–€β–„β–ˆ β–ˆ β–€ β–ˆβ–„β–„β–„β–„β–„β–„β–„β–ˆβ–ˆβ–ˆβ–ˆ β–ˆβ–ˆβ–ˆβ–ˆ β–€β–„β–€β–€β–€β–„β–„β–€β–€ β–„β–€β–„β–€β–€ β–ˆβ–€β–„β–€ β–ˆβ–ˆβ–ˆβ–ˆ β–ˆβ–ˆβ–ˆβ–ˆβ–„β–€β–ˆβ–„β–€ β–„β–„β–€ β–€β–€β–ˆβ–„β–€β–„β–ˆβ–€β–„ β–„β–ˆβ–„β–ˆβ–ˆβ–ˆβ–ˆ β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–€β–€β–„ β–„β–„β–„ β–€ β–ˆ β–„β–ˆ β–ˆ β–ˆβ–ˆβ–ˆβ–€ β–ˆβ–ˆβ–ˆβ–ˆ β–ˆβ–ˆβ–ˆβ–ˆβ–„β–„β–„β–ˆβ–„β–„β–„β–€β–„β–€β–ˆβ–€ β–„ β–„ β–„β–€β–€ β–„β–ˆβ–„β–ˆβ–ˆβ–ˆβ–ˆ β–ˆβ–ˆβ–ˆβ–ˆβ–„β–„β–ˆβ–ˆβ–„β–ˆβ–„β–„β–€β–„β–ˆβ–ˆβ–ˆ β–ˆ β–„β–„β–„ β–ˆβ–ˆβ–„β–€β–ˆβ–ˆβ–ˆβ–ˆ β–ˆβ–ˆβ–ˆβ–ˆ β–„β–„β–„β–„β–„ β–ˆβ–„β–ˆβ–„β–„β–ˆβ–€β–ˆβ–€ β–ˆβ–„β–ˆ β–ˆβ–ˆβ–€ β–ˆβ–ˆβ–ˆβ–ˆ β–ˆβ–ˆβ–ˆβ–ˆ β–ˆ β–ˆ β–ˆβ–ˆ β–ˆβ–„ β–„β–ˆβ–„β–„ β–„β–„ β–ˆβ–€ β–„β–ˆβ–ˆβ–ˆβ–ˆ β–ˆβ–ˆβ–ˆβ–ˆ β–ˆβ–„β–„β–„β–ˆ β–ˆβ–„ β–ˆβ–€ β–„ β–€ β–„β–ˆβ–„β–„β–ˆβ–ˆβ–ˆβ–ˆ β–ˆβ–ˆβ–ˆβ–ˆβ–„β–„β–„β–„β–„β–„β–„β–ˆβ–„β–„β–„β–ˆβ–ˆβ–„β–„β–ˆβ–„β–ˆβ–„β–ˆβ–ˆβ–„β–ˆβ–ˆβ–„β–ˆβ–ˆβ–ˆβ–ˆ β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ

  • Developer Documentation For detailed setup, installation, contribution guidelines, and additional integration methods, please refer to [[file:DEVELOPERS.org][DEVELOPERS.org]].

Featured Templates

View More

Start your free trial

Build your solution today. No credit card required.

Sign In

Register

Reset Password

Please enter your username or email address, you will receive a link to create a new password via email.