เซิร์ฟเวอร์ MCP
@paxalabs/mcp มอบ Paxa API ให้ MCP client ในรูปแบบเครื่องมือ ทั้งพูดออกลำโพงของเครื่อง บันทึกเสียงเป็นไฟล์ แปลเป็นภาษาไทย และ OCR เอกสาร ติดตั้งได้กับ Claude Code, Claude Desktop, Cursor หรือ VS Code และเปลี่ยน Claude Code ให้เป็นโหมดเสียงด้วยฮุก paxa say
@paxalabs/mcp คือเซิร์ฟเวอร์ Model Context Protocol อย่างเป็นทางการของ Paxa API เมื่อเชื่อมต่อแล้ว agent จะพูดผ่านลำโพงของเครื่อง อ่านเนื้อหายาวออกเสียงผ่านคิวเล่นเสียง บันทึกเสียงพูดเป็นไฟล์ แปลจากภาษาใดก็ได้เป็นภาษาไทย และอ่าน PDF กับรูปภาพด้วย OCR ได้ แต่ละเครื่องมือคิดเครดิตเท่ากับเอนด์พอยต์ API ที่อยู่เบื้องหลัง ซอร์สโค้ดอยู่บน GitHub
หมายเหตุ
เซิร์ฟเวอร์ยังอยู่ในช่วงเบต้า ชุดเครื่องมือครบและผ่านการทดสอบตั้งแต่ต้นจนจบแล้ว แต่ชื่อเครื่องมืออาจเปลี่ยนได้ก่อนเวอร์ชัน 1.0 แจ้งปัญหาได้ที่ https://github.com/paxalabs/mcp/issues
ติดตั้ง#
คุณต้องมี API key ก่อน บัญชีใหม่ได้รับเครดิตฟรี 100 เครดิต
claude mcp add paxa -e PAXA_API_KEY=pxa_your_key_here -- npx -y @paxalabs/mcp{
"mcpServers": {
"paxa": {
"command": "npx",
"args": [
"-y",
"@paxalabs/mcp"
],
"env": {
"PAXA_API_KEY": "pxa_your_key_here"
}
}
}
}รายการ JSON นี้ใช้ได้กับ Claude Desktop (claude_desktop_config.json), Cursor (~/.cursor/mcp.json), VS Code และ client อื่นที่เรียกเซิร์ฟเวอร์แบบ stdio แทนที่ค่าตัวอย่างด้วยคีย์ของคุณ
Claude Desktop ติดตั้งจากไฟล์ส่วนขยายในหน้า releases ได้เช่นกัน ดาวน์โหลดไฟล์ .mcpb เปิดด้วย Claude Desktop แล้วกรอกคีย์ในหน้าตั้งค่าส่วนขยาย ไฟล์นี้บรรจุเซิร์ฟเวอร์และไลบรารีที่ต้องใช้ไว้ครบ จึงใช้ได้โดยไม่ต้องติดตั้ง Node.js
เครื่องมือ#
| เครื่องมือ | หน้าที่ | เครดิต |
|---|---|---|
| speak | สังเคราะห์ประโยคสั้นแล้วเล่นออกลำโพง รอจนเล่นจบก่อนตอบกลับ | 15 ต่อ 1,000 ตัวอักษร |
| queue_speech | อ่านเนื้อหายาวออกเสียง แบ่งข้อความเป็นช่วง สังเคราะห์ล่วงหน้าระหว่างเล่น และตอบกลับทันที | 15 ต่อ 1,000 ตัวอักษร |
| control_playback | ควบคุมคิวเสียงที่ใช้ร่วมกัน: status, pause, resume, skip, clear | ฟรี |
| play_audio | เล่นไฟล์เสียงในเครื่องออกลำโพง | ฟรี |
| text_to_speech | สังเคราะห์เสียงเป็นไฟล์ (mp3, opus, wav) โดยไม่เล่น | 15 ต่อ 1,000 ตัวอักษร |
| translate_to_thai | แปลจากภาษาใดก็ได้เป็นภาษาไทย พร้อมควบคุมระดับภาษา อภิธานศัพท์ และบริบท | 25 ต่อ 1,000 ตัวอักษร |
| ocr_document | OCR ไฟล์ PDF, PNG, JPEG หรือ WebP ในเครื่องเป็น Markdown หรือบล็อกแบบมีโครงสร้าง | 6.5 ต่อหน้า |
| list_voices | รายชื่อเสียงพร้อมคำอธิบายบุคลิก | ฟรี |
| list_models | โมเดลที่ใช้ได้ ขีดจำกัด และราคา | ฟรี |
| get_account | ยอดเครดิต แพ็กเกจ และขีดจำกัดอัตราคำขอ | ฟรี |
เสียงทั้งหมดไหลผ่านคิวเดียวตามลำดับ จึงไม่มีเสียงซ้อนกัน ประโยคจาก speak จะแทรกขึ้นก่อนช่วงเนื้อหายาวที่รอคิวอยู่ ส่วน queue_speech ทำให้หนังสือหรือบทความไหลต่อเนื่องด้วยการสังเคราะห์ช่วงถัดไประหว่างที่ช่วงปัจจุบันกำลังเล่น หากติดตั้งโปรแกรมเล่นเสียงที่รองรับสตรีมไว้ เสียงจะเริ่มตั้งแต่ไบต์แรกที่มาจาก API หากไม่มี เสียงจะเล่นหลังดาวน์โหลดเสร็จ
โหมดเสียงสำหรับ Claude Code#
สามส่วนนี้ทำให้คุณเดินออกจากหน้าจอ Claude Code ได้ มันจะพูดเมื่อมีเรื่องแจ้ง และเรียกคุณเมื่อต้องการคำตอบ ติดตั้งเซิร์ฟเวอร์ตามข้างต้น บอก Claude ว่าควรพูดเมื่อไร แล้วตั้งฮุกสำหรับช่วงที่โมเดลหยุดรอ
บอก Claude ว่าควรพูดเมื่อไร#
เพิ่มข้อความนี้ใน ~/.claude/CLAUDE.md หรือใน CLAUDE.md ของโปรเจกต์ใดโปรเจกต์หนึ่ง:
## Voice
I have the Paxa MCP server (tools: speak, queue_speech, control_playback).
I am often away from the screen, so use voice like this:
- At the end of a turn where you did real work, call speak with a one or
two sentence summary before writing the final message: what you did,
what is next, and anything you need from me.
- When you need a decision from me, speak the question too.
- Keep it short and conversational. Never read code, file paths, logs, or
long lists aloud. Those stay in text.
- Do not speak for quick back-and-forth or trivial answers.
- If I ask to hear something long, use queue_speech.
- Speak in the language I write in.ให้ Claude เรียกเมื่อต้องการคุณ#
ระหว่างที่ Claude Code รอสิทธิ์อนุญาตหรือรอคำตอบ โมเดลจะหยุดทำงานและเรียก speak ไม่ได้ Claude Code จะยิงฮุกในจังหวะนั้นแทน และ paxa say จะเปลี่ยนฮุกเป็นเสียงพูดสั้นๆ เช่น "Permission needed." ติดตั้งคำสั่งลง PATH ด้วย npm install -g @paxalabs/mcp แล้วเพิ่มฮุกใน ~/.claude/settings.json:
{
"hooks": {
"Notification": [
{
"matcher": "permission_prompt|idle_prompt|agent_needs_input",
"hooks": [
{
"type": "command",
"command": "paxa say"
}
]
}
]
}
}paxa say อ่านคีย์จาก PAXA_API_KEY หรือจากรายการ paxa ใน ~/.claude.json เมื่อไม่ได้ตั้งค่าไว้ วลีในตัวจะถูกสังเคราะห์ครั้งเดียวต่อเสียงแล้วเก็บไว้ในโฟลเดอร์แคชของผู้ใช้ การแจ้งเตือนครั้งถัดไปจึงเล่นจากดิสก์โดยไม่ต้องต่อเครือข่ายและไม่เสียเครดิต ฮุก Stop ที่ตั้งค่าแบบเดียวกันจะพูดว่า "Done." เมื่อจบทุกเทิร์น
paxa say "Build finished" ใช้เดี่ยวๆ ได้เช่นกัน และ --voice ใช้เลือกเสียง README อธิบายการตั้งวลีเอง แฟล็ก --cache และโปรแกรมเล่นเสียงที่เร็วกว่าบน macOS
ตัวแปรสภาพแวดล้อม#
| ตัวแปร | จำเป็น | ค่าเริ่มต้น | หน้าที่ |
|---|---|---|---|
| PAXA_API_KEY | ใช่ | API key ของคุณ เซิร์ฟเวอร์เริ่มทำงานได้แม้ไม่มีคีย์ แต่ทุกเครื่องมือที่เรียก API จะล้มเหลวพร้อมคำแนะนำการตั้งค่าที่ agent ส่งต่อให้คุณได้ | |
| PAXA_OUTPUT_DIR | ไม่ | โฟลเดอร์ปัจจุบัน | ตำแหน่งที่ text_to_speech บันทึกไฟล์ |
| PAXA_DEFAULT_VOICE | ไม่ | nomyen | เสียงที่ใช้เมื่อคำสั่งไม่ได้ระบุเสียง ข้อความภาษาอังกฤษมักฟังดีที่สุดกับเสียงอังกฤษ (donut, cookie, toast, latte) |
| PAXA_BASE_URL | ไม่ | https://api.paxalabs.com | เปลี่ยน origin ของ API |
การเล่นเสียงที่รองรับ#
| แพลตฟอร์ม | เล่นจากไฟล์ | เล่นแบบสตรีม | หยุดชั่วคราวและเล่นต่อ |
|---|---|---|---|
| macOS | afplay (มีในระบบ) | ffplay, mpv หรือ mpg123 หากติดตั้งไว้ | ได้ |
| Linux | ffplay, mpv, mpg123, paplay หรือ aplay | ffplay, mpv หรือ mpg123 | ได้ |
| Windows | ffplay หากติดตั้งไว้ มิฉะนั้นใช้ PowerShell (wav) | ffplay หากติดตั้งไว้ | ไม่ได้ |
การสตรีมต้องใช้โปรแกรมเล่นเสียงที่อ่านจาก stdin ได้ บน macOS ติดตั้งด้วย brew install ffmpeg (หรือ mpv) หากไม่พบโปรแกรมเล่นเสียงเลย เครื่องมือพูดจะแจ้งให้ทราบ และ text_to_speech ยังใช้งานได้ตามปกติ