הגדרת MCP ב-VS Code: השתמשו ב-servers ולא ב-mcpServers
העתקתם הגדרת MCP שעובדת מ-Claude או מ-Cursor, הדבקתם אותה ב-VS Code, הפעלתם מחדש, ושום דבר לא קרה. בלי שגיאה, בלי אזהרה, בלי שרת ברשימה. הקובץ הוא JSON תקין ו-VS Code מרוצה ממנו לגמרי. הבעיה היא מילה אחת, והיא החיצונית ביותר.
- VS Code עוטף שרתי MCP תחת servers. Claude, Cursor ורוב האחרים משתמשים ב-mcpServers.
- המפתח הלא נכון לא מייצר שום שגיאה, ולכן זה עולה לאנשים שעה.
- הגדרת השרת הפנימית זהה בכל הלקוחות. רק העטיפה שונה.
ההבדל, זה לצד זה
אותו שרת, אותה פקודה, אותם ארגומנטים. הדבר היחיד שמשתנה הוא מפתח העטיפה.
| לקוח | קובץ הגדרות | מפתח עטיפה |
|---|---|---|
| GitHub Copilot ב-VS Code | .vscode/mcp.json | servers |
| Cursor | ~/.cursor/mcp.json | mcpServers |
| Claude Desktop | claude_desktop_config.json | mcpServers |
| רוב הלקוחות האחרים המבוססים על קובץ הגדרות | משתנה | mcpServers |
מה VS Code רוצה
ב-.vscode/mcp.json, בשורש סביבת העבודה שלכם. בדוגמה עם המחבר של MyLinedChart:
{ "servers": { "mylinedchart": { "command": "npx", "args": ["-y", "@mylinedchart/mcp-chart-context"] } } }
החליפו בפקודה ובארגומנטים של השרת שלכם. צורת האובייקט הפנימי לא משתנה בין לקוחות.
מה כל השאר רוצים
אותו שרת, עבור Claude או Cursor:
{ "mcpServers": { "mylinedchart": { "command": "npx", "args": ["-y", "@mylinedchart/mcp-chart-context"] } } }
אם שני העורכים פתוחים אצלכם, באמת צריך את שני הקבצים. שני העורכים לא יכולים לחלוק הגדרה אחת.
למה זה נכשל בלי שגיאה
VS Code קורא את הקובץ, מוצא JSON תקין ומחפש מפתח servers. בקובץ אין מפתח servers, ולכן VS Code מוצא אפס שרתים להפעיל. אפס שרתים אינו מצב שגיאה. מבחינת VS Code לא הגדרתם כלום, וזה דבר חוקי לחלוטין.
אז אין קו אדום, אין התראה ואין רשומה בשום לוג שאומרת שהמפתח שגוי. הכשל נראה בדיוק כמו קריסת השרת בהפעלה, ולכן אנשים הולכים ומנפים שגיאות בשרת.
- הקובץ הוא JSON תקין, ולכן לא מופיעה שגיאת פענוח.
- מפתח ברמה העליונה שלא מזוהה מתעלמים ממנו ולא דוחים אותו.
- אפס שרתים מוגדרים הוא מצב רגיל, ולכן VS Code לא מדווח על תקלה.
איך מאשרים איזו בעיה יש לכם
לפני שמניחים שהשרת שבור, הוכיחו ש-VS Code בכלל ניסה להפעיל אותו.
- בדקו קודם את מפתח העטיפה. הבדיקה עולה חמש שניות והיא התשובה ברוב המקרים.
- הריצו את פקודת השרת ביד בטרמינל. אם השרת עולה, הבעיה במקום אחר.
- חפשו את השרת ברשימת שרתי ה-MCP של VS Code. היעדר אומר שלא הוגדר אף פעם; נוכחות עם כשל אומרת שגיאת הפעלה אמיתית.
- אם התקנתם דרך קישור בלחיצה אחת ולא ביד, כל סוג הבעיות הזה לא חל.
שתי מלכודות קשורות
כל עוד אתם כאן, שני דברים נוספים נכשלים באותה צורה שקטה.
ראשית, קישורי התקנה של MCP בלחיצה אחת נושאים את המטען שלהם כ-JSON רגיל בקידוד URL. Base64 מתקבל על ידי מפענח ה-URL ואז לא עושה כלום בשקט, וזה הכשל הגרוע ביותר האפשרי: כפתור שנראה כאילו עבד.
שנית, שם השרת נוסע בתוך המטען ב-VS Code, ולא כפרמטר שאילתה נפרד כמו ש-Cursor עושה. קישור שנבנה לצורה של Cursor לא יותקן נכון ב-VS Code גם אם הוא נפתח.
איפה MyLinedChart נכנס
MyLinedChart מגיע עם מחבר MCP שנותן לסוכן בינה מלאכותית את הגרף החי שלכם: סימולים, השרטוטים שלכם, ערכי אינדיקטורים והנרות שעל המסך. המחבר רץ על המחשב שלכם והנתונים לא עוברים דרך השרתים שלנו.
באפליקציה יש כפתור Add to VS Code בלחיצה אחת שכותב בשבילכם את המפתח הנכון, וזו הסיבה להשתמש בו במקום לערוך ביד. ההגדרה והלקוחות האחרים: /resources/articles/ibkr-chart-data-github-copilot-vs-code.
הצעד הבא
תקנו את המפתח, הפעילו מחדש את VS Code, והשרת מופיע. אם השרת עדיין לא מופיע, עכשיו אתם יודעים שהבעיה בשרת ולא בהגדרה, וזו רשימה קצרה בהרבה לעבור עליה.
חברו את הבינה המלאכותית שלכם ב-/mcp.
שאלות נפוצות
- למה VS Code משתמש ב-servers ולא ב-mcpServers?
- המפתח servers הוא בחירת שם בפורמט ההגדרה של MCP של VS Code עצמה, שנעשתה במנותק מהמוסכמה ש-Claude Desktop קבע. אף אחד מהם לא נכון יותר. ההבדל נהפך לבעיה רק כי השניים נראים ניתנים להחלפה ואחד מהם נכשל בלי לומר זאת.
- VS Code יזהיר אותי אם אשתמש במפתח הלא נכון?
- לא, וזה כל הקושי. הקובץ הוא JSON תקין, מפתח לא מוכר ברמה העליונה מתעלמים ממנו ולא דוחים אותו, ואפס שרתים מוגדרים הוא מצב רגיל. שום דבר בזה לא נראה כמו תקלה.
- אפשר להשתמש בקובץ הגדרות אחד גם ל-VS Code וגם ל-Cursor?
- לא. הם קוראים נתיבים שונים וצפויים למפתחי עטיפה שונים, ולכן צריך את שני הקבצים. הגדרת השרת הפנימית זהה, כך שזה העתקה עם מילה אחת שהוחלפה.
- האם זה חל גם על Copilot של Windows?
- לא. ה-Copilot כאן הוא GitHub Copilot בתוך VS Code, שתומך בשרתי MCP. העוזר בשורת המשימות של Windows הוא מוצר נפרד שחולק את השם ולא משתמש בקבצי ההגדרות האלה.
נסו את MyLinedChart
MyLinedChart שומר את השרטוטים, ההערות וערכי האינדיקטורים שלכם כנתונים שאפשר לייצא, לסקור ולהשתמש בהם שוב.
גלו את MyLinedChart