เชื่อมต่อไคลเอนต์ AI ผ่าน MCP

เชื่อมต่อไคลเอนต์ MCP ภายนอกกับ Dureach ผ่าน streamable HTTP ทำความยินยอม OAuth ให้ครบถ้วน และเรียกใช้ tools/list และ tools/call อย่างปลอดภัย

Dureach เปิดเซิร์ฟเวอร์ MCP แบบอ่านและดำเนินการที่ https://app.dureach.com/mcp สำหรับไคลเอนต์ MCP ภายนอก ไคลเอนต์ต้องทำความยินยอม OAuth ให้ครบถ้วน เรียก tools/list เพื่อค้นหาเครื่องมือที่ได้รับสิทธิ์ แล้วเรียก tools/call ด้วยชื่อเครื่องมือ dureach.* และอาร์กิวเมนต์ที่มีชนิดข้อมูลชัดเจน

ผลลัพธ์ของเครื่องมือถูกส่งไปยังไคลเอนต์ภายนอก และผู้ให้บริการอาจประมวลผลหรือเก็บข้อมูลไว้ ตรวจสอบข้อกำหนดการจัดการ การเก็บรักษา และการเข้าถึงข้อมูลก่อนเชื่อมต่อ ขอเฉพาะฟิลด์ที่จำเป็น และอย่าใส่ข้อมูลติดต่อหรือระเบียนลูกค้าในบทสนทนาที่แชร์ ภาพหน้าจอ หรือบันทึก

ต้องเตรียมอะไรก่อนเชื่อมต่อ

  1. เวิร์กสเปซ Dureach ที่เปิดความสามารถแพลตฟอร์มเอเจนต์แล้ว หากไม่มีความสามารถดังกล่าว การรับเข้าจะส่งคืน plan_capability_required
  2. ไคลเอนต์ OAuth ที่สามารถทำความยินยอมผ่านเบราว์เซอร์ได้ MCP รับเฉพาะโทเค็น OAuth bearer เท่านั้น คีย์ REST API จะถูกปฏิเสธบน /mcp
  3. ให้ความยินยอมในเบราว์เซอร์ในฐานะสมาชิกของพื้นที่ทำงาน เก็บข้อมูลรับรองในที่เก็บที่ป้องกันของไคลเอนต์หรือระบบจัดการข้อมูลลับฝั่งเซิร์ฟเวอร์ ห้ามวางโทเคนในบทสนทนา เอกสารที่แชร์ ภาพหน้าจอ หรือคำร้องสนับสนุน
  4. ไคลเอนต์ MCP ที่รองรับ streamable HTTP พร้อมการตอบสนอง JSON (เช่น Claude Desktop ที่มีตัวเชื่อมต่อ MCP, Cursor หรือไคลเอนต์ Python แบบกำหนดเองที่สร้างบน SDK mcp)

ความยินยอม OAuth สำหรับ MCP ทำงานอย่างไร

  1. ลงทะเบียนหรือเปิดไคลเอนต์ OAuth แล้วเริ่มการให้สิทธิ์สำหรับเวิร์กสเปซ
  2. เลือกเฉพาะขอบเขตที่ไคลเอนต์ต้องใช้ (ดู การอนุมัติ นโยบาย และโควตา MCP) ไคลเอนต์รายงานอาจต้องการเพียง companies:read และ trade:read ส่วนไคลเอนต์งานติดต่อต้องมีสิทธิ์เพิ่ม เช่น leads:create หรือ emails:send
  3. ให้ความยินยอมในเบราว์เซอร์ในฐานะสมาชิกของพื้นที่ทำงาน เก็บข้อมูลรับรองในที่เก็บที่ป้องกันของไคลเอนต์หรือระบบจัดการข้อมูลลับฝั่งเซิร์ฟเวอร์ ห้ามวางโทเคนในบทสนทนา เอกสารที่แชร์ ภาพหน้าจอ หรือคำร้องสนับสนุน
  4. ส่งโทเค็นเป็น Authorization: Bearer YOUR_OAUTH_ACCESS_TOKEN ในทุกคำขอ MCP HTTP เก็บโทเค็นให้พ้นจาก URL ภาพหน้าจอ บันทึก และตั๋วสนับสนุน
  5. หากไคลเอนต์ต้องดำเนินการในนามเวิร์กสเปซเฉพาะ ให้ส่ง X-Workspace-ID พร้อมรหัสเวิร์กสเปซของโทเค็น ค่าที่ไม่ตรงกันจะส่งคืน workspace_context_required

ตรวจสอบเอกสารเมทาดาตาที่ /.well-known/oauth-protected-resource/mcp เมื่อไลบรารีไคลเอนต์ต้องการค่าที่ใช้ค้นหาบริการ

ไคลเอนต์ใช้เอนด์พอยต์และโปรโตคอลใด

  • ใช้ https://app.dureach.com/mcp ให้ตรงทุกตัวกับไคลเอนต์ MCP ที่รองรับ streamable HTTP
  • ให้ความยินยอม OAuth สำหรับพื้นที่ทำงานที่ต้องการ และเก็บข้อมูลรับรองในที่เก็บที่ป้องกันของไคลเอนต์หรือระบบจัดการข้อมูลลับฝั่งเซิร์ฟเวอร์
  • หากโฮสต์หรือต้นทางถูกปฏิเสธ ให้ตรวจสอบ URL ที่ตั้งค่าและติดต่อฝ่ายสนับสนุน ห้ามลบหรือปลอมส่วนหัวความปลอดภัยเพื่อข้ามการปฏิเสธ
  • เก็บ request_id จากผลตอบกลับเพื่อแก้ปัญหา และห้ามใส่โทเคนหรือแถวข้อมูลในบันทึกที่แชร์

วิธีแสดงรายการเครื่องมือที่ใช้ได้

หลังให้ความยินยอม OAuth ให้เรียก tools/list เครื่องมือที่ใช้ได้แต่ละรายการมีชื่อและสคีมาอาร์กิวเมนต์ ใช้สคีมาที่ได้รับเพื่อตรวจสอบคำขอก่อนเรียกเครื่องมือ

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/list",
  "params": {}
}

ใช้ tools/list เพื่อดูเครื่องมือที่ใช้ได้กับการเชื่อมต่อนี้ ความพร้อมใช้งานขึ้นอยู่กับสิทธิ์ที่ได้รับและสิทธิ์การเข้าถึงของพื้นที่ทำงาน เริ่มด้วยสิทธิ์อ่าน และให้ผู้ดูแลตรวจสอบสิทธิ์ที่ขาดแทนการขอสิทธิ์กว้างเกินความจำเป็น

วิธีเรียกใช้เครื่องมือ

ส่งคำขอ tools/call พร้อมชื่อเต็ม dureach. และออบเจ็กต์อาร์กิวเมนต์ ชื่อที่ไม่รู้จักหรือชื่อที่ไม่มีคำนำหน้าจะส่งคืน Unknown tool (INVALID_PARAMS):

{
  "jsonrpc": "2.0",
  "id": 2,
  "method": "tools/call",
  "params": {
    "name": "dureach.companies.search",
    "arguments": {"query": "industrial valves", "page": 1, "limit": 10}
  }
}

ผลสำเร็จจะส่งคืนหนึ่งรายการข้อความที่มี JSON พร้อมสำเนา structuredContent ที่แยกวิเคราะห์แล้ว ความล้มเหลวของแอปพลิเคชันจะส่งคืน isError: true พร้อม {"error": {"code": "...", "details": {...}}, "request_id": "..."} เก็บ request_id ไว้สำหรับการสนับสนุนและการจัดการลองใหม่ ขอบเขตค่าอาร์กิวเมนต์ทั้งหมดระบุอยู่ใน ข้อมูลอ้างอิงเครื่องมือ MCP

วิธีกำหนดค่าไคลเอนต์ทั่วไป

Claude Desktop หรือไคลเอนต์แบบใช้ตัวเชื่อมต่ออื่น

  1. เพิ่มเซิร์ฟเวอร์ streamable-HTTP ด้วย URL https://app.dureach.com/mcp
  2. กำหนดค่าการยืนยันตัวตน OAuth ด้วยรหัสไคลเอนต์จากการลงทะเบียน OAuth ของ Dureach และ URL เมทาดาตาทรัพยากร MCP
  3. ทำความยินยอมให้ครบถ้วน แล้วตรวจสอบว่าตัวเชื่อมต่อแสดงรายการเครื่องมือที่ขึ้นต้นด้วย dureach.
  4. เริ่มด้วย dureach.workspace.context และ dureach.workspace.capabilities ก่อนค้นหาข้อมูล

ไคลเอนต์ Python แบบกำหนดเอง (SDK mcp อย่างเป็นทางการ)

import os

from mcp import ClientSession
from mcp.client.streamable_http import streamable_http_client

MCP_URL = "https://app.dureach.com/mcp"
TOKEN = os.environ["DUREACH_OAUTH_ACCESS_TOKEN"]

async def main():
    async with streamable_http_client(
        MCP_URL, headers={"Authorization": f"Bearer {TOKEN}"}
    ) as (read, write, _):
        async with ClientSession(read, write) as session:
            await session.initialize()
            tools = await session.list_tools()
            print([t.name for t in tools.tools])
            result = await session.call_tool(
                "dureach.companies.search",
                {"query": "industrial valves", "page": 1, "limit": 10},
            )
            print("Search completed")

แทนที่โทเค็นและคำค้นด้วยค่าของคุณ ห้ามบันทึกโทเค็นลงในระบบควบคุมซอร์สโค้ด

ควรตรวจสอบอะไรก่อนแชร์สิทธิ์การเข้าถึง

  1. เรียก dureach.workspace.context และยืนยันว่ารหัสเวิร์กสเปซและขอบเขตที่ส่งคืนตรงกับเวิร์กสเปซที่ตั้งใจ
  2. เรียก dureach.workspace.capabilities และยืนยันว่าแสดงเฉพาะการดำเนินการที่คาดไว้
  3. เรียกอ่านแบบมีขอบเขตหนึ่งครั้ง (เช่น companies.search ด้วย limit: 5) และยืนยันฟิลด์การแบ่งหน้า
  4. สำหรับเส้นทางการเขียน ให้เรียกด้วย dry_run: true ก่อน ดู การอนุมัติ นโยบาย และโควตา MCP
  5. เพิกถอนโทเค็นที่ /oauth/revoke หรือใน Settings → Integrations เมื่อไม่ต้องการสิทธิ์อีกต่อไป

หน้าที่เกี่ยวข้อง