Hushscript MCP 伺服器透過 Model Context Protocol,讓助理連接您的錄音與逐字稿。您可以在瀏覽器中核准 OAuth 連線,或提供個人存取權杖。轉錄與付費操作會依帳戶的個人餘額或符合資格的工作區資金規則計費。
兩個伺服器
Hushscript 實際上運作兩個各自獨立的 MCP 伺服器,大多數讀者只需要用到其中一個。
https://mcp.hushscript.com/mcp 是本頁其餘部分所描述的帳戶伺服器,接受 OAuth 或個人存取權杖,真正的操作(上傳、轉錄、編輯、匯出)都在這裡進行。
POST https://hushscript.com/mcp 則是另一個獨立的免費文件伺服器:不需要帳戶、不需要權杖,也沒有任何登入步驟。它是唯讀且匿名的:無法開設帳戶、無法執行轉錄,也無法碰觸任何屬於帳戶的內容。它透過五個工具(get_pricing、get_capabilities、how_to_connect、list_pages、get_page)回答關於價格、功能、頁面內容與連接方式的問題,並以三項資源(hushscript://pricing、hushscript://capabilities、hushscript://connect)提供相同的資訊。
如果您是剛發現 Hushscript、手上沒有任何權杖、在花費任何金錢之前還在判斷這項產品是否適合您的代理程式,請先從文件伺服器開始。等您準備好連接帳戶時,再回到本頁其餘的內容。
連接
伺服器透過單一端點,以 Streamable HTTP 通訊:
https://mcp.hushscript.com/mcp
沒有 SSE 端點,也不需要在本機安裝 Hushscript 軟體。在 Claude Code 中:
claude mcp add --transport http hushscript https://mcp.hushscript.com/mcp
在接受 JSON 設定的用戶端中:
{
"mcpServers": {
"hushscript": {
"type": "http",
"url": "https://mcp.hushscript.com/mcp"
}
}
}
支援 OAuth 的用戶端會讀取 /.well-known/oauth-authorization-server 以探索端點。它可以透過 /oauth/register 註冊,或使用用戶端 ID 中繼資料文件,接著開啟瀏覽器視窗讓您登入。
您核准的內容
授權採用 OAuth 2.1 搭配 PKCE。瀏覽器視窗顯示的是 Hushscript 的同意畫面,而不是給用戶端輸入密碼的欄位:畫面會列出提出請求的應用程式名稱,以白話文說明它想做什麼,並等待您的回應。在您於畫面中核准之前,不會授予任何權限。
存取權杖的效期為一小時,更新權杖的效期為三十天。使用 OAuth 時,用戶端會代您處理這些憑證;您無需將個人存取權杖貼進設定檔。
沒有瀏覽器時
OAuth 連線需要在瀏覽器中核准。同一個伺服器也直接接受個人存取權杖,連線當下不需要瀏覽器步驟。個人使用者在帳戶中的 MCP 頁面的 建立新的權杖 區段建立權杖,選擇其權限範圍,並決定它是否可以購買分鐘數。權杖只會顯示一次,格式為 hsr1:<region>:pat.<id>.<secret>,並放在每個請求的 Authorization: Bearer <token> 標頭中:不需要 OAuth 往返、不需要同意畫面、不需要用戶端註冊。同一個權杖也適用於 REST API。
權杖也可以屬於無需人類帳戶持有人的機器帳戶。代理程式以 POST /v1/agent/accounts 啟動付費註冊,在可由它操作的瀏覽器中完成託管的 Stripe Checkout,再以一次性密鑰呼叫 POST /v1/agent/accounts/{signup_id}/claim 認領帳戶並取得第一個權杖。該權杖在這裡的連線方式與其他權杖完全相同。完整流程請見自動化使用。
權杖無法建立、列出或撤銷其他權杖。一個帳戶最多可持有 25 個有效權杖。機器帳戶的首個權杖可透過 REST API 輪替自身;流程請見自動化使用。
權限
每個連線都持有一組權限範圍。未指定權限範圍的 OAuth 請求,預設取得十一個可由呼叫端選擇的權限範圍中的十個,即除了 billing 以外的所有權限範圍。個人使用者在應用程式中建立權杖時,會選擇其權限範圍。機器帳戶的首個權杖只有 transcripts:read、transcripts:write、transcribe、account:read、export、billing,以及供自身輪替使用的獨立 pat:rotate 權限範圍。認領時會啟用兩個帳務操作開關;個人使用者建立的權杖則需刻意啟用它們。伺服器得知權限範圍後,只會提供相符的工具;後端會在每次呼叫時檢查權限。
| 權限範圍 | 允許的操作 |
|---|---|
transcripts:read |
讀取並匯出逐字稿、其中繼資料,以及已刪除清單 |
transcripts:write |
編輯、標記、翻譯、還原並刪除逐字稿 |
transcribe |
上傳錄音、以連結匯入,並執行轉錄 |
insights |
讀取、產生並刪除 Insights |
context |
管理已儲存的詞典與提示詞預設 |
account:read |
讀取餘額、使用量、交易紀錄與暫扣額度 |
settings:write |
變更帳戶設定 |
org:read |
讀取工作區成員、時數池活動記錄、發票與稽核紀錄 |
org:write |
變更成員權限、設定與解除法律保存,並排定轉為工作區保管(永久)的時間 |
export |
要求完整帳戶匯出、查看其狀態並下載 |
billing |
儲存或管理付款方式,並購買分鐘套餐 |
billing 在各方面都是例外。它絕不會被隱含授予,同意畫面會在您核准前提出警告,而且購買工具需要權杖的帳務操作旗標與帳戶層級的帳務操作開關都已啟用。pat:rotate 無法在 OAuth 請求或應用程式的權杖表單中選取。
工具涵蓋的範疇
56 個工具,依所涉及的範疇分組:
| 分組 | 工具數 | 範例 |
|---|---|---|
| 逐字稿:讀取 | 4 | list_transcripts, get_transcript, list_deleted |
| 逐字稿:編輯 | 10 | update_body, revert_body, retranslate, tag_transcripts |
| 轉錄 | 8 | create_upload, transcribe_from_url, list_jobs, cancel_job |
| 帳戶 | 6 | get_balance, get_usage, list_transactions |
| Insights | 3 | get_insights, generate_insights, delete_insights |
| 匯出 | 4 | export_transcript, request_account_export |
| 轉錄背景資訊 | 5 | save_dictionary, save_prompt_preset |
| 工作區 | 10 | get_org, list_org_members, get_org_audit_log, place_transcript_hold |
| 帳務 | 6 | list_packs, purchase_pack, list_payment_methods, add_payment_method |
export_transcript 會回傳 TXT、SRT、VTT、Markdown 或 JSON。完整的 21 種匯出格式則在應用程式中提供。
除了工具之外,伺服器在連線時還會發布三項資源與一個 instructions 字串:分鐘套餐、額度與權限範圍模型,以及完整的錯誤代碼目錄,讓用戶端在呼叫任何工具之前就能先讀懂規則。分頁列表工具使用 limit,以及前一頁傳回的不透明 cursor(取自 next_cursor);list_packs 與 list_payment_methods 則直接回傳清單,不使用 cursor。
MCP 上傳提交的是準備好的音訊。若來源為本機影片,請先在裝置上準備其音訊;transcribe_from_url 會在伺服器端取得支援的音訊連結,不會匯入影片連結。透過 MCP 啟動的工作使用一般模式:逐字稿會依帳戶的保留期限設定儲存。一次性的隱私模式只能在應用程式中使用,無法透過 MCP 權杖使用。
範例
透過 OAuth 流程連線的用戶端會得到一般的 MCP 工作階段,完全不會直接看到以下內容:其 SDK 會在底層自行組出 JSON-RPC。持有權杖的用戶端也是以手動方式傳送相同的協定,無論哪一種情況,這都能當作除錯輔助工具使用。
使用權杖連線時,直接將它放進請求即可,除了 initialize 之外不需要任何額外的交握:
curl -s https://mcp.hushscript.com/mcp \
-H "Authorization: Bearer hsr1:us:pat.4f2a1c.9e7b3d2a5c8f1e6b4a0d7c3f2e1b9a8d" \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "initialize",
"params": {
"protocolVersion": "2025-06-18",
"capabilities": {},
"clientInfo": { "name": "example-client", "version": "1.0.0" }
}
}'
以不同的內容再次送出相同的請求,就能看到該權杖權限範圍所涵蓋的每一個工具:
{
"jsonrpc": "2.0",
"id": 2,
"method": "tools/list"
}
每個項目都帶有名稱、描述,以及 JSON Schema 格式的 inputSchema,對應上方的分組。呼叫工具的方式如下,這裡以 create_upload 保留額度並開始上傳為例:
{
"jsonrpc": "2.0",
"id": 3,
"method": "tools/call",
"params": {
"name": "create_upload",
"arguments": {
"size_bytes": 52428800,
"duration_seconds": 1800,
"title": "Team standup 2026-09-10",
"transcription_options": { "speaker_detection": true }
}
}
}
create_upload 等結構化工具會回傳 content 文字區塊,內含字串化 JSON。例如:
{
"content": [
{
"type": "text",
"text": "{\n \"job_id\": \"job_8f3a1c2b9e\",\n \"balance_seconds\": 5400,\n \"held_seconds\": 1800,\n \"upload\": {\n \"part_size_bytes\": 33554432,\n \"total_parts\": 2,\n \"part_urls\": [\n { \"n\": 1, \"url\": \"https://...\" }\n ],\n \"next_part_number\": 2\n }\n}"
}
]
}
上方回應顯示上傳欄位;完整回應還包含 limits、funding 與 state。將位元組上傳至這些網址,以每個分段的 ETag 呼叫 complete_upload,然後輪詢 get_job 直到其狀態變為 done。以下結構化範例會直接顯示已解析的內部 JSON,並省略固定不變的 {"jsonrpc":"2.0","id":...} 請求包裝,因為只有 name 與 arguments 會變動。
export_transcript 會以文字回傳所選格式的內容,download_account_export_chunk 則以 base64 文字回傳原始位元組。只有工具回傳結構化資料時,才應將結果的 text 解析為 JSON。
列出並讀取逐字稿:
{
"name": "list_transcripts",
"arguments": { "limit": 5 }
}
{
"transcripts": [
{
"id": "t_9c2b7f10",
"title": "Team standup 2026-09-10",
"language_detected": "en",
"duration_seconds": 1800,
"tags": ["standup"],
"insights_state": "none"
}
],
"next_cursor": null
}
生成 Insights,同一份逐字稿的首次呼叫是免費的。此範例顯示開始新一輪生成後的餘額;reused 為 false:
{
"name": "generate_insights",
"arguments": { "id": "t_9c2b7f10" }
}
{
"ok": true,
"reused": false,
"balance_seconds": 5400,
"held_seconds": 0
}
購買分鐘數,需要提供 idempotency_key,這樣即使回應遺失後重試,也不會重複扣款:
{
"name": "purchase_pack",
"arguments": {
"pack": "300min",
"payment_method_id": "pm_1PxYzABC",
"idempotency_key": "agent-2026-09-11-refill-01"
}
}
{
"status": "ok",
"balance_seconds": 23400
}
資源可以不透過工具呼叫直接取得答案,只要以 resources/read 指定三個 URI 之一:
{
"jsonrpc": "2.0",
"id": 9,
"method": "resources/read",
"params": { "uri": "hushscript://pricing" }
}
簡略回應(已省略資源的說明文字):
{
"contents": [
{
"uri": "hushscript://pricing",
"mimeType": "application/json",
"text": "{\"packs\":[{\"id\":\"45min\",\"minutes\":45},{\"id\":\"300min\",\"minutes\":300},{\"id\":\"900min\",\"minutes\":900},{\"id\":\"1800min\",\"minutes\":1800},{\"id\":\"6000min\",\"minutes\":6000}]}"
}
]
}
使用 list_packs 取得目前的套餐金額與幣別。
每一個後端錯誤都帶有固定的代稱(slug)與數字代碼,使用 {"error": "<slug>", "code": <number>} 主體,與 hushscript://error-codes 中記載的格式相同。工具呼叫會把同樣的代稱與代碼,整合成一則易讀的訊息,而不是回傳原始的錯誤物件,並以 isError 標示結果,而非直接拋出例外:
{
"content": [
{
"type": "text",
"text": "Not enough transcription credit. This job needs 1800 seconds and the balance is 900 seconds. Top up at https://app.hushscript.com/billing (insufficient_balance, E3001)"
}
],
"isError": true
}
哪些操作會花費分鐘數
讀取帳戶資料不會消耗轉錄分鐘。付費操作使用與應用程式相同的費率,通常由個人預付分鐘支付。工作區轉錄若沒有選取翻譯目標,且有效時數池單獨足以支付整份工作,便可使用 Teams 時數池。含翻譯目標或匯入音訊網址的工作使用個人分鐘。資金來源不會改變逐字稿保管歸屬。
符合資格的個人帳戶在卡片驗證後可獲得 30 分鐘免費額度;機器帳戶則以註冊時購買的套餐開始使用。
- 轉錄 一段錄音,會依其長度花費分鐘數。醫療模式會額外增加 100%,每加一種翻譯目標語言則增加 25%。開啟多聲道時,會依每個音訊聲道分別計費,立體聲檔案會算兩次。
- Insights: 每份逐字稿的首次生成是免費的。之後重新生成,從原文重新開始需錄音長度的 40%,從純淨版更新則需 30%。重新生成使用成員的個人分鐘,即使原本的轉錄由工作區時數池支付也一樣。
- 重新翻譯 一份逐字稿,每種語言需花費其長度 25% 的分鐘數,而且會覆蓋原有內容:這次呼叫收費涵蓋的每一種語言,都會失去該語言先前手動編輯過的版本,且無法復原。
purchase_pack成功時會立即向符合資格的已儲存卡片扣款。它需要billing權限範圍、權杖自己的帳務操作旗標,以及帳戶層級的帳務操作開關。它會將分鐘加入個人餘額,而非 Teams 時數池。add_payment_method不需任何費用。它會回傳一個 Stripe Checkout 連結,用來為帳戶儲存卡片而不會收費;請在瀏覽器中完成一次(代理程式也可以操作自己的瀏覽器)。之後purchase_pack會嘗試在非工作階段中扣款;若扣款遭拒或發卡機構要求驗證挑戰,會回傳獨立的錯誤代碼,而不是未完成的頁面。
套餐本身的詳情請見定價頁面。
檢閱與撤銷連線
對於您能登入的帳戶,OAuth 連線會顯示在您帳戶的 MCP 頁面的 已連接的應用程式 區段,包含用戶端與權限範圍。權杖也會列在這裡;撤銷權杖會中斷其呼叫。移除用戶端設定只會讓該用戶端停止發出請求。機器帳戶沒有可用的登入信箱,因此其權杖會改為透過代理程式帳戶流程輪替自身。
限制
人類帳戶的每個權杖可發出每分鐘 1,200 次請求。代理程式帳戶的權杖譜系在輪替前後共用此額度。透過權杖呼叫 Stripe 的帳務路由,共用每個帳戶每分鐘 60 次的限制:卡片設定、購買、預設卡片變更、移除卡片,以及卡片清單快取未命中的情況。代理程式帳戶的購買與人類帳戶的權杖購買,都受每個帳戶在滾動 24 小時內最多三次嘗試的上限限制。代理程式的付費註冊會計入;預留嘗試名額後的失敗也會計入;人類使用者透過瀏覽器工作階段購買則不受此限。因上限而被拒絕時,回應為 HTTP 429/代碼 4038 agent_purchase_capped,與一般的 HTTP 429/代碼 5000 rate_limited 不同。兩者都會提供 Retry-After。
OAuth 授權與完成共用每個位址每分鐘 30 次的額度。註冊有獨立的每分鐘 30 次額度;/oauth/token 另有每分鐘 600 次額度。每個額度都以單一 IPv4 位址或單一 IPv6 /64 為索引。原始權杖內省的快取未命中,另有以相同索引計算的每分鐘 30 次額度;這並非限制每次 MCP 工具呼叫。