מדריך MCP בעברית

פרק 9

צי שרתים מקומי

כאשר שרתי MCP הופכים לחלק מרכזי בתהליך העבודה שלכם, הרצתם כפקודות npx ארעיות בכל סשן מחדש יוצרת תקורת זמן (Cold Start), בעיות בחיבורי מסדי נתונים וקושי במעקב אחר שגיאות.

הקמת צי שרתי MCP קבוע (Fleet Architecture) מאפשרת לכם להריץ שרתים כשירותי רקע רציפים, לשמור על חיבורים חמים למסדי נתונים, לרכז לוגים ולשתף שרתים בצורה מאובטחת בין חברי הצוות.

+-------------------------------------------------------------+
|                     שרת ייעודי / מכונה מקומית               |
|                                                             |
|   +-------------------+             +-------------------+   |
|   | MCP Service A     |             | MCP Service B     |   |
|   | 127.0.0.1:8081    |             | 127.0.0.1:8082    |   |
|   +---------+---------+             +---------+---------+   |
|             |                                 |             |
|             +----------------+----------------+             |
|                              |                              |
|                              v                              |
|                  +-----------------------+                  |
|                  | Cloudflare Tunnel     |                  |
|                  | (cloudflared daemon)  |                  |
|                  +-----------+-----------+                  |
+------------------------------|------------------------------+
                               | (HTTPS / Encrypted)
                               v
               +-------------------------------+
               | Cloudflare Access / Zero Trust|
               | (Auth & Policy Layer)         |
               +---------------+---------------+
                               |
                               v
            +-------------------------------------+
            | Clients (Claude Code, Grok, Cursor) |
            +-------------------------------------+

#שלבי ההקמה של שרת צי קבוע

#שלב 1: הרצה מקומית וקשירה ל-127.0.0.1

הכלל החשוב ביותר באבטחת צי שרתי MCP הוא לעולם לא לקשור את השרת ל-0.0.0.0 ללא שכבת אימות חזקה. שרת שמאזין לכל הממשקים ללא סיסמה חושף את הכלים שלו לכל מחשב אחר באותה רשת Wi-Fi או רשת משרדית.

קשרו את השרת תמיד לכתובת הפנימית בלבד: 127.0.0.1 עם פורט ייעודי (למשל 8081).

#שלב 2: הגדרת השירות כתהליך systemd קבוע

בשרת Linux, צרו קובץ שירות שידאג להפעלה אוטומטית בעת עליית המחשב והפעלה מחדש במקרה של קריסה:

קובץ /etc/systemd/system/mcp-internal.service:

[Unit]
Description=Internal MCP Fleet Service
After=network.target

[Service]
Type=simple
User=appuser
WorkingDirectory=/opt/mcp-fleet/internal-service
ExecStart=/usr/bin/node server.js
Restart=always
RestartSec=5
Environment=PORT=8081
Environment=NODE_ENV=production
Environment=DATABASE_URL=postgresql://user:pass@localhost:5432/main

[Install]
WantedBy=multi-user.target

הפעלת השירות:

sudo systemctl daemon-reload
sudo systemctl enable --now mcp-internal.service

#שלב 3: חשיפה מאובטחת באמצעות Cloudflare Tunnel

כדי לחשוף את השרת המקומי לצוות או לסוכני ענן בצורה מאובטחת, השתמשו ב-cloudflared. אין צורך לפתוח פורטים בראוטר או להגדיר כתובת IP סטטית.

הגדרת קובץ config.yml של הטאנל:

tunnel: 12345678-abcd-1234-abcd-1234567890ab
credentials-file: /etc/cloudflared/cert.json

ingress:
  - hostname: mcp-internal.yourcompany.com
    service: http://127.0.0.1:8081
  - service: http_status:404

הפעלת הטאנל:

sudo systemctl enable --now cloudflared

#שלב 4: שכבת אימות והגנה

הגנו על ה-Endpoint של השרת באמצעות אחת משיטות האימות:

  1. Cloudflare Access (Zero Trust): הגבלת גישה לבעלי דוא"ל עם סיומת החברה באמצעות אימות SSO.
  2. כותרת Bearer קבועה: השרת בודק כותרת Authorization: Bearer <SECRET_TOKEN> בכל קריאה.
  3. נתיב סודי (Secret URL Path): חשיפת נקודת הקצה בנתיב לא מנוחש כגון https://mcp.yourcompany.com/mcp-v1-k8f93jx7.

#בדיקת השרת ואימות תקינות

לפני חיבור השרת לסוכן, בדקו אותו ישירות באמצעות פקודת curl:

curl -sS -H "Authorization: Bearer YOUR_SECRET_TOKEN" \
  https://mcp-internal.yourcompany.com/mcp

אם אתם נתקלים בחסימה מול שירותי WAF או Cloudflare שמונעים גישה מכלים אוטומטיים, בדקו עם כותרת User-Agent תקינה:

curl -sS -A "Mozilla/5.0" -H "Authorization: Bearer YOUR_SECRET_TOKEN" \
  https://mcp-internal.yourcompany.com/mcp

#נוהל עדכון גרסה ורענון

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

  1. בצעו הפעלה מחדש של יחידת השירות:
    sudo systemctl restart mcp-internal.service
  2. בתוך ה-CLI של הסוכן (קלוד קוד או גרוק), בצעו רענון:
    • ב-Grok CLI: הקלידו /mcps ולחצו r.
    • ב-Claude Code: הקלידו /mcp או פתחו סשן חדש. לקוחות שכבר מחוברים לא יקבלו את רשימת הכלים החדשה ללא רענון יזום.