MCP 授权接入指南
途牛开放平台的远程 MCP 服务使用 OAuth 2.1 授权。客户端连接 MCP 服务时,会先跳转到途牛开放平台完成登录和授权确认,授权成功后客户端会自动携带访问令牌调用 MCP 工具。
当前推荐优先使用支持 OAuth 的 MCP 客户端,例如 Cursor、MCPJam Inspector 等。
可用服务
生产环境统一使用 HTTPS 和 Streamable HTTP。
| 服务 | MCP Server URL | 说明 |
|---|---|---|
| 订单服务 | https://openapi.tuniu.cn/capabilities/mcp/order | 查询用户订单等订单相关能力 |
| 酒店服务 | https://openapi.tuniu.cn/capabilities/mcp/hotel | 酒店查询、详情、预订相关能力 |
| 机票服务 | https://openapi.tuniu.cn/capabilities/mcp/flight | 机票查询、预订相关能力 |
开放平台控制台:
https://open.tuniu.com/mcp旧版 API Key MCP 服务可能仍使用 /mcp/... 路径。新的 OAuth 授权 MCP 服务统一使用 /capabilities/mcp/... 路径。
接入方式选择
| 方式 | 适用场景 | 客户需要做什么 |
|---|---|---|
| DCR 动态注册 | 客户端支持 MCP OAuth 动态注册,例如 Cursor | 只填写 MCP Server URL,浏览器完成登录授权 |
| CIMD 客户端元数据 | 客户端支持使用公开 metadata URL 作为 client_id | 提供 HTTPS metadata URL,浏览器完成登录授权 |
| 预注册授权应用 | 企业系统、合作方应用、固定客户端,或客户端不支持 DCR/CIMD | 联系途牛申请 client_id / client_secret 后配置 |
大多数用户优先选择 DCR 动态注册。如果客户端不支持 DCR,再考虑 CIMD 或预注册授权应用。
方式一:DCR 动态注册
DCR 是 Dynamic Client Registration。支持 DCR 的 MCP 客户端可以自动向途牛开放平台注册 OAuth 客户端。
如何使用
在客户端中新增 MCP Server,填写对应服务地址即可。
Cursor 示例:
{
"mcpServers": {
"tuniu-order": {
"type": "streamableHttp",
"url": "https://openapi.tuniu.cn/capabilities/mcp/order"
},
"tuniu-hotel": {
"type": "streamableHttp",
"url": "https://openapi.tuniu.cn/capabilities/mcp/hotel"
},
"tuniu-flight": {
"type": "streamableHttp",
"url": "https://openapi.tuniu.cn/capabilities/mcp/flight"
}
}
}保存后客户端会自动打开浏览器,用户完成以下操作:
1. 登录途牛开放平台账号
2. 确认客户端申请的授权范围
3. 返回 MCP 客户端继续使用工具客户端会自动保存访问令牌,用户不需要手动复制 Token。
方式二:CIMD 客户端元数据
CIMD 是 Client ID Metadata Document。支持 CIMD 的客户端会把 client_id 设置为一个公开的 metadata URL。途牛开放平台会读取该 metadata,校验客户端名称、回调地址和授权范围。
客户端 metadata 示例
{
"client_id": "https://client.example.com/.well-known/oauth/client-metadata.json",
"client_name": "Example MCP Client",
"client_uri": "https://client.example.com",
"redirect_uris": [
"http://127.0.0.1:12346/oauth/callback"
],
"grant_types": ["authorization_code", "refresh_token"],
"response_types": ["code"],
"scope": "capability:invoke",
"token_endpoint_auth_method": "none"
}如何使用
在支持 CIMD 的客户端中填写:
MCP Server URL: 选择上方服务地址
Registration: CIMD / URL-based
Client Metadata URL: 客户端公开的 metadata URL
Scope: capability:invoke生产环境要求 metadata URL 使用 HTTPS。
方式三:预注册授权应用
预注册授权应用适合企业系统、合作方应用、固定客户端,或无法使用 DCR/CIMD 的客户端。
该方式需要先向途牛开放平台申请授权应用,由平台创建或审核后提供:
client_id
client_secret
允许的 Redirect URI
允许的 Scope申请联系方式:
电话:1801396339
邮箱:majing5@tuniu.com客户端配置
如果客户端支持手动 OAuth 配置,请填写:
MCP Server URL: 选择上方服务地址
Authorization Endpoint: https://openapi.tuniu.cn/oauth2/auth
Token Endpoint: https://openapi.tuniu.cn/oauth2/token
Client ID: 途牛提供的 client_id
Client Secret: 途牛提供的 client_secret
Scope: capability:invoke
PKCE: S256
Transport: Streamable HTTPclient_secret 只应保存在可信环境中,不要提交到公开仓库,也不要暴露在前端页面。
授权流程
不论使用 DCR、CIMD 还是预注册授权应用,用户侧看到的流程基本一致:
1. MCP 客户端连接途牛 MCP 服务
2. 客户端发现需要 OAuth 授权
3. 浏览器打开途牛开放平台登录/授权页面
4. 用户登录并确认授权
5. 客户端自动获取访问令牌
6. 客户端携带令牌调用 MCP 工具授权成功后,用户可以在开放平台控制台查看和管理授权记录。
Scope 说明
当前通用授权范围:
capability:invokeScope 使用空格分隔,不要使用逗号。例如:
capability:invoke默认接入不需要申请 openid。如果客户端固定请求 openid,请先联系途牛确认该客户端是否允许该 Scope。
有效期说明
当前远程 MCP OAuth access token 默认有效期约 7 天。客户端通常会自动使用 refresh token 或重新发起授权,用户无需手动复制 token。
预注册授权应用的 client_secret 创建后只展示一次,目前不自动过期;如果泄露,应联系途牛禁用旧应用并重新创建。
开放平台网页登录态和 OAuth 授权记忆有效期由平台配置控制,当前授权记忆默认约 24 小时。
安全建议
- 不要把
client_secret、Bearer Token 发给无关人员。 - 不要把密钥提交到公开仓库。
- 企业系统接入建议使用预注册授权应用,并由企业后台统一管理。
- 支持 DCR 的客户端优先使用自动授权流程。
- 静态 Bearer Token 仅建议作为临时调试或兼容方案。
常见问题
客户端提示资源不匹配
请确认客户端填写的 MCP Server URL 与平台提供的服务地址完全一致。例如订单服务应使用:
https://openapi.tuniu.cn/capabilities/mcp/order客户端提示 invalid_scope
请确认 Scope 使用:
capability:invoke不要写成:
openid,capability:invoke客户端不支持自动 OAuth
请联系途牛申请预注册授权应用,或使用支持 DCR/CIMD 的 MCP 客户端。
