二维码mcp
用于生成二维码的MCP服务器。支持10种二维码类型,可定制输出选项。核心生成库与MCP层解耦,因此可以独立重用(例如在web应用程序中)。
通过stdio在本地运行,或通过流式HTTP部署到Cloudflare Workers。
工具
所有工具都接受这些共享选项:
| 选项 | 类型 | 默认值 | 描述 | |||
|---|---|---|---|---|---|---|
format | `"png" \ | "svg"` | "png" | 输出格式 | ||
errorCorrection | `"L" \ | "M" \ | "Q" \ | "H"` | "M" | 纠错级别 |
width | number | 400 | 图像宽度(像素)(仅PNG) | |||
margin | number | 4 | 安静区边缘 | |||
foregroundColor | string | "#000000" | 前景颜色(六角形) | |||
backgroundColor | string | "#ffffff" | 背景颜色(十六进制) |
generate_url_qr
生成一个编码URL的二维码。扫描后,在浏览器中打开URL。
| 参数 | 类型 | 必填 |
|---|---|---|
url | string | 是的 |
generate_vcard_qr
生成包含联系人卡(vCard 3.0)的二维码。扫描时,会提示添加联系人。所有字段都是可选的。
| 参数 | 类型 | 描述 |
|---|---|---|
namePrefix | string | 例如先生、夫人、博士 |
firstName | string | 名字 |
middleName | string | 中间名 |
lastName | string | 姓氏 |
nameSuffix | string | 例如,Jr、III、PhD |
nickname | string | 昵称 |
birthday | string | YYYY-MM-DD 或 --MM-DD (无年份) |
organization | string | 公司或组织 |
title | string | 职位名称 |
emails | {label, value}[] | 带有标签的电子邮件地址 |
phones | {label, value}[] | 带标签的电话号码 |
addresses | {label, street?, city?, state?, zip?, country?}[] | 邮寄地址 |
websites | {label, value}[] | 带有标签的网站URL |
note | string | 附加说明 |
generate_wifi_qr
生成WiFi凭据的二维码。扫描时,连接到网络。
| 参数 | 类型 | 必填 | ||
|---|---|---|---|---|
ssid | string | 是的 | ||
password | string | 没有 | ||
encryption | `"WPA" \ | "WEP" \ | "nopass"` | 是的 |
hidden | boolean | 没有 |
generate_event_qr
为日历事件生成二维码(iCal格式)。扫描时,添加事件。
| 参数 | 类型 | 必填 |
|---|---|---|
title | string | 是的 |
start | string (ISO 8601) | 是 |
end | string (ISO 8601) | 否 |
location | string | 没有 |
description | string | 没有 |
allDay | boolean | 没有 |
alert | number | 否,事件发生前几分钟 |
generate_email_qr
生成一个二维码,打开一个电子邮件撰写窗口。
| 参数 | 类型 | 必填 |
|---|---|---|
to | string | 是的 |
subject | string | 没有 |
body | string | 没有 |
generate_phone_qr
生成一个拨打电话号码的二维码。
| 参数 | 类型 | 必填 |
|---|---|---|
phone | string | 是的 |
generate_sms_qr
生成一个二维码,打开短信撰写窗口。
| 参数 | 类型 | 必填 |
|---|---|---|
phone | string | 是的 |
body | string | 没有 |
generate_geo_qr
为地理位置生成二维码。扫描后,在地图应用程序中打开。
| 参数 | 类型 | 必填 |
|---|---|---|
latitude | number | 是的 |
longitude | number | 是的 |
generate_text_qr
生成一个编码任意文本的二维码。
| 参数 | 类型 | 必填 |
|---|---|---|
text | string | 是的 |
generate_facetime_qr
生成一个二维码,在苹果设备上发起FaceTime通话。
| 参数 | 类型 | 必填 |
|---|---|---|
contact | string | 是,电话号码或电子邮件 |
audioOnly | boolean | 否,默认为视频 |
设置
npm install
npm run build工作室
通过stdin/stdout在本地运行MCP服务器。请将此功能用于Claude Desktop等MCP客户端。
node dist/index.js在MCP客户端中配置:
{
"mcpServers": {
"qr-code": {
"command": "node",
"args": ["/path/to/qr-code-mcp/dist/index.js"]
}
}
}流式HTTP(Cloudflare Workers)
通过HTTP运行MCP服务器。将其用于远程访问或部署到生产环境。
本地开发服务器:
npm run dev这将在以下位置启动本地Cloudflare Workers环境 http://localhost:8787:
| 路径 | 描述 |
|---|---|
/ | 登录页面 |
/mcp | MCP端点 |
/health | 健康检查 |
部署到生产环境:
npm run deploy然后使用远程URL配置MCP客户端:
{
"mcpServers": {
"qr-code": {
"url": "https://qr-code-mcp..workers.dev/mcp"
}
}
}MCP检查员
使用交互式方式测试和调试服务器 MCP检查员.
# Against stdio
npx @modelcontextprotocol/inspector node dist/index.js
# Against local HTTP — select "Streamable HTTP" and enter http://localhost:8787/mcp
npx @modelcontextprotocol/inspector测试
npm test # run once
npm run test:watch # watch mode测试包括所有格式化程序的单元测试、生成器输出验证、往返扫描性测试(对QR码进行编码、解码、验证内容匹配)和MCP处理程序测试。
使用核心库
QR生成逻辑可以在没有MCP服务器的情况下独立导入:
import { generateQR } from "qr-code-mcp";
const result = await generateQR(
{ type: "wifi", data: { ssid: "MyNetwork", password: "secret", encryption: "WPA" } },
{ format: "png", width: 300 }
);
// result.data = base64-encoded PNG
// result.mimeType = "image/png"许可证
麻省理工学院
