ตัวเชื่อมต่อ 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
ภาพรวม
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 ระยะไกลในรูปแบบตัวเชื่อมต่อแบบกำหนดเอง:
- เปิดการตั้งค่าตัวเชื่อมต่อหรือเซิร์ฟเวอร์ MCP ในไคลเอ็นต์ของคุณ
- เพิ่มตัวเชื่อมต่อแบบกำหนดเองแล้ววาง URL ของเซิร์ฟเวอร์
https://mcp.nibomo.com/mcp - สำหรับไคลเอ็นต์แบบโต้ตอบ ให้อนุญาตการเข้าถึงในเบราว์เซอร์เมื่อระบบแจ้ง เซิร์ฟเวอร์ใช้ OAuth 2.1 กับ Dynamic Client Registration จึงไม่มี client secret ให้วาง และไม่ต้องลงทะเบียนแอปก่อน
- สำหรับการใช้งานแบบไม่มีหน้าจอหรือผ่าน 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 ของการ์ด:
next_review_cardส่งคืนcardIdและfrontTextหรือcard: nullเมื่อไม่มีการ์ดที่ถึงกำหนด- หลังผู้เรียนตอบแล้ว
reveal_answerจะส่งคืนbackTextของการ์ดนั้น 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บันทึกการทบทวนและเลื่อนตารางของการ์ดนั้นไปข้างหน้า
ทั้งสแตก ซึ่งได้แก่แอป แบ็กเอนด์ และโครงสร้างพื้นฐาน เป็นโอเพนซอร์สและสามารถโฮสต์เองได้ คุณจึงใช้ตัวเชื่อมต่อเดียวกันนี้กับการดีพลอยของคุณเองได้