# การเชื่อมต่อโมเดล (MCP/Agent)

บทความนี้จะแนะนำวิธีการเชื่อมต่อ FIRERPA กับโมเดลภาษาขนาดใหญ่ (LLM) (ผ่าน MCP หรือคำสั่ง) FIRERPA ได้ติดตั้งโปรโตคอลฝั่งเซิร์ฟเวอร์ของ MCP และฟังก์ชัน tool-call ดั้งเดิมของ OpenAI ไว้ในระดับ low-level แล้ว ซึ่งรองรับการเขียนปลั๊กอิน MCP ของคุณเองและให้บริการผ่านพอร์ตมาตรฐาน 65000 หรือสืบทอดคลาส Agent เพื่อเรียกใช้ tools แบบอัตโนมัติเต็มรูปแบบ

## คำสั่ง Agent ในตัว

คุณสามารถใช้คำสั่ง `agent` ในตัวเพื่อทำงานที่ใช้ภาษาพูดทั่วไปให้สำเร็จได้อย่างรวดเร็วผ่านโมเดลภาษาขนาดใหญ่ รองรับผู้ให้บริการใดๆ ที่เข้ากันได้กับ OpenAI API + toolcall หรือบริการที่คุณสร้างขึ้นเอง เมื่อใช้ร่วมกับ crontab ในตัว คุณสามารถตั้งเวลาให้งานที่ใช้ภาษาพูดทำงานตามกำหนดเวลาได้

```{hint}
คำสั่ง `agent` จำเป็นต้องใช้งานภายในเทอร์มินัลในตัว และคุณต้องระบุ API และคีย์ที่ถูกต้อง ประสิทธิภาพการใช้งานของโมเดลภาษาขนาดใหญ่แต่ละตัวอาจแตกต่างกัน โปรดเลือกโมเดลที่เหมาะสมกับคุณที่สุด เราขอแนะนำ gemini, openai, deepseek, glm และอื่นๆ
```

| ชื่อพารามิเตอร์ | ประเภท | จำเป็น | ค่าเริ่มต้น | คำอธิบาย |
| :--- | :--- | :--- | :--- | :--- |
| `--api` | สตริง (str) | ใช่ | - | API endpoint |
| `--model` | สตริง (str) | ใช่ | - | ชื่อโมเดล |
| `--temperature` | เลขทศนิยม (float) | ไม่ | `0.2` | อุณหภูมิการสุ่มตัวอย่างของโมเดล (Model sampling temperature) |
| `--key` | สตริง (str) | ใช่ | - | API key สำหรับการยืนยันตัวตน |
| `--vision` | บูลีน (bool) | ไม่ | `False` | เปิดใช้งานโหมดการมองเห็นหรือไม่ |
| `--imsize` | จำนวนเต็ม (int) | ไม่ | `1000` | ขนาดรูปภาพในโหมดการมองเห็น |
| `--prompt` | สตริง (str) | ใช่ | - | คำสั่งสำหรับให้ Agent ดำเนินการ |
| `--max-tokens` | จำนวนเต็ม (int) | ไม่ | `16384` | จำนวน Token สูงสุดที่จะสร้าง |
| `--step-delay` | เลขทศนิยม (float) | ไม่ | `0.0` | เวลาหน่วงระหว่างแต่ละขั้นตอน |

```{attention}
โปรดทราบว่าที่อยู่ของพารามิเตอร์ API คือที่อยู่แบบเต็ม ไม่ใช่ base_url โดยปกติแล้วจะต้องต่อท้าย base_url ด้วย `/chat/completions` เพื่อสร้างที่อยู่ API ที่สมบูรณ์
```

หลังจากเตรียมข้อมูลที่จำเป็นเรียบร้อยแล้ว คุณสามารถป้อนคำสั่งต่อไปนี้ในเทอร์มินัลของรีโมทเดสก์ท็อปเพื่อให้ AI ควบคุมอุปกรณ์ของคุณโดยอัตโนมัติ

```bash
agent --api https://generativelanguage.googleapis.com/v1beta/openai/chat/completions --key YOUR_API_KEY --model gemini-2.5-flash --prompt "ช่วยฉันเปิดแอปตั้งค่า แพ็กเกจชื่อ com.android.settings ค้นหาการตั้งค่าเครือข่าย และเปิดโหมดเครื่องบิน"
```

หาก prompt สำหรับงานของคุณยาวเกินไป คุณสามารถระบุ prompt ของโมเดลผ่านไฟล์ได้เช่นกัน

```bash
agent --api https://generativelanguage.googleapis.com/v1beta/openai/chat/completions --key YOUR_API_KEY --model gemini-2.5-flash --prompt /path/to/prompt.txt
```

## การเชื่อมต่อ Claude & Cursor (MCP)

ส่วนนี้จะแนะนำวิธีการเชื่อมต่อฟังก์ชัน MCP ของ FIRERPA เข้ากับไคลเอนต์โมเดลภาษาขนาดใหญ่ของคุณ เราได้ยกตัวอย่างเฉพาะ Claude และ Cursor เท่านั้น คุณยังสามารถใช้งานได้ในที่อื่นๆ ที่รองรับโปรโตคอล MCP

```{note}
บริการ MCP ในตัวของ FIRERPA รองรับ tool-call, resource-read รวมถึง prompts, การแจ้งเตือนความคืบหน้า และล็อก
```

```{attention}
โปรดทราบว่าโปรโตคอลการสื่อสารระหว่างเซิร์ฟเวอร์เวอร์ชัน 8.0 และ 9.0 นั้นแตกต่างกัน โดย 9.x ใช้ streamable-http และ 8.x ใช้ sse
```

### การติดตั้งส่วนขยายอย่างเป็นทางการ

เราได้จัดเตรียมบริการ MCP อย่างเป็นทางการไว้ให้คุณ ซึ่งคุณสามารถดาวน์โหลดส่วนขยายนี้ได้ที่ <a href="https://github.com/firerpa/lamda/blob/HEAD/extensions/firerpa.py" target="_blank">extensions/firerpa.py</a> คุณยังสามารถอ้างอิงวิธีการเขียนเพื่อสร้างหรือขยายฟังก์ชันปลั๊กอินด้วยตนเองได้ หลังจากดาวน์โหลดสคริปต์ปลั๊กอินส่วนขยายแล้ว ให้อัปโหลดไปยังไดเรกทอรี `/data/usr/modules/extension` ของอุปกรณ์ผ่านรีโมทเดสก์ท็อปหรือใช้คำสั่ง push ด้วยตนเอง จากนั้นรีสตาร์ทอุปกรณ์หรือบริการ FIRERPA

```{attention}
สคริปต์ส่วนขยายของเวอร์ชัน 8.0 และ 9.0 ไม่สามารถใช้งานร่วมกันได้ โปรดตรวจสอบเวอร์ชันเซิร์ฟเวอร์ของคุณอย่างละเอียดและดึงสคริปต์ที่ถูกต้องจาก branch ของ GitHub
```

### การใช้งานส่วนขยายอย่างเป็นทางการ

สำหรับ **Claude** คุณต้องไปที่หน้าการตั้งค่าของ Claude และดำเนินการตามขั้นตอนที่แสดงในภาพด้านล่าง จากนั้นแก้ไขไฟล์กำหนดค่า claude_desktop_config.json ของ Claude ตามคำแนะนำ และเพิ่มการกำหนดค่าบริการ MCP json ต่อไปนี้


```json
{"mcpServers": {"firerpa": {"command": "npx", "args": ["-y", "supergateway", "--streamableHttp", "http://192.168.0.2:65000/firerpa/mcp/"]}}}
```

<p align="center">
<img src="/assets/images/claude-settings.png" alt="ตัวอย่าง" width="auto">
</p>

สำหรับ **Cursor** คุณต้องเปิด Cursor Settings ดำเนินการตามที่แสดงในภาพ และป้อนการกำหนดค่าต่อไปนี้

```json
{"mcpServers": {"firerpa": {"url": "http://192.168.0.2:65000/firerpa/mcp/"}}}
```

<p align="center">
<img src="/assets/images/cursor-settings.png" alt="ตัวอย่าง" width="auto">
</p>

```{attention}
โปรดอย่าลืมเปลี่ยนลิงก์ในการกำหนดค่าเป็นที่อยู่ IP ของอุปกรณ์ของคุณเอง
```

### การเขียนส่วนขยาย MCP

```{hint}
เอกสาร Coming soon. โปรดติดตาม
```