一个使用 Node.js 和 TypeScript 的 MCP(模型上下文协议)服务器,用于从文本或 URL 生成二维码。
前提条件:系统上安装了 Docker 或 Podman
# 使用 Docker
docker pull antobrugnot/qrcode-mcp-server:latest
# 或者使用 Podman(更安全,无 root)
podman pull antobrugnot/qrcode-mcp-server:latest
# 使用 Docker 进行本地构建
docker build -t qrcode-mcp-server .
# 使用 Podman 进行本地构建
podman build -t qrcode-mcp-server .
前提条件:
# 克隆项目
git clone <你的仓库>
cd qrcode-mcp
# 安装依赖
npm install
# 构建项目
npm run build
# 使用 Docker
docker run -i --rm antobrugnot/qrcode-mcp-server:latest
# 使用 Podman(更安全)
podman run -i --rm antobrugnot/qrcode-mcp-server:latest
# 使用 Docker Compose
docker-compose up qrcode-mcp-server
# 使用 Podman Compose
podman-compose up qrcode-mcp-server
# 开发模式
docker-compose --profile dev up qrcode-mcp-dev
# 或
podman-compose --profile dev up qrcode-mcp-dev
# 开发模式,带自动重新加载
npm run dev
# 或监视模式
npm run watch
# 为生产构建
npm run build
# 启动已构建的版本
npm start
generate-qrcode-dataurl生成二维码并以 Data URL(base64)形式返回。
参数:
text(字符串,必需):要编码的文本或 URLoptions(对象,可选):生成选项
errorCorrectionLevel:'L'、'M'、'Q' 或 'H'(默认:'M')width:像素宽度(50-2000)margin:模块边距(0-10,默认:4)color.dark:深色模块的颜色(默认:'#000000')color.light:背景颜色(默认:'#FFFFFF')type:MIME 类型('image/png'、'image/jpeg'、'image/webp')使用示例:
{
"text": "https://github.com",
"options": {
"width": 300,
"errorCorrectionLevel": "H",
"color": {
"dark": "#1f2937",
"light": "#f3f4f6"
}
}
}
generate-qrcode-svg生成 SVG 格式的二维码。
参数:
text(字符串,必需):要编码的文本或 URLoptions(对象,可选):生成选项(与 dataurl 相似)使用示例:
{
"text": "Hello, World!",
"options": {
"width": 200,
"margin": 2
}
}
generate-qrcode-terminal生成用于终端显示的二维码。
参数:
text(字符串,必需):要编码的文本或 URLoptions(对象,可选):
small(布尔值):使用紧凑格式(默认:false)使用示例:
{
"text": "Terminal QR Code",
"options": {
"small": true
}
}
generate-qrcode-batch一次操作生成多个二维码(最多 10 个)。
参数:
texts(字符串数组,必需):要编码的文本/URL 数组(最多 10 个)format(字符串,可选):输出格式('dataurl'、'svg'、'terminal',默认:'dataurl')options(对象,可选):生成选项使用示例:
{
"texts": [
"https://github.com",
"https://www.google.com",
"Hello World"
],
"format": "dataurl",
"options": {
"width": 200
}
}
ℹ️ GitHub Copilot 提示:
对于 GitHub Copilot,配置中的mcpServers键变为简单的servers。
在你的 claude_desktop_config.json 中添加以下配置:
{
"mcpServers": {
"qrcode-generator": {
"command": "docker",
"args": ["run", "-i", "--rm", "antobrugnot/qrcode-mcp-server:latest"]
}
}
}
或者使用 Podman(更安全,无 root):
{
"mcpServers": {
"qrcode-generator": {
"command": "podman",
"args": ["run", "-i", "--rm", "antobrugnot/qrcode-mcp-server:latest"]
}
}
}
{
"mcpServers": {
"qrcode-generator": {
"command": "node",
"args": ["/路径/到/qrcode-mcp/dist/index.js"]
}
}
}
该服务器使用标准的 stdio 传输,并且可以与任何兼容的 MCP 客户端一起使用。
为 "https://github.com" 生成二维码
为 "我的网站" 生成二维码,宽度为 400 像素,带有自定义颜色(深色:#2563eb,浅色:#eff6ff)
为这些 URL 生成二维码:https://github.com, https://stackoverflow.com, https://nodejs.org
为 "测试终端" 生成紧凑格式的终端二维码
# 在 GitHub Secrets 中
DOCKERHUB_TOKEN=你的_dockerhub_令牌
qrcode-mcp/
├── .github/
│ └── workflows/ # GitHub Actions CI/CD
├── scripts/
│ └── release.sh # 发布脚本
├── src/
│ └── index.ts # 主 MCP 服务器
├── dist/ # 编译文件
├── Dockerfile # Docker 配置
├── docker-compose.yml # Docker 编排
├── .dockerignore # Docker 排除
├── package.json # 依赖项和脚本
├── tsconfig.json # TypeScript 配置
├── CONFIGURATION.md # 配置指南
└── README.md # 文档
确保已安装依赖项:
npm install
检查 tsconfig.json 配置并重新构建:
npm run build
确保已安装 Node.js 18+:
node --version
# 使用发布脚本
./scripts/release.sh v1.0.0
# 或通过 GitHub Actions 手动触发
# GitHub → Actions → 发布 → 运行工作流
# 最新稳定版
docker pull antobrugnot/qrcode-mcp-server:latest
# 特定版本
docker pull antobrugnot/qrcode-mcp-server:v1.0.0
# 开发版本(develop 分支)
docker pull antobrugnot/qrcode-mcp-server:develop
欢迎贡献!请随时打开问题或提交拉取请求。
git checkout -b feature/amazing-feature)git commit -m '添加神奇功能')git push origin feature/amazing-feature)MIT 许可证 - 详情见 LICENSE 文件。