🔗 URL2QR MCP服务器
](https://www.npmjs.com/package/@xingyuchen/url2qr-mcp)  
一个强大的MCP(模型上下文协议)服务器,可以将URL转换为带有可下载链接的二维码。使用Express和TypeScript构建,提供与Claude等AI助手的无缝集成。
](https://smithery.ai/server/@guangxiangdebizi/url2qr-mcp)
✨ 特性
- 🔗 URL到QR码的转换 -将任何URL转换为可扫描的二维码
- 📥 可下载链接 -获取生成二维码的HTTP下载链接
- ⚙️ 可定制选项 -控制纠错级别和图像大小
- 🚀 流式HTTP -现代MCP传输协议支持
- 🌍 远程服务可用 -使用我们的托管服务
http://47.79.147.241:3055/mcp - 🔌 易于集成 -适用于Claude Desktop和其他MCP客户端
- 🎨 清洁API -用于健康检查和文件服务的RESTful端点
📦 安装
通过Smithery安装
通过以下方式自动安装URL2QR 史密瑟里:
npx -y @smithery/cli install @guangxiangdebizi/url2qr-mcp通过npm(全球)
npm install -g @xingyuchen/url2qr-mcp通过npm(本地项目)
npm install @xingyuchen/url2qr-mcp来自源头
git clone https://github.com/guangxiangdebizi/URL2QR-MCP.git
cd URL2QR-MCP
npm install
npm run build🚀 快速开始
选项1:使用远程服务(建议用于快速测试)🌍
无需安装! 我们提供托管服务供立即使用:
添加到您的MCP客户端配置中(例如,Claude Desktop的 claude_desktop_config.json):
{
"mcpServers": {
"url2qr": {
"type": "streamableHttp",
"url": "http://47.79.147.241:3055/mcp",
"timeout": 600
}
}
}✨ 就是这样! 您现在可以使用二维码生成工具,而无需运行自己的服务器。
提示: 在公共服务器上自托管时,请记住设置 PUBLIC_BASE_URL 环境变量,以便生成的下载链接使用您的公共域,而不是 localhost.
选项2:运行自己的本地服务器
1.启动服务器
# If installed globally
url2qr-mcp
# If installed locally or from source
npm start
# For development
npm run dev服务器将于启动 http://localhost:3000 默认情况下。
2.配置MCP客户端
添加到您的MCP客户端配置中(例如,Claude Desktop的 claude_desktop_config.json):
{
"mcpServers": {
"url2qr": {
"type": "streamableHttp",
"url": "http://localhost:3000/mcp",
"timeout": 600
}
}
}3.使用工具
在Claude Desktop或任何兼容MCP的客户端中:
Convert https://github.com to a QR codeAI将使用 url_to_qrcode 工具,并为您提供下载链接!
🔧 API 参考
工具: url_to_qrcode
将URL转换为二维码图像。
参数:
| 参数 | 类型 | 必填 | 默认 | 说明 |
|---|---|---|---|---|
url | string | ✅ 是 | - | 要转换为二维码的URL |
errorCorrectionLevel | string | ❌ 否 | “M” | 纠错级别:“L”(7%)、“M”(15%)、“Q”(25%)、“H”(30%) |
width | 编号 | ❌ 否 | 300 | 二维码图像的宽度(像素) |
示例响应:
✅ 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端点
GET /
API信息和文件。
GET /health
健康检查端点。
答复:
{
"status": "healthy",
"transport": "streamable-http",
"activeSessions": 2,
"serverName": "URL2QR-MCP",
"version": "1.0.0"
}POST /mcp
MCP协议端点(JSON-RPC)。
GET /qrcodes/:filename
下载生成的二维码图像。
⚙️ 配置
创建 .env 项目根目录中的文件:
PORT=3000
QR_OUTPUT_DIR=./qrcodes
# PUBLIC_BASE_URL is optional - auto-detected from request headers by default
PUBLIC_BASE_URL=http://localhost:3000环境变量:
PORT-服务器端口(默认值:3000)QR_OUTPUT_DIR-二维码图像存储目录(默认:./qrcodes)PUBLIC_BASE_URL- 可选的.下载链接的外部基本URL。如果未设置,服务器将自动从传入的请求标头中检测URL(支持反向代理X-Forwarded-Host和X-Forwarded-Proto)
🎯 自动检测功能
服务器 自动检测其公共URL 来自传入的HTTP请求,因此您不需要配置 PUBLIC_BASE_URL 在大多数情况下:
- ✅ Smithery/云部署:自动使用正确的公共域
- ✅ 反向代理背后:阅读
X-Forwarded-Host和X-Forwarded-Proto标头 - ✅ 地方发展:回落到
localhost:PORT
仅设置 PUBLIC_BASE_URL 如果需要覆盖自动检测值。
🏗️ 项目结构
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🔒 会话管理
服务器实现了自动会话清理:
- 会话在30分钟不活动后过期
- 每15分钟进行一次清理
- 会话ID通过以下方式管理
Mcp-Session-Id标头
🌐 部署选项
远程服务(生产)
我们在以下地点提供托管服务:
- 端点:
http://47.79.147.241:3055/mcp - 健康检查:
http://47.79.147.241:3055/health - 状态: 🟢 在线并随时可用
这非常适合:
- 无需设置即可快速测试
- 无基础设施的生产使用
- 共享单个端点的团队
本地部署
运行您自己的实例:
- 开发和测试
- 私有/隔离环境
- 自定义配置
- 内部部署要求
服务器会自动从请求标头中检测其公共URL,因此它在反向代理和云环境中无缝工作,无需手动配置。
在Smithery上部署(托管主机)
您可以将URL2QR MCP服务器部署到 史密瑟里 对于托管主机:
- 确保存储库包含
Dockerfile和smithery.yaml(已包含) - 在本地安装Smithery CLI:
npm install
npx smithery build- 将代码推送到GitHub,并在Smithery仪表板中连接仓库
- 在Smithery中配置环境变量(可选):
- PORT=3000 - QR_OUTPUT_DIR=/app/qrcodes - PUBLIC_BASE_URL - 非必需 (从请求中自动检测到)
- 从Smithery UI触发部署
✨ 无需手动配置URL! 服务器会自动从请求标头中检测Smithery的公共URL。
有关更多详细信息,请参阅Smithery文档: TypeScript部署, 项目配置
📝 例子
基本用法
// Tool parameters
{
"url": "https://example.com"
}自定义错误更正
{
"url": "https://example.com",
"errorCorrectionLevel": "H" // High error correction (30%)
}自定义大小
{
"url": "https://example.com",
"width": 500 // 500x500 pixels
}🤝 贡献
欢迎投稿!请随时提交拉取请求。
- 分叉存储库
- 创建功能分支(
git checkout -b feature/AmazingFeature) - 提交您的更改(
git commit -m 'Add some AmazingFeature') - 推到分支(
git push origin feature/AmazingFeature) - 打开拉取请求
📄 许可证
此项目根据Apache许可证2.0获得许可-请参阅 许可证 文件以获取详细信息。
👤 作者
陈兴宇
🙏 致谢
- 内置于 模型上下文协议SDK
- 二维码生成由 二维码
- 用于HTTP服务器的Express.js
📚 资源
______________________________________________________________________
⭐ 如果你觉得这个项目有用,请考虑在GitHub上给它一颗星!
