ข้ามไปยังเนื้อหาหลัก

นักพัฒนา

เซิร์ฟเวอร์ MCP สำหรับถอดเสียงในบัญชีของคุณ

เชื่อมต่อเซิร์ฟเวอร์ MCP สำหรับถอดเสียงกับบัญชี Hushscript เพื่อทำงานกับไฟล์บันทึกและข้อความถอดเสียงผ่านเครื่องมือผู้ช่วยที่กำหนดขอบเขตสิทธิ์ไว้

เซิร์ฟเวอร์ MCP ของ Hushscript เชื่อมผู้ช่วยกับไฟล์บันทึกและข้อความถอดเสียงของคุณผ่าน 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 หรือใช้เอกสารเมทาดาทา client 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 อัปโหลดไบต์ไปยัง URL เหล่านั้น เรียก complete_upload พร้อม ETag ของแต่ละส่วน แล้วตรวจสอบ 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 การเรียกเครื่องมือแสดง slug และรหัสเดียวกันในข้อความที่อ่านเข้าใจได้ แทนออบเจกต์ข้อผิดพลาดดิบ และระบุผลลัพธ์ด้วย 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 ได้เมื่อพูลที่ใช้งานอยู่เพียงพูลเดียวมีนาทีพอสำหรับทั้งงานและไม่ได้เลือกภาษาแปลปลายทาง งานที่มีภาษาแปลปลายทางหรือนำเข้าจาก URL เสียงจะใช้นาทีส่วนตัว แหล่งนาทีที่ใช้ไม่เปลี่ยนการครอบครองข้อความถอดเสียง

บัญชีส่วนตัวที่มีสิทธิ์ได้รับฟรี 30 นาทีหลังยืนยันบัตร ส่วนบัญชีเครื่องเริ่มด้วยแพ็กเกจที่ซื้อตอนสมัคร

ดูแพ็กเกจที่หน้า ราคา

ตรวจสอบและเพิกถอน

สำหรับบัญชีที่คุณเข้าสู่ระบบได้ การเชื่อมต่อ 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 ทุกครั้ง

เริ่มถอดเสียงด้วย 30 นาทีสำหรับทดลองใช้

ดูตัวอย่างสูงสุด 5 นาทีก่อนสร้างบัญชี และบัญชีส่วนบุคคลใหม่จะได้ดูตัวอย่างฟรีจากไฟล์แรกที่อัปโหลดในแอป การถอดเสียงทั้งไฟล์ต้องมีบัญชีและนาที บัญชีส่วนบุคคลที่มีสิทธิ์รับ 30 นาทีฟรีหนึ่งครั้ง หลังยืนยันบัตรหรือพร้อมการซื้อครั้งแรก ไม่มีค่าสมาชิก

รับ 30 นาทีฟรี