Skip to main content
Glama
domainjon

Blender Universal & Token-Efficient MCP Server

by domainjon
README.md
# Blender Universal & Token-Efficient MCP Server

Blender 3D bilan ishlashda AI agentlar (**Antigravity**, **Claude Code**, **Cursor**, **Windsurf** va h.k.) uchun maxsus yaratilgan **Universal, Token-tejamkor va Gibrid Model Context Protocol (MCP)** serveri.

Ushbu tizim Blender sahnasini qo'lda boshqarish, murakkab `bpy` skriptlarini yozish va xatolarni taxmin qilish o'rniga, **token sarfini 80-90% gacha tejaydi** va Blender Editor bilan real vaqtda bevosita muloqot qilish imkonini beradi.

---

## 🌟 Asosiy Imkoniyatlar

1. **Gibrid Rejim (Jonli Editor + Oflayn Headless CLI):**
   - **Jonli Rejim (Live Editor):** Blender ochilganda TCP soketi (port 8190) orqali bevosita ulanadi. Barcha operatsiyalar Blenderning Main Thread'ida (`bpy.app.timers`) xavfsiz bajariladi.
   - **Headless CLI Rejimi:** Agar Blender ochiq bo'lmasa, server to'xtamaydi — `blender -b` buyrug'i orqali fonda xuddi shu operatsiyalarni bajaradi.
2. **Token Tejamkorligi (Smart Outliner & Object Pruning):**
   - Minglab vertex va poligonlardan iborat og'ir ma'lumotlar o'rniga LLM uchun eng muhim bo'lgan parametrlar (mesh statistikasi, transformatsiyalar, modifikatorlar va shader materiallari) ixcham formatda taqdim etiladi.
3. **Nol Tashqi Pip Bog'liqligi (Blender ichida Zero Dependencies):**
   - Blender ichiga birorta ham qo'shimcha `pip` paket o'rnatish shart emas! Standart Python kutubxonasi (`socket`, `threading`, `bpy`) orqali ishlaydi.
4. **Blender 3D Viewport N-Panel UI:**
   - 3D Viewport Sidebar (N) da **MCP Bridge** paneli mavjud: Port sozlash (standart 8190), Start/Stop qilish va ulangan mijozlar monitoringi.
5. **Avtomatlashtirilgan O'rnatish (`install_global.py`):**
   - Windows tizimidagi barcha Blender versiyalarini (`%APPDATA%\Blender Foundation\Blender\<ver>\scripts\addons`) avtomatik topib, add-onni to'g'ridan-to'g'ri o'rnatadi hamda Antigravity / AI konfiguratsiyasiga ro'yxatdan o'tkazadi.

---

## 🛠 Taqdim Etiladigan Asosiy MCP Vositalari (Tools)

| Vositachi (Tool) | Tavsifi | Rejim |
| :--- | :--- | :--- |
| `blender_ping` | Blender bilan aloqani, ochilgan fayl nomi, faol sahna va versiyani tekshiradi. | Jonli / Oflayn |
| `blender_get_scene_info` | Faol kamera, render dvigateli (Cycles/EEVEE), FPS, kadrlar chegarasi va obyektlar soni. | Gibrid |
| `blender_get_outliner` | Sahnadagi barcha kolleksiyalar va obyektlar iyerarxiyasi (token-tejamkor ixcham format). | Gibrid |
| `blender_inspect_object` | Bitta obyektning koordinatalari, mesh statistikasi, modifikatorlari, materiallari va ota-onasi. | Gibrid |
| `blender_create_object` | Mesh primitivlari (`cube`, `sphere`, `cylinder`, `plane`, `monkey` va h.k.), kamera yoki yorug'lik yaratish. | Gibrid |
| `blender_modify_object` | Obyekt koordinatalari (`location`), burchagi (`rotation`), masshtabi (`scale`), nomi yoki ko'rinishi. | Gibrid |
| `blender_manage_modifiers` | Modifikator qo'shish (`Subsurf`, `Bevel`, `Mirror`, `Boolean`), parametrlarini sozlash yoki o'chirish. | Gibrid |
| `blender_manage_material` | Material yaratish, Principled BSDF parametrlarini sozlash (Rang, Metallik, G'adir-budurlik) va biriktirish. | Gibrid |
| `blender_render_viewport` | Viewport yoki to'liq sahnani tezkor rasmga olib diskda PNG saqlash va fayl yo'lini qaytarish. | Gibrid |
| `blender_export_asset` | Sahnani yoki tanlangan obyektlarni `GLTF/GLB`, `FBX` yoki `OBJ` formatida eksport qilish. | Gibrid |
| `blender_execute_script` | Blender ichida ixtiyoriy Python (`bpy`) skriptini bajarish va stdout/stderr natijasini olish. | Gibrid |

---

## 🚀 1 Daqiqalik O'rnatish Qo'llanmasi

### 1-qadam: Virtual muhit va bog'liqliklarni o'rnatish

Loyiha papkasida terminal ochib:
```powershell
# Virtual muhit yaratish
uv venv

# Bog'liqliklarni o'rnatish
uv pip install -e .
```

### 2-qadam: Global ro'yxatdan o'tkazish va Add-onni o'rnatish

```powershell
python install_global.py
```
Bu skript:
1. Blender Add-onni barcha aniqlangan Blender versiyalarining `scripts/addons` papkasiga avtomatik nusxalaydi.
2. `blender` MCP serverini `~/.gemini/config/mcp_config.json` fayliga ulaydi.
3. Qo'lda o'rnatish uchun `mcp_blender_bridge_addon.zip` paketini yaratadi.

### 3-qadam: Blenderda Add-onni faollashtirish

1. Blenderni oching.
2. **Edit > Preferences > Add-ons** bo'limiga kiring.
3. Qidiruv maydoniga **"MCP Blender Bridge"** deb yozing va qutichani belgilab faollashtiring.
4. 3D Viewportda `N` tugmasini bosing — o'ng tomondagi panelda **"MCP Bridge"** yorlig'ini ko'rasiz! Server avtomatik ravishda 8190 portida faol bo'ladi.

---

## 💡 Foydalanish Misollari

- **Blender holatini tekshirish:**
  > "Blender holatini tekshir (blender_ping)"
- **Sahnani ko'rish:**
  > "Sahnadagi barcha kolleksiyalar va obyektlarni ko'rsat (blender_get_outliner)"
- **Obyekt yaratish va material berish:**
  > "Sahnaga bitta Sphere yarat va unga oltin rangli metall material ber"
- **Rasm olish:**
  > "Hozirgi sahnaning renderini ol va rasmni ko'rsat"
- **Ixtiyoriy procedural skript bajarish:**
  > "bpy orqali spiral shaklida 20 ta kubik joylashtiradigan skriptni bajar"