ตัวเชื่อมต่อ MCP

เชื่อมต่อผ่านไดเรกทอรีของ Claude

เปิด Nibomo ในไดเรกทอรีของ Claude เชื่อมต่อ ลงชื่อเข้าใช้บัญชี Nibomo ของคุณ แล้วอนุญาตการเข้าถึง Nibomo อยู่ในรายการในฐานะตัวเชื่อมต่อประเภท Community

สำหรับ Claude Code ให้ใช้บัญชี Claude ที่สมัครสมาชิกไว้บัญชีเดียวกัน และตรวจสอบ /mcp หลังเชื่อมต่อ การเข้าสู่ระบบด้วยคีย์ API หรือผ่านผู้ให้บริการภายนอกจะไม่โหลดตัวเชื่อมต่อ claude.ai ของคุณโดยอัตโนมัติ

คุณยังกำหนดค่า Claude Code โดยตรงได้ด้วย รันคำสั่งด้านล่าง จากนั้นเปิด /mcp ใน Claude Code แล้วอนุญาตการเข้าถึงในเบราว์เซอร์ให้เสร็จสิ้น:

claude mcp add --transport http nibomo https://mcp.nibomo.com/mcp

เอกสาร MCP ของ Claude Code

ภาพรวม

Nibomo ให้บริการเซิร์ฟเวอร์ MCP (Model Context Protocol) ระยะไกล เพื่อให้ไคลเอ็นต์ MCP และ AI agent อ่านการ์ดที่ถึงกำหนดของคุณ ทบทวนกับคุณทีละคำถาม และสร้างหรือแก้ไขการ์ดและชุดการ์ดให้คุณได้

เอเจนต์เชื่อมต่อได้สองทาง: ผ่านเซิร์ฟเวอร์ MCP นี้ (เหมาะที่สุดสำหรับไคลเอ็นต์ MCP อย่าง Claude หรือ Cursor) หรือผ่าน URL discovery ของ Agents API สำหรับเอเจนต์แบบ CLI ทั้งสองทางเข้าถึงส่วนติดต่อข้อมูลรายผู้ใช้ชุดเดียวกัน หน้านี้อธิบายเซิร์ฟเวอร์ MCP

เชื่อมต่อได้ที่:

https://mcp.nibomo.com/mcp

การรับส่งข้อมูลใช้ Streamable HTTP เซิร์ฟเวอร์มีเครื่องมือแปดรายการสำหรับการค้นหาพื้นที่ทำงาน การอ่านและเขียนการ์ดและชุดการ์ด คู่มืออ้างอิง การทบทวน และการใช้งานบัญชี

วิธีเพิ่มในไคลเอ็นต์ของคุณ

ไคลเอ็นต์ส่วนใหญ่เพิ่มเซิร์ฟเวอร์ MCP ระยะไกลในรูปแบบตัวเชื่อมต่อแบบกำหนดเอง:

  1. เปิดการตั้งค่าตัวเชื่อมต่อหรือเซิร์ฟเวอร์ MCP ในไคลเอ็นต์ของคุณ
  2. เพิ่มตัวเชื่อมต่อแบบกำหนดเองแล้ววาง URL ของเซิร์ฟเวอร์ https://mcp.nibomo.com/mcp
  3. สำหรับไคลเอ็นต์แบบโต้ตอบ ให้อนุญาตการเข้าถึงในเบราว์เซอร์เมื่อระบบแจ้ง เซิร์ฟเวอร์ใช้ OAuth 2.1 กับ Dynamic Client Registration จึงไม่มี client secret ให้วาง และไม่ต้องลงทะเบียนแอปก่อน
  4. สำหรับการใช้งานแบบไม่มีหน้าจอหรือผ่าน CLI ให้ตั้งค่าส่วนหัว Authorization: Bearer fca_… ด้วยคีย์ API ของเอเจนต์แทนการอนุญาตผ่านเบราว์เซอร์

หลังอนุญาตแล้ว ให้เรียก list_workspaces หนึ่งครั้งเพื่อเลือกพื้นที่ทำงาน จากนั้นใช้ sql_query สำหรับการอ่าน และ sql_execute สำหรับการเขียนการ์ดและชุดการ์ด หากต้องการทบทวน ให้เรียก next_review_card ตามด้วย reveal_answer แล้วจึง submit_review

เครื่องมือ

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

  • get_usage_limits — อ่านอย่างเดียวอย่างเคร่งครัด: แพ็กเกจของบัญชี ขีดจำกัด และการใช้ AI ในเดือนปัจจุบัน โดยไม่อ่านหรือเปลี่ยนการ์ด
  • sql_query — การเข้าถึงการ์ดและชุดการ์ดของคุณแบบอ่านอย่างเดียวอย่างเคร่งครัด (SHOW TABLES, DESCRIBE, SHOW COLUMNS, SELECT)
  • sql_execute — การเข้าถึงการ์ดและชุดการ์ดของคุณแบบเขียน (INSERT, UPDATE, DELETE) เป็นชุดคำสั่งแบบอะตอมมิก
  • list_workspaces — รายการพื้นที่ทำงานที่คุณเข้าถึงได้ แบบอ่านอย่างเดียวอย่างเคร่งครัด แต่ละรายการมี workspaceId ชื่อ จำนวนการ์ดที่ใช้งานอยู่ กิจกรรมล่าสุด และระบุว่าเป็นค่าเริ่มต้นที่คุณเลือกอยู่หรือไม่ ใช้ workspaceId ที่ส่งกลับมาเป็นค่าของอาร์กิวเมนต์ workspaceId ที่ไม่บังคับของเครื่องมือ SQL และการทบทวน
  • get_guide — คู่มืออ้างอิงแบบอ่านอย่างเดียวอย่างเคร่งครัดสำหรับหนึ่งหัวข้อ: sql_dialect, card_authoring, bulk_authoring หรือ review_flow โดยไม่อ่านข้อมูลในพื้นที่ทำงาน
  • next_review_card — อ่านอย่างเดียวอย่างเคร่งครัด: ส่งคืนการ์ดใบถัดไปที่ต้องทบทวน เฉพาะด้านหน้า ตามลำดับคิวเดียวกับในแอป tags หรือ deckId ที่ไม่บังคับใช้จำกัดคิวให้แคบลง
  • reveal_answer — อ่านอย่างเดียวอย่างเคร่งครัด: ส่งคืนด้านหลังของการ์ดหนึ่งใบหลังจากผู้เรียนพยายามตอบด้านหน้าแล้ว
  • submit_review — บันทึกคะแนน Again, Hard, Good หรือ Easy หนึ่งครั้ง และเลื่อนตารางทบทวน FSRS ของการ์ดไปข้างหน้า

ส่วนติดต่อ SQL เป็นภาษาย่อยที่ถูกจำกัดขอบเขตโดยตั้งใจ และไม่ใช่ PostgreSQL เต็มรูปแบบ เอกสารนี้ครอบคลุมเฉพาะไวยากรณ์ที่รองรับ ไม่ใช่เอกสารอ้างอิงความเข้ากันได้กับ PostgreSQL คำสั่งเข้าถึงได้เฉพาะทรัพยากร workspace, cards, decks และ review_events ทุกคำสั่งจำกัดขอบเขตอยู่ในพื้นที่ทำงานของคุณเอง และการอ่านและการเขียนจำกัดไว้ที่ 100 แถวต่อคำสั่ง

การทบทวน

เครื่องมือการทบทวนช่วยให้เอเจนต์ถามทดสอบผู้เรียนทีละใบ และบันทึกคะแนนแต่ละครั้งลงในตารางทบทวน FSRS ของการ์ด:

  1. next_review_card ส่งคืน cardId และ frontText หรือ card: null เมื่อไม่มีการ์ดที่ถึงกำหนด
  2. หลังผู้เรียนตอบแล้ว reveal_answer จะส่งคืน backText ของการ์ดนั้น
  3. submit_review รับ cardId, reviewId แบบ UUID ที่ไคลเอ็นต์สร้างขึ้น, rating และ reviewedTimeZone แบบ IANA ของผู้เรียน เซิร์ฟเวอร์จะประทับเวลาการทบทวนและส่งคืนตารางทบทวนใหม่ของการ์ด

หากไม่แน่ใจว่าการส่งสำเร็จหรือไม่ ให้ลองใหม่ด้วย reviewId เดิม ระบบจะไม่บันทึกการทบทวนซ้ำเป็นครั้งที่สอง การส่งผลการทบทวนอาจตอบกลับดังนี้ได้ด้วย:

  • 409 REVIEW_EVENT_CONFLICT — การทบทวนนี้ถูกบันทึกไว้แล้ว และรายละเอียดข้อผิดพลาดมีตารางทบทวนปัจจุบันของการ์ด
  • 409 REVIEW_ID_CARD_MISMATCH — reviewId นี้ใช้ระบุการทบทวนของการ์ดใบอื่นอยู่แล้ว จึงไม่มีการบันทึกใด ๆ ให้ส่งใหม่ด้วย reviewId ใหม่
  • 409 REVIEW_STALE — เวลาทบทวนที่บันทึกไว้ของการ์ดตรงกับหรือหลังเวลาปัจจุบันของเซิร์ฟเวอร์ ให้ทบทวนการ์ดใบอื่น

การทบทวนจะถูกบันทึกผ่าน submit_review เท่านั้น: SQL ไม่สามารถเขียน review_events หรือสถานะการจัดตารางของ FSRS ได้ เรียก get_guide ด้วยหัวข้อ review_flow เพื่อดูกฎการทบทวนและการให้คะแนนฉบับเต็ม

ข้อกำหนดของการ์ด

การ์ดทุกใบเป็นไปตามข้อกำหนดเดียวกัน และเครื่องมือต่าง ๆ อาศัยข้อกำหนดนี้:

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

เอเจนต์ที่สร้างการ์ดผ่าน sql_execute จะทำตามข้อกำหนดนี้ การ์ดที่สร้างขึ้นจึงนำไปทบทวนด้วยระบบการทบทวนเว้นระยะได้ทันที

การยืนยันตัวตน

เส้นทางการอนุญาตทั้งสองแบบเข้าถึงส่วนติดต่อข้อมูลรายผู้ใช้ชุดเดียวกัน

OAuth 2.1 (ไคลเอ็นต์ตัวเชื่อมต่อแบบโต้ตอบ)

เซิร์ฟเวอร์ใช้โฟลว์ authorization code ร่วมกับ PKCE และ Dynamic Client Registration เพิ่ม URL ของ MCP เป็นตัวเชื่อมต่อแบบกำหนดเองแล้วอนุญาตในเบราว์เซอร์ ไม่มี client secret ที่ต้องแชร์ล่วงหน้า การค้นหาข้อมูลเมตาเป็นไปตามมาตรฐาน:

  • ข้อมูลเมตาของทรัพยากรที่ได้รับการป้องกัน: https://mcp.nibomo.com/.well-known/oauth-protected-resource
  • ข้อมูลเมตาของเซิร์ฟเวอร์การอนุญาต: https://auth.flashcards-open-source-app.com/.well-known/oauth-authorization-server

คีย์ API (แบบไม่มีหน้าจอและ CLI)

รับคีย์ API ของเอเจนต์แบบ fca_ ที่ใช้งานได้ระยะยาวผ่านโฟลว์การเข้าสู่ระบบด้วย OTP ทางอีเมลตามที่อธิบายไว้ในเอกสารอ้างอิง API จากนั้นส่งเป็นโทเค็น Bearer:

Authorization: Bearer fca_ABCDEFGH_0123456789ABCDEFGHJKMNPQRS

นี่คือคีย์เดียวกับที่ส่วนติดต่อ REST สำหรับเอเจนต์รับ และไม่ต้องผ่านเบราว์เซอร์หรือขั้นตอนไป-กลับของ OAuth

คำอธิบายหลักที่เครื่องอ่านได้ของทั้งสองเส้นทางคือข้อมูล discovery ที่ https://api.nibomo.com/v1/ (มีสำเนาที่ /v1/agent)

ความปลอดภัยและขอบเขต

เครื่องมือ SQL อนุมัติได้อย่างปลอดภัย เพราะส่วนติดต่อนี้เป็นภาษาย่อยที่ถูกจำกัดขอบเขตและบังคับใช้ด้วยตัวแยกวิเคราะห์ (parser) ไม่ใช่การเข้าถึงฐานข้อมูลได้อย่างอิสระ:

  • รายการคำสั่งที่อนุญาตแบบปิด: sql_query รับเฉพาะ SHOW TABLES, DESCRIBE, SHOW COLUMNS และ SELECT ส่วน sql_execute รับเฉพาะ INSERT, UPDATE และ DELETE คำสั่งอื่นจะถูกปฏิเสธตั้งแต่ขั้นแยกวิเคราะห์
  • ทรัพยากรที่จำกัด: คำสั่งเข้าถึงได้เฉพาะ workspace, cards, decks และ review_events
  • การจำกัดขอบเขตตามพื้นที่ทำงาน: ทุกคำสั่ง SQL และการทบทวนจำกัดขอบเขตอยู่ในพื้นที่ทำงานเดียวที่คุณเข้าถึงได้ คือ workspaceId ที่คุณส่งมา หรือค่าเริ่มต้นที่คุณเลือกไว้ โดยไม่มีการเข้าถึงข้ามผู้เช่า (tenant)
  • อาร์กิวเมนต์แบบเข้มงวด: ทุกเครื่องมือจะปฏิเสธอาร์กิวเมนต์ที่ไม่รู้จัก ดังนั้นหากสะกด workspaceId ผิด คำขอจะล้มเหลวแทนที่จะทำงานกับพื้นที่ทำงานเริ่มต้นของคุณ
  • ขีดจำกัด: สูงสุด 100 แถวต่อคำสั่ง สูงสุด 50 คำสั่งต่อชุด และผลลัพธ์จำกัดไว้ราว 12k โทเค็น ชุดคำสั่งแก้ไขข้อมูลจะมีผลแบบอะตอมมิก
  • การแยกอ่าน/เขียน: get_usage_limits, sql_query, list_workspaces, get_guide, next_review_card และ reveal_answer เป็นแบบอ่านอย่างเดียวอย่างเคร่งครัด (readOnlyHint) และไม่ซ่อมแซมข้อมูล ไม่คำนวณการจัดตารางใหม่ และไม่เปลี่ยนสถานะของการ์ด sql_execute และ submit_review เป็นเครื่องมือเขียนเพียงสองรายการ (destructiveHint): sql_execute เขียนการ์ดและชุดการ์ด ส่วน submit_review บันทึกการทบทวนและเลื่อนตารางของการ์ดนั้นไปข้างหน้า

ทั้งสแตก ซึ่งได้แก่แอป แบ็กเอนด์ และโครงสร้างพื้นฐาน เป็นโอเพนซอร์สและสามารถโฮสต์เองได้ คุณจึงใช้ตัวเชื่อมต่อเดียวกันนี้กับการดีพลอยของคุณเองได้