Hermes Blender MCP
Provides tools for interacting with Blender 5.2 LTS via the Blender Python API (bpy), enabling scene hierarchy inspection, primitive creation, object transforms, material assignment, object deletion, raw bpy script execution, and saving .blend files.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Hermes Blender MCPCreate a red cube at the origin and save it as demo.blend"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Hermes Blender MCP — ให้ Hermes สั่งงาน Blender 5.2 ได้
MCP Server (stdio) ที่เชื่อม Hermes Agent เข้ากับ Blender 5.2 LTS ผ่าน bpy
ให้ AI อ่านฉาก สร้าง/ขยับวัตถุ ใส่สี และรันสคริปต์ได้จริงจากในแชท
🎯 สถานะ: ทดสอบอัตโนมัติผ่าน 756 ข้อ (10 ชุด) + ยืนยันกับ Hermes ตัวจริงแล้ว (
hermes mcp add→ เชื่อมต่อได้ เห็นทั้ง 12 เครื่องมือ) ⏳ ยังไม่ได้ทดสอบกับ Blender จริง — เครื่องที่พัฒนาไม่มี Blender ติดตั้ง (ดูหัวข้อ ทดสอบอะไรแล้ว / ยังไม่ได้ทดสอบอะไร)
📖 ติดตั้ง: คู่มือภาษาไทย (INSTALL.th.md) · English (INSTALL.md) — ครอบคลุม Windows 11, Linux และ macOS 🤝 ร่วมพัฒนา: CONTRIBUTING.md · 📋 ประวัติเวอร์ชัน: CHANGELOG.md ⚖️ สัญญาอนุญาต MIT (เปลี่ยนได้ตามต้องการ)

🏠 บ้านทรงไทยโพลิกอน — 88 ชิ้น สร้างจากเรขาคณิตจริง (ไม่ได้ปั้นมือ · ไม่ได้ใช้ภาพจาก AI) เสายกพื้น · หลังคาซ้อนชั้นชัน 40.6° · หน้าบัน · ป้านลม · ช่อฟ้าโค้ง · ระเบียง · บันได — ดูในคู่มือ §10
1. ภาพรวมสถาปัตยกรรม (อ่านก่อนใช้งาน)
Hermes Agent
│ stdio (JSON-RPC)
▼
blender_mcp_server.py ← Python ของ "เครื่อง" · ใช้ mcp SDK ทางการ
│ ├─ เปิด Blender ให้เอง (โหมด -b)
│ └─ ซ็อกเก็ต 127.0.0.1:<พอร์ตสุ่ม> + token
▼
blender_bridge.py ← รัน "อยู่ข้างใน Blender" · stdlib ล้วน
│ เรียก bpy บน MAIN THREAD เท่านั้น
▼
Blender 5.2 (.blend ของคุณ)ทำไมต้องแยกเป็นสองโปรเซส
เหตุผลที่ 1 — stdout ของ Blender สกปรก
MCP สื่อสารผ่าน stdio แต่ blender -b พ่นข้อความต้อนรับ/บันทึกของตัวเองลง stdout
ตั้งแต่ก่อนสคริปต์จะได้รัน ถ้าให้ MCP server รันใน Blender เอง ไคลเอนต์จะอ่านเจอขยะ
ก่อน JSON แรก → พังทันที (ไฟล์นี้จึงยืนยันได้ว่า stdout ว่าง 0 ไบต์ ตอนสตาร์ต)
สะพานจึงใช้ ซ็อกเก็ต และปล่อยให้ stdout ของ Blender เป็นแค่บันทึก
เหตุผลที่ 2 — bpy ไม่ thread-safe
เอกสารและรายงานบั๊กของชุมชนยืนยันตรงกัน: เรียก bpy จาก thread อื่นได้ hard crash
ไม่ใช่ exception และ bpy.app.timers ไม่ทำงานในโหมด blender -b ด้วย
(มี PR จริงที่แก้เรื่องนี้ — เซิร์ฟเวอร์ที่พึ่ง timer จะค้างทุกคำสั่งในโหมด headless)
การออกแบบจึงแยกเป็นสองโหมดตามที่ bpy บังคับ:
โหมด | ใช้เมื่อ | กลไก | ไฟล์ |
main |
| วนรับงานบน main thread แบบบล็อก | ไม่ต้องใช้ add-on |
timer | Blender ที่เปิดหน้าต่างอยู่ | รับงานใน thread แยก → ส่งให้ main thread ผ่าน |
|
เหตุผลที่ 3 — ไม่ต้อง pip install อะไรลง Blender เลย
blender_bridge.py ใช้แค่ stdlib ⇒ บน Windows ไม่ต้องสิทธิ์ผู้ดูแลระบบ
และไม่ต้องกังวลว่า wheel ที่คอมไพล์แล้ว (เช่น pydantic-core) จะตรงรุ่น Python
ของ Blender หรือไม่ (Blender พา Python ของตัวเองมา)
Related MCP server: rogue-blender-mcp
2. สิ่งที่ต้องมี
ต้องการ | |
Blender | 5.2 LTS (ออก 14 ก.ค. 2026 · ซ่อมล่าสุด 5.2.2) — ใช้ได้ตั้งแต่ 4.0 ขึ้นไป |
Python | 3.10 ขึ้นไป (ทดสอบกับ 3.12 / 3.14) — เป็น Python ของเครื่อง ไม่ใช่ของ Blender |
แพ็กเกจ |
|
Hermes Agent | มี MCP client ในตัวอยู่แล้ว — แค่ใส่ค่าใน |
⚠️ mcp 2.x เปลี่ยนชื่อ
FastMCP→MCPServerโค้ดนี้ใช้ API ของ 2.x ถ้าติดตั้งmcp<2จะใช้ไม่ได้ (และโค้ดที่เขียนตามตัวอย่างเก่า ๆ บนอินเทอร์เน็ตจะพัง)
3. ติดตั้ง
🪟 Windows 11 (แนะนำ)
:: 1) วางโฟลเดอร์โปรเจกต์ไว้ที่ไหนก็ได้ เช่น C:\Hermes-blender-mcp
:: แล้วดับเบิลคลิก (หรือรันใน cmd):
C:\Hermes-blender-mcp\install-windows.batสคริปต์จะทำให้ทั้งหมด: หา Python → สร้าง .venv → ติดตั้ง mcp → ตรวจว่าเจอ Blender ไหม
→ พิมพ์ค่า config ให้คัดลอก
ถ้าขั้นสุดท้ายบอกว่า "หา Blender ไม่เจอ" ให้ระบุเอง:
C:\Hermes-blender-mcp\.venv\Scripts\python.exe C:\Hermes-blender-mcp\blender_mcp_server.py ^
--check --blender "C:\Program Files\Blender Foundation\Blender 5.2\blender.exe"🐧 Linux / 🍎 macOS
cd /path/to/Hermes-blender-mcp
python3 -m venv .venv
./.venv/bin/pip install -r requirements.txt
./.venv/bin/python blender_mcp_server.py --check--check ต้องขึ้นแบบนี้:
Blender: /usr/bin/blender (เจอใน PATH)
สคริปต์สะพาน: /path/to/Hermes-blender-mcp/blender_bridge.py ✅✅ ทดสอบครั้งแรก (แนะนำอย่างยิ่ง)
run-hermes-blender-mcp.bat --selftest :: Windows
./run-hermes-blender-mcp.sh --selftest :: Linux/macOSคำสั่งนี้จะเปิด Blender จริง แล้วไล่เรียกทุกเครื่องมือให้ดูผลทีละตัว (สร้างลูกบาศก์ → ขยับ → ใส่สี → รันสคริปต์ → ลบ) ถ้าผ่านหมด = พร้อมใช้
--selftestจะเปิด Blender ขึ้นมาจริงและปิดให้เองเมื่อจบ — ไม่แตะไฟล์.blendของคุณ (ใช้--factory-startup= ฉากเริ่มต้น ไม่โหลดไฟล์เดิม)
4. ต่อเข้ากับ Hermes Agent
⚠️ ตรวจก่อน (กับดักที่พบบ่อยที่สุด)
Hermes ต้องมีแพ็กเกจ mcp ใน Python ของตัวเอง ไม่งั้นมันจะ
ปิดความสามารถ MCP เงียบ ๆ — ไม่มี error ให้เห็น แค่ไม่มีเครื่องมือขึ้นมา
python3 -c "import mcp; print('ok')" # ถ้าล้มเหลว ต้องติดตั้ง
~/.hermes/bin/uv pip install --python "$(which python3)" mcpวิธีที่ 1 (แนะนำ) — คำสั่งเดียวจบ
Hermes มีตัวจัดการ MCP ในตัว ใช้ hermes mcp add แล้วมันจะเชื่อมต่อและ
ตรวจหาเครื่องมือให้เลย:
# Windows 11 (PowerShell) — ⚠️ --args ต้องอยู่ "ท้ายสุด" เสมอ
hermes mcp add blender `
--command "C:\Hermes-blender-mcp\.venv\Scripts\python.exe" `
--connect-timeout 120 `
--args C:\Hermes-blender-mcp\blender_mcp_server.py# Linux / macOS
hermes mcp add blender \
--command "/path/to/Hermes-blender-mcp/.venv/bin/python" \
--connect-timeout 120 \
--args /path/to/Hermes-blender-mcp/blender_mcp_server.pyผลลัพธ์ที่ได้จริง (คัดจากเครื่องที่ทดสอบ):
Connecting to 'blender'...
✓ Connected! Found 8 tool(s) from 'blender':
get_scene_hierarchy Read the active scene: collection tree, ...
add_primitive_mesh Add a primitive mesh to the scene. ...
modify_object_transform Move, rotate or resize an existing object ...
get_object_details Full details for one object: world matrix, ...
delete_object Delete an object by name. ...
set_object_material Give a mesh object a simple Principled BSDF ...
save_blend_file Save the current .blend. ...
execute_blender_script Run raw bpy Python inside Blender ...
Enable all 8 tools? [Y/n/select]:
✓ Saved 'blender' to ~/.hermes/config.yaml (8/8 tools enabled)
Start a new session to use these tools, or run /reload-mcp to load them into open sessions.ตรวจทีหลังด้วย:
hermes mcp list # ดูรายการ + สถานะ
hermes mcp test blender # → ✓ Connected (1950ms) · ✓ Tools discovered: 8
hermes mcp remove blender⚠️ บทเรียนจริง: --args ต้องอยู่ท้ายสุด
รอบแรกที่ทดสอบ ใส่ --connect-timeout ต่อจาก --args → มันถูกกลืนเป็น
อาร์กิวเมนต์ของเซิร์ฟเวอร์ → เซิร์ฟเวอร์ออกทันที → Hermes รายงานแค่
✗ Failed to connect: Connection closed ซึ่งชี้ทางผิดไปไกล
วาง --connect-timeout ไว้ก่อน --args
เปิดไฟล์ .blend ของคุณตั้งแต่ต้น
hermes mcp add blender --command "..." --connect-timeout 120 `
--args C:\Hermes-blender-mcp\blender_mcp_server.py --blend-file "C:\งาน\บ้าน.blend"วิธีที่ 2 — แก้ ~/.hermes/config.yaml เอง
รูปแบบนี้คือสิ่งที่ Hermes เขียนจริง (คัดจากไฟล์หลังรัน hermes mcp add):
mcp_servers:
blender:
command: C:\Hermes-blender-mcp\.venv\Scripts\python.exe
args:
- C:\Hermes-blender-mcp\blender_mcp_server.py
connect_timeout: 120.0
enabled: true
timeout: 300 # เพิ่มเอง — งาน 3D ใช้เวลาได้ (ค่าปริยาย 120)คีย์ | ค่าที่แนะนำ | เพราะ |
| 120 | Blender ใช้เวลาหลายวินาทีเปิดตัว |
| 300 | สคริปต์/เรนเดอร์ใช้เวลาได้ |
| ปกติไม่ต้องใส่ | Hermes กรอง env — โค้ดมีค่าเริ่มต้นมาตรฐานเป็นทางถอยแล้ว |
📄 รายละเอียดเต็ม (รวมเรื่องตัวแปรสภาพแวดล้อมที่ Hermes กรอง, รูปแบบ JSON
mcpServersสำหรับไคลเอนต์อื่น, และตารางแก้ปัญหา) อยู่ในdocs/02-Hermes-config.md
🅱️ โหมดมีหน้าต่าง (attach) — เห็นภาพขณะ AI ทำ
ติดตั้ง add-on (ดู docs/01-ติดตั้ง-Windows11.md
หัวข้อสุดท้าย) → กด "เริ่มสะพาน" ในแผง View3D > Sidebar (N) > Blender MCP
→ แล้วสั่ง Hermes ให้ใช้ --attach:
hermes mcp add blender --command "..." --connect-timeout 60 \
--args blender_mcp_server.py --attach 127.0.0.1:9876 --token "วาง_TOKEN_จากแผง"✔️ เรียกใช้จริง
เริ่มเซสชันใหม่ (หรือ /reload-mcp) แล้วเครื่องมือจะขึ้นชื่อว่า
mcp_blender_get_scene_hierarchy, mcp_blender_add_primitive_mesh, … (8 ตัว)
ลองสั่งเป็นภาษาธรรมชาติ:
"ใช้ Blender สร้างลูกบาศก์ที่ (0,0,3) ย่อครึ่งหนึ่ง ใส่สีแดง แล้วบอกว่าฉากมีอะไรบ้าง"
5. เครื่องมือทั้งหมด (12) + ทรัพยากร (2)
เครื่องมือ
เครื่องมือ | ทำอะไร | พารามิเตอร์สำคัญ |
| อ่านฉากทั้งหมด: คอลเลกชัน + วัตถุ + transform + จำนวนจุดยอด |
|
| สร้างรูปทรงพื้นฐาน |
|
| ขยับ/หมุน/ย่อขยายวัตถุตามชื่อ |
|
| รันโค้ด |
|
| รายละเอียดวัตถุชิ้นเดียว (matrix_world, modifiers, materials, custom props) |
|
| ลบวัตถุ (มีสลักกันลบพลาด) |
|
| ใส่วัสดุ Principled BSDF สีง่าย ๆ |
|
| บันทึกไฟล์ |
|
| เรนเดอร์ภาพให้ AI "เห็น" ฉาก — คืนเป็นรูปจริง + ข้อมูลกำกับ |
|
| search_polyhaven | ค้นคลัง CC0 ของฟรี (HDRI/เท็กซ์เจอร์/โมเดล) — ไม่ต้องใช้คีย์ | query, asset_type (hdris/textures/models), categories, limit |
| get_polyhaven_info | ดูว่าของชิ้นนั้นมีรูปแบบ/ความละเอียดอะไร ก่อนโหลด | asset_id |
| download_polyhaven_asset | โหลดของ + ไฟล์เท็กซ์เจอร์ที่ต้องใช้ แล้วใส่เข้าฉากให้เลย | asset_id, kind, resolution, apply, target_dir, max_mb, texture_map |
🆓 คลังของฟรีที่ไม่ต้องใช้คีย์ — Poly Haven เป็น CC0 (public domain) ใช้เชิงพาณิชย์ได้ ไม่ต้องอ้างอิงที่มา ไม่ต้องสมัคร ไม่ต้องมี API key · มีทั้ง HDRI สำหรับให้แสง แผนที่พื้นผิว PBR และโมเดลสำเร็จรูป (เก้าอี้/ถัง/ต้นไม้…) ·
download_…ดึง ไฟล์เท็กซ์เจอร์ที่ต้องใช้คู่กัน มาด้วย และวางตามพาธสัมพัทธ์เดิม เพื่อให้โมเดลอ้างถึงได้ · ไฟล์ถูกแคชไว้ เรียกซ้ำไม่โหลดใหม่ · เลือกresolutionต่ำ (1k/2k) ก่อนเสมอ — 4k ขึ้นไปไฟล์ละหลายร้อย MB (มีmax_mbกันพลาด) · ทดสอบกับ API จริงในชุดทดสอบ (ข้ามเองถ้าเครือข่ายไม่พร้อม — ซื่อสัตย์กว่าแอบผ่าน)
🧍 สร้างตัวละคร 3D จากรูปที่แนบมาได้ไหม? ได้ — แต่ต้องเข้าใจขอบเขต: Hermes ดูรูป → ประเมินสัดส่วน/สี → สร้าง blockout ลงฉาก → ถ่ายภาพกลับมาดู → ปรับวนซ้ำ (ดู คู่มือ · ตัวอย่างที่รันได้) ส่วน ปั้นละเอียดจากรูปอัตโนมัติ (image-to-3D) ไม่มีในตัว เพราะต้องใช้บริการภายนอกที่มีคีย์ — โปรเจกต์นี้เลือกไม่ผูกกับคีย์ เอกสารจึงบอกตรง ๆ ว่าอะไรทำได้/ทำไม่ได้

ซ้าย = รูปต้นแบบ · กลาง/ขวา = โมเดล 27 ชิ้นที่สร้างจากเรขาคณิตของโปรเจกต์
(เรนเดอร์ด้วย tools/render_flat.py · ยังไม่ได้ใช้ Blender) —
รายละเอียดอยู่ใน คู่มือ §7–§8
🏠 ตัวอย่างที่ 2 — สถาปัตยกรรม: tools/thai_house_builder.py
สร้าง บ้านทรงไทยโพลิกอน 88 ชิ้น (เสายกพื้น · หลังคาช้อน 2 ชั้นชัน 40.6° · หน้าบัน ·
ป้านลม · ช่อฟ้าโค้ง · ระเบียง · บันได) ทุกชิ้นปิดสนิท — ดู คู่มือ §10
· ตัวอย่างเพิ่มเติม: 🌳 ต้นไม้ tree_builder.py · 🐕 สุนัข dog_builder.py
— ดู คู่มือ §11
· 🏘️ ภาพหมู่ทั้งฉาก scene_builder.py — คู่มือ §12
🖼️ AI เห็นภาพได้ —
get_viewport_screenshotส่งกลับเป็น content block ชนิดimageไม่ใช่แค่ชื่อไฟล์ พร้อมบล็อกข้อความบอกโหมด/กล้อง/ความละเอียด/เวลา โหมดrenderใช้ได้ทุกที่รวมถึง-b(เรนเดอร์จากกล้อง) · โหมดviewportต้องมีหน้าต่าง Blender ค่าตั้งการเรนเดอร์ของผู้ใช้ถูกคืนกลับเสมอหลังถ่ายภาพ · ไฟล์ปริยายอยู่ในโฟลเดอร์ชั่วคราว
ทรัพยากร
URI | เนื้อหา |
| ที่อยู่ไฟล์ · render engine · เฟรมปัจจุบัน/ช่วง · ความละเอียด · จำนวนของในไฟล์ |
| ลำดับชั้นของฉากทั้งก้อน (JSON) |
หน่วยหมุนเป็น "องศา" ในทุกเครื่องมือ (AI ถนัดองศา) แต่
bpyเก็บเป็นเรเดียน — โค้ดแปลงให้แล้ว และเทสต์ล็อกไว้ว่าต้องแปลงจริง
6. ⚠️ ความปลอดภัยของ execute_blender_script — อ่านตรงนี้
มันคือ "ราวกันตก" ไม่ใช่ "กรงขัง" — พูดตรง ๆ ว่า:
✅ ด่านที่กันได้จริง (ตรวจก่อนรันด้วย AST ไม่ใช่จับสตริง):
กันอะไร | ตัวอย่างที่ถูกปฏิเสธ |
import โมดูลอันตราย |
|
ฟังก์ชันในตัวอันตราย |
|
ทางหลบหนีคลาสสิก |
|
operator ที่ทำลายงาน |
|
⚠️ สิ่งที่ "กันไม่ได้" — และเราไม่แอบอ้างว่ากันได้:
นี่ไม่ใช่ sandbox ระดับ OS กระบวนการนี้รันด้วยสิทธิ์เดียวกับ Blender ของคุณ
โค้ดที่ผ่านด่านยังแก้ฉากทั้งหมดได้ ลบวัตถุได้ บันทึกทับไฟล์ได้
ถ้าไม่ไว้ใจผู้สั่ง อย่าเปิด allow_unsafe=true และ บันทึกไฟล์ก่อน ให้เป็นนิสัย
การออกแบบที่ลดความเสี่ยง: delete_object มีสลัก confirm=false เป็นค่าปริยาย ·
save_blend_file ไม่บันทึกทับเองถ้าไม่ได้สั่ง · และทุกข้อความ error เป็นภาษาไทยที่ AI อ่านรู้เรื่อง
7. แก้ปัญหา
อาการ | สาเหตุ / ทางแก้ |
| ใช้ |
| เปิดเองเพื่อดูข้อผิดพลาดจริง: |
Hermes ขึ้น "Failed to connect to MCP server 'blender'" |
|
เครื่องมือขึ้นแต่เรียกแล้วเงียบ | ดูบันทึกที่ |
| โหมด attach: ตรวจว่าใน Blender กด "เริ่มสะพาน" แล้ว และ token ตรงกัน |
คำสั่งถูกปฏิเสธด้วยข้อความ "ฝ่าด่านความปลอดภัย" | เป็นไปตามการออกแบบ — ถ้าตั้งใจจริงส่ง |
งานค้างนาน (เช่น ลูปยาว/เรนเดอร์) | หมดเวลาตาม |
รันแล้วไม่มีอะไรเกิดขึ้นในหน้าต่าง cmd | ปกติ — มันรอคำสั่ง JSON-RPC ทาง stdin ให้ Hermes เรียก |
8. ทดสอบ
bash tests/run_all.shชุดทดสอบ | ตรวจอะไร | จำนวน |
| โครง add-on + ตัวสร้าง zip + การเปิดสะพานอัตโนมัติ | 56 |
| ลิงก์/anchor ทุกไฟล์ · เอกสาร 2 ภาษาตรงกัน · ไม่มีอักษรต่างชาติหลุด · การเทียบโครงการอื่น · รูปประกอบมีจริงและเป็น PNG ที่สมบูรณ์ | 143 |
| ตัวอย่างสร้างตัวละคร: ผ่านด่านความปลอดภัย · รันจริงในฉากจำลอง · สัดส่วนที่ให้ไปถูกใช้จริง · ตัวละครจากรูปจริง (T-pose) เทียบกับที่วัดจากพิกเซล · เอกสารซื่อสัตย์ | 68 |
| ฉากภาพหมู่: เมชยังสมบูรณ์หลังย้าย/หมุน/ย่อ · ทุกชิ้นยืนบนพื้น · ไม่มีของทับกัน (AABB ทุกคู่) · อยู่ในขอบแผ่นดิน · แผ่นดินแผ่นเดียว | 35 |
| ต้นไม้ + สุนัข: เสา/ขาแตะพื้น · พุ่มซ้อนลำต้น · กิ่งยื่นพ้น · หัว-ปาก-จมูกเรียงถูก · ตาพ้นความกว้างปาก · สมมาตร | 47 |
| บ้านทรงไทย: ทุกชิ้นปิดสนิท · ระดับชั้นต่อกันจริง (เสา→พื้น→ฝา→หลังคา→สัน) · ช่อฟ้านั่งบนสันและโค้งจริง · หลังคาชัน ≥ 35° · บันไดไล่ถึงพื้น · ราวไม่ทับบันได (AABB) | 65 |
| เมชละเอียด: ทุกชิ้นปิดสนิท/ออยเลอร์ = 2/ปริมาตรตรงสูตร · สัดส่วนตรงกับที่วัดจากรูป · ขา-เท้าไม่ทับกัน · มือไม่ใหญ่กว่าแขน · | 67 |
| ค้นหา Blender (รวม Hermes กรอง env) · CLI · อดทนต่ออาร์กิวเมนต์แปลก · ติดตั้ง add-on ให้เอง · ตรวจโปรโตคอล | 58 |
| ตรรกะทุกเครื่องมือ + ด่านความปลอดภัย + การถ่ายภาพ + คลัง Poly Haven (จำลองเครือข่าย) + ยิง API จริง | 161 |
| ครบวงจรจริง: MCP client ทางการ ⇄ เซิร์ฟเวอร์ ⇄ สะพาน (รวมรูปส่งถึงไคลเอนต์จริง) | 56 |
รวม 756 ข้อ ทดสอบด้วยของจริงทุกชั้น ยกเว้นตัว Blender (ใช้ tests/fake_bpy.py)
ทดสอบอะไรแล้ว / ยังไม่ได้ทดสอบอะไร
สถานะ | |
⭐ Hermes ตัวจริงเชื่อมต่อได้ — | ✅ ยืนยันแล้ว (ด้วยสะพานจำลอง เพราะเครื่องนี้ไม่มี Blender) |
สื่อสาร MCP (handshake, tool list, สคีมา, เรียกใช้, resource, error) | ✅ ทดสอบด้วย MCP client ทางการ (56 ข้อ) |
ลิงก์ในเอกสารไม่เสีย (ปัญหาที่พบบ่อยสุดของรีโปสาธารณะ) | ✅ ตรวจทุก push — 56 ลิงก์ใน 8 ไฟล์ |
โปรโตคอลสะพาน (token, JSON บรรทัดละคำขอ, ข้อผิดพลาด, ตอบไม่ถูกต้อง) | ✅ ทดสอบผ่านซ็อกเก็ตจริง |
ตรรกะ bpy ทุกเครื่องมือ (สร้าง/ขยับ/ลบ/วัสดุ/รันสคริปต์/ด่านตรวจ/คลังของฟรี) | ✅ ทดสอบกับ |
stdout สะอาด (ไม่มีอะไรเลอะท่อ JSON-RPC) | ✅ ยืนยัน 0 ไบต์ |
การเปิด/ปิด Blender จริง (โดยเฉพาะบน Windows 11) | ❌ ต้องมี Blender → ใช้ |
การเรนเดอร์ · UI · | ❌ ต้องมี Blender |
การยิง API จริงของ Poly Haven | ✅ ทดสอบแล้ว (ค้น "chair" เจอจริง) — ข้ามเองถ้าเครือข่ายไม่พร้อม |
เครื่องที่พัฒนาไม่มี Blender ติดตั้ง จึงทดสอบได้ถึงชั้น "โปรโตคอล + ตรรกะ + การเชื่อมกับ Hermes" ส่วนชั้น Blender จริงใช้
--selftestยืนยันได้ในคำสั่งเดียว (ดูdocs/01ขั้นที่ 3)
9. บทเรียนจากการพัฒนา (บั๊กจริงที่เทสต์จับได้)
บันทึกไว้เพราะเป็นกับดักที่คนอื่นจะเจอเหมือนกัน — ไม่ใช่รายงานความสำเร็จ
# | บั๊ก | อาการที่เห็น | ต้นเหตุจริง |
1 |
| ทุกการเชื่อมต่อถูกปฏิเสธเงียบ ๆ → MCP server วนลอง 90 วินาทีแล้วค้าง |
|
2 | ปล่อย exception ธรรมดาในเครื่องมือ | AI เห็นแค่ | SDK กลืนข้อความ ของ exception ต้องโยน |
3 |
| ยังถูกบล็อก | ด่านอยู่ สองที่ (ตรวจ AST + |
4 |
| เทสต์หา | ของจริงย้ายคีย์ให้ — ของปลอมต้องทำเหมือนกัน ไม่งั้นเทสต์ตัดสินผิด |
📌 ข้อ 2 สำคัญที่สุดต่อประสบการณ์ใช้งาน: ถ้าไม่แก้ AI จะเดาสาเหตุผิดไปเรื่อย ๆ เพราะไม่มีข้อมูลอะไรเลย และข้อ 1 คือกรณีที่ "เทสต์ผ่านแต่ของจริงพัง" ถ้าไม่ทดสอบแบบ end-to-end
10. แผนผังไฟล์
Hermes-blender-mcp/
├── README.md ← ภาพรวมสถาปัตยกรรม + เครื่องมือ + บทเรียน
├── INSTALL.md ← คู่มือติดตั้ง (อังกฤษ)
├── INSTALL.th.md ← คู่มือติดตั้ง (ไทย)
├── CONTRIBUTING.md ← วิธีร่วมพัฒนา (กฎที่โปรเจกต์บังคับ · สูตรเพิ่มเครื่องมือ)
├── CHANGELOG.md ← บันทึกการเปลี่ยนแปลงทุกรุ่น
├── LICENSE ← MIT
├── blender_mcp_server.py ← MCP server (รันด้วย Python ของเครื่อง · stdio)
├── blender_bridge.py ← รันใน Blender (stdlib ล้วน · bpy บน main thread)
├── blender_addon/__init__.py ← add-on สำหรับโหมดมีหน้าต่าง (timer mode)
├── requirements.txt
├── install-windows.bat ← ติดตั้งอัตโนมัติ (Windows 11)
├── run-hermes-blender-mcp.bat/.sh ← ตัวเปิดเซิร์ฟเวอร์ / --check / --selftest
├── tools/
│ ├── build_addon_zip.py ← สร้าง zip สำหรับติดตั้ง add-on (Install from Disk)
│ ├── preview_blockout.py ← วาดผัง blockout เทียบรูปต้นแบบ (ต้องมี Pillow · dev-only)
│ ├── mesh_lib.py ← เครื่องยนต์เมช (ลบมุม/แท่งสอบ/ตรวจความสมบูรณ์) stdlib ล้วน
│ ├── character_builder.py ← ประกอบตัวละครละเอียด 27 ชิ้น → .obj/.mtl
│ ├── thai_house_builder.py ← บ้านทรงไทยโพลิกอน 88 ชิ้น (หลังคาช้อน · ช่อฟ้าโค้ง · ระเบียง · บันได)
│ ├── tree_builder.py ← ต้นไม้โพลิกอน (โคนบาน · กิ่ง · พุ่ม 9 ก้อน)
│ ├── dog_builder.py ← สุนัขโพลิกอน (4 ขา · ปากเรียว · หู · หาง · ปลอกคอ)
│ └── scene_builder.py ← ประกอบทุกอย่างเป็นฉากเดียว (ภาพหมู่) → .obj + เรนเดอร์
│ └── render_flat.py ← เรนเดอร์ระนาบสีเรียบเอง (Pillow · dev-only)
├── examples/
│ ├── character_blockout.py ← ตัวอย่างสร้างตัวละคร 3D จากสเปกที่ AI อ่านจากรูป
│ └── detail_character_in_blender.py ← นำเข้า .obj + Bevel/Subdiv/Smooth ใน Blender
├── docs/
│ ├── images/ ← รูปประกอบในคู่มือ (ภาพเทียบต้นแบบ/โมเดล/ผัง blockout)
│ ├── 01-ติดตั้ง-Windows11.md
│ ├── 02-Hermes-config.md
│ ├── 03-สร้างตัวละครจากรูป.md
│ └── 04-GitHub-repo-setup.md ← ข้อความ Description/Topics พร้อมใช้ตอน publish ← ตอบคำถาม "แนบรูปแล้วสร้างตามแบบได้ไหม"
├── .github/workflows/tests.yml ← รันชุดทดสอบบน GitHub อัตโนมัติ
├── .gitattributes ← บังคับ CRLF/LF ให้ .bat/.sh ไม่พังข้ามระบบ
├── tests/
│ ├── run_all.sh ← รันทุกชุด
│ ├── fake_bpy.py ← bpy ปลอมสำหรับทดสอบ
│ ├── bridge_host.py ← เปิดสะพานตัวจริงเพื่อทดสอบ e2e
│ ├── test_addon_structure.py · test_server_utils.py
│ ├── test_bridge_logic.py · test_mcp_e2e.py
└── docs/
├── 01-ติดตั้ง-Windows11.md
└── 02-Hermes-config.md10.1 การพัฒนา (Contributing)
bash tests/run_all.sh # ชุดทดสอบทั้งหมด (ไม่ต้องมี Blender)
python tools/build_addon_zip.py # สร้าง zip ของ add-on
python blender_mcp_server.py --list-tools # ดูรายการเครื่องมือทุก push จะรันชุดทดสอบบน GitHub อัตโนมัติ
(.github/workflows/tests.yml) ทั้ง Python 3.10 และ 3.12
พร้อมตรวจว่า stdout ว่างตอนสตาร์ต (กันท่อ JSON-RPC ถูกทำให้สกปรกโดยไม่ตั้งใจ)
💡 หลังอัปขึ้น GitHub แล้ว ใส่ป้ายสถานะใน README ได้ด้วยบรรทัดนี้ (แทนที่
<OWNER>/<REPO>):[](https://github.com/<OWNER>/<REPO>/actions/workflows/tests.yml)
11. เปรียบเทียบกับโครงการอื่นในระบบนิเวศ (ควรใช้อันไหน)
🔍 ตรวจเมื่อ 17 ต.ค. 2026 จากข้อมูลจริง (จำนวนดาวจากหน้ารีโป ·
pyproject.toml· ซอร์สaddon.py· สถานะ issue/PR) — ยังไม่ได้รันของใครเลย เพราะเครื่องที่พัฒนาไม่มี Blender ติดตั้ง ตัวเลขและสถานะด้านล่างจึงเป็น "สิ่งที่อ่านจากต้นทาง" ไม่ใช่ผลทดลอง
🏆 ตัวที่คนใช้มากที่สุด: ahujasid/mcp-for-blender
ข้อมูล | ค่า |
ดาว / fork | 31,125★ · 2,843 forks |
สัญญาอนุญาต | MIT · เวอร์ชัน 2.1.9 · หน้าเว็บ mcp-for-blender.com |
ชื่อเดิม |
|
ติดตั้ง |
|
MCP SDK | ตรึง |
ของเขาที่เรานำมาพัฒนาแล้ว (ดูรายการในหัวข้อ "สิ่งที่ได้เรียนรู้" ท้ายหัวข้อนี้): ส่งภาพหน้าจอ viewport กลับให้ AI ดู ✅ · add-on เปิดสะพานเองอัตโนมัติ ✅ · ติดตั้ง add-on ให้เอง ✅ · ตรวจเวอร์ชันโปรโตคอล ✅ · อดทนต่ออาร์กิวเมนต์แปลก ✅
ของเขาที่ยังดีกว่าอยู่: คลังโมเดล (Poly Haven / Poly Pizza) ·
สร้างโมเดล 3D ช่วย AI ·
ตรวจเวอร์ชันโปรโตคอลระหว่าง add-on กับเซิร์ฟเวอร์ · telemetry · บันทึกว่าผู้ใช้แก้ไขอะไรไป ·
มี safe mode (validate_code) · ชุมชนใหญ่ (52 issue เปิด — มีคนตอบ)
ข้อควรระวังที่ตรวจพบ
⚠️ โหมดไม่มีหน้าต่าง (
blender -b) ยังมีปัญหาค้าง — issue #251 ("bpy.app.timersไม่ทำงาน → ทุกคำสั่งค้าง") และ PR ที่เสนอแก้ ยังเปิดอยู่ ไม่ได้ merge ณ วันที่ตรวจ⚠️ ตรึง
mcp<2เพราะใช้ API v1 ที่ mcp 2.x ตัดออกแล้ว → ถ้ารันเซิร์ฟเวอร์ของเขา บน Python ที่มีmcp 2.x(เช่น env ของ Hermes) จะพัง ต้องปล่อยให้uvxสร้าง env แยกให้⚠️ พอร์ตคงที่ (
9876) ไม่มี token สุ่มแบบโปรเจกต์นี้
📋 ทางเลือกอื่นในระบบนิเวศ
GitHub มี 508 รีโป ที่เกี่ยวกับ "blender mcp" — ส่วนใหญ่เป็น clone/ฟอร์กของตัวข้างบน ที่อ้างจำนวนเครื่องมือสูง ๆ ควรอ่านซอร์สก่อนเชื่อตัวเลข
รีโป | ดาว | สัญญาอนุญาต | จุดที่อ้าง |
| 24★ | AGPL-3.0 | 218 เครื่องมือ + MSFS |
| — | — | "ครบที่สุด 223 เครื่องมือ" |
| — | — | ~270 เครื่องมือ |
| — | — | ระบุ "Blender 5" + agents/skills |
🚩 สัญญาณเตือน: รีโปที่อ้าง "N เครื่องมือ" แต่ดาว 0–2 หลัก มักเป็น fork ที่เปลี่ยนชื่อ หรือสร้างด้วย AI — ให้ดูว่ามีเทสต์ไหม มี commit ต่อเนื่องไหม และอ่านโค้ดจริงก่อนติดตั้ง
🧠 สกิลใน Hermes Skills Hub (คนละชนิดกับ MCP)
ค้นใน Hub ของ Hermes แล้วพบ 3 สกิลชื่อ "blender" ทั้งหมด trust = community (ไม่ได้ผ่านการตรวจจาก Nous):
สกิล | ที่มา | เป็นอะไร |
| skills.sh | ความรู้เรื่อง UI/ลำดับงานของ Blender |
| clawhub | "หลีกเลี่ยงข้อผิดพลาดที่พบบ่อย" (transform, modifier) |
| skills.sh | ความรู้ทั่วไป |
⚠️ สำคัญ: สกิลกับ MCP คนละหน้าที่ — สกิลคือ "ความรู้" (บอก AI ว่า Blender ทำงานยังไง) แต่ สั่ง Blender ไม่ได้ ส่วน MCP (โปรเจกต์นี้ หรือตัว 31k★) คือ "ลงมือทำ" ⇒ ใช้คู่กันได้ และ แค็ตตาล็อก MCP ที่ Nous รับรองยังไม่มี Blender (ตรวจแล้ว) (ยังไม่ได้ประเมินคุณภาพของ 3 สกิลนั้น — ตรวจแค่ว่ามีอยู่จริงและ trust เป็น community)
✅ สรุป: เลือกอันไหน
ถ้าคุณต้องการ… | ใช้ |
ฟีเจอร์เยอะ (คลังโมเดล · สร้างโมเดล 3D · ถ่ายภาพ viewport) + ชุมชนใหญ่ช่วยตอบปัญหา |
|
รันแบบไม่มีหน้าต่าง/บนเซิร์ฟเวอร์ (headless-first) เป็นหลัก | โปรเจกต์นี้ (ออกแบบมาเพื่อ |
ไม่ต้องติดตั้ง add-on และไม่ต้อง | โปรเจกต์นี้ (สะพานใช้ stdlib ล้วน) |
ใช้ | โปรเจกต์นี้ |
โค้ดเล็กพออ่านจบ + เทสต์เป็นสัญญา (399 ข้อ) + เอกสารไทย | โปรเจกต์นี้ |
ให้ AI "รู้" ศัพท์และขั้นตอนของ Blender | ติดสกิลจาก Skills Hub เสริม (trust: community) |
🙏 สิ่งที่ได้เรียนรู้จากตัว 31k★ (และนำมาแก้ในโปรเจกต์นี้)
เขาใช้
parse_known_argsโดยตั้งใจ เพราะไคลเอนต์ MCP มักเติมอาร์กิวเมนต์ของตัวเอง ต่อท้ายบรรทัดคำสั่ง → เราเปลี่ยนตามแล้ว (เดิมออกทันที ทำให้hermes mcp addขึ้นConnection closedที่หาสาเหตุยาก) ตอนนี้ข้ามพร้อมบันทึกเตือนเขาแก้ปัญหา "add-on เปิดสะพานให้เอง" ด้วย
bpy.app.timersตอนโหลดไฟล์ — เรานำมาใช้แล้ว (พร้อมด่านbpy.app.backgroundเพื่อไม่ให้โหมด-bค้างแบบ issue #251)ส่งรูปให้ AI ดู — เราทำตามแล้ว (
get_viewport_screenshot) โดยเลือกโหมดrenderเป็นปริยาย เพื่อให้ใช้ได้ทั้ง GUI และ-b(ของเขาถ่าย viewport ซึ่งต้องมีหน้าต่าง)ติดตั้ง add-on ให้เอง — ของเขามี CLI จัดการ add-on เราก็มี
--install-addonแล้วตรวจเวอร์ชันระหว่าง add-on กับเซิร์ฟเวอร์ — นำมาใช้เป็น
check_bridge_protocol()พร้อมข้อความบอกวิธีแก้ (--install-addon --force)ยังไม่นำมา (พร้อมเหตุผล): คลังโมเดล Poly Haven/Poly Pizza และสร้างโมเดลด้วย AI ต้องพึ่ง API ภายนอก/คีย์ และทำให้สะพานเลิกเป็น stdlib ล้วน · telemetry เราไม่ต้องการ (ส่งข้อมูลออกโดยไม่จำเป็น) · การบันทึกว่าผู้ใช้แก้อะไรไป ยังซับซ้อนเกินความจำเป็นตอนนี้
การมีหน้าเว็บเอกสาร + ชื่อแพ็กเกจที่ติดตั้งด้วย
uvxบรรทัดเดียว ลดแรงต้านของผู้ใช้ได้มาก
12. อ้างอิง
Blender 5.2 LTS — ออก 14 กรกฎาคม 2026 (ซ่อมล่าสุด 5.2.2, 15 ก.ย. 2026) ·
<https://developer.blender.org/docs/release_notes/5.2/>MCP Python SDK 2.x —
FastMCPเปลี่ยนชื่อเป็นMCPServer·<https://py.sdk.modelcontextprotocol.io/v2/migration/>เหตุผลเรื่อง
bpy.app.timersไม่ทำงานในโหมด-b— issue #251 และ PR #252 (ยังเปิดอยู่ ณ 17 ต.ค. 2026)โครงการที่คนใช้มากที่สุดในระบบนิเวศ —
ahujasid/mcp-for-blender(31,125★)
This server cannot be deployed
Maintenance
Related MCP Connectors
Blender-as-a-service for agents: search 3D assets, run Blender Python, or brief the studio agent.
Cloud Blender for AI agents: build, inspect, render and animate 3D scenes over remote MCP. Keep editable .blend projects and export GLB or STL. Make your first 3D asset free—30 compute minutes per UTC month, no credit card. First 100 eligible Free account owners to use all 30 minutes in one UTC month by December 31, 2026 UTC receive one calendar month of beta free: 4 compute hours per UTC month, 2 concurrent workers per deployment, 2 deployments, 2048×2048 renders at up to 256 samples, and 10 GiB storage. Existing usage counts toward the 4-hour allowance. Limited to 100 rewards; expires January 1, 2027 00:00 UTC. Free resumes afterward without an automatic charge. Examples, eligibility and terms: https://sceneplane.online/launch?utm_source=glama&utm_medium=directory&utm_campaign=first100
- OwlCADOAuthcom.owlcad
Parametric 3D CAD for AI agents: build print-ready parts, check them, export STL, 3MF or STEP.
Blender and GLB/FBX/USD/STL rendered on cloud GPUs for AI agents: product shots, turntables, MP4
Related MCP Servers
- FlicenseAqualityCmaintenanceEnables AI agents to inspect and drive Blender scenes directly, either through a live editor bridge on port 8190 or automatically via headless background CLI when Blender is closed. Provides token-efficient tools for scene outlining, object creation and modification, modifiers, materials, rendering, asset export, and arbitrary bpy script execution.11-
- AlicenseAqualityBmaintenanceEnables AI agents to drive Blender 5.1+ for modeling, sculpting, mesh editing, scene management, and rendering through live Python execution.26MIT
- AlicenseNot gradedqualityCmaintenanceEnables AI assistants to drive a live Blender session over MCP by creating and transforming primitives, building and assigning materials, inspecting scenes and objects, capturing viewport screenshots, and executing arbitrary bpy Python. Commands are relayed over a local TCP bridge to a Blender add-on and executed on Blender's main thread, supporting multiple simultaneous AI clients.MIT
- FlicenseNot gradedqualityAmaintenanceEnables AI agents to inspect and modify live Blender scenes, manage objects and materials, render images, retrieve PolyHaven assets, and send prompts to configurable local or OpenAI-compatible LLM backends.-