# מחבר MCP

## חיבור דרך ספריית Claude

פתח את [Nibomo בספריית Claude](https://claude.ai/directory/nibomo), חבר אותה, התחבר לחשבון Nibomo שלך ואשר את הגישה. Nibomo מופיעה כמחבר Community.

ב-Claude Code, השתמש באותו חשבון מינוי של Claude ובדוק את `/mcp` אחרי החיבור. התחברות עם מפתח API או דרך ספק צד שלישי לא טוענת אוטומטית את המחברים שלך מ-claude.ai.

אפשר גם להגדיר את Claude Code ישירות. הרץ את הפקודה שלמטה, ואז פתח את `/mcp` ב-Claude Code והשלם את ההרשאה בדפדפן:

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

[התיעוד של Claude Code על MCP](https://code.claude.com/docs/en/mcp#use-mcp-servers-from-claudeai).

## סקירה כללית

Nibomo מריצה שרת MCP (Model Context Protocol) מרוחק, כדי שלקוחות MCP וסוכני AI יוכלו לקרוא את הכרטיסים שהגיע זמנם, לחזור עליהם איתך שאלה אחר שאלה וליצור או לערוך עבורך כרטיסים וחפיסות.

סוכנים יכולים להתחבר בשתי דרכים: דרך שרת ה-MCP הזה (הכי מתאים ללקוחות MCP כמו Claude או Cursor), או דרך [כתובת הגילוי של Agents API](/he/docs/api/) עבור סוכני CLI. שתי הדרכים מגיעות לאותו ממשק נתונים לכל משתמש; העמוד הזה עוסק בשרת ה-MCP.

התחבר אליו בכתובת:

```text
https://mcp.nibomo.com/mcp
```

אמצעי ההעברה הוא Streamable HTTP. השרת חושף שמונה כלים: גילוי סביבות עבודה, קריאה וכתיבה של כרטיסים וחפיסות, מדריכי עיון, חזרות ונתוני שימוש בחשבון.

## איך להוסיף אותו בלקוח שלך

רוב הלקוחות מוסיפים שרת MCP מרוחק כמחבר מותאם אישית:

1. פתח את הגדרות המחברים או שרתי ה-MCP בלקוח שלך.
2. הוסף מחבר מותאם אישית והדבק את כתובת השרת `https://mcp.nibomo.com/mcp`.
3. בלקוחות אינטראקטיביים, אשר את ההרשאה בדפדפן כשתתבקש. השרת משתמש ב-OAuth 2.1 עם Dynamic Client Registration, ולכן אין client secret להדביק ואין אפליקציה שצריך לרשום מראש.
4. לשימוש ללא ממשק גרפי או משורת הפקודה, הגדר כותרת `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. הוסף את כתובת ה-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_`, דרך תהליך ההתחברות עם קוד חד-פעמי באימייל שמתועד ב[מדריך ה-API](/he/docs/api/), ואז שלח אותו כטוקן Bearer:

```text
Authorization: Bearer fca_ABCDEFGH_0123456789ABCDEFGHJKMNPQRS
```

זה אותו מפתח שממשק ה-REST לסוכנים מקבל, והוא לא דורש דפדפן או סבב OAuth.

התיאור הקנוני, הקריא למכונה, של שני המסלולים הוא תגובת הגילוי בכתובת `https://api.nibomo.com/v1/` (עם עותק זהה ב-`/v1/agent`).

## בטיחות והיקף

אפשר לאשר בבטחה את כלי ה-SQL, כי הממשק הוא דיאלקט סגור שהמנתח אוכף, ולא גישה חופשית למסד הנתונים:

- **רשימה סגורה של פקודות מותרות**: `sql_query` מקבל רק `SHOW TABLES`, `DESCRIBE`, `SHOW COLUMNS` ו-`SELECT`; `sql_execute` מקבל רק `INSERT`, `UPDATE` ו-`DELETE`. כל דבר אחר נדחה כבר בשלב הניתוח.
- **משאבים מוגבלים**: פקודות יכולות לגעת רק ב-`workspace`, `cards`, `decks` ו-`review_events`.
- **הגבלה לסביבת עבודה**: כל פקודת SQL וכל חזרה מוגבלות לסביבת עבודה אחת שיש לך גישה אליה, ה-`workspaceId` שהעברת או ברירת המחדל שבחרת, בלי גישה בין דיירים.
- **ארגומנטים מחמירים**: כל כלי דוחה ארגומנט לא מוכר, כך ש-`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` רושם חזרה ומקדם את לוח הזמנים של הכרטיס שלה.

כל המערכת, כולל האפליקציה, צד השרת והתשתית, היא בקוד פתוח וניתנת ל[אירוח עצמי](/he/docs/self-hosting/), כך שאפשר להריץ את אותו מחבר מול פריסה משלך.

---
*[הצג את גרסת ה\-HTML המעוצבת של הדף הזה](<https://nibomo.com/he/docs/mcp-connector/>)*

*סוכני AI יכולים ליצור חשבון למשתמש בשירות הזה, החל מ-`GET https://api.nibomo.com/v1/`. לאחר ההגדרה הם יכולים גם להתחבר דרך MCP בכתובת `https://mcp.nibomo.com/mcp`.*

*טיפ: הוסיפו `.md` לכל כתובת URL באתר https://nibomo.com כדי לקבל גרסת Markdown נקייה של הדף.*