Skip to content
FunCoding

Search

Search docs, Skills and MCP

MCP OAuth 与 token 保存

配置发现端点、远程回调和客户端身份,检查默认明文存储与加密选项。

This page has not been translated into English yet. The original Chinese version is shown below.

MCP OAuth 是服务认证,与 Qwen 主模型登录方式分开。适用于需要 OAuth 2.0 的远程 HTTP/SSE 服务。

设置结构

{
  "mcpServers": {
    "oauth-tools": {
      "httpUrl": "https://api.example.com/mcp",
      "oauth": {
        "enabled": true,
        "clientId": "your-client-id",
        "authorizationUrl": "https://provider.example.com/authorize",
        "tokenUrl": "https://provider.example.com/token",
        "redirectUri": "http://localhost:7777/oauth/callback",
        "scopes": ["read"]
      }
    }
  }
}

示例端点和身份值必须替换。支持动态注册时 clientId 可省,公共客户端可以不提供 clientSecret;authorizationUrl、tokenUrl 省略时尝试发现。其他字段包括 audiences,以及指定 SSE URL token 查询参数名称的 tokenParamName。

用 /mcp 检查服务和管理认证。不要把浏览器完成跳转等同于工具发现已成功,认证后还要确认连接状态。

远程运行的回调

默认回调是 http://localhost:7777/oauth/callback,适合同一台机器上的 CLI 和浏览器。云 IDE、远程主机或 Web 终端中,浏览器的 localhost 并不指向 Qwen 所在主机。

远程运行需要设置以 /oauth/callback 结尾、可达的公开 URL,并把该路径反向代理到 Qwen 主机的 http://127.0.0.1:7777/oauth/callback。Qwen 不终止 TLS,HTTPS 由代理负责。例如:

location = /oauth/callback {
  proxy_pass http://127.0.0.1:7777;
}

还需让身份提供商接受配置的 redirect URI。不要只改域名而未建立转发到本机监听器的链路。

保存和刷新

默认 token 写入 ~/.qwen/mcp-oauth-tokens.json,明文保存,文件权限 0600。QWEN_CODE_FORCE_ENCRYPTED_FILE_STORAGE=true 会优先使用可用的 keychain-backed 存储,否则使用 AES-256-GCM 加密的 ~/.qwen/mcp-oauth-tokens-v2.json。

每次连接前验证 token,过期且有 refresh token 时自动刷新。文件权限和加密方式是不同保护层;应按实际部署确认启用的存储,不假设默认文件已经加密。

排查方向

若认证循环失败,分别核对服务地址、授权/token 端点、client ID、scope、redirect URI 和代理路径。远程浏览器回调不到主机与服务拒绝 scope 是不同问题,不应通过启用服务 trust 绕过认证;trust 只影响工具确认。