Skip to main content
Glama
README.md
# aipass-th-mcp

MCP server ที่เชื่อมต่อกับ **TH-AI Passport** (`https://de.aipass.net`) ผ่านเบราว์เซอร์จริง
(Playwright) เพื่อดึงรายการแชท / เนื้อหาแชท และส่งข้อความใหม่ ทำงานบนคอมพิวเตอร์ของคุณเอง
ไม่ใช่บนเซิร์ฟเวอร์ของใคร

> ⚠️ นี่คือการ reverse-engineer endpoint ภายใน (`/loaders/...`) ของเว็บนี้เอง ไม่ใช่ API
> ทางการที่มีเอกสารรองรับ ถ้าเว็บอัปเดต UI หรือโครงสร้างข้อมูล สคริปต์อาจต้องแก้ selector ใหม่
> ใช้กับบัญชีของคุณเองเท่านั้น และเป็นความรับผิดชอบของคุณในการตรวจสอบเงื่อนไขการใช้งานของเว็บ

## สิ่งที่ต้องมี

- Node.js 18 ขึ้นไป
- เบราว์เซอร์ Chromium ของ Playwright (ติดตั้งอัตโนมัติตอน `npm install`)

## ติดตั้ง

```bash
cd aipass-mcp
npm install
```

คำสั่งนี้จะติดตั้งไลบรารีและดาวน์โหลด Chromium ให้ Playwright อัตโนมัติ (ผ่าน `postinstall`)

## เพิ่มเข้า Claude Desktop / Claude Code

แก้ไฟล์ config ของ Claude Desktop:

- macOS: `~/Library/Application Support/Claude/claude_desktop_config.json`
- Windows: `%APPDATA%\Claude\claude_desktop_config.json`

เพิ่ม (แก้ path ให้เป็น path เต็มของโฟลเดอร์นี้ในเครื่องคุณ):

```json
{
  "mcpServers": {
    "aipass-th": {
      "command": "node",
      "args": ["/absolute/path/to/aipass-mcp/server.js"]
    }
  }
}
```

แล้วรีสตาร์ท Claude Desktop

(ถ้าใช้ Claude Code แทน ให้เพิ่มด้วย `claude mcp add aipass-th node /absolute/path/to/aipass-mcp/server.js`)

## การใช้งานครั้งแรก: login

บอก Claude ให้เรียกเครื่องมือ `login` (ในเซิร์ฟเวอร์ `aipass-th`) หนึ่งครั้ง — จะมีหน้าต่าง
เบราว์เซอร์เปิดขึ้นมาให้คุณ login เข้า TH-AI Passport ด้วยตัวเอง (username/password หรือวิธีที่เว็บ
กำหนด) เมื่อ login สำเร็จ session จะถูกบันทึกไว้ในเครื่องนี้ที่โฟลเดอร์
`~/.aipass-mcp-profile` (เปลี่ยนตำแหน่งได้ด้วย env var `AIPASS_PROFILE_DIR`)

ครั้งต่อ ๆ ไปไม่ต้อง login ใหม่ เว้นแต่ session หมดอายุ — ถ้าเครื่องมืออื่นแจ้งว่ายังไม่ได้
login ให้เรียก `login` ซ้ำอีกครั้ง

session/cookie ถูกเก็บไว้ในเครื่องนี้เท่านั้น ไม่ได้ถูกส่งออกไปที่ไหนทั้งสิ้น

## เครื่องมือที่มีให้ใช้

| เครื่องมือ | คำอธิบาย |
|---|---|
| `login` | เปิดเบราว์เซอร์ให้ login ด้วยตนเอง (ครั้งแรก/เมื่อ session หมดอายุ) |
| `list_chats` | รายการแชท (id + ชื่อ) ที่แสดงในแถบด้านข้าง |
| `search_chats` | ค้นหาแชทจากคำค้น |
| `get_chat` | ดึงเนื้อหาแชททั้งหมดจาก id |
| `send_message` | ส่งข้อความไปยังแชท (หรือสร้างแชทใหม่ถ้าไม่ระบุ id) แล้วรอคำตอบจาก AI |

## ข้อจำกัดที่รู้อยู่แล้ว

- `list_chats` / `search_chats` อ่านจาก DOM ของแถบด้านข้าง ถ้ามีแชทจำนวนมากที่ต้อง
  เลื่อน/โหลดเพิ่ม อาจได้ไม่ครบทุกรายการในครั้งเดียว
- `send_message` ใช้การพิมพ์ + กด Enter จริงในหน้าเว็บ และรอคำตอบสูงสุด ~60 วินาที ถ้า AI
  ตอบช้ากว่านั้นอาจต้องเรียก `get_chat` ซ้ำเองเพื่อดูคำตอบล่าสุด
- ทำงานแบบ headless (ไม่เห็นหน้าต่าง) ยกเว้นตอน `login`