OffshoreVps
Eğitimler6 Eki 20266 dk okumaYazan: OffshoreVps ekibi

MCP sunucusu VPS’te nasıl barındırılır

Uzak bir Model Context Protocol sunucusu çalıştırın: yerel ve uzak arasındaki fark, bir Python örneği, systemd hizmeti, token’lı HTTPS ve bir güvenlik kontrol listesi.

Model Context Protocol (MCP), yapay zekâ asistanlarının sizin çalıştırdığınız sunuculardaki araçları çağırmasına ve verileri okumasına izin verir. Birçok MCP sunucusu yerelde çalışır, ancak birkaç kişi, araç veya ajanın aynı yetenekleri paylaşması gerektiğinde bir VPS'teki uzak sunucu işe yarar. Bu rehber kurulum seçeneklerini ve güvenli bir başlangıç düzeyini kapsar.

MCP sunucusu barındırmak için kullanılan komutları gösteren VPS üzerindeki terminal penceresi, “sudo adduser --disabled-password --gecos "" mcp” ile başlıyor
Bu rehberde sunucunuzda çalıştıracağınız komutlardan örnekler.

Yerel mi uzak MCP mi?

  • Yerel (stdio). İstemci sunucuyu kendi makinenizde alt süreç olarak başlatır. Basit ve özeldir, ama yalnızca o makinede çalışır.
  • Uzak (HTTP). Sunucu bir VPS'te çalışır ve istemciler HTTPS üzerinden bağlanır. Barındıracağınız budur. Paylaşılan araçlara, uzun süren işlere ve sabit IP gerektiren araçlara uygundur.

İstemcinizin desteklediği aktarım için güncel MCP spesifikasyonuna bakın. Uzak sunucularda genellikle Streamable HTTP seçilir. Tipik iş yükleri için boyutlar MCP sunucu barındırma sayfamızda.

Adım 1: sunucuyu hazırlayın

Yeni bir Ubuntu LTS sunucusu kullanın ve yeni bir VPS'in güvenliği nasıl sağlanır yazısındaki adımları izleyin. Hizmet için bir kullanıcı oluşturun.

sudo adduser --disabled-password --gecos "" mcp

Adım 2: Sunucuyu çalıştırın

Resmî SDK'yı veya mevcut bir sunucuyu kullanın. Bu Python örneği, MCP SDK'sının FastMCP yardımcısını kullanır:

sudo -iu mcp
python3 -m venv ~/venv && . ~/venv/bin/activate
pip install "mcp[cli]"
# server.py
from mcp.server.fastmcp import FastMCP

mcp = FastMCP("demo", host="127.0.0.1", port=8000)

@mcp.tool()
def add(a: int, b: int) -> int:
    """Add two numbers."""
    return a + b

if __name__ == "__main__":
    mcp.run(transport="streamable-http")
Bu rehberin adımları sırasıyla: 1. Yerel mi uzak MCP mi?; 2. sunucuyu hazırlayın; 3. sunucuyu çalıştırın; 4. hizmet olarak çalıştırın; 5. HTTPS ve kimlik doğrulama; 6. Güvenlik kontrol listesi
Bu rehberdeki adımlar sırasıyla.

Adım 3: Hizmet olarak çalıştırın

[Unit]
Description=MCP server
After=network-online.target

[Service]
User=mcp
WorkingDirectory=/home/mcp
ExecStart=/home/mcp/venv/bin/python server.py
Restart=always

[Install]
WantedBy=multi-user.target

/etc/systemd/system/mcp.service olarak kaydedin ve sudo systemctl enable --now mcp komutunu çalıştırın.

Adım 4: HTTPS ve kimlik doğrulama

Bir MCP sunucusu kod çalıştırabilir ve veri okuyabilir, bu yüzden asla açık bırakmayın. TLS'li bir ters proxy'nin arkasına koyun ve token zorunlu kılın:

mcp.example.com {
  @noauth not header Authorization "Bearer YOUR_LONG_RANDOM_TOKEN"
  respond @noauth 401
  reverse_proxy 127.0.0.1:8000
}

Üretim kurulumu için tek bir paylaşılan token yerine MCP yetkilendirme spesifikasyonunda anlatıldığı gibi OAuth kullanın.

Güvenlik kontrol listesi

  • Araçlara ihtiyaç duydukları en az erişimi verin. Amaç bu değilse bir araca shell erişimi vermeyin.
  • Gizli bilgileri chmod 600 uygulanmış ortam dosyalarında tutun.
  • Ne olduğunu görebilmek için araç çağrılarını günlüğe kaydedin.
  • Portu 127.0.0.1'e bağlı tutun ve yalnızca proxy'yi dışarı açın.