בניית Python MCP Server מאפס

Model Context Protocol (MCP) הוא כעת סטנדרט בתעשייה. הוא הגיע ל-97 מיליון הורדות SDK בחודש. כל כלי AI מרכזי משתמש בו. רוב המדריכים מראים רק איך להתקין שרתים קיימים. המדריך הזה יראה לך איך לבנות משלך באמצעות Python ו-GitHub API.

מה זה MCP? זהו פרוטוקול המאפשר ללקוחות AI לקרוא לשירותים חיצוניים. השרת שלך מטפל בבקשות מכלים כמו Claude או Cursor.

שלושת חלקי הליבה של MCP:

  • Tools (כלים): פונקציות שה-AI קורא להן כדי לבצע פעולה או לקבל נתונים.
  • Resources (משאבים): נקודות קצה (endpoints) של נתונים לקריאה בלבד, כמו קבצים או רשומות בבסיס נתונים.
  • Prompts (הנחיות): תבניות הוראות ניתנות לשימוש חוזר עבור תהליכי עבודה עקביים.

הגדרת הפרויקט שלך צור ספרייה והתקן את הספריות הדרושות באמצעות uv:

mkdir github-mcp-server
cd github-mcp-server
uv init .
uv add "mcp[cli]" httpx

בניית השרת השתמש ב-FastMCP כדי לבצע את העבודה הקשה. שרת MCP טוב משתמש בשלושה קבצים ספציפיים: server.py, pyproject.toml, וקובץ .env אופציונלי עבור ה-GitHub token שלך.

טיפים מקצועיים לפיתוח:

  • השתמש במודלים של Pydantic עבור ערכי החזרה של הכלים (tool returns). זה מספק ל-AI נתונים מובנים במקום מחרוזות (strings) מבולגנות.
  • כתוב docstrings ברורים. ה-AI קורא אותם כדי להחליט מתי להשתמש בכלי שלך.
  • הגבל (Clamp) קלטים מספריים. מודלי AI שולחים לעיתים קרובות מספרים לא צפויים כמו 0 או 100.
  • טפל בחריגות (exceptions). קריסה בשרת שלך עלולה לקטוע את כל החיבור.

בדיקה ופריסה אל תחכה לבדוק ב-Claude. השתמש קודם ב-MCP Inspector. הרץ: uv run mcp dev server.py

זה פותח ממשק מקומי בכתובת http://localhost:5173. תוכל לבדוק כלים, משאבים והנחיות במקום אחד.

חיבור ל-Claude Desktop: עדכן את קובץ ההגדרות (config file) שלך כך שיכלול את השרת שלך. השתמש בנתיב המלא לקובץ server.py שלך. השתמש תמיד ב-uv run במקום בפקודת python ישירה כדי למנוע שגיאות סביבה.

חיבור ל-Claude Code: השתמש בפקודת ה-CLI: claude mcp add github-tools -- uv run python /path/to/server.py

בניית שרתי MCP מותאמים אישית מאפשרת לך להכניס נתונים חיים לתהליכי העבודה של ה-AI שלך.

מקור: https://dev.to/moksh/building-a-python-mcp-server-from-scratch-a-practical-github-api-guide-397k

קהילת למידה אופציונלית: https://t.me/GyaanSetuAi