Agent 經常需要訪問第三方服務——GitHub、Jira、資料庫、自建 MCP 伺服器等。Vaults 提供安全的憑證託管,讓你把 Token 交給我們保管,Session 運行時按需注入,無需寫入程式碼在代碼裡。
核心概念
| 概念 | 說明 |
|---|---|
| Vault | 憑證容器,可包含多個 Credential |
| Credential | 單條憑證記錄,綁定到具體 MCP 伺服器 URL |
protocol |
MCP 通訊協定:sse 或 streamable_http |
type |
憑證類型,當前僅支援 static_bearer |
vault_ids |
Session 建立時引用的 Vault ID 列表 |
安全性
access_token永遠不會在 API 響應中返回- 憑證在服務端加密儲存
- 僅關聯的 Session 可在運行時訪問憑證內容
完整流程
1. 建立 Vault
curl -X POST https://api.qoder.com.cn/api/v1/cloud/vaults \
-H "Authorization: Bearer $QODER_PAT" \
-H "Content-Type: application/json" \
-d '{
"display_name": "我的 GitHub 憑證",
"credentials": [
{
"mcp_server_url": "https://mcp.github.com/sse",
"protocol": "sse",
"type": "static_bearer",
"access_token": "ghp_xxxxxxxxxxxx"
}
]
}'
響應樣本:
{
"id": "vault_019e5cdb9c3f71c3b6505eba937a40b4",
"type": "vault",
"display_name": "我的 GitHub 憑證",
"status": "active",
"credentials": [
{
"id": "vcred_019e5cdb9c4f72a3b6505eba937a40c5",
"vault_id": "vault_019e5cdb9c3f71c3b6505eba937a40b4",
"status": "active",
"mcp_server_url": "https://mcp.github.com/sse",
"protocol": "sse",
"type": "static_bearer",
"created_at": "2026-05-18T08:00:00Z",
"updated_at": "2026-05-18T08:00:00Z"
}
],
"metadata": {},
"created_at": "2026-05-18T08:00:00Z",
"updated_at": "2026-05-18T08:00:00Z"
}
注意響應中 不包含
access_token欄位。
2. 追加 Credential
一個 Vault 可以隨時追加更多憑證:
curl -X POST https://api.qoder.com.cn/api/v1/cloud/vaults/vault_019e5cdb9c3f71c3b6505eba937a40b4/credentials \
-H "Authorization: Bearer $QODER_PAT" \
-H "Content-Type: application/json" \
-d '{
"mcp_server_url": "https://jira.example.com/mcp/sse",
"protocol": "sse",
"type": "static_bearer",
"access_token": "jira_token_xxxxxxxx"
}'
3. 在 Session 中使用
建立 Session 時通過 vault_ids 關聯:
curl -X POST https://api.qoder.com.cn/api/v1/cloud/sessions \
-H "Authorization: Bearer $QODER_PAT" \
-H "Content-Type: application/json" \
-d '{
"agent": "agent_xxx",
"vault_ids": ["vault_019e5cdb9c3f71c3b6505eba937a40b4"]
}'
Session 運行時,Agent 將自動獲得 Vault 中所有 Credential 的存取權限,用於串連對應的 MCP 伺服器。
參數說明
| 參數 | 類型 | 必填 | 說明 |
|---|---|---|---|
display_name |
string | 是 | Vault 顯示名稱 |
credentials |
array | 否 | 初始憑證列表,可為空白 |
credentials[].mcp_server_url |
string | 是 | MCP 伺服器位址 |
credentials[].protocol |
string | 是 | sse 或 streamable_http |
credentials[].type |
string | 是 | 當前僅 static_bearer |
credentials[].access_token |
string | 是 | Bearer Token 值 |
常見問題
Q: 能否更新已有 Credential 的 Token? A: 可以通過刪除舊 Credential 並重新建立實現輪換。
Q: 一個 Session 可以關聯多少個 Vault? A: 沒有硬性限制,但建議按服務分組管理,保持清晰。
Q: Token 泄露了怎麼辦? A: 立即刪除對應 Credential 並在第三方平台吊銷 Token,然後建立新的 Credential。
Q: 我能查看已儲存的 Token 嗎? A: 不能。出於安全考慮,access_token 寫入後不可讀取,只能刪除重建。
建議為不同環境(開發/生產)建立獨立的 Vault,避免混用憑證。