MCP Host 为 RollingGo MCP (Model Context Protocol) 服务主机,用于让 AI 应用(如智能体、LLM 客户端)通过标准 MCP 协议连接 RollingGo 的酒店能力。连接地址为 https://<MCP_HOST>/mcp/hotel,详见下文「场景 2:连接 MCP 服务」。
下文示例中统一使用<API_DOMAIN>与<MCP_HOST>占位符,请替换为您对应节点的域名。
🚀 授权接入流程
接入前准备:请确保您已经从 RollingGo 获取了接入流程主要分为三个步骤:client_id(客户端 ID),并确认 RollingGo 已为您配置了允许的redirect_uri(重定向 URI)。如尚未获取,请联系您的对接商务。
- 引导用户访问授权页面,获取授权码 (
code)。 - 接收重定向,获取授权码 (
code)。 - 使用授权码 (
code) 兑换访问令牌 (access_token)。
步骤 1:请求授权 (Request Authorization)
您的应用需要引导用户跳转到 RollingGo 的授权端点。 请求方法:GET
请求 URL(根据您的节点选择):
- 中国大陆:
https://api.rollinggo.cn/oauth2/authorize - 海外及港澳台:
https://api.rollinggo.ai/oauth2/authorize
请求示例(将
<API_DOMAIN>、<MCP_HOST> 替换为对应节点域名):
用户体验说明:如果所有参数校验通过,RollingGo 会展示登录页面(邮箱 + 验证码登录)。用户完成登录后,如果该应用是首次授权,会展示授权确认页面,列出所有请求的 scope 及其含义。用户确认后,浏览器将重定向到 redirect_uri 并附带授权码。
步骤 2:接收授权码 (Handle Callback)
用户在 RollingGo 页面完成登录并同意授权后,浏览器将会重定向到您在第一步中提供的redirect_uri,并在 URL 的 Query String 中附带授权码 (code)。
重定向示例:
错误回调示例(用户拒绝授权或发生错误时):
步骤 3:兑换令牌 (Exchange Code for Token)
拿到code 后,您的后端服务(或使用 PKCE 的公共客户端)需要向 RollingGo 的令牌端点发起 POST 请求,将 code 兑换为 access_token。
请求方法: POST
请求 URL(根据您的节点选择):
- 中国大陆:
https://api.rollinggo.cn/oauth2/token - 海外及港澳台:
https://api.rollinggo.ai/oauth2/token
application/x-www-form-urlencoded(不支持 application/json)
请求参数 (Body):
注意:请求示例 (Curl,机密客户端):refresh_token仅在您使用 机密客户端(即配置了client_secret)时才会在响应中返回。公共客户端不返回refresh_token。
错误响应示例 (HTTP 400):
支持与联系:如您在接入过程中遇到client_id无效、redirect_uri不匹配、client_secret丢失或任何配置相关问题,请联系您的 RollingGo 对接商务团队协助处理。
🛡️ 安全建议:PKCE 必读
PKCE (Proof Key for Code Exchange) 用于防止授权码被拦截后利用。对于无后端的纯前端应用 (SPA)、桌面端或移动端等公共客户端,强烈建议使用 PKCE,避免在客户端代码中硬编码client_secret。步骤 1 和步骤 3 均会用到下述方法生成的值。工作原理:
- 生成
code_verifier:客户端生成一个高熵的随机字符串(长度 43-128 字符,仅包含[A-Z] / [a-z] / [0-9] / "-" / "." / "_" / "~"字符)。 - 计算
code_challenge:对code_verifier执行 SHA256 哈希,然后进行 Base64URL 编码(不带=填充)。 - 请求授权页(步骤 1):携带
code_challenge和code_challenge_method=S256。 - 兑换令牌(步骤 3):携带原始的
code_verifier,无需传递client_secret(公共客户端)。RollingGo 会在后端执行相同的 SHA256 计算并比对,不匹配则拒绝颁发 Token。
🛠️ 如何使用 Access Token (调用受保护资源)
拿到access_token 后,您就可以代表用户访问 RollingGo 提供的各类受保护资源或连接 MCP Server 了。
在使用时,您只需将 access_token 放入 HTTP 请求头的 Authorization 字段中,并以 Bearer (注意后面有一个空格)开头。
场景 1:访问 REST API 资源(用户信息)
例如,访问用户信息端点/userinfo:
请求示例 (Curl):
场景 2:连接 MCP (Model Context Protocol) 服务
当您的 MCP 客户端与 RollingGo 的 MCP Server 建立 SSE 或 WebSocket 连接时,同样需要在初始 HTTP 请求中带上鉴权 Header。- 中国大陆 MCP Server:
https://mcp.rollinggo.cn/mcp/hotel - 海外及港澳台 MCP Server:
https://mcp.rollinggo.ai/mcp/hotel
场景 3:使用 Refresh Token 续期
当access_token 过期后,您可以使用 refresh_token 获取新的 access_token,无需用户重新登录。
适用范围:请求方法:refresh_token仅对**机密客户端(配置了client_secret)**有效。公共客户端不会获得refresh_token,如需长期访问请重新走授权流程。
POST
请求 URL(根据您的节点选择):
- 中国大陆:
https://api.rollinggo.cn/oauth2/token - 海外及港澳台:
https://api.rollinggo.ai/oauth2/token
请求示例 (Curl):
重要:使用 refresh_token 后,响应中可能返回一个新的 refresh_token。请以实际响应为准,并妥善保存每次返回的新 refresh_token。
场景 4:撤销 Token
当用户退出登录或您需要使某个 Token 失效时,可以调用撤销端点。 请求方法:POST
请求 URL(根据您的节点选择):
- 中国大陆:
https://api.rollinggo.cn/oauth2/revoke - 海外及港澳台:
https://api.rollinggo.ai/oauth2/revoke
请求示例 (Curl):
场景 5:Token 内省 (Introspection)
用于验证一个 Token 是否有效,并获取其元数据(适用于资源服务器端验证)。 请求方法:POST
请求 URL(根据您的节点选择):
- 中国大陆:
https://api.rollinggo.cn/oauth2/introspect - 海外及港澳台:
https://api.rollinggo.ai/oauth2/introspect
请求示例 (Curl):
📋 附录:基础信息(参考)
本附录供手动配置、故障排查时查阅,正常接入无需阅读。RollingGo 提供标准的 OAuth 2.0 / OpenID Connect 服务发现机制,开发者可以直接请求以下端点,自动获取授权服务器支持的所有配置(包括各种端点 URL、支持的 scope、加密算法等):
- OAuth 2.0 发现端点:
https://<API_DOMAIN>/.well-known/oauth-authorization-server - OIDC 发现端点:
https://<API_DOMAIN>/.well-known/openid-configuration
核心端点总览
支持的 Scope 列表
以上 Scope 列表与授权服务器.well-known/oauth-authorization-server返回的scopes_supported完全一致。
注意:请求hotel:order:book、hotel:order:cancel等写操作 scope 时,授权确认页面会明确提示用户该应用将代表其执行的操作。用户可选择拒绝部分 scope。
服务器能力摘要
根据服务发现端点返回的实际配置,RollingGo 授权服务器支持以下能力:本表内容均来自授权服务器.well-known/oauth-authorization-server与.well-known/openid-configuration实际返回的配置。除本文档演示的授权码模式外,device_code、token-exchange等流程如需使用,请联系您的对接商务获取对应接入说明。

