实时检查 mcp_oauth Credential 能否通过其 MCP Server 的认证。
POST /api/v1/cloud/vaults/{vault_id}/credentials/{credential_id}/mcp_oauth_validate
对 active 状态的 mcp_oauth Credential 做实时校验:若 Credential 持有 refresh token,CAS 先尝试刷新(刷新成功会持久化轮换后的 token),然后用当前 access token 向 MCP Server 发起 initialize 探测。
路径参数
| 参数 | 类型 | 说明 |
|---|---|---|
vault_id | string | Vault ID,vault_ 前缀 |
credential_id | string | Credential ID,vcred_ 前缀;必须是 active 的 mcp_oauth Credential |
请求头
| Header | 必填 | 说明 |
|---|---|---|
Authorization | 是 | Bearer <PAT 或 SAT> |
Content-Type | 是 | application/json |
请求体
发送空 JSON 对象:
示例请求
示例响应
HTTP 200 OK
响应字段
| 字段 | 类型 | 说明 |
|---|---|---|
credential_id / vault_id | string | 被校验的 Credential 及其所属 Vault |
type | string | 固定为 vault_credential_validation |
status | string | 总体结论:valid、invalid 或 unknown |
validated_at | string | 校验时间,RFC 3339 格式 |
has_refresh_token | boolean | Credential 是否存有 refresh token |
refresh.status | string | no_refresh_token、succeeded、failed 或 connect_error |
refresh.http_response | object | null | 刷新失败时捕获的 token endpoint 响应 |
mcp_probe | object | null | 仅 MCP 探测失败时出现;method 为失败的 MCP 调用名 |
*.http_response | object | status_code、content_type、body(有长度上限且已脱敏)、body_truncated |
状态语义
valid— MCP Server 接受了携带当前 access token 的initialize探测。invalid— 确定性拒绝:探测或刷新收到 4xx 响应(408/429 除外),或 Credential 没有可用的 access token。unknown— 无法得出结论:连接错误、超时、408/429 或 5xx。请稍后重试,不要直接判定凭证失效。
succeeded 时会顺带更新存储的 token,因此校验可以"治愈"临近过期的 Credential。
错误
| HTTP | 类型 | 触发条件 |
|---|---|---|
| 404 | not_found_error | Vault 或 Credential 不存在或不可访问 |
| 409 | conflict_error | Credential 已归档,或类型不是 mcp_oauth |