ปัญหาในปัจจุบัน: ต้องปรับ MCP เซิร์ฟเวอร์/ฮุกแยกสำหรับแต่ละ agent CLI

เมื่อเชื่อมต่อ MCP เซิร์ฟเวอร์เข้ากับหลาย agent CLI ก็ต้องคอยดูแลการตั้งค่าเดิมซ้ำ ๆ ในคนละฟอร์แมตอยู่ตลอด

ตัวอย่างเช่น:

  • Claude Code: JSON mcpServers
  • Codex: TOML [mcp_servers.*]
  • Cursor: mcp.json + hooks.json
  • Gemini: .gemini/settings.json

แค่การลงทะเบียนเซิร์ฟเวอร์ก็ยุ่งยากแล้ว ส่วนฮุกยิ่งซับซ้อนกว่า
เพราะแต่ละโฮสต์มี event model ต่างกัน แม้จะเป็นการทำงานแบบเดียวกันก็ยังต้องปรับใหม่ให้ตรงกับแต่ละ CLI

เพื่อลดงานซ้ำนี้จึงสร้าง agent-connector ขึ้นมา

วิธีแก้ปัญหา

ถ้ากำหนดครั้งเดียวด้วย defineConnector() ก็จะเรนเดอร์ออกมาเป็นไฟล์ตั้งค่าเนทีฟที่แต่ละโฮสต์อ่านใช้งานจริง

defineConnector({  
  server,  
  hooks,  
  plugins,  
  marketplace,  
})  

ไม่ได้ใช้วิธีรันตัว wrapper ตรงกลาง หรือบังคับให้ใช้ฟอร์แมตเฉพาะของตัวเอง
แต่เป็นวิธีสร้าง JSON, TOML, ไฟล์ settings และอื่น ๆ ที่แต่ละ CLI อ่านอยู่เดิมโดยตรง

ขอบเขตที่รองรับ

ตอนนี้ไม่ได้รองรับแค่การลงทะเบียน MCP เซิร์ฟเวอร์เท่านั้น แต่ครอบคลุมถึงส่วนต่อไปนี้ด้วย

  • การลงทะเบียน MCP เซิร์ฟเวอร์
  • การแปลง host-specific hook event model
  • การแพ็กเกจปลั๊กอิน / เอ็กซ์เทนชัน
  • ขั้นตอนการติดตั้งผ่าน marketplace ของแต่ละโฮสต์
  • การติดตั้งแบบครั้งเดียวไปยังหลาย CLI
  • การลบค่าตั้งค่าที่ค้างอยู่ด้วย uninstall --purge
  • token telemetry แยกตามแต่ละเครื่องมือ
  • การสร้างแบรนด์ CLI ของตัวเองด้วย SDK

ผู้ใช้จะใช้งานประมาณนี้

$ agent-connector install  
$ agent-connector uninstall --purge  
# หรือ  
$ plugin install brand-name   

สถานะปัจจุบัน

จนถึงตอนนี้ยังพัฒนาอยู่คนเดียว

เวลาส่วนใหญ่ถูกใช้ไปกับงานต่อไปนี้

  • การเรนเดอร์การตั้งค่าแบบข้ามโฮสต์
  • การทำ normalization ของ hook event model
  • การแพ็กเกจปลั๊กอิน / เอ็กซ์เทนชัน
  • ขั้นตอนการติดตั้งผ่าน marketplace
  • telemetry
  • การทดสอบบน Linux / macOS / Windows

ตอนนี้สามารถสร้างการตั้งค่าสำหรับ agent CLI ได้ 42 ตัว

สิ่งที่ลองตรวจสอบแล้ว

ได้ลองพอร์ต MCP เดิมอย่าง context-mode ด้วยการทดสอบจริง

ผลลัพธ์เป็นดังนี้

  • โค้ดสำหรับดีพลอยแยกตามโฮสต์: 20,322 บรรทัด → 76 บรรทัด
  • hook script: 71 ชุด → 0 ชุด
  • CLI ที่รองรับ: 15 ตัว → 42 ตัว

อย่างไรก็ตาม นี่ไม่ใช่กรณีของ MCP เซิร์ฟเวอร์ที่ผมสร้างเอง แต่เป็นกรณีย้ายเซิร์ฟเวอร์ที่มีอยู่แล้วมาทดลอง
ดังนั้นจึงอยากเห็นเคสที่พังจาก MCP เซิร์ฟเวอร์ที่หลากหลายกว่านี้

ฟีดแบ็กที่กำลังมองหา

หากใครกำลังสร้าง MCP เซิร์ฟเวอร์อยู่ ลองอัปโหลดขึ้นไปและส่งฟีดแบ็กมา จะช่วยได้มาก

โดยเฉพาะอยากได้ฟีดแบ็กในเรื่องต่อไปนี้

  • เคสที่การตั้งค่าพังใน CLI บางตัว
  • เคสที่ hook event model ยังไม่เพียงพอ
  • จุดที่ยังดูไม่ลื่นไหลในขั้นตอนปลั๊กอิน / marketplace
  • จุดที่การออกแบบ API ใช้งานไม่สะดวก
  • ข้อสังเกตเกี่ยวกับโครงสร้างโปรเจกต์ OSS

ถ้า MCP คือเลเยอร์ที่ทำหน้าที่เชื่อมเครื่องมือจริงให้กับ agent ก็คิดว่าจำเป็นต้องมีโครงสร้างที่ไม่ต้องถูกผูกลากไปตามวิธีตั้งค่าของ CLI ใด CLI หนึ่งตลอดเวลา

ยังไม่มีความคิดเห็น

ยังไม่มีความคิดเห็น