שרת MCP מאומת: Git

שרת ה-MCP ל-git, אומת בריצה חיה על Mac אמיתי.

  • אומת2026-08-03macOS 14.4.1
  • חבילהmcp-server-git (PyPI) 2026.7.10
  • מדווח על עצמוmcp-git 1.29.0
  • פרוטוקול MCP2025-06-18
  • סביבת ריצהv25.8.1 (test client)

התשובה הקצרה

אומת לאחרונה 2026-08-03

שרת ה-MCP ל-git מריץ פקודות git על מאגרי קוד שכבר יושבים על ה-Mac שלכם: status, diffs, log, ענפים וקומיטים. הוא אינו שרת ה-GitHub, ושנים עשר הכלים שהוא חושף נעצרים בגבול המחשב שלכם, בלי clone, בלי fetch ובלי push, ולכן אין אישור גישה להדביק ואין חשבון לפתוח. הוא מגיע מפרויקט ה-Model Context Protocol כחבילת Python בשם mcp-server-git ומופעל עם uvx. לא הסתפקנו במה שכתוב ב-README: כיוונו אותו למאגר קוד חד-פעמי, דיברנו איתו בפרוטוקול, ספרנו כל כלי, הרצנו קריאות אמיתיות ושמרנו את הפלט הגולמי, כולל הקריסה שקיבלנו מהפקודה uvx הפשוטה והפתרון בן דגל אחד. הכל נמצא בעמוד הזה. [1][3][6]

  • כלים

    12, נספרו בריצה חיה

  • אישורי גישה

    לא נדרשים

  • ערוץ תקשורת

    stdio, רץ על ה-Mac שלכם [6]

  • מתחזק

    modelcontextprotocol [1][3]

  • הורדות

    129 אלף בשבוע האחרון ב-PyPI [2]

  • רישיון

    MIT, במעבר ל-Apache-2.0 [4]

אימות

איך שרת ה-MCP הזה אומת.

השיטה

הרצנו את השרת עם uvx על גבי stdio, כשהוא מכוון למאגר קוד חד-פעמי אחד באמצעות ‎--repository, השלמנו את לחיצת היד של MCP, קראנו ל-tools/list והרצנו תשע קריאות כלי אמיתיות: חמש קריאות קריאה-בלבד שהצליחו, וארבע שציפינו שייכשלו, ומהן הגיע רוב קטע פתרון התקלות. שום קריאה שלנו לא שינתה את מאגר הקוד. הפעלה שנייה, בלי ‎--repository כלל, הפיקה את השגיאה האחרונה למטה. הפקודה uvx mcp-server-git הפשוטה קרסה על ה-Mac הזה עוד לפני לחיצת היד, ולכן שתי ההפעלות השתמשו ב-uvx --with mcp<2 mcp-server-git, שמקבעת את ה-SDK של MCP ל-Python על גרסה 1.29.0. על ה-Mac רצו Python 3.14.3 ו-uv 0.10.11. השם Node מופיע ברצועה למעלה רק משום שלקוח הבדיקה שלנו הוא תהליך Node; השרת הזה אינו זקוק לו. השרת אינו מדפיס דבר בהפעלה, לא ל-stdout ולא ל-stderr, ולכן מה שמופיע למטה הוא תגובת ה-initialize הגולמית בשורה אחת, בדיוק כפי שהגיעה מהחיבור.

הודעת הפתיחה של השרת

{"jsonrpc":"2.0","id":1,"result":{"protocolVersion":"2025-06-18","capabilities":{"experimental":{},"tools":{"listChanged":false}},"serverInfo":{"name":"mcp-git","version":"1.29.0"}}}

קריאת כלי אמיתית אחת

tools/call git_status {"repo_path": "/private/tmp/mcp-git-demo/demo-repo"}
Repository status:
On branch main
Changes not staged for commit:

שורות אמיתיות מהתוצאה שנלכדה: מספיק כדי להוכיח שהקריאה נענתה.

כלים

הכלים, כפי שנספרו מהשרת הרץ.

השרת ענה ל-tools/list עם 12 כלים בתאריך 2026-08-03. השמות, התיאורים והפרמטרים למטה הם המילים שלו עצמו, מועתקים מהתשובה הזו וללא עריכה.

כלימה הוא עושה
git_statusrepo_path*

Shows the working tree status

git_diff_unstagedrepo_path*context_lines

Shows changes in the working directory that are not yet staged

git_diff_stagedrepo_path*context_lines

Shows changes that are staged for commit

git_diffrepo_path*target*context_lines

Shows differences between branches or commits

git_commitrepo_path*message*

Records changes to the repository

git_addrepo_path*files*

Adds file contents to the staging area

git_resetrepo_path*

Unstages all staged changes

git_logrepo_path*max_countstart_timestampend_timestamp

Shows the commit logs

git_create_branchrepo_path*branch_name*base_branch

Creates a new branch from an optional base branch

git_checkoutrepo_path*branch_name*

Switches branches

git_showrepo_path*revision*

Shows the contents of a commit

git_branchrepo_path*branch_type*containsnot_contains

List Git branches

פרמטרים המסומנים ב-* הם חובה.

התקנה

הגדרות שעובדות, אחת לכל אפליקציה.

העתיקו את הבלוק של האפליקציה שלכם. כל אחד מהם הוא ההגדרה המדויקת שאיתה אימתנו את השרת.

Claude Desktop

פתחו את הקובץ ‎~/Library/Application Support/Claude/claude_desktop_config.json (בתוך Claude Desktop: Settings, אחר כך Developer, אחר כך Edit Config) והוסיפו:

{
  "mcpServers": {
    "git": {
      "command": "uvx",
      "args": [
        "--with",
        "mcp<2",
        "mcp-server-git",
        "--repository",
        "/Users/yourname/code/your-repo"
      ]
    }
  }
}

החליפו את נתיב מאגר הקוד בשלכם, ואז סגרו ופתחו מחדש את Claude Desktop. שתי השורות של ‎--with מקבעות את ה-SDK של MCP ל-Python מתחת לגרסה 2.0, וזה מה שגרם לשרת לעלות בתאריך 2026-08-03; אפשר להסיר אותן ברגע שתצא גרסה של mcp-server-git שתומכת ב-mcp 2.x. אם השרת לא מופיע, הזינו בשדה הפקודה את הנתיב המלא שמדפיסה הפקודה which uvx, כי אפליקציית Mac לא תמיד יורשת את ה-PATH של המעטפת שלכם. [8][7]

Claude Code

פקודה אחת בטרמינל:

claude mcp add git -- uvx --with 'mcp<2' mcp-server-git --repository ~/code/your-repo

כל מה שאחרי המקף הכפול הוא הפקודה המדויקת ש-Claude Code יריץ. השאירו את המרכאות סביב mcp<2 כדי שהמעטפת לא תקרא את סימן הקטן מ- כהפניית פלט, והחליפו את הנתיב במאגר הקוד שתרצו לפתוח. [9]

Cursor

הוסיפו ל-‎~/.cursor/mcp.json עבור כל הפרויקטים, או ל-‎.cursor/mcp.json בתוך פרויקט אחד:

{
  "mcpServers": {
    "git": {
      "command": "uvx",
      "args": [
        "--with",
        "mcp<2",
        "mcp-server-git",
        "--repository",
        "/Users/yourname/code/your-repo"
      ]
    }
  }
}

Cursor קורא את הקובץ מחדש אחרי הפעלה מחדש. כוונו את ‎--repository לפרויקט שאתם עובדים בו, והוסיפו רשומה שנייה בשם אחר עבור מאגר קוד נוסף. [10]

Routines

בלי קובץ JSON ובלי טרמינל. ב-Routines: Settings, אחר כך Assistant, אחר כך Connections, אחר כך Add MCP Server. העבירו את הטופס ל-Command (stdio) והזינו:

Name        Git
Command     uvx
Arguments   --with mcp<2 mcp-server-git --repository /Users/yourname/code/your-repo

הערך בשדה ה-Arguments מתפצל לפי רווחים ואינו תומך במרכאות, לכן mcp<2 נכתב כמו שהוא, ונתיב מאגר הקוד חייב להיות בלי רווחים ולהתחיל ב-/Users. לחצו קודם על Test Connection: שרת תקין עונה עם מספר הכלים שלו, שנים עשר עבור השרת הזה. [11]

בלי טרמינל

איך מגדירים את שרת ה-MCP‏ Git בלי טרמינל.

אם מעולם לא פתחתם את הטרמינל ואין לכם כוונה להתחיל, זה המסלול שלכם, עם חריג אחד בלתי נמנע שמצוין בשלב הראשון. Routines היא אפליקציית Mac שמריצה שרתי MCP בשבילכם: ממלאים שלושה שדות פעם אחת, והכלים של השרת זמינים ל-AI שלכם בצ׳אט ובשגרות מתוזמנות.

  1. 01

    התקינו את Routines, ואת uv

    הורידו את האפליקציה מ-getroutines.ai/download, גררו אותה ל-Applications והתחברו. השרת הזה כתוב ב-Python, ולכן הוא זקוק גם ל-uv, הכלי שמספק את הפקודה uvx. התקינו אותו מ-astral.sh/uv, או בשורת טרמינל אחת אם כבר יש לכם Homebrew: brew install uv.

  2. 02

    פתחו את הגדרות ה-MCP

    לחצו על החשבון שלכם בתחתית סרגל הצד ובחרו Settings. פתחו את הקטע Assistant, אחר כך את הלשונית Connections, גללו אל MCP Servers ולחצו על Add MCP Server.

  3. 03

    בחרו Command (stdio)‎

    הטופס נפתח במצב URL. העבירו אותו ל-Command (stdio): השרת הזה הוא פקודה שרצה על ה-Mac שלכם, לא כתובת אינטרנט.

  4. 04

    כוונו אותו למאגר קוד אחד

    Name: Git. Command: uvx. Arguments: ‎--with mcp<2 mcp-server-git --repository, אחריו רווח והנתיב המלא של תיקיית מאגר הקוד, למשל ‎/Users/yourname/code/your-repo. כתבו את הנתיב במלואו, מתחיל ב-/Users, בלי רווחים.

  5. 05

    בדקו, ואז הוסיפו

    השאירו את Environment Variables ריק, השרת הזה לא צריך משתנים. לחצו Test Connection: Routines מפעילה את השרת ומדווחת כמה כלים היא מצאה, שנים עשר עבור השרת הזה. אחר כך לחצו Add Server.

  6. 06

    השתמשו בו

    הכלים עובדים בצ׳אט מיד, כך שאפשר לשאול מה השתנה במאגר הקוד השבוע. כדי לתת לשגרה מתוזמנת להשתמש בהם, פתחו את השגרה, מצאו את הכרטיס Tools & connections וסמנו את השרת תחת Apps.

רעיונות לשגרות

שגרות ששווה לתזמן.

אחרי שהשרת מחובר, שגרה מתוזמנת יכולה להשתמש בכלים שלו גם כשאתם לא מול המסך. העתיקו פרומפט, הדביקו אותו ב-Routines ובחרו שעה. הפרומפטים כתובים באנגלית בכוונה, מדביקים אותם בדיוק כפי שהם.

ישיבת בוקר של יום שני מתוך ה-log

פרומפט

Every Monday at 8:30, read the git log of my repository for the last seven days, group the commits by what they changed, and write a short standup note I can read in two minutes.

טיוטת הערות גרסה ליום שישי

פרומפט

Every Friday at 17:00, list the commits on the main branch since last Friday, drop the merge and formatting ones, and draft plain-language release notes with one line per user-visible change.

בדיקת סוף יום לעבודה שלא נשמרה

פרומפט

Every weekday at 18:00, check the git status of my repository, and if anything is modified or staged but not committed, list the files with a one-line summary of the unstaged diff so I know what I left open.

פתרון תקלות

השגיאות שנתקלנו בהן, ומה פתר אותן.

שגיאות אמיתיות שנלכדו בריצת האימות, מודפסות בדיוק כפי שהשרת החזיר אותן.

השרת מת ברגע שהלקוח מפעיל אותו

מה רואים

  File "/Users/[REDACTED]/.cache/uv/archive-v0/OwIFwgGFXK4fyeBJ7kmJc/lib/python3.14/site-packages/mcp_server_git/server.py", line 321, in serve
    @server.list_tools()
     ^^^^^^^^^^^^^^^^^
AttributeError: 'Server' object has no attribute 'list_tools'

הפתרון

זה מה שהפקודה uvx mcp-server-git הפשוטה עשתה על ה-Mac שלנו בתאריך 2026-08-03, והתופעה חזרה גם עם ‎--refresh. החבילה מבקשת mcp>=1.0.0, uv מתקינה את החדשה ביותר, וגרסה mcp 2.0.0 ביטלה את ממשק הדקורטורים שהשרת הזה עדיין משתמש בו. הלקוח שלכם לא יציג את ה-traceback; הוא ידווח על שרת מת, ולקוח ה-stdio שלנו דיווח MCP error -32000: Connection closed. הוסיפו ‎--with mcp<2 לפני mcp-server-git, בדיוק כפי שעושה כל הגדרה בעמוד הזה, והשרת יעלה. מה שמופיע למעלה הוא השורות האחרונות של ה-traceback, תיקיית הבית בתוכן הוסתרה, והלכידה המלאה שמורה בקבלות האימות.

כל קריאה על מאגר קוד אחר נדחית

מה רואים

Repository path '/private/tmp' is outside the allowed repository '/private/tmp/mcp-git-demo/demo-repo'

הפתרון

עובד כמתוכנן, וגרמנו לזה בכוונה. כשמפעילים את השרת עם ‎--repository, התיקיה הזו היא הגדר, וכל repo_path מחוצה לה חוזר בדיוק כך. בקשו מידע על מאגר הקוד שהרשיתם, או הוסיפו רשומת שרת שנייה בשם אחר שמכוונת למאגר הקוד השני.

ענף או קומיט שהעוזר ביקש לא קיימים

מה רואים

Ref 'no-such-branch' did not resolve to an object

הפתרון

השם הגיע ל-git ו-git לא הצליח לפענח אותו: שגיאת הקלדה, ענף שקיים רק בשרת המרוחק, או קומיט שנעלם ב-rebase. בקשו קודם git_branch כדי לראות את הרשימה האמיתית, ואז חזרו על הבקשה עם שם מתוכה. לשרת הזה אין כלי fetch, ולכן ענף שמעולם לא נמשך אל ה-Mac שלכם פשוט אינו נראה לו.

הודעת שגיאה שהיא רק נתיב

מה רואים

/private/tmp/mcp-git-demo

הפתרון

כל השורה הזו היא השגיאה. זה קורה כשהשרת הופעל בלי ‎--repository והתיקיה שנמסרה לו אינה מאגר git: GitPython זורקת InvalidGitRepositoryError, שההודעה שלה היא הנתיב בלבד, והשרת מעביר אותה כמו שהיא. כוונו את הבקשה לתיקיה שמכילה תיקיית ‎.git, או הפעילו את השרת עם ‎--repository כדי שהטעות תיתפס עם משפט שלם במקום.

לקוח ה-MCP לא מצליח להפעיל את השרת בכלל

הפתרון

הפקודה uvx שייכת ל-uv. אם uv לא מותקנת, כל לקוח בעמוד הזה ייכשל בשלב ההפעלה עוד לפני שהשרת מספיק לומר משהו. התקינו אותה מ-astral.sh/uv, ואז הריצו which uvx בטרמינל: אם היא מדפיסה נתיב ואפליקציית Mac עדיין לא מצליחה להפעיל את השרת, הדביקו את הנתיב המלא בשדה הפקודה, כי אפליקציה שנפתחה מה-Dock לא תמיד יורשת את ה-PATH של המעטפת שלכם.

שאלות נפוצות

שאלות שאנשים שואלים.

מה זה שרת ה-MCP ל-git?

זהו שרת ה-git של פרויקט ה-Model Context Protocol: תוכנית Python קטנה שמריצה פקודות git על מאגר קוד שכבר משוכפל על ה-Mac שלכם ומדווחת את התוצאות לעוזר AI. אחרי החיבור, Claude יכול לקרוא את ה-log, להציג diffs, לרשום ענפים, להוסיף קבצים ולבצע קומיט, הכל דרך git עצמו. הוא רץ כתהליך מקומי ומדבר עם אפליקציית ה-AI על גבי stdio. [5][6]

אילו כלים כלולים בשרת ה-MCP ל-git?

השרת הרץ חושף 12 כלים: קריאה (git_status, git_log, git_show, git_branch), השוואה (git_diff, git_diff_staged, git_diff_unstaged) ושינוי (git_add, git_commit, git_reset, git_create_branch, git_checkout). הטבלה למעלה היא פלט ה-tools/list החי, מילה במילה.

האם שרת ה-MCP ל-git זהה לשרת ה-MCP של GitHub?

לא, וההבדל הוא כל העניין. השרת הזה מפעיל את git על תיקיה שנמצאת על ה-Mac שלכם ואינו מתחבר לשום מקום: שנים עשר הכלים אינם כוללים clone, fetch או push. שרת ה-GitHub מדבר עם github.com דרך ה-API ודורש אישור גישה, ולכן הוא יכול לפתוח pull requests ולקרוא issues. הרבה אנשים מריצים את שניהם, אחד לעותק העבודה ואחד לצד המאוחסן. [5]

האם שרת ה-MCP ל-git בטוח?

הוא תחום למאגר הקוד שאתם מציינים עם ‎--repository, ובדקנו את הגדר: בקשה על ‎/private/tmp בזמן שתיקיה אחרת הייתה מורשית החזירה את הסירוב המודפס בקטע פתרון התקלות. הסיכון האמיתי הוא שארבעה מתוך שנים עשר הכלים כותבים. git_commit מבצע קומיטים, git_add מוסיף לאזור ההכנה, git_reset מוציא ממנו הכל, ו-git_checkout עלול להזיז אתכם מעבודה לא גמורה, לכן כוונו אותו למאגר קוד שלא אכפת לכם להחזיר אחורה, וקראו מה שהעוזר מציע לפני שאתם מאשרים.

צריך טרמינל כדי להגדיר אותו?

כמעט אף פעם לא. ב-Routines ממלאים שלושה שדות בהגדרות ולוחצים Test Connection; המדריך למעלה מראה כל לחיצה. החריג היחיד הוא uv עצמה, שהשרת רץ עליה: יש לה תוכנית התקנה להורדה, ושורת טרמינל אחת אם אתם מעדיפים Homebrew. Claude Desktop דורש עריכה חד-פעמית של קובץ JSON קטן, ורק Claude Code הוא כלי טרמינל מטבעו. [11][8]

הוא דורש מפתח API או חשבון?

לא. אין למה להירשם ואין אישור גישה להדביק, כי הכל קורה מול מאגר קוד שכבר נמצא על הדיסק שלכם. הפקודה uvx מורידה את החבילה ממאגר החבילות הציבורי של PyPI בריצה הראשונה, כך שההפעלה הראשונה צריכה חיבור לאינטרנט; אחריה החבילה שמורה על ה-Mac. [1]

למה השרת מדווח גרסה 1.29.0 בלחיצת היד?

כי הוא לא מדווח גרסה משלו. הקוד יוצר את שרת ה-MCP שלו כ-Server("mcp-git") בלי ארגומנט גרסה, ולכן ה-SDK נופל אחורה ומדפיס את גרסת החבילה של עצמו, והריצה שלנו קיבעה את ה-SDK על 1.29.0. החבילה שהתקנו היא mcp-server-git 2026.7.10, תאריך שמוטבע בזמן הפרסום. שלושה מספרים, כולם אמיתיים, כולם נלכדו למעלה. [1][6][7]

מקורות

כל טענה חיצונית, עם קבלה.

כל מה שבעמוד הזה שלא ראינו בעצמנו בריצה מקושר כאן, עם התאריך שבו קראנו אותו. לגבי השאר, הריצה עצמה היא הקבלה.

  1. [1]

    PyPI registry: mcp-server-gitנקרא בתאריך 2026-08-03

    Latest version 2026.7.10, published 2026-07-10; author Anthropic, PBC.; declares mcp>=1.0.0.

  2. [2]

    PyPI download stats: mcp-server-gitנקרא בתאריך 2026-08-03

    128,807 downloads in the last week and 758,320 in the last month at access time.

  3. [3]

    GitHub: modelcontextprotocol/serversנקרא בתאריך 2026-08-03

    89,142 stars and a push dated 2026-08-03 at access time, per the GitHub API.

  4. [4]

    modelcontextprotocol/servers LICENSE fileנקרא בתאריך 2026-08-03

    The project states it is transitioning from the MIT License to Apache-2.0; docs are CC-BY-4.0. The package metadata still declares MIT.

  5. [5]

    Git server README (src/git)נקרא בתאריך 2026-08-03
  6. [6]

    Git server source: server.pyנקרא בתאריך 2026-08-03

    Creates Server("mcp-git") with no version and runs stdio_server(): the server speaks stdio and declares no version of its own.

  7. [7]

    PyPI registry: mcp (the Python MCP SDK)נקרא בתאריך 2026-08-03

    mcp 2.0.0 was published on 2026-07-28, the release that breaks mcp-server-git 2026.7.10.

  8. [8]

    modelcontextprotocol.io: Connect to local MCP serversנקרא בתאריך 2026-08-03

    The Claude Desktop config file path and the mcpServers command and args shape.

  9. [9]

    Claude Code docs: MCPנקרא בתאריך 2026-08-03

    The claude mcp add [options] <name> -- <command> [args...] syntax for local stdio servers.

  10. [10]

    Cursor docs: Model Context Protocolנקרא בתאריך 2026-08-03

    The mcp.json shape and file locations.

  11. [11]

    Routines: Connectorsנקרא בתאריך 2026-08-03

    How Routines runs one-click OAuth connectors and any MCP server.

העמוד הזה מתאר את Git כפי שהתנהג בריצה מתוארכת אחת על Mac אחד. גרסאות משתנות: אם משהו כאן כבר לא תואם למה שאתם רואים, תאריך הלכידה בראש העמוד אומר בן כמה הצילום.

מאחורי המדריך הזה

Routines, האפליקציה שמאחורי המדריך הזה, מריצה שרתי MCP כמו זה בלי טרמינל: כך עובדים המחברים. הפתקים שלכם נשארים קובצי markdown על ה-Mac שלכם, אין חשבון ענן לשלם, והיא עובדת גם בלי אינטרנט. להורדת Routines