🛠️ שיעור למתקדמים, דורש ידע ב-Python ו-API. אם אתה מתחיל, דלג ועבור ל-lesson 30b לסיום הקורס.
MCP: ה-USB-C של עולם ה-AI
דצמבר 2025, Anthropic תרמה את Model Context Protocol (MCP) ל-Linux Foundation. זו לא פרטיות טכנית: זה אומר שהפרוטוקול הזה הפך לתקן תעשייתי, כמו HTTP או USB. OpenAI אימצו אותו באפריל 2025, Microsoft בקיץ, AWS בסוף השנה. כיום יש מעל 10,000 MCP servers ציבוריים עם 97 מיליון הורדות SDK חודשיות.
אז מה זה בפועל? MCP (Model Context Protocol) הוא פרוטוקול פתוח שמאפשר ל-Claude לתקשר עם כלים חיצוניים בשפה אחידה. במקום לכתוב integration ייחודי לכל tool, MCP מגדיר ממשק אחיד שכל שרת יכול לדבר. בדיוק כמו USB-C, לפני שהיה סטנדרט, כל מכשיר היה צריך חיבור אחר. MCP עושה את אותו הדבר ל-AI.
שלושת הרכיבים שכל מפתח חייב להכיר
כל MCP server חושף שלושה סוגי יכולות:
- Tools: פונקציות שClaude יכול לקרוא להן, run_query, send_email, create_pr. אלה הפקודות שהסוכן מבצע.
- Resources: מידע שClude יכול לגשת אליו, קבצים, rows ממסד נתונים, תוצאות API. קריאה בלבד.
- Prompts: תבניות prompts מוכנות מראש שChude יכול להשתמש בהן לשיחות מובנות.
ארכיטקטורת המערכת מורכבת מ-3 שכבות:
- MCP Host: האפליקציה שמריצה את Claude, Claude Code, Claude Desktop
- MCP Client: שכבת התקשורת שה-Host מנהל אוטומטית
- MCP Server: השרת שחושף tools, resources, ו-prompts לשימוש Claude
| Transport | מתי להשתמש | דוגמה |
|---|---|---|
| stdio | כלים מקומיים, פיתוח | SQLite, filesystem |
| HTTP Streamable | שרתים מרוחקים, enterprise | Slack, Salesforce, Jira |
בניית MCP Server, 30 דקות מהאפס לחיבור
דוגמה ישראלית: סטארטאפ ת"א שצוות הפיתוח שלו מחובר ל-Supabase. במקום לצאת מClauede Code לבדוק queries, הם בנו MCP server שנותן ל-Claude גישה ישירה לבסיס הנתונים:
// mcp-db-server.ts
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
import { createClient } from "@supabase/supabase-js";
import { z } from "zod";
const supabase = createClient(
process.env.SUPABASE_URL!,
process.env.SUPABASE_KEY!
);
const server = new McpServer({
name: "supabase-server",
version: "1.0.0",
});
// Tool: שאילתה לפי טבלה
server.tool(
"query_table",
"Query a Supabase table with filters",
{
table: z.string().describe("Table name"),
limit: z.number().optional().default(20),
},
async ({ table, limit }) => {
const { data, error } = await supabase
.from(table)
.select("*")
.limit(limit);
if (error) return { content: [{ type: "text", text: error.message }] };
return { content: [{ type: "text", text: JSON.stringify(data, null, 2) }] };
}
);
// הפעלה
const transport = new StdioServerTransport();
await server.connect(transport);
אחרי שה-server מוכן, מחברים ל-Claude Code:
// .mcp.json, מתחייב ל-git (ללא סודות!)
{
"mcpServers": {
"supabase": {
"command": "npx",
"args": ["tsx", "./mcp-db-server.ts"],
"env": {
"SUPABASE_URL": "${SUPABASE_URL}",
"SUPABASE_KEY": "${SUPABASE_KEY}"
}
},
"github": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-github"],
"env": { "GITHUB_TOKEN": "${GITHUB_TOKEN}" }
}
}
}
שלושה scopes להגדרה, חשוב לדעת:
- Local: רק אצלך, לא מתחייב ל-git, לפיתוח אישי
- Project (.mcp.json): מתחייב ל-git, כל הצוות מקבל את אותם ה-servers
- User: כל הפרויקטים שלך, הגדרות אישיות גלובליות
הבעיה שאף אחד לא אמר לך עליה: Context Bloat
מפתח אחד תיעד: "חיברתי 4 MCP servers ואיבדתי 67,000 טוקן מחלון ההקשר עוד לפני שכתבתי שורת קוד אחת." הבעיה: כל הגדרות ה-tools של כל שרת נטענות לתוך הקשר Claude בכל שיחה, לפני שהוא עושה משהו.
Claude Code פתרה זאת ב-2025 עם Tool Search, במקום לטעון את כל הסכמות בהתחלה, Claude Code טוען אינדקס חיפוש קל-משקל ומושך tool definitions לפי הצורך. התוצאה: ירידה של 46.9% בטוקנים הכוללים (51K ל-8.5K בסשן טיפוסי).
Tool Search מופעל אוטומטית, אין צורך בהגדרה. אבל גם אחרי זה: אל תחברו 20 MCP servers. כל server שלא בשימוש פעיל מוסיף latency ו-noise לשיחה.
אבטחה: 3 כללים שחייבים לדעת
MCP server יכול לקרוא קבצים, לקרוא APIs, לשלוח בקשות HTTP. זה כוח גדול, ולכן:
- התייחסו ל-MCP servers כמו לחבילות npm: בדקו את הקוד לפני שמריצים. שרת לא מבוקר יכול להחדיר הוראות זדוניות לתוך הקשר Claude (Prompt Injection).
- הגבילו הרשאות למינימום: אם ה-server רק קורא נתונים, אל תיתנו לו הרשאות כתיבה. SQLite? רק SELECT. Filesystem? רק תיקיות ספציפיות.
- סודות ב-env vars, לא ב-config: GITHUB_TOKEN ו-SUPABASE_KEY לא נכנסים ל-.mcp.json, הם מגיעים מ-environment variables. אחרת הם מתחייבים ל-git ונחשפים.
MCP Servers מומלצים לדצמבר 2025
| שרת | מה הוא עושה | כמה tools |
|---|---|---|
| server-github | Issues, PRs, commits, repos | ~30 |
| server-postgres | שאילתות PostgreSQL | 5 |
| server-filesystem | קריאה/כתיבה קבצים מקומיים | 8 |
| supabase-mcp-server | Supabase: DB, Auth, Storage, Edge Functions | 20+ |
| mcp-server-puppeteer | שליטה בדפדפן, scraping, בדיקות | 10 |
השיעור הבא: בניית AI Agents אוטונומיים עם Claude
MCP נתן ל-Claude כלים, Agents שמים אותם לעבודה בלולאה אוטונומית. בשיעור הבא תבין כיצד agent מקבל מטרה, בוחר כלים, בוחן תוצאות ומחליט על הצעד הבא, שוב ושוב, עד שהמשימה הושגת. תבנה agent loop עובד עם בקרת בטיחות ו-human-in-the-loop.
⏱️ 50 דקות · 🎯 agent אוטונומי ב-Python עם logging, max_turns ואישור אנושי לפעולות הרסניות
