二维码MCP服务器
一个MCP(模型上下文协议)服务器,提供工具用于生成各种类型的二维码,以PNG数据URI的形式呈现。
特点/特性
此服务器提供了五种生成二维码的工具:
- URL二维码 - 用户扫描后直接跳转至网站
- vCard二维码 - 分享可保存到通讯录的联系信息
- 电子邮件二维码 - 预填充电子邮件的收件人、主题和正文
- 短信二维码 - 预填短信中的电话号码和信息内容
- WiFi二维码 - 允许自动连接WiFi网络
所有二维码均以PNG数据URI的形式返回,可以直接嵌入HTML或由AI助手显示。
工具使用示例
配置完成后,您可以要求Claude生成二维码:
- “为 https://example.com 生成一个二维码”
- “为约翰·多(John Doe)创建一个vCard二维码,电话:555-0123,邮箱:john@example.com”
- “为名为MyWiFi的网络生成一个WiFi二维码,密码为SecurePass123”
- “生成一个发送给555-0199的含‘Hello there’信息的短信二维码”
- “为 support@example.com 创建一个带有主题‘求助请求’的电子邮件二维码”
它是如何工作的
服务器使用 qrcode 使用PIL(Pillow)库生成二维码图像。每个工具函数为其二维码类型(URL、vCard、mailto URI、SMS URI或WiFi字符串)构建适当的数据格式,生成二维码,将其转换为内存中的PNG图像,对其进行base64编码,并将其封装在数据URI格式中。
数据URI格式(data:image/png;base64,...) 允许直接嵌入二维码,无需将文件保存到磁盘或从网络服务器提供服务。
发展
项目结构简单:
server.py- 主MCP服务器实现,包含所有工具定义pyproject.toml- 项目元数据和依赖项由uv管理README.md- 这个文件
要添加新的二维码类型,请创建一个带有装饰器的新函数 @mcp.tool(),为该二维码类型构建适当的数据字符串,并调用 qr_to_data_uri() 辅助函数。
错误纠正
二维码包含错误纠正功能,使其即使部分损坏也能被扫描。此服务器使用默认的“L”(低)级别,该级别提供大约7%的错误恢复能力。对于二维码可能损坏或降级的更为关键的应用,您可以修改(相关设置) qr_to_data_uri() 使用更高错误校正级别的功能:
ERROR_CORRECT_L- 低(7%的回收率)ERROR_CORRECT_M- 中等(15%回收率)ERROR_CORRECT_Q- 四分位数(25%的回收率)ERROR_CORRECT_H- 高(30%回收率)
更高的纠错级别会导致生成的二维码更大、更密集。
