我上线了一个叫QRflows的SaaS产品,做动态二维码平台。上线两个月后,决定给它搭一个MCP(模型上下文协议)服务器。现在,用户可以在跟Claude的聊天里直接创建、更新、追踪二维码,完全不用碰后台看板。
MCP是Anthropic的开放协议,可以让Claude这类AI助手连上外部服务。可以把它理解成USB标准,任何兼容MCP的服务器都能插进Claude,为它增加新工具。对QRflows来说,这意味着Claude可以变成二维码管家。用户输入一句“给我的餐厅菜单建个二维码,上午11点前跳到早餐版,之后跳到晚餐版”——这事就能直接完成。
这是QRflows里“智能规则”功能的真实场景。以前,用户得去后台手动创建二维码、设置路由规则。现在靠MCP,一句聊天搞定。下面是Claude调取一个月所有二维码统计数据的样子。
QRflows本身跑在Laravel+React上,但MCP服务器是独立的。运行时用Cloudflare Workers,语言是TypeScript,MCP SDK用的是@modelcontextprotocol/sdk,认证走OAuth 2.0(Anthropic要求远程MCP服务器必须用这个),令牌存储用Cloudflare KV。服务器地址在mcp.qrflows.app,通过HTTP的Streamable传输方式通信。
MCP服务器向Claude暴露了10个工具:create_qr创建新的二维码(支持16种类型),update_qr_url修改目标地址而不用重新打印,update_qr更新任意字段,update_wifi_qr更新WiFi凭证,list_qr_codes列出账户内所有码,get_qr获取特定码详情,get_qr_stats查看扫描统计,delete_qr删码,apply_smart_rules设置地理、设备、时间路由规则,get_account_usage查询套餐用量。每个工具都加了MCP注解:readOnlyHint、destructiveHint和idempotentHint告诉Claude如何处理才安全。比如list_qr_codes的readOnlyHint为true,delete_qr的destructiveHint为true,这样Claude就知道删码时要谨慎。
整个开发里最棘手的是OAuth。Anthropic要求远程MCP服务器必须支持OAuth 2.0,这里踩了不少坑。
热门跟贴