用途:让任意 MCP 客户端或智能体正确调用 Swiggy 官方 MCP 服务。三个服务相互独立,购物车、订单、工具均按服务区分,但登录是共享的。
服务与地址:Food https://mcp.swiggy.com/food(20 个工具,下单工具 place_food_order);Instamart https://mcp.swiggy.com/im(19 个工具,下单工具 checkout);Dineout https://mcp.swiggy.com/dineout(12 个工具,预订工具 book_table)。各工具精确参数见 references/tools.md。
关键规则:不得臆造工具名、参数或 id;参数为 camelCase(如 addressId、restaurantId、orderId、spinId),id 只能来自本次对话中先前工具响应。执行 place_food_order、checkout、book_table、cancel_booking、flush_food_cart、clear_cart、delete_address 前须获得用户明确确认,展示商品、总价与地址并等待明确同意。下单类工具不可盲目重试:遇网络错误或 5xx 先查询订单是否存在,存在则视为成功。涉及购物车的操作开始前须读取购物车,下单前再读一次;价格与库存会变化。会话凭据不作为工具参数,认证使用连接上的 bearer token。
响应结构:成功为 {"success": true, "data": {…}, "message": "可选文本"};失败为 {"success": false, "error": {"message": "…", "reportLink": "…", "reportHint": "…"}}。HTTP 200 但 success:false 属于业务失败(缺货、时段已满、餐厅关闭、优惠券无效),应向用户说明且不要重试。
认证:OAuth 2.1 + PKCE,授权服务器 https://mcp.swiggy.com/auth,元数据位于 /.well-known/oauth-authorization-server,支持动态客户端注册(/auth/register),无需 client id。Scope 为 mcp:tools mcp:resources mcp:prompts。用户在浏览器用手机号 + OTP 登录,一个 token 适用于三个服务。访问令牌有效 5 天,v1.0 不签发刷新令牌,401 需重新走流程;419 表示会话被撤销需完整重认证;403 为 scope 问题。代理无法完成浏览器步骤,应提示用户重新连接 Swiggy 连接器。
错误处理:401 或 JSON-RPC -32001 需重认证;400 参数错误应修正参数而非重试;429 按 Retry-After 等待,不做指数叠加;502/503/504 或超时按 500ms 至 8s 抖动退避,最多 5 次、总计 30 秒;持续失败调用 report_error(传 tool、errorMessage 及所有相关 id 的 toolContext)并把返回链接给用户。error.code 目前尚未输出,需依据 message 文本与 HTTP 状态判断。
限流与会话:每用户每服务 70 请求/分钟,写工具 30/分钟,10 秒内可突发 2 倍,响应带 X-RateLimit-* 头。认证事件单独计数。每个用户一个会话,按 /food、/im、/dineout 顺序连接,不可并行;不要每次工具调用重新初始化;被封锁时立即停止连接。地址数据每会话获取一次即可,track_* 轮询不高于 10 秒一次。
多服务会话:购物车与订单按服务隔离,认证共享。Food 购物车绑定单一餐厅,切换会清空购物车,需提前告知;Instamart 购物车绑定配送地址,切换地址前需 clear_cart。
支持:每个服务都有 report_error。Food/Instamart 订单取消不是 API 功能,需提示用户联系 Swiggy 客服 080-67466729;开发者联系 builders@swiggy.in。