Skip to content

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机票查询、预订相关能力

开放平台控制台:

text
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 示例:

json
{
  "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"
    }
  }
}

保存后客户端会自动打开浏览器,用户完成以下操作:

text
1. 登录途牛开放平台账号
2. 确认客户端申请的授权范围
3. 返回 MCP 客户端继续使用工具

客户端会自动保存访问令牌,用户不需要手动复制 Token。

方式二:CIMD 客户端元数据

CIMD 是 Client ID Metadata Document。支持 CIMD 的客户端会把 client_id 设置为一个公开的 metadata URL。途牛开放平台会读取该 metadata,校验客户端名称、回调地址和授权范围。

客户端 metadata 示例

json
{
  "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 的客户端中填写:

text
MCP Server URL: 选择上方服务地址
Registration: CIMD / URL-based
Client Metadata URL: 客户端公开的 metadata URL
Scope: capability:invoke

生产环境要求 metadata URL 使用 HTTPS。

方式三:预注册授权应用

预注册授权应用适合企业系统、合作方应用、固定客户端,或无法使用 DCR/CIMD 的客户端。

该方式需要先向途牛开放平台申请授权应用,由平台创建或审核后提供:

text
client_id
client_secret
允许的 Redirect URI
允许的 Scope

申请联系方式:

text
电话:1801396339
邮箱:majing5@tuniu.com

客户端配置

如果客户端支持手动 OAuth 配置,请填写:

text
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 HTTP

client_secret 只应保存在可信环境中,不要提交到公开仓库,也不要暴露在前端页面。

授权流程

不论使用 DCR、CIMD 还是预注册授权应用,用户侧看到的流程基本一致:

text
1. MCP 客户端连接途牛 MCP 服务
2. 客户端发现需要 OAuth 授权
3. 浏览器打开途牛开放平台登录/授权页面
4. 用户登录并确认授权
5. 客户端自动获取访问令牌
6. 客户端携带令牌调用 MCP 工具

授权成功后,用户可以在开放平台控制台查看和管理授权记录。

Scope 说明

当前通用授权范围:

text
capability:invoke

Scope 使用空格分隔,不要使用逗号。例如:

text
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 与平台提供的服务地址完全一致。例如订单服务应使用:

text
https://openapi.tuniu.cn/capabilities/mcp/order

客户端提示 invalid_scope

请确认 Scope 使用:

text
capability:invoke

不要写成:

text
openid,capability:invoke

客户端不支持自动 OAuth

请联系途牛申请预注册授权应用,或使用支持 DCR/CIMD 的 MCP 客户端。

Powered by VitePress