- הבנה מעמיקה של פרוטוקול MCP — מה זה, למה זה קיים, ואיך הארכיטקטורה עובדת
- לפחות שרת MCP אחד מותקן ועובד (Playwright, Context7, או GitHub)
- קובץ
settings.jsonמוגדר עם שרתי MCP, כולל Environment Variables - הבנת Tool Search — deferred loading שחוסך עד 85% מה-tokens של הגדרות כלים
- ידע מעשי על MCP Elicitation ו-OAuth — תכונות מתקדמות שהוספו ב-2026
- שרת MCP בסיסי שבנית בעצמך (Python או TypeScript)
- MCP Stack מותאם לתפקיד שלך — Developer, Marketer, או Data Analyst
- תוכל/י להסביר מה MCP עושה ולמה הוא קריטי להרחבת יכולות Claude Code
- תוכל/י להתקין, להגדיר ולאמת שרתי MCP חדשים בתוך דקות
- תוכל/י להעריך איזה שרתי MCP מתאימים לתפקיד שלך ולהרכיב Power Stack מותאם
- תוכל/י להפעיל Tool Search ו-Deferred Loading כדי לחסוך ~85% מצריכת tokens
- תוכל/י לבנות שרת MCP בסיסי בעצמך ב-Python או TypeScript
- פרקים קודמים: פרק 1 (Hooks) ופרק 2 (Custom Agents) — צריך הבנה בסיסית של Hooks ו-Agents כי MCP מרחיב את שניהם
- כלים נדרשים: Claude Code מותקן (v2.1.0+), Node.js 18+ (לשרתי npx), ואופציונלית Python 3.10+ עם
uv(לשרתי uvx) - זמן משוער לפרק: 60-90 דקות (כולל התקנת שרתים ובניית שרת בסיסי)
בפרק הקודם בנית Custom Agents — סוכנים מותאמים אישית שעושים עבודה ממוקדת בשבילך. הם יודעים לקרוא קבצים, לערוך קוד, ולהריץ פקודות — אבל הם מוגבלים למה שיש על המחשב שלך. עכשיו אנחנו הולכים לפרוץ את הגבולות: עם MCP, הסוכנים שלך (ו-Claude עצמו) יוכלו לגשת למסדי נתונים, לשלוט בדפדפן, לתקשר עם GitHub, ולהתחבר לכל API. בפרק הבא (פרק 4) נלמד על Skills — שם נחבר הכל ביחד: Skills שמפעילים Agents שמשתמשים ב-MCP tools.
| מונח באנגלית | הסבר בעברית |
|---|---|
| MCP (Model Context Protocol) | פרוטוקול הקשר למודל — תקן פתוח שמגדיר איך סוכני AI מתחברים לכלים, מקורות מידע, ושירותים חיצוניים |
| MCP Server | שרת MCP — תהליך מקומי שמדבר JSON-RPC ומספק כלים ל-Claude |
| JSON-RPC | פרוטוקול תקשורת שבו בקשות ותשובות עוברות כאובייקטי JSON דרך stdin/stdout |
| stdio | Standard Input/Output — ערוץ התקשורת הבסיסי בין תהליכים במערכת הפעלה |
| Tool Search / Deferred Loading | טעינה עצלה — במקום לטעון את כל הגדרות הכלים מראש, Claude טוען רק מה שהוא צריך ברגע שהוא צריך |
| Elicitation | עוררות/שאילתה — יכולת של שרת MCP לבקש קלט מובנה מהמשתמש באמצע Workflow |
| OAuth | פרוטוקול אימות שמאפשר גישה לשירותים צד-שלישי (Google, Slack) בלי לשתף סיסמה |
| npx / uvx | כלי הרצה של חבילות — npx ל-Node.js, uvx ל-Python. מאפשרים להריץ חבילה בלי להתקין אותה גלובלית |
| Context Window | חלון ההקשר — כמות ה-tokens שזמינה לשיחה. שרתי MCP עם הרבה כלים צורכים חלק ממנו |
| defer_loading | הגדרה שגורמת לכלי MCP להיטען רק כשצריך אותם (On-Demand), במקום מראש — חוסך ~85% tokens |
| Permissions (allow/deny) | מערכת הרשאות שמגדירה אילו כלי MCP Claude מורשה להשתמש בהם בלי לשאול |
| Version Pinning | נעילת גרסה — שימוש ב-@package@1.2.3 במקום @package למניעת שבירות מעדכונים |
1. מה זה MCP ולמה זה משנה הכל
MCP זה ראשי תיבות של Model Context Protocol — פרוטוקול הקשר למודל. זה תקן פתוח שנוצר על ידי Anthropic בנובמבר 2024 ומגדיר איך סוכני AI מתחברים לכלים חיצוניים, מקורות מידע, ושירותים. חשוב על זה ככה: בלי MCP, ל-Claude Code יש רק את הכלים המובנים — Read, Edit, Write, Bash, Grep, Glob, WebSearch, WebFetch. זה שמונה כלים חזקים, אבל הם מוגבלים לקבצים ולטרמינל שלך. אין שם גישה לדפדפן, ל-API של GitHub, למסד נתונים, או לשום שירות חיצוני.
עם MCP, Claude מקבל גישה לכל דבר: מסדי נתונים, דפדפנים, APIs של GitHub, Google Sheets, Slack, Notion, ועוד מאות שירותים. נכון למרץ 2026, האקוסיסטם של MCP כולל מאות שרתים — מהרשמיים של Anthropic ועד שרתים קהילתיים שנכתבו על ידי מפתחים ברחבי העולם. כל שירות שיש לו שרת MCP — Claude יכול לעבוד איתו.
MCP הוא כמו USB — מחבר אוניברסלי. כמו ש-USB מאפשר לחבר כל מכשיר למחשב, MCP מאפשר לחבר כל שירות ל-Claude. חבר פעם אחת, השתמש לנצח.
נקודה חשובה: MCP הוא לא ספציפי ל-Claude. זה תקן פתוח שעובד עם כל סוכן AI שמיישם את הפרוטוקול. אבל ל-Claude Code יש את האינטגרציה העמוקה ביותר עם MCP מכל כלי בשוק — וזה יתרון משמעותי.
לפני MCP מול אחרי MCP
בואו נראה את ההבדל בפועל. נגיד שאתה רוצה לבצע בדיקת איכות על אתר שלך: לצלם מסך, לבדוק שכל הלינקים עובדים, ולעדכן Issue ב-GitHub עם ממצאים.
| בלי MCP | עם MCP |
|---|---|
| אתה מצלם מסך ידנית ושומר קובץ | Claude מצלם מסך דרך mcp__playwright__browser_take_screenshot |
אתה כותב סקריפט Bash עם curl לבדוק לינקים |
Claude מנווט בדפדפן אמיתי ולוחץ על כל לינק |
| אתה פותח GitHub, יוצר Issue ידנית, מעתיק תוצאות | Claude יוצר Issue עם mcp__github__create_issue — כולל screenshots וממצאים |
| זמן: 20-30 דקות | זמן: 2 דקות (וClaude עושה הכל) |
זה ההבדל המהותי. MCP לא מוסיף יכולת חדשה שלא הייתה אפשרית קודם — הוא הופך פעולות שדרשו עבודה ידנית לאוטומטיות לחלוטין, ונותן ל-Claude כלים ייעודיים במקום עבודה "דרך הדלת האחורית" של Bash.
נניח שאתם מנהלים סוכנות שמטפלת ב-15 לקוחות. כל בוקר אתם צריכים לבדוק שהאתרים של הלקוחות עובדים, שאין שגיאות 404, ושדף הנחיתה נטען תקין. בלי MCP — זה 30-45 דקות של פתיחת טאבים, לחיצות, ובדיקות ידניות. עם MCP? אתם אומרים ל-Claude: "בדוק את 15 האתרים ברשימה, צלם מסך של כל דף בית, ודווח על בעיות". Playwright עובר על כל אתר אוטומטית, מצלם, מזהה שגיאות, וב-3 דקות יש לכם דוח מסודר עם Screenshots. זה ההבדל בין עבודה עם MCP ובלעדיו.
מה משתנה עם MCP?
בלי MCP, אם רצית ש-Claude יבדוק משהו ב-GitHub, היית צריך להריץ פקודת gh דרך Bash. זה עובד, אבל זה מוגבל — Claude צריך לנחש את התחביר, לפרסר את הפלט הטקסטואלי, ולטפל בשגיאות ידנית. עם MCP, Claude מקבל כלי GitHub ייעודי שמבין את כל ה-API: יצירת Issues, קריאת Pull Requests, בדיקת CI/CD, ניהול Releases. הכלי חכם יותר, מהיר יותר, ובטוח יותר מהרצת פקודות Bash — כי הפרמטרים מוגדרים בסכמה ברורה, והתשובה מגיעה כ-JSON מובנה.
כל שרת MCP מספק כלי אחד או יותר (tools). הכלים האלה מופיעים לצד הכלים המובנים של Claude, והוא משתמש בהם באותו אופן — Claude לא מבדיל בין כלי מובנה לכלי MCP. הוא פשוט בוחר את הכלי המתאים ביותר למשימה.
הקידומת של כלי MCP היא תמיד mcp__ ואחריה שם השרת והפעולה. ככה Claude (ואתה) יכולים לזהות מאיפה הכלי בא:
mcp__playwright__browser_navigate— נווט לכתובת בדפדפןmcp__github__create_issue— צור Issue חדש ב-GitHubmcp__postgres__query— הרץ שאילתה על מסד נתונים
המוח של Claude + כלי MCP = יכולת בלתי מוגבלת. Claude מספק את החשיבה, ההיגיון, והיצירתיות. MCP מספק את ה"ידיים" — הגישה לעולם החיצוני. ביחד, אתה מקבל סוכן AI שיכול לעשות כמעט כל דבר.
ציר הזמן של MCP
| תאריך | אירוע |
|---|---|
| נובמבר 2024 | Anthropic מציגה את MCP כתקן פתוח — הפרוטוקול מפורסם כ-Open Source |
| תחילת 2025 | Claude Code משלב תמיכה ב-MCP — אפשר להתקין שרתים ולהשתמש בכלים חיצוניים |
| ספטמבר 2025 | Claude Code 2.0 מעמיק את האינטגרציה — Tool Search, Deferred Loading |
| מרץ 2026 | MCP Elicitation (v2.1.76), OAuth לשרתי צד-שלישי — MCP הופך לפלטפורמה מלאה |
האקוסיסטם של MCP צמח מאפס לכמה מאות שרתים בפחות משנה וחצי (נובמבר 2024 — מרץ 2026). ה-Registry הרשמי ב-GitHub כולל עשרות שרתים מאומתים, וספריות קהילתיות כמו mcp.run מציעות עוד מאות. בנוסף, מערכת ה-Plugins של Claude Code (עם יותר מ-9,000 plugins נכון למרץ 2026) כוללת רבים שמבוססים על MCP.
מה שחשוב להבין: MCP הוא לא סתם עוד פיצ'ר — הוא הפלטפורמה שעליה כל האקוסיסטם של Claude Code מתרחב. כל חודש יוצאים שרתים חדשים, כל שבוע מישהו מחבר עוד שירות. ככל שהאקוסיסטם גדל, הערך של הידע שאתה לומד בפרק הזה רק עולה.
פתח את Claude Code והקלד /tools או /help. ספור כמה כלים מובנים יש לך. עכשיו תדמיין שבמקום 8 כלים יש לך 30, 50, או 100 — כל אחד מחובר לשירות אחר. זה בדיוק מה ש-MCP מאפשר, ובפרק הזה תגיע לשם.
2. איך שרתי MCP עובדים — ארכיטקטורה
שרת MCP הוא תהליך מקומי (local process) שרץ על המחשב שלך ומדבר JSON-RPC דרך stdio (Standard Input/Output). במילים פשוטות: Claude Code מפעיל את השרת, שולח לו בקשות בפורמט JSON, ומקבל תשובות בפורמט JSON. זה כל הסיפור.
הזרימה צעד אחר צעד
- הפעלה: כשאתה פותח session חדש ב-Claude Code, הוא קורא את
settings.json, מוצא שרתי MCP מוגדרים, ומפעיל כל אחד כתהליך נפרד - הכרזת יכולות: כל שרת מצהיר מה הוא יכול — אילו כלים הוא מציע, מה הפרמטרים של כל כלי, ומה הוא מחזיר
- שימוש: כש-Claude מחליט שהוא צריך כלי MCP, Claude Code מעביר את הבקשה לשרת המתאים, מחכה לתשובה, ומזין אותה חזרה ל-Claude
- סיום: כשאתה סוגר את ה-session, כל תהליכי השרתים נסגרים
למה stdio ולא HTTP?
שאלה שעולה הרבה: למה MCP משתמש ב-stdio (כמו pipe בין תהליכים) ולא ב-HTTP רגיל? התשובה: אבטחה ופשטות. כש-Claude Code מפעיל שרת MCP, הוא יוצר תהליך-בן (child process) ומתקשר איתו דרך stdin/stdout. אין פורט פתוח, אין שרת רשת, אין אפשרות שמישהו מבחוץ יתחבר לשרת. זה הרבה יותר בטוח מ-HTTP endpoint שצריך אימות, הצפנה, ו-CORS.
בנוסף, stdio פשוט להפליא. לא צריך להגדיר פורט, לא צריך TLS, לא צריך DNS. הפקודה npx @package מפעילה את השרת, Claude Code מתחבר, וזהו. זו אחת הסיבות ש-MCP הצליח כל כך מהר — הסף להתקנת שרת הוא אפסי.
שרתי MCP יכולים להיכתב בכל שפת תכנות — Python, TypeScript, Go, Rust — כל עוד הם מיישמים את פרוטוקול MCP. רוב השרתים מופצים בשלוש דרכים:
| דרך הפצה | הרצה | דוגמה |
|---|---|---|
| npm package | npx @package/name |
Playwright, GitHub, Context7 |
| Python package | uvx package-name או python -m package |
PostgreSQL, SQLite, custom servers |
| Docker container | docker run image-name |
שרתים עם תלויות מורכבות |
שרת ה-MCP רץ על המחשב שלך — הנתונים שלך נשארים מקומיים. הטעות הנפוצה היא לחשוב שהתקנת שרת MCP שולחת מידע לצד שלישי. בפועל, תהליך השרת עצמו תמיד מקומי, גם כשהוא מתחבר ל-APIs מרוחקים. ההבדל: השרת פועל אצלך ובוחר מה להעביר ולאן — אתה בשליטה מלאה.
שרתי MCP רצים כל עוד ה-session של Claude Code פעיל. כשאתה סוגר את ה-session, התהליכים נעצרים. כשאתה פותח session חדש, הם מופעלים מחדש. אין צורך לנהל אותם ידנית.
מה קורה "מתחת למכסה" — הזרימה הטכנית
בואו ניכנס לרגע לפרטים הטכניים. כשClaude מחליט שהוא צריך כלי MCP (נגיד browser_navigate), הנה מה שקורה ברגע אחד:
- Claude Code שולח JSON-RPC request ל-stdin של תהליך השרת:
{"method": "tools/call", "params": {"name": "browser_navigate", "arguments": {"url": "https://example.com"}}} - השרת מעבד את הבקשה — במקרה של Playwright, הוא פותח דפדפן Chromium ומנווט לכתובת
- השרת מחזיר תשובה ב-stdout כ-JSON:
{"content": [{"type": "text", "text": "Navigated to https://example.com. Page title: Example Domain"}]} - Claude Code מזין את התשובה חזרה ל-Claude, שממשיך מהנקודה שבה עצר
כל התהליך הזה שקוף לך. אתה רואה רק ש-Claude "השתמש" בכלי וקיבל תוצאה. אבל חשוב להבין את המנגנון — הוא עוזר לאבחן בעיות כש-MCP לא עובד כמו שצריך.
ומה ש-MCP באמת מיוחד? שרתים מרובים יכולים לרוץ במקביל. Claude יכול להשתמש ב-Playwright כדי לבדוק אתר, ב-GitHub כדי ליצור Issue על הבעיה שמצא, וב-PostgreSQL כדי לוודא שהנתונים נכונים — הכל באותו session, בלי שתצטרך לעשות שום דבר.
נגיד שאתה אומר ל-Claude: "בדוק שדף הנחיתה נטען נכון, ואם יש בעיה — פתח Issue ב-GitHub עם צילום מסך."
Claude מבצע את הצעדים הבאים אוטומטית:
- Playwright:
mcp__playwright__browser_navigate→ נווט לדף →mcp__playwright__browser_take_screenshot→ צלם מסך - Playwright:
mcp__playwright__browser_snapshot→ בדוק שכל האלמנטים קיימים - GitHub:
mcp__github__create_issue→ צור Issue עם תיאור הבעיה וצילום המסך
כל זה קורה ב-30 שניות, בלי שתצטרך לגעת בדפדפן, ב-GitHub, או בשום דבר. אתה רק נותן הוראה — Claude עושה הכל.
מה Claude "רואה" כשיש שרתי MCP
כשאתה פותח session עם שרתי MCP מותקנים, Claude מקבל רשימה של כלים זמינים. הכלים המובנים (Read, Edit, Bash) תמיד שם. כלי MCP נוספים להם. Claude לא מבדיל ביניהם — הוא פשוט בוחר את הכלי המתאים ביותר למשימה. אם ביקשת ממנו לנווט לאתר, הוא ישתמש ב-mcp__playwright__browser_navigate. אם ביקשת ממנו לקרוא קובץ, הוא ישתמש ב-Read המובנה. הבחירה אוטומטית ואינטליגנטית.
דוגמה למה Claude רואה בתחילת session עם Playwright ו-Context7 מותקנים:
Built-in tools:
Read, Edit, Write, Bash, Grep, Glob, WebSearch, WebFetch
MCP tools (playwright):
mcp__playwright__browser_navigate
mcp__playwright__browser_click
mcp__playwright__browser_fill_form
mcp__playwright__browser_take_screenshot
mcp__playwright__browser_snapshot
... (20+ tools)
MCP tools (context7):
mcp__context7__resolve-library-id
mcp__context7__query-docs
שים לב: Playwright מביא יותר מ-20 כלים! זה מדגיש למה Tool Search (סעיף 6) כל כך חשוב — כל הכלים האלה צורכים tokens מחלון ההקשר שלך.
בדוק אם יש לך כבר קובץ הגדרות MCP. פתח את Claude Code והקלד: cat .claude/settings.json (ברמת הפרויקט) או cat ~/.claude/settings.json (גלובלי). אם הקובץ קיים, חפש את המפתח mcpServers. אם הוא לא קיים — מצוין, ניצור אותו בסעיף הבא.
3. איתור והתקנת שרתי MCP
אחרי שהבנת מה MCP עושה ואיך הוא עובד, הגיע הזמן להתקין שרת. אבל קודם — איפה מוצאים שרתים?
היכן למצוא שרתי MCP
| מקור | כתובת | מה תמצא שם |
|---|---|---|
| Registry רשמי | github.com/modelcontextprotocol/servers | רשימה מאומתת של שרתים מוכחים — התחל מכאן |
| mcp.run | mcp.run | ספריית שרתים קהילתית עם חיפוש ודירוגים |
| Glama.ai | glama.ai/mcp | מדריך MCP עם הסברים ודוגמאות |
| Plugins Marketplace | claude.com/plugins | פלאגינים רשמיים של Claude, חלקם מבוססי MCP |
איך מתקינים שרת MCP
ההתקנה מתבצעת ב-settings.json. יש שתי אפשרויות:
- ברמת פרויקט:
.claude/settings.json— השרת זמין רק כשאתה עובד בפרויקט הזה - גלובלי:
~/.claude/settings.json— השרת זמין בכל session
ההגדרה נעשית תחת המפתח mcpServers. הנה הדוגמה הבסיסית ביותר — התקנת שרת Playwright (אוטומציית דפדפן):
{
"mcpServers": {
"playwright": {
"command": "npx",
"args": ["@anthropic-ai/mcp-playwright"]
}
}
}
זה הכל. שלוש שורות מהותיות: שם השרת (playwright), פקודת ההרצה (npx), והפרמטרים (@anthropic-ai/mcp-playwright). אחרי שמירת הקובץ — הפעל מחדש את Claude Code, והכלים של Playwright יהיו זמינים.
אחרי הוספת שרת, חובה להפעיל מחדש את ה-session של Claude Code. השרת יופעל, וכל הכלים שלו יופיעו ב-/help או /tools. Claude ישתמש בהם אוטומטית כשהם רלוונטיים.
התקן את שרת ה-Playwright של MCP. הוסף את ההגדרה למעלה ל-.claude/settings.json (צור את הקובץ אם הוא לא קיים). הפעל מחדש את Claude Code. ואז בקש מ-Claude: "Take a screenshot of google.com". אם קיבלת צילום מסך — השרת עובד. מזל טוב, התקנת את שרת ה-MCP הראשון שלך.
מה אם זה לא עובד?
אם הכלים לא מופיעים אחרי ההפעלה מחדש, בדוק:
- תחביר JSON תקין? — טעות בפסיק או סוגריים גורמת לכשל שקט. בדוק עם
cat .claude/settings.json | python3 -m json.tool - npx מותקן? — הרץ
npx --version. אם לא מותקן, התקן Node.js - החבילה קיימת? — הרץ את פקודת ה-npx ידנית בטרמינל. אם יש שגיאה — תראה אותה
- הפעלת מחדש? — שרתי MCP נטענים רק בהתחלת session. חייב לסגור ולפתוח מחדש
הפקודה /doctor ב-Claude Code מאבחנת בעיות בשרתי MCP — שרתים שלא הצליחו להתחבר, שרתים שקרסו, או הגדרות שגויות. זה תמיד הצעד הראשון כשמשהו לא עובד.
אפשר להפעיל שרתים מרובים בו-זמנית. פשוט הוסף עוד שרתים תחת mcpServers:
{
"mcpServers": {
"playwright": {
"command": "npx",
"args": ["@anthropic-ai/mcp-playwright"]
},
"context7": {
"command": "npx",
"args": ["@anthropic-ai/mcp-context7"]
},
"github": {
"command": "npx",
"args": ["@modelcontextprotocol/server-github"],
"env": {
"GITHUB_TOKEN": "${GITHUB_TOKEN}"
}
}
}
}
4. שרתי MCP חיוניים — The Power Stack
יש מאות שרתי MCP. אל תתקין את כולם. הנה השרתים שכדאי לך באמת להכיר, ממוינים לפי חשיבות.
Playwright — אוטומציית דפדפן
Playwright הוא שרת ה-MCP הפופולרי ביותר, ומסיבה טובה. הוא מאפשר ל-Claude לשלוט בדפדפן אמיתי: לנווט לעמודים, ללחוץ על כפתורים, למלא טפסים, לצלם Screenshots, ולהריץ בדיקות Frontend. זה כמו לתת ל-Claude ידיים שיכולות ללחוץ על מסך.
שימושים נפוצים:
- בדיקת אתרים ואפליקציות Web — האם הכפתור עובד? האם הטופס נשלח?
- Scraping של נתונים מאתרים — מחירי מתחרים, תוכן, מידע עסקי
- אוטומציה של Workflows בדפדפן — מילוי טפסים, התחברות, ניווט
- צילום מסך לתיעוד, אישור, או הוכחת עבודה
- בדיקות E2E (End-to-End) — Claude כותב ומריץ בדיקות על אתר חי
כשאתה מתקין את Playwright, Claude מקבל גישה ליותר מ-20 כלים: browser_navigate, browser_click, browser_fill_form, browser_take_screenshot, browser_snapshot, browser_evaluate (הרצת JavaScript), browser_console_messages (קריאת Console), browser_network_requests (מעקב אחרי בקשות רשת), ועוד. זה דפדפן מלא בשליטה מרחוק.
תבקש מ-Claude: "נווט לאתר שלי, מלא את טופס יצירת הקשר עם נתוני בדיקה, ושלח אותו. צלם מסך של דף התודה."
Claude ינווט לאתר, ימצא את הטופס, ימלא שם, אימייל, הודעה, ילחץ "שלח", יחכה שדף התודה ייטען, ויצלם מסך. הכל אוטומטי. אם יש שגיאה — Claude יזהה אותה ויספר לך מה קרה.
Context7 — דוקומנטציה עדכנית
Context7 פותר בעיה קריטית: הידע של Claude מוגבל לתאריך הלמידה שלו. כש-Library חדשה יוצאת, API משתנה, או framework מעדכן syntax — Claude לא בהכרח יודע. Context7 שולף את הדוקומנטציה הכי עדכנית של כל ספרייה ומזין אותה ל-Claude בזמן אמת.
למה זה קריטי? כי כשאתה אומר ל-Claude "צור קומפוננטה ב-React 19 עם Server Components", Claude אולי ישתמש ב-syntax של React 18 כי זה מה שהוא למד. עם Context7, Claude שולף את הדוקומנטציה העדכנית של React 19 ומשתמש ב-syntax הנכון.
שימושים נפוצים:
- עבודה עם Frameworks חדשים שהשתנו אחרי תאריך הלמידה של Claude
- בדיקת שינויי API ו-deprecated patterns
- וידוא שהקוד משתמש בגרסה הנוכחית של ספרייה
- לימוד ספריות חדשות — Claude קורא את הדוקומנטציה ומסביר לך
Context7 הוא השרת היחיד שמומלץ להתקין גלובלית (ב-~/.claude/settings.json). הוא שימושי בכל פרויקט, לא צורך הרבה משאבים, ומונע שגיאות שנובעות מ-outdated knowledge. התקן פעם אחת, שכח ממנו, ו-Claude ישתמש בו אוטומטית כשצריך.
GitHub — כל ה-API של GitHub
שרת ה-GitHub מאפשר ל-Claude לעבוד ישירות עם GitHub API: ליצור ולקרוא Issues, לנהל Pull Requests, לבדוק סטטוס של CI/CD Workflows, לנהל Releases, ולעקוב אחרי שינויים. זה הרבה יותר עוצמתי משימוש ב-gh CLI דרך Bash, כי הכלים מובנים עם סכמה ברורה ו-Claude מבין בדיוק מה כל פרמטר עושה.
תרחיש יומיומי: אתה אומר "Review the open PRs and check if any of them have failing CI checks." Claude שולף את כל ה-PRs הפתוחים, בודק את סטטוס ה-checks של כל אחד, ומחזיר דוח מסודר — הכל בפעולה אחת.
PostgreSQL / SQLite — גישה למסדי נתונים
שרתי Database מאפשרים ל-Claude לשלוח שאילתות ישירות למסד נתונים, לבדוק סכמות (schema), להריץ Migrations, ולייצר דוחות מנתונים חיים. קריטי למפתחים ולאנשי Data.
דוגמה מעשית: "Show me all customers who signed up this week but haven't made a purchase yet, grouped by acquisition channel." Claude כותב את ה-SQL, מריץ אותו על המסד שלך, ומציג טבלת תוצאות — בלי שתכתוב שורת SQL אחת.
זה מפתה — "אני רוצה שClaude יוכל לעשות הכל" — אבל זו טעות יקרה. שגיאה אחת בשאילתת DELETE או UPDATE על Production יכולה למחוק נתונים של לקוחות אמיתיים. מה לעשות במקום: צור User ייעודי עם הרשאות Read-Only. אם אתה צריך גם כתיבה, הגבל לטבלאות ספציפיות. אף פעם אל תחבר את Claude עם הרשאות Admin ל-Production — תמיד דרך Staging קודם.
Brave Search — חיפוש Web מתקדם
Brave Search מספק חיפוש Web דרך API של Brave. שימושי כשיש לך מפתח API של Brave ואתה רוצה שליטה מלאה על תוצאות החיפוש — סינון תוצאות, חיפוש חדשות, תמונות, או local results. זה חלופה חזקה ל-WebSearch המובנה, עם יותר שליטה על הפרמטרים.
מתי להשתמש ב-Brave Search MCP במקום WebSearch המובנה? כשאתה צריך שליטה על סוג החיפוש (news/images/videos), כשאתה רוצה תוצאות ממדינה ספציפית, או כשאתה צריך JSON מובנה של התוצאות לעיבוד נוסף. ל-WebSearch המובנה אין את כל האפשרויות האלה.
Filesystem — פעולות קבצים מתקדמות
שרת Filesystem מרחיב את יכולות הקבצים של Claude מעבר ל-Read/Write המובנים — קבצים בינאריים (תמונות, PDFs), ניטור שינויים (file watching), וטיפול בקבצים גדולים שהכלים המובנים מתקשים איתם.
סיכום: טבלת שרתי MCP חיוניים
| שרת | כמה כלים | רמת חשיבות | דורש API Key? | מומלץ להתקנה ב- |
|---|---|---|---|---|
| Playwright | 20+ | גבוהה מאוד | לא | גלובלי או פרויקט |
| Context7 | 2 | גבוהה | לא | גלובלי (מומלץ) |
| GitHub | 10+ | גבוהה (למפתחים) | כן (Personal Access Token) | גלובלי |
| PostgreSQL | 5-8 | גבוהה (לאנליסטים) | כן (Connection String) | פרויקט |
| Brave Search | 3-5 | בינונית | כן (Brave API Key) | גלובלי |
| Filesystem | 5-8 | בינונית | לא | פרויקט |
התאם את שרתי ה-MCP שלך לעבודה שלך. אל תתקין מה שלא צריך:
- מפתח/ת?
- Playwright + GitHub + PostgreSQL + Context7
- זה ה-Developer Stack — בדיקות, ניהול קוד, מסד נתונים, דוקומנטציה עדכנית
- משווק/ת?
- Playwright + Google Sheets + Brave Search
- זה ה-Marketer Stack — מחקר מתחרים, ניתוח דפים, גישה לנתוני גיליון
- אנליסט/ית נתונים?
- PostgreSQL + Filesystem + Brave Search
- זה ה-Data Analyst Stack — שאילתות, קבצים גדולים, מחקר
כלל אצבע: התחל עם 2-3 שרתים. הוסף רק כשאתה באמת צריך עוד שרת למשימה ספציפית.
בחר את ה-Stack שמתאים לתפקיד שלך (או בנה Stack משלך). התקן שרת MCP שני — Context7 הוא בחירה מצוינת לכולם. הוסף אותו ל-settings.json, הפעל מחדש, ובקש מ-Claude: "Using Context7, get the latest docs for React hooks" (או כל ספרייה שאתה משתמש בה). ודא שהתשובה כוללת מידע עדכני.
5. הגדרות מתקדמות — Environment, Disabled, Multiple Instances
ההתקנה הבסיסית עובדת, אבל יש הרבה יותר שאפשר לעשות עם הגדרות שרתי MCP. הנה התכונות המתקדמות שכדאי להכיר.
משתני סביבה (Environment Variables)
שרתים רבים צריכים מפתחות API או הגדרות נוספות. העברת ערכים דרך env:
{
"mcpServers": {
"github": {
"command": "npx",
"args": ["@modelcontextprotocol/server-github"],
"env": {
"GITHUB_TOKEN": "${GITHUB_TOKEN}"
}
}
}
}
השימוש ב-${GITHUB_TOKEN} קורא את הערך מסביבת ה-Shell שלך. לעולם אל תכתוב סודות ישירות ב-settings.json — תמיד השתמש במשתני סביבה.
זו אחת הטעויות היקרות ביותר שמתחילים עושים. קובץ settings.json לרוב נמצא ב-Git, וברגע שעשית Push עם token בפנים — הוא חשוף לכל מי שיש לו גישה ל-Repo, כולל בהיסטוריית ה-Commits (גם אם מחקת אח"כ). מה לעשות במקום: השתמש תמיד בתחביר ${VARIABLE} ב-settings.json, והגדר את המשתנה עצמו ב-.bashrc, .zshrc, או קובץ .env שנמצא ב-.gitignore.
השבתה זמנית של שרת
לפעמים אתה רוצה להשבית שרת בלי למחוק את ההגדרות שלו. פשוט הוסף "disabled": true:
{
"mcpServers": {
"playwright": {
"command": "npx",
"args": ["@anthropic-ai/mcp-playwright"],
"disabled": true
}
}
}
השרת לא יופעל, אבל ההגדרות נשמרות. שנה ל-false (או מחק את השדה) כדי להפעיל מחדש.
מופעים מרובים (Multiple Instances)
אפשר להריץ כמה מופעים של אותו סוג שרת עם הגדרות שונות. לדוגמה, שני שרתי PostgreSQL לשני מסדי נתונים שונים:
{
"mcpServers": {
"postgres-production": {
"command": "npx",
"args": ["@modelcontextprotocol/server-postgres"],
"env": {
"DATABASE_URL": "${PROD_DATABASE_URL}"
}
},
"postgres-staging": {
"command": "npx",
"args": ["@modelcontextprotocol/server-postgres"],
"env": {
"DATABASE_URL": "${STAGING_DATABASE_URL}"
}
}
}
}
עכשיו Claude יכול לשלוח שאילתות לשני המסדים — הכלים יקבלו קידומות שונות: mcp__postgres-production__query ו-mcp__postgres-staging__query.
נעילת גרסאות (Version Pinning)
כשאתה כותב "args": ["@anthropic-ai/mcp-playwright"], npx תמיד מוריד את הגרסה האחרונה. זה נשמע טוב, אבל זה מסוכן: גרסה חדשה יכולה לשבור דברים. נעל את הגרסה להגנה:
{
"mcpServers": {
"playwright": {
"command": "npx",
"args": ["@anthropic-ai/mcp-playwright@1.3.2"]
}
}
}
ככה גם אם יוצאת גרסה 2.0 עם שינויים שוברים, ה-setup שלך ממשיך לעבוד. כשאתה מוכן לעדכן — עדכן את מספר הגרסה ובדוק שהכל תקין.
Timeout Settings
חלק מהשרתים תומכים בהגדרות Timeout לפעולות ארוכות. לדוגמה, שרת Playwright שמנווט לדף כבד עם הרבה JavaScript יכול לקחת 30 שניות. אם יש לך פעולות ארוכות — בדוק בדוקומנטציה של השרת אם יש הגדרת timeout שאפשר להרחיב.
גלובלי מול ברמת פרויקט
איפה לשים כל הגדרה?
| מיקום | קובץ | מתי להשתמש |
|---|---|---|
| גלובלי | ~/.claude/settings.json |
שרתים שאתה משתמש בהם בכל פרויקט — Context7, Brave Search |
| פרויקט | .claude/settings.json |
שרתים ספציפיים לפרויקט — PostgreSQL עם Connection String מסוים, GitHub עם repo ספציפי |
MCP ו-Permissions — שליטה על מה Claude יכול לעשות
מערכת ההרשאות של Claude Code (שלמדת עליה בקורס הבסיסי) עובדת גם עם כלי MCP. אפשר לאשר או לחסום כלי MCP ספציפיים ב-permissions.allow ו-permissions.deny:
{
"permissions": {
"allow": [
"mcp__playwright__*",
"mcp__context7__*",
"mcp__github__create_issue",
"mcp__github__list_pull_requests"
],
"deny": [
"mcp__github__delete_repository",
"mcp__postgres__*"
]
}
}
בדוגמה הזו: Playwright ו-Context7 מאושרים לגמרי (wildcard *). GitHub מאושר רק ליצירת Issues ולרשימת PRs — לא למחיקת repos. PostgreSQL חסום לגמרי. ככה אתה שומר על שליטה מלאה.
זה קריטי במיוחד בסביבה צוותית: מנהל הצוות מגדיר הרשאות שמונעות פעולות מסוכנות, אבל מאפשרות עבודה שוטפת. אף אחד לא מוחק repo בטעות.
אם מותקן לך שרת GitHub MCP — בקש מ-Claude: "List my open pull requests". אם התשובה ריקה או שגיאה, בדוק שה-GITHUB_TOKEN מוגדר נכון: echo $GITHUB_TOKEN בטרמינל. אם הוא ריק, הגדר אותו ב-.bashrc או .zshrc עם: export GITHUB_TOKEN="ghp_your_token_here".
6. Tool Search — טעינה חכמה של כלים
כאן מגיע אחד הנושאים הכי חשובים בעבודה עם MCP, ואחד שהרבה אנשים מפספסים: Tool Search (חיפוש כלים), או בשם הטכני — Deferred Loading (טעינה עצלה).
הבעיה
כל שרת MCP מצהיר על הכלים שלו: שם, תיאור, פרמטרים, סוגי החזרה. המידע הזה נטען ב-תחילת ה-session ותופס מקום בחלון ההקשר (Context Window). חלון ההקשר הוא 200K tokens בברירת מחדל, ועד 1M tokens עם Opus 4.6 למנויי Max, Team, ו-Enterprise (ממרץ 2026). אם יש לך 5 שרתים עם 50 כלים סך הכל, הגדרות הכלים לבדן יכולות לצרוך 77,000 tokens — זה אחוז משמעותי מהחלון שלך, בטח אם אתה על חלון 200K רגיל.
ההפחתה בצריכת tokens כש-Tool Search מופעל. 77K tokens של הגדרות כלים יורדים ל-~8.7K. זה ההבדל בין session עמוס ל-session נקי ויעיל.
הפתרון: Tool Search
במקום לטעון את כל הגדרות הכלים מראש, Claude רואה רק את ToolSearch meta-tool ורשימה של שמות כלים (בלי הסכמה המלאה). כשהוא צריך כלי ספציפי, הוא קורא ל-ToolSearch, מקבל את הסכמה המלאה, ואז משתמש בכלי.
חשוב על זה כמו ספריה: במקום להחזיק את כל הספרים פתוחים על השולחן שלך (= לטעון את כל הגדרות הכלים), יש לך קטלוג דיגיטלי (= רשימת שמות) ואתה שולף ספר ספציפי רק כשאתה צריך אותו. ככה השולחן שלך (= חלון ההקשר) נשאר נקי ופנוי לעבודה אמיתית.
בלי Tool Search (50 כלי MCP):
77,000 tokens רק להגדרות כלים → נשאר לך ~120,000 tokens לשיחה (מתוך 200K)
עם Tool Search (אותם 50 כלים):
~8,700 tokens לרשימת שמות + ToolSearch → נשאר לך ~190,000 tokens לשיחה
ההבדל: 70,000 tokens נוספים לשיחה. זה כמו לקבל 35 עמודי A4 נוספים של "מקום לחשוב".
מתי Tool Search מופעל
- אוטומטית: כשהגדרות הכלים היו תופסות יותר מ-10% מחלון ההקשר. עם Context Window של 200K tokens, זה אומר שאם כלי ה-MCP שלך צורכים יותר מ-~20,000 tokens — Tool Search מופעל אוטומטית. זה קורה ברוב המקרים כשיש לך 5+ שרתי MCP
- ידנית: הוסף
"defer_loading": trueבהגדרות שרת MCP ב-settings.json כדי לכפות טעינה עצלה גם כשלא נחצה הסף
הגדרת deferred loading ידנית נעשית ברמת השרת:
{
"mcpServers": {
"playwright": {
"command": "npx",
"args": ["@anthropic-ai/mcp-playwright"],
"defer_loading": true
}
}
}
מתי כדאי לכפות ידנית? כשאתה יודע שהשרת מביא הרבה כלים (Playwright = 20+ כלים) אבל אתה לא משתמש בהם בכל session. במקום שהכלים יצרכו tokens "סתם", הם ייטענו רק כש-Claude באמת צריך אותם.
איך Claude מחפש כלים
כש-Tool Search מופעל, Claude משתמש ב-meta-tool בשם ToolSearch כדי למצוא ולטעון כלים ספציפיים. הוא עושה את זה אוטומטית כשהוא צריך כלי — אתה לא צריך לעשות שום דבר. אבל כדאי להבין את המנגנון כי לפעמים תרצה לכוון את Claude לכלי ספציפי.
Claude יכול לחפש כלים בשלוש דרכים:
| שיטת חיפוש | תחביר | דוגמה |
|---|---|---|
| שם מדויק | select:Name1,Name2 |
select:Read,Edit,Grep |
| חיפוש מילות מפתח | מילות מפתח חופשיות | database query |
| משולב | +name keywords |
+playwright screenshot |
לא כל הכלים שווים. חלק צריכים להיות זמינים תמיד, חלק לפי דרישה:
- כלים מובנים (Read, Edit, Bash, Grep, Glob) → Always-On — טעונים תמיד, לא צורכים הרבה
- WebSearch, WebFetch → Always-On — נמוך בצריכה, שימושי תמיד
- כלי MCP שאתה משתמש בהם בכל session → שקול Always-On אם יש לך מספיק context
- כלי MCP שאתה משתמש בהם מדי פעם → On-Demand (deferred) — חוסך tokens יקרים
- כלל אצבע: שמור על הסט ה-Always-On קטן. כל כלי Deferred שחוסך tokens = יותר מקום לשיחה
אם יש לך יותר מ-5 שרתי MCP או יותר מ-20 כלים סך הכל — הפעל deferred loading. זה יחסוך כ-85% מה-tokens שמוקצים להגדרות כלים. Claude חכם מספיק לדעת מתי הוא צריך לחפש כלי — אל תדאג שהוא "ישכח" שהכלים קיימים.
בדוק את צריכת ה-Context שלך: הקלד /context ב-Claude Code. שים לב כמה אחוז מהחלון בשימוש. אם יש לך הרבה כלי MCP ואתה רואה שימוש גבוה — זה סימן שכדאי להפעיל deferred loading.
7. MCP Elicitation — דיאלוגים אינטראקטיביים
תכונה חדשה שנוספה ב-14 במרץ 2026 (גרסה 2.1.76): Elicitation — יכולת של שרת MCP לבקש ממך קלט מובנה באמצע Workflow.
מה זה Elicitation?
עד עכשיו, כשClaude היה צריך אישור או קלט ממך, הוא פשוט שאל בצ'אט: "Do you want to proceed?" ואתה ענית "yes" או "no" כטקסט חופשי. הבעיה: טקסט חופשי לא מובנה. אתה יכול לכתוב "yep", "sure", "כן", "OK" — והשרת צריך לפרסר את כל הווריאציות. עם Elicitation, שרת MCP יכול לפתוח דיאלוג מובנה — טופס עם שדות מוגדרים, Dropdown עם אפשרויות קבועות, כפתורי אישור/ביטול, ואימות קלט. זה הרבה יותר מדויק, בטוח, ומקצועי.
דוגמאות שימוש
- שרת Deploy: "לאיזה סביבה? [staging/production]" — עם Dropdown, לא טקסט חופשי שיכול להיות שגוי
- שרת אבטחה: "סריקת האבטחה מצאה 3 בעיות. להמשיך עם הפריסה? [כן/לא]" — אישור מפורש
- אשף הגדרות: "הגדרת חיבור למסד נתונים: host, port, database, username" — טופס מלא עם אימות
- Workflow מרובה שלבים: טפסים שמוצגים אחד אחרי השני לפי הלוגיקה של השרת
Hook Events של Elicitation
אם למדת על Hooks בפרק 1, הנה איך הם מתחברים ל-Elicitation. שני אירועי Hook חדשים נוספו ב-v2.1.76:
- Elicitation — מופעל כששרת MCP מבקש קלט מהמשתמש. אפשר להשתמש ב-Hook הזה כדי לתעד את הבקשה, לשלוח התראה, או לבדוק שהבקשה תקינה
- ElicitationResult — מופעל כשהמשתמש מספק את הקלט. אפשר להשתמש ב-Hook הזה כדי לתעד את ההחלטה, לשלוח עדכון לצוות, או להפעיל פעולה נוספת
דוגמה מעשית: Hook שמתעד כל Elicitation ל-log file:
// hooks בתוך settings.json
"hooks": {
"ElicitationResult": [{
"command": "echo \"$(date) | $TOOL_NAME | $RESULT\" >> /var/log/claude-approvals.log"
}]
}
ככה יש לך רישום של כל אישור שניתן — מי אישר מה, מתי, ולאיזה סביבה. קריטי לתאימות רגולטורית (Compliance) ולביקורות אבטחה (Auditing).
נגיד שבנית שרת MCP לניהול Deployments. ה-Workflow נראה ככה:
- Claude מריץ בדיקות (tests) → עוברות
- Claude מריץ סריקת אבטחה → מוצא 2 בעיות ברמה נמוכה
- שרת ה-MCP מפעיל Elicitation: חלון דיאלוג עם:
- Dropdown: "Target environment: [staging / production]"
- Checkbox: "I acknowledge 2 low-severity security findings"
- Text field: "Deployment message"
- Button: "Deploy" / "Cancel"
- אתה ממלא ולוחץ Deploy → השרת ממשיך ומבצע את ה-Deploy
זה הרבה יותר בטוח מלכתוב "yes" בצ'אט. Elicitation מבטיחה שהתשובה מובנית, מאומתת, ולא ניתנת לטעות.
Elicitation חזקה במיוחד לבניית כלים צוותיים: שרת ה-MCP מטפל בלוגיקה (הרצת בדיקות, בדיקת אבטחה, ניהול גרסאות), ו-Elicitation מטפלת בשלב האנושי — אישור לפני פעולות קריטיות. זה הגשר בין אוטומציה מלאה לבין Human-in-the-Loop. בפרק 1 למדנו על Hooks — שם Elicitation ו-ElicitationResult הם שני אירועים שאפשר להאזין להם ולהפעיל לוגיקה מותאמת.
דמיינו סטארטאפ SaaS ישראלי עם צוות של 8 מפתחים. יש שרת MCP פנימי שמנהל Deployments. הזרימה:
- מפתח אומר ל-Claude: "Deploy the new billing feature to production"
- Claude מריץ בדיקות (דרך Bash), בודק ש-CI ירוק (דרך GitHub MCP), מוודא שאין open incidents (דרך שרת Monitoring MCP)
- שרת ה-Deploy מפעיל Elicitation:
- "סביבת יעד: [staging / production]"
- "אישור מנהל — נדרש כי billing הוא שירות קריטי: [שם מאשר]"
- "הודעת release (תופיע ב-Slack הצוותי): [___]"
- המפתח ממלא — וה-Deploy רץ. ה-Hook של ElicitationResult מתעד את האישור ב-audit log ושולח הודעת WhatsApp לערוץ הצוותי
זו אוטומציה עם גארד-ריילס — Claude עושה 95% מהעבודה, אבל ההחלטה הקריטית נשארת ביד האדם.
חשוב על Workflow אחד שאתה עושה בעבודה שדורש "אישור אנושי" באמצע — Deploy, שליחת מייל ללקוח, עדכון מחיר, מחיקת נתונים. רשום אותו. זה המועמד המושלם ל-Elicitation: אוטומציה של כל הצעדים + דיאלוג אישור לפני הצעד הקריטי. בפרקים הבאים (Skills + Plugins) נלמד לממש את זה.
8. OAuth לשרתי MCP צד-שלישי
חלק משרתי MCP מתחברים לשירותי צד-שלישי שדורשים אימות OAuth — Google, Slack, GitHub, Notion, Jira. במקום לנהל tokens ידנית, Claude Code תומך בזרימת OAuth מובנית.
איך זה עובד
- בפעם הראשונה שאתה משתמש בכלי שדורש אימות — חלון דפדפן נפתח עם מסך ההסכמה של השירות (OAuth Consent Screen)
- אתה מאשר גישה
- ה-Token נשמר מקומית ב-Keychain/Credential Manager של המערכת
- מפה ולהבא — האימות אוטומטי. לא צריך לאשר שוב (עד שה-Token פג)
שרתים נפוצים עם OAuth
| שרת | שירות | מה Claude יכול לעשות |
|---|---|---|
| Google Drive | Google Docs, Sheets, Slides | קריאה, כתיבה, יצירה של מסמכים |
| Slack | Slack Workspace | קריאה ושליחת הודעות, ניהול ערוצים |
| Notion | Notion Workspace | קריאה וכתיבת דפים ומסדי נתונים |
| Jira | Atlassian Jira | ניהול Issues, Sprints, Boards |
ההבדל בין OAuth לבין API Key
חלק מהשרתים עובדים עם API Key (כמו GitHub Token), וחלק עם OAuth. מה ההבדל?
| API Key | OAuth |
|---|---|
| אתה יוצר token ידנית ומדביק אותו ב-env | Claude Code פותח דפדפן, אתה מאשר, token נשמר אוטומטית |
| ה-token קבוע עד שתבטל אותו | ה-token פג ומתחדש אוטומטית |
| שליטה גסה — גישה מלאה לכל ה-API | שליטה עדינה — מבקש בדיוק את ההרשאות שצריך (Scopes) |
| דוגמה: GitHub Personal Access Token | דוגמה: Google Drive, Slack, Notion |
אבטחה בסביבת צוות
בסביבה צוותית, כל חבר צוות מאמת עם הפרטים שלו. ה-Token של חבר צוות אחד לא עובר לאחר. זה אומר שבקרת גישה (Access Control) היא לפי אדם — כל אחד רואה רק מה שהוא מורשה לראות. OAuth tokens נשמרים ב-Keychain/Credential Manager של המערכת — לא ב-settings.json. זה שכבת אבטחה נוספת: גם אם מישהו מקבל גישה לקובץ ההגדרות, ה-tokens לא חשופים.
אם אתם עובדים עם לקוחות באירופה או מחוייבים לחוק הגנת הפרטיות הישראלי, שימו לב: OAuth tokens הם נתונים רגישים. העובדה ש-MCP שומר אותם ב-Keychain (ולא בקובץ גלוי) היא יתרון משמעותי. אבל עדיין — תעדו אילו שירותים מחוברים ואילו הרשאות (Scopes) כל שירות מקבל. זו דרישה בסיסית לתאימות רגולטורית.
אם אתה משתמש ב-GitHub באופן קבוע: התקן את שרת ה-GitHub MCP עם ה-Token שלך (הוראות בסעיף 3). אחרי ההתקנה, בקש מ-Claude: "List my open pull requests" או "Show me recent issues in [repo-name]". ראה איך Claude עובד עם GitHub API בצורה חלקה דרך MCP.
9. בניית שרת MCP משלך
לא צריך לחכות שמישהו יבנה שרת MCP עבור השירות שאתה צריך. אפשר לבנות בעצמך. ה-SDK של Anthropic זמין ב-Python (mcp package) וב-TypeScript (@modelcontextprotocol/sdk), ושרת בסיסי לוקח 30-50 שורות קוד.
המבנה הבסיסי של שרת MCP (Python)
- ייבוא ספריית ה-MCP
- הגדרת כלים — שם, תיאור, סכמת קלט (JSON Schema)
- כתיבת Handler — הפונקציה שמבצעת את העבודה בפועל
- הפעלת השרת על stdio
# weather_server.py
from mcp import Server, Tool
import json
server = Server("weather")
@server.tool(
name="get_weather",
description="Get current weather for a city",
input_schema={
"type": "object",
"properties": {
"city": {
"type": "string",
"description": "City name"
}
},
"required": ["city"]
}
)
async def get_weather(city: str) -> str:
# Mock data - replace with real API call
weather_data = {
"Tel Aviv": {"temp": 28, "condition": "Sunny"},
"Jerusalem": {"temp": 22, "condition": "Partly Cloudy"},
"Haifa": {"temp": 25, "condition": "Humid"},
}
data = weather_data.get(city, {"temp": 20, "condition": "Unknown"})
return json.dumps({
"city": city,
"temperature": data["temp"],
"condition": data["condition"]
})
if __name__ == "__main__":
server.run()
שרת מינימלי עם כלי אחד: get_weather. הוא מקבל שם עיר ומחזיר מזג אוויר (mock data). בשרת אמיתי, תחליף את ה-mock ב-API call.
הוספת השרת ל-settings.json
{
"mcpServers": {
"weather": {
"command": "python3",
"args": ["/path/to/weather_server.py"]
}
}
}
אחרי שמירה והפעלה מחדש של Claude Code, תוכל לשאול: "What's the weather in Tel Aviv?" ו-Claude ישתמש בכלי mcp__weather__get_weather כדי לקבל תשובה.
בדיקה מקומית לפני חיבור ל-Claude
לפני שאתה מוסיף שרת ל-settings.json, בדוק שהוא רץ. פתח טרמינל והרץ:
python3 weather_server.py
השרת צריך להתחיל ולחכות לקלט ב-stdin. אם אתה מקבל שגיאה — תקן אותה לפני שמחברים ל-Claude. בעיות נפוצות: ספרייה חסרה (pip install mcp), שגיאת תחביר, או חוסר הרשאות.
שרת MCP ב-TypeScript — חלופה
אם אתה מעדיף TypeScript, הנה אותו שרת:
// weather-server.ts
import { Server } from "@modelcontextprotocol/sdk/server";
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio";
const server = new Server({
name: "weather",
version: "1.0.0"
});
server.setRequestHandler("tools/list", async () => ({
tools: [{
name: "get_weather",
description: "Get current weather for a city",
inputSchema: {
type: "object",
properties: {
city: { type: "string", description: "City name" }
},
required: ["city"]
}
}]
}));
server.setRequestHandler("tools/call", async (request) => {
if (request.params.name === "get_weather") {
const city = request.params.arguments.city;
// Mock data - replace with real API
return {
content: [{
type: "text",
text: JSON.stringify({
city, temperature: 28, condition: "Sunny"
})
}]
};
}
});
const transport = new StdioServerTransport();
await server.connect(transport);
התקנת ה-SDK: npm install @modelcontextprotocol/sdk. ההגדרה ב-settings.json: "command": "npx", "args": ["ts-node", "weather-server.ts"].
שרת MCP מעשי: חיבור ל-API פנימי
הדוגמה של מזג אוויר נחמדה ללימוד, אבל הכוח האמיתי של שרת מותאם הוא חיבור Claude למערכות הפנימיות שלך. דמיין שרת עם הכלים הבאים:
get_customer_info— שלוף פרטי לקוח מה-CRMupdate_ticket_status— עדכן סטטוס של Ticket במערכת ה-Supportcheck_inventory— בדוק מלאי במחסןsend_notification— שלח התראה לצוות
פתאום, Claude הופך מ"כלי תכנות" לשותף עסקי שיכול לגשת לכל מערכת בחברה. וזכור: בפרק הקודם למדנו על Custom Agents. דמיין Agent מותאם שמשתמש בשרת MCP מותאם — לדוגמה, סוכן "Customer Support" שקורא Tickets מ-MCP, בודק נתוני לקוח ב-MCP, ומעדכן סטטוס ב-MCP. הכל אוטומטי, הכל בשליטה מלאה.
מה שרת MCP מותאם אישית יכול לעשות בשבילך?
בואו נחשוב על תרחישים מעשיים לפי תפקיד:
| תפקיד | שרת MCP מותאם | כלים לדוגמה |
|---|---|---|
| מפתח | חיבור ל-CI/CD פנימי | trigger_build, get_test_results, rollback_deploy |
| משווק | חיבור ל-CRM (HubSpot, Salesforce) | get_lead_info, update_deal_stage, send_campaign |
| מנהל מוצר | חיבור ל-Analytics פנימי | get_daily_metrics, compare_experiments, get_user_funnel |
| DevOps | חיבור ל-Monitoring | get_server_health, list_alerts, restart_service |
| אנליסט | חיבור ל-Data Warehouse | run_report, get_dashboard_data, export_csv |
המפתח לשרת MCP מוצלח: כלים ממוקדים עם שמות ברורים. במקום כלי אחד גנרי do_everything, צור 3-5 כלים ספציפיים שכל אחד עושה דבר אחד טוב. Claude יודע לבחור את הכלי הנכון למשימה הנכונה — תן לו אפשרויות ברורות.
נניח שאתם מפעילים חנות E-Commerce ישראלית עם מחסן בראשון לציון ומשלוחים דרך שליחים מקומיים. שרת MCP מותאם יכול לכלול:
get_stock_level— בדוק כמה יחידות של מוצר X נמצאות במלאיcheck_delivery_status— מעקב אחרי משלוח לפי מספר הזמנהget_daily_sales— סיכום מכירות יומי כולל מע"מrestock_alert— רשימת מוצרים שהמלאי שלהם ירד מתחת לסף
עכשיו, כל בוקר אתם שואלים את Claude: "מה המצב היום?" — והוא מושך נתוני מלאי, מכירות, ומשלוחים, מפיק דוח, ומתריע על מוצרים שנגמרים. Agent מותאם (פרק 2) + שרת MCP מותאם = מנהל תפעול אוטומטי.
טיפים לכתיבת שרת MCP טוב
- שמות כלים מתארים:
get_customer_by_emailעדיף עלget_data. Claude בוחר כלי לפי השם והתיאור — ככל שהם ברורים יותר, הבחירה מדויקת יותר - תיאורים מפורטים: כתוב
descriptionברור עם דוגמאות. "Get customer info by email address. Returns name, plan, signup date, and last activity." זה הרבה יותר טוב מ-"Get customer" - סכמת קלט מדויקת: הגדר את כל הפרמטרים עם סוג (
string,number,boolean), תיאור, וערכי ברירת מחדל. ככל שהסכמה מדויקת יותר, Claude שולח פרמטרים נכונים יותר - טיפול בשגיאות: אם הכלי נכשל (API לא זמין, פרמטר שגוי), החזר הודעת שגיאה ברורה ב-JSON. לא stack trace — הודעה שClaude יכול להבין ולתקן
- ביצועים: שרת MCP צריך להיות מהיר. אם כלי לוקח 30 שניות, שקול להוסיף caching או timeout. Claude לא יחכה לנצח
שרת MCP נותן ל-Claude גישה ישירה לשירות. חשוב היטב מה אתה חושף. כמה כללים:
(1) לעולם אל תחשוף פעולות מחיקה ללא אישור — delete_all_users זה מתכון לאסון.
(2) הגבל גישה לנתונים רגישים — אל תחשוף get_user_password או get_api_keys.
(3) הוסף Rate Limiting — אם Claude "נתקע" בלולאה, אתה לא רוצה שהוא ישלח 1,000 בקשות לשנייה.
(4) תעד לוגים — כל קריאה לכלי צריכה להירשם ב-log. זה קריטי לאבחון בעיות ולביקורות.
לא כל דבר דורש שרת MCP. שאל את עצמך:
- האם קיים כבר שרת שעושה את זה?
- כן → השתמש בקיים. אל תמציא את הגלגל מחדש
- לא → המשך לשאלה 2
- האם הפעולה חד-פעמית או חוזרת?
- חד-פעמית → פקודת Bash מספיקה. לא צריך שרת
- חוזרת → שרת MCP ישתלם. המשך לשאלה 3
- האם אתה צריך לחבר Claude למערכת פנימית?
- כן → בנה שרת MCP מותאם. זו בדיוק הסיבה שהיכולת קיימת
- לא → בדוק אם פקודת CLI + Bash Tool מספיקה
בנה שרת MCP "Hello World" משלך. צור קובץ Python (או TypeScript) עם כלי אחד פשוט — get_weather מהדוגמה למעלה, או כלי שמחזיר תאריך/שעה, או כלי שסופר מילים בטקסט. הוסף אותו ל-settings.json, הפעל מחדש את Claude Code, ובקש מ-Claude להשתמש בכלי. אם קיבלת תשובה — בנית שרת MCP. זה הבסיס לכל חיבור מותאם שתרצה בעתיד.
10. Best Practices ופתרון בעיות
אחרי שהתקנת שרתים, הגדרת אותם, ואולי גם בנית אחד משלך — הגיע הזמן לדבר על מה שרוב האנשים מגלים אחרי שבוע-שבועיים של עבודה עם MCP: הכללים שמבדילים בין setup שעובד חלק לבין setup שגורם לכאבי ראש.
כללי זהב ל-MCP
- אל תתקין יותר מדי שרתים. כל שרת צורך משאבים (זיכרון, זמן הפעלה). 3-5 שרתים פעילים הוא איזון טוב. יותר מזה — השתמש ב-deferred loading
- הפעל deferred loading. אם יש לך יותר מ-5 שרתים או 20+ כלים סך הכל, הפעל Tool Search כדי לחסוך מקום ב-context
- נעל גרסאות (Version Pinning). במקום
npx @package, השתמש ב-npx @package@1.2.3. זה מונע שבירות כשיוצאת גרסה חדשה - בדוק בריאות שרת. אם כלי לא עובד — בדוק: האם השרת רץ? האם משתנה סביבה חסר? האם API key פג?
- סקירת אבטחה. שרת MCP יכול להריץ קוד על המחשב שלך. התקן רק שרתים ממקורות מהימנים. בדוק את הקוד אם הוא לא מ-maintainer מוכר
- ביצועים. קריאה לכלי MCP כוללת Overhead (תקשורת בין תהליכים, לפעמים latency של רשת). לפעולות בתדירות גבוהה, שקול אם פקודת Bash ישירה תהיה מהירה יותר
- תיעוד. תעד את ה-MCP Stack שלך: אילו שרתים מותקנים, למה, ומה ה-env vars שנדרשים. כשצוות חדש מצטרף, הוא צריך לדעת מה להגדיר
- גיבוי settings.json. שמור את קובץ ההגדרות ב-Git (בלי secrets!). ככה כל הצוות משתמש באותו Stack, ושינויים עוברים Code Review
מספר שרתי MCP מומלץ לעבודה שוטפת. פחות מדי — מפספסים יכולות. יותר מדי — overhead בביצועים וב-context. מצא את האיזון שמתאים לעבודה שלך.
פתח את settings.json שלך ובצע בדיקת "היגיינה":
(1) האם כל ה-tokens עוברים דרך ${VARIABLE} ולא כתובים ישירות?
(2) האם יש שרתים שלא השתמשת בהם בשבוע האחרון? הוסף להם "disabled": true.
(3) האם הגרסאות מנועלות? אם כתוב npx @package בלי גרסה — הוסף @package@X.Y.Z.
כל שינוי שעשית עכשיו ימנע בעיות בעתיד.
מתי MCP ומתי Bash?
שאלה חשובה שצריך לענות עליה: אם Claude יכול להריץ כל פקודה דרך Bash, למה בכלל צריך MCP? התשובה היא נוחות, בטיחות, ואמינות.
| קריטריון | MCP Tool | Bash Command |
|---|---|---|
| פרמטרים | סכמה מוגדרת — Claude יודע בדיוק מה להעביר | טקסט חופשי — Claude צריך "לנחש" את התחביר |
| פלט | JSON מובנה — קל לפרסר | טקסט חופשי — דורש פרסור |
| שגיאות | שגיאות מובנות עם הודעה ברורה | Exit codes + stderr — לא תמיד ברור |
| אבטחה | הרשאות מוגדרות לכלי ספציפי | גישה לכל מה ש-Bash יכול לעשות |
| מהירות | אופטימלי — בנוי למטרה | תלוי בפקודה — לפעמים overhead |
כלל אצבע: אם יש כלי MCP שעושה את מה שאתה צריך — השתמש בו. אם אין — Bash זה הפתרון. שניהם לגיטימיים, אבל MCP עדיף כשהוא זמין.
פתרון בעיות נפוצות
| בעיה | סיבה נפוצה | פתרון |
|---|---|---|
| כלי MCP לא מופיע | לא הפעלת מחדש את ה-session | סגור ופתח מחדש את Claude Code |
| שגיאה: "Server failed to start" | חבילה לא מותקנת, או path שגוי | הרץ את הפקודה ידנית בטרמינל לבדיקה |
| שגיאה: "Authentication failed" | API key חסר, פג, או שגוי | בדוק את משתנה הסביבה: echo $TOKEN_NAME |
| שרת קורס באמצע עבודה | באג בשרת, חוסר זיכרון, timeout | הפעל מחדש session, בדוק לוגים, עדכן גרסה |
| ביצועים איטיים | שרת עם API חיצוני איטי | בדוק latency של ה-API, שקול caching |
| יותר מדי כלים, context מלא | הרבה שרתים בלי deferred loading | הפעל deferred loading, השבת שרתים שלא בשימוש |
כש-MCP לא עובד כמו שצריך, הפקודה /doctor ב-Claude Code יכולה לאבחן בעיות נפוצות בשרתי MCP — הריצו אותה ראשון לפני שמתחילים לחפש באג ידנית.
עברו על הצ'קליסט הזה בסדר, מלמעלה למטה. ברוב המקרים תמצאו את הבעיה בשלושת הצעדים הראשונים:
- הפעל
/doctor— ראה מה Claude Code עצמו מזהה - בדוק JSON תקין:
cat .claude/settings.json | python3 -m json.tool— פסיק חסר או סוגריים שגויים שוברים הכל - הפעלת מחדש? — שרתי MCP נטענים רק בתחילת session. סגור ופתח מחדש
- בדוק שהחבילה מותקנת: הרץ
npx @package-name --versionבטרמינל נפרד - בדוק env vars:
echo $GITHUB_TOKEN— ריק = לא מוגדר - בדוק הרשאות: האם
permissions.denyחוסם את הכלי? - בדוק גרסה: אם נעלת גרסה, אולי צריך לעדכן
- אם שום דבר לא עוזר: מחק את ההגדרה, הוסף מחדש, הפעל מחדש
הריצו /doctor ב-Claude Code ובדקו שכל שרתי ה-MCP שלכם במצב תקין. אם יש שגיאות — תקנו אותן עכשיו לפי הצ'קליסט למעלה. מצב בריא = כל השרתים ירוקים.
תרחישים מהעולם האמיתי: MCP בפעולה
בואו נראה שלושה תרחישים מציאותיים שמדגימים את הכוח של MCP:
הסיטואציה: קיבלת PR חדש עם שינויים ב-CSS ו-JavaScript. צריך לוודא שהשינויים לא שברו כלום.
מה אתה אומר ל-Claude: "בדוק את ה-PR הפתוח #142 ב-GitHub. עבור על השינויים. ואז פתח את האתר ב-staging ובדוק שהדף עדיין נראה תקין — צלם מסך של הדף הראשי ודף ההרשמה."
מה Claude עושה:
mcp__github__get_pull_request→ שולף את פרטי ה-PR, קורא את ה-diffmcp__github__list_pull_request_files→ רשימת קבצים שהשתנוmcp__playwright__browser_navigate→ פותח את אתר ה-stagingmcp__playwright__browser_take_screenshot→ צלם מסך של דף ראשיmcp__playwright__browser_navigate→ נווט לדף הרשמהmcp__playwright__browser_take_screenshot→ צלם מסך נוסף- Claude מנתח ומספק דוח: "ה-PR נראה תקין. שני Screenshots מצורפים. שמתי לב שהכפתור ב-navbar מעט זז — כדאי לבדוק."
זמן: דקה וחצי במקום 15 דקות של בדיקה ידנית.
הסיטואציה: כל יום ראשון צריך לשלוף נתונים ממסד הנתונים, ליצור טבלאות, ולהכין סיכום.
מה אתה אומר ל-Claude: "הכן את הדוח השבועי: שלוף את נתוני המכירות מהשבוע האחרון, השווה לשבוע שעבר, ומצא את 3 המוצרים עם הגידול הגדול ביותר."
מה Claude עושה:
mcp__postgres__query→ שאילתת SQL לנתוני שבוע נוכחיmcp__postgres__query→ שאילתת SQL לנתוני שבוע קודם- Claude מחשב הבדלים, מזהה מגמות, יוצר טבלת השוואה
- Claude כותב סיכום בעברית עם הממצאים המרכזיים
זמן: 30 שניות במקום שעה של SQL ידני ו-Excel.
הסיטואציה: צריך לבדוק מה המתחרים שינו באתרים שלהם ולתעד את זה.
מה אתה אומר ל-Claude: "פתח את אתרי שלושת המתחרים הראשיים שלנו, צלם מסך של דף הבית ודף המחירים של כל אחד, והשווה את ההצעות."
מה Claude עושה:
mcp__playwright__browser_navigate→ נווט לאתר מתחרה 1mcp__playwright__browser_take_screenshot→ צלם דף ביתmcp__playwright__browser_navigate→ נווט לדף מחיריםmcp__playwright__browser_snapshot→ שלוף מחירים מהעמוד- חוזר על התהליך ל-2 מתחרים נוספים
- Claude יוצר טבלת השוואה עם מחירים, תכונות, ותובנות
זמן: 2 דקות במקום חצי שעה של גלישה ותיעוד ידני.
העתק את התבנית הבאה ל-~/.claude/settings.json (גלובלי) והתאם לצרכים שלך:
{
"permissions": {
"allow": [
"mcp__playwright__*",
"mcp__context7__*"
]
},
"mcpServers": {
"playwright": {
"command": "npx",
"args": ["@anthropic-ai/mcp-playwright"],
"defer_loading": true
},
"context7": {
"command": "npx",
"args": ["@anthropic-ai/mcp-context7"]
},
"github": {
"command": "npx",
"args": ["@modelcontextprotocol/server-github"],
"env": {
"GITHUB_TOKEN": "${GITHUB_TOKEN}"
},
"defer_loading": true
}
}
}
שים לב: Playwright ו-GitHub מוגדרים עם defer_loading: true כי יש להם הרבה כלים. Context7 עם שני כלים בלבד נשאר Always-On. ההרשאות מאשרות את Playwright ו-Context7 מראש — GitHub ידרוש אישור ידני לכל פעולה.
בתרגיל הזה תגדיר stack MCP שלם מותאם לעבודה שלך:
- בחר 2-3 שרתים מרשימת ה-Power Stack (סעיף 4) שמתאימים לתפקיד שלך
- הגדר אותם ב-settings.json — כולל Environment Variables עבור כל שרת שדורש API key
- הפעל מחדש את Claude Code וודא שכל השרתים מופעלים (בדוק עם
/tools) - בדוק כל שרת — תן ל-Claude משימה שמשתמשת בכל שרת. לדוגמה:
- Playwright: "Take a screenshot of my website"
- Context7: "Get the latest docs for Express.js middleware"
- GitHub: "List the last 5 commits on the main branch"
- תעד את התוצאות — מה עבד? מה לא? למה?
בתרגיל הזה תגרום ל-Claude להשתמש בשני שרתי MCP או יותר באותה משימה:
- בקש מ-Claude: "Use Playwright to take a screenshot of [URL], then use Context7 to check if the framework version shown matches the latest docs"
- או: "Check my GitHub repo for open issues, then use Playwright to verify if the bug reported in issue #X is still visible on the live site"
- שים לב איך Claude מתאם בין שרתים — הוא בוחר את הכלי הנכון לכל שלב
- בונוס: בקש Workflow שמשלב שלושה שרתים
בתרגיל הזה תבדוק ותשפר את צריכת ה-Context של שרתי ה-MCP שלך:
- בדוק את מצב ה-Context הנוכחי — הקלד
/contextותעד כמה אחוז בשימוש - ספור את כלי ה-MCP שלך — הקלד
/toolsוספור כמה כלים מתחילים ב-mcp__ - אם יש לך 10+ כלי MCP: הוסף
"defer_loading": trueלכל שרת MCP ב-settings.json - הפעל מחדש את Claude Code ובדוק שוב עם
/context - השווה: כמה tokens חסכת? תעד את ההבדל
הגיע הזמן לבנות משהו אמיתי:
- בחר API או שירות שאתה משתמש בו בעבודה ואין לו שרת MCP
- הגדר 2-3 כלים שיהיו שימושיים. לדוגמה:
- API של רשת חברתית:
get_post_stats,schedule_post - API פנימי:
get_customer,create_ticket,check_status - API מזג אוויר:
get_forecast,get_alerts
- API של רשת חברתית:
- כתוב את השרת ב-Python או TypeScript, עם mock data לפחות
- חבר אותו ל-settings.json ובדוק שעובד
- בונוס: החלף את ה-mock data ב-API call אמיתי
שגרת תחזוקת MCP — Daily, Weekly, Monthly
MCP דורש תחזוקה מינימלית, אבל תחזוקה נכונה מונעת כאבי ראש. הנה השגרה המומלצת:
| מתי | מה לעשות | זמן |
|---|---|---|
| כל session (יומי) | ודא ששרתי MCP הופעלו — בדוק עם /tools שהכלים נטענו |
30 שניות |
| פעם בשבוע | בדוק עדכונים לשרתים (npm outdated, changelog של שרתים שאתה משתמש בהם) |
5 דקות |
| פעם בשבוע | בדוק שכל ה-tokens וה-API Keys עדיין תקפים — Tokens שפגו הם סיבה #1 ל-MCP שלא עובד | 3 דקות |
| פעם בחודש | סקור את רשימת השרתים: השבת מה שלא השתמשת בו, עדכן גרסאות, בדוק tokens שפגו | 15 דקות |
| כש-Claude מתנהג מוזר | הריצו /doctor, בדקו context usage עם /context, הפעילו deferred loading אם צריך |
5 דקות |
אבטחת MCP — מה שכל Power User צריך לדעת
MCP הוא כלי חזק, ועם כוח מגיעה אחריות. הנה שלושה עקרונות אבטחה שחובה להפנים:
עיקרון 1: Least Privilege (הרשאות מינימליות)
אל תתן לשרת MCP יותר הרשאות ממה שהוא צריך. אם שרת ה-PostgreSQL שלך צריך רק לקרוא נתונים — צור user עם SELECT בלבד. אם GitHub MCP צריך רק לקרוא PRs — תן לו token עם read:org בלבד, לא admin:org. וב-permissions.deny של Claude Code — חסום כלים מסוכנים כמו mcp__github__delete_repository.
עיקרון 2: Trust but Verify (סמוך אבל תבדוק)
התקן שרתי MCP רק ממקורות מהימנים: ה-Registry הרשמי של Anthropic, ארגונים מוכרים ב-GitHub, חבילות npm/PyPI עם היסטוריית downloads. לעולם אל תתקין שרת MCP מ-URL אקראי בלי לבדוק את הקוד. שרת MCP רץ על המחשב שלך — קוד זדוני יכול לגשת לקבצים, לרשת, ולמשאבי המערכת. ב-2026 כבר נצפו מספר מקרים של שרתי MCP "רעולי פנים" שניסו לגנוב credentials.
עיקרון 3: Audit Trail (שביל ביקורת)
תעדו כל שימוש ב-MCP. השתמשו ב-Hooks (PostToolUse) כדי לרשום לוג של כל קריאה לכלי MCP. בסביבה צוותית, השתמשו ב-Elicitation hooks כדי לתעד אישורים. ככה כשמשהו משתבש — יש לכם מסלול ברור של "מי עשה מה, מתי, ולמה".
בדוק את כל שרתי ה-MCP שמותקנים אצלך: מי פיתח כל שרת? מתי הייתה הגרסה האחרונה? כמה downloads יש לחבילה? אם מצאת שרת שאתה לא בטוח במקור שלו — השבת אותו ("disabled": true) עד שתבדוק.
עלויות MCP — כמה זה עולה?
MCP עצמו הוא חינמי — הפרוטוקול הוא Open Source, ורוב השרתים הם קוד פתוח בלי עלות. אבל יש עלויות עקיפות שכדאי להכיר:
| מרכיב עלות | פירוט | הערכה |
|---|---|---|
| Tokens נוספים | כל קריאה לכלי MCP צורכת tokens — הבקשה, הפרמטרים, והתשובה | $0.01-0.10 לקריאה בודדת |
| הגדרות כלים | בלי Tool Search, הגדרות הכלים צורכות tokens מחלון ההקשר | $0.50-2.00 לsession (עם 50+ כלים) |
| API Keys חיצוניים | חלק מהשרתים דורשים API keys בתשלום (Brave, שירותי ענן) | משתנה לפי שירות |
| משאבי מחשב | כל שרת רץ כתהליך נפרד — זיכרון ו-CPU | זניח (50-100MB RAM לשרת) |
סיכום: הוספת MCP מוסיפה בערך $2-4 ל-session ממוצע (תלוי כמה שרתים ואיך משתמשים). בהשוואה לזמן שאתה חוסך (עשרות דקות של עבודה ידנית), ההשקעה מחזירה את עצמה בקלות.
הקלד /cost ב-Claude Code כדי לראות כמה ה-session הנוכחי עולה. שים לב לעלות לפני ואחרי שימוש בכלי MCP. ככה תבין את ההשפעה על התקציב שלך.
התקן את שרת Playwright של MCP. הוסף את שלוש השורות הבאות ל-.claude/settings.json:
"mcpServers": {
"playwright": {
"command": "npx",
"args": ["@anthropic-ai/mcp-playwright"]
}
}
הפעל מחדש את Claude Code, ובקש מ-Claude: "Take a screenshot of google.com". ברגע שקיבלת צילום מסך — הבנת את MCP. הדפוס חוזר על עצמו עם כל שרת: הגדר ב-JSON, הפעל מחדש, השתמש. שרת אחד עובד = אתה מוכן לעולם של אינסוף חיבורים.
MCP בתמונה הגדולה — הקשר לפרקים אחרים
MCP הוא לא פיצ'ר בודד — הוא חלק ממערכת שלמה. הנה איך הוא מתחבר לכל מה שלמדת ומה שתלמד:
| רכיב | מה הוא עושה | הקשר ל-MCP |
|---|---|---|
| Hooks (פרק 1) | מפעיל סקריפטים לפני/אחרי פעולות | Hook יכול לפעול כש-MCP tool מופעל (PreToolUse/PostToolUse), Elicitation hooks |
| Custom Agents (פרק 2) | סוכנים ממוקדים שעושים משימות | Agent יכול להשתמש בכלי MCP — סוכן Security שמריץ סריקות דרך MCP |
| Skills (פרק 4) | פקודות /slash מותאמות | Skill יכול להשתמש ב-MCP tools ולהפעיל Agent שמשתמש ב-MCP |
| Plugins (פרק 5) | חבילות שלמות של Skills + MCP + Hooks | Plugin כולל שרת MCP מובנה — התקנה אחת מביאה הכל |
הנוסחה המלאה: Skill מפעיל Agent שמשתמש ב-MCP tools, עם Hooks שמוודאים אבטחה. זה הכוח האמיתי של Claude Code כפלטפורמה — והפרקים הבאים יחברו את כל החלקים.
התקינו שרת MCP אחד — Playwright. פתחו את ~/.claude/settings.json, הוסיפו את הגדרת Playwright (עם npx @anthropic-ai/mcp-playwright), הפעילו מחדש את Claude Code, ובקשו: "Navigate to google.com and take a screenshot." ברגע שתראו Screenshot חי בטרמינל, תבינו למה MCP משנה הכל. מרגע זה, כל שירות שתרצו — אפשר לחבר אותו באותו אופן.
ענה על 5 השאלות האלה בלי לגלול למעלה. אם אתה יכול לענות על 4 מתוך 5 — אתה מוכן לפרק הבא.
- למה MCP מכונה "USB for AI" ומה הוא מאפשר שלא היה אפשרי בלעדיו? (רמז: תקן פתוח שמחבר Claude לכלים חיצוניים — מסדי נתונים, דפדפנים, APIs — במקום להיות מוגבל רק לקבצים ולטרמינל)
- למה Tool Search חוסך ~85% מצריכת ה-tokens ואיך זה עובד מאחורי הקלעים? (רמז: במקום לטעון את כל הגדרות 50+ כלים מראש, Claude רואה רק רשימת שמות ומושך סכמה מלאה רק כשצריך)
- מה הסכנה בלחבר שרת MCP עם הרשאות Admin ל-Production ומה עושים במקום? (רמז: שגיאת DELETE/UPDATE יכולה למחוק נתונים אמיתיים — צור User עם Read-Only או הרשאות מוגבלות)
- איך MCP Elicitation שונה מאינטראקציה רגילה ולמה הוסיפו את זה? (רמז: שרת MCP יכול לבקש קלט מובנה מהמשתמש באמצע workflow — לדוגמה אישור לפני פעולה מסוכנת)
- מהם שלושת עקרונות האבטחה של MCP ואיך מיישמים אותם בפועל? (רמז: Least Privilege, Trust but Verify, Audit Trail)
MCP הוא השלב שבו Claude Code מפסיק להיות כלי שעובד רק עם קבצים ופקודות טרמינל — והופך לסוכן שמחובר לעולם. התובנה המרכזית היא שהחיבור הזה אינו רק טכני: MCP משנה את הדרך שבה אתה חושב על אוטומציה, כי כל שירות שיש לו API הופך לכלי ש-Claude יכול להשתמש בו בצורה אינטליגנטית. עם Tool Search ו-Deferred Loading, אפילו עשרות שרתי MCP לא יאטו את השיחה — וההשקעה בתחזוקה היא מינימלית (30 שניות ליום, 5 דקות בשבוע). בפרק הבא נעבור ל-Skills — שם נלמד לעטוף את כל מה שלמדנו (Hooks + Agents + MCP) לתוך פקודות /slash שמייצרות תוצאות עקביות בלחיצה אחת.
צ'קליסט — סיום פרק 3
- ☐ מבין/ה מה MCP עושה — פרוטוקול פתוח שמחבר Claude לכלים חיצוניים
- ☐ מכיר/ה את הארכיטקטורה: שרת מקומי, JSON-RPC, stdio
- ☐ יודע/ת איפה למצוא שרתי MCP — Registry רשמי, mcp.run, Glama
- ☐ מותקן לפחות שרת MCP אחד ומאומת (Playwright, Context7, או אחר)
- ☐ מוגדר
settings.jsonעם שרתי MCP, כולל Environment Variables - ☐ מבין/ה את Tool Search ו-Deferred Loading — חיסכון של ~85% tokens
- ☐ מכיר/ה את MCP Elicitation — דיאלוגים אינטראקטיביים (מרץ 2026)
- ☐ מבין/ה OAuth לשרתי MCP צד-שלישי
- ☐ בנית שרת MCP בסיסי (לפחות "Hello World") ב-Python או TypeScript
- ☐ מכיר/ה Best Practices: version pinning, deferred loading, 3-5 שרתים
- ☐ יודע/ת לאבחן בעיות MCP —
/doctor, בדיקת env vars, הפעלה מחדש - ☐ בחרת MCP Stack מותאם לתפקיד שלך (Developer/Marketer/Analyst)
- ☐ השלמת לפחות תרגיל אחד מהתרגילים המעשיים