YapılandırmaMCP

MCP

Bob Shell, Model Context Protocol'ü (MCP) destekler ve harici hizmetlere ve araçlara bağlanarak Bob'un yeteneklerini genişletmenize olanak tanır. Bu kılavuz, Bob Shell ile MCP sunucularını nasıl yapılandıracağınızı ve kullanacağınızı açıklar.

MCP nedir?

Bir MCP (Model Context Protocol) sunucusu, Bob ile veritabanları, API'ler veya özel betikler gibi harici hizmetler arasında bir köprü görevi görür. MCP ile Bob'un yeteneklerini yerleşik özelliklerinin ötesine genişletebilirsiniz.

MCP sunucuları Bob'a şunları sağlar:

  • Araç keşfi: Açıklamaları ve parametreleriyle kullanılabilir araçlara erişim
  • Araç çağrısı: Argümanlarla belirli araçları çağırma ve yapılandırılmış yanıtlar alma yeteneği
  • Kaynak erişimi: Belirli kaynaklardan veri okuma yeteneği

MCP'yi neden kullanmalısınız?

  • İşlevselliği genişletin: Bob'a hazır olmayan özel yetenekler ekleyin
  • Hizmetlerle entegre olun: Bob'u veritabanlarınıza, API'lerinize ve diğer sistemlerinize bağlayın
  • İş akışlarını otomatikleştirin: Özel ihtiyaçlarınız için özel araçlar oluşturun
  • Yetenekleri paylaşın: Ekibiniz genelinde yararlı araçları dağıtın

MCP sunucularını yapılandırma

MCP sunucu yapılandırmalarını iki seviyede yönetebilirsiniz:

  1. Global yapılandırma: <USER_HOME>/.bob/mcp_settings.json içindeki ayarlar tüm çalışma alanlarına uygulanır
  2. Proje düzeyinde yapılandırma: .bob/mcp.json içindeki ayarlar yalnızca mevcut projeye uygulanır

Bir sunucu adı hem global hem de proje yapılandırmalarında bulunduğunda, proje düzeyinde yapılandırma öncelik kazanır.

MCP ayarları dosyalarını düzenleme

MCP ayarları dosyalarınızı değiştirmek için Bob IDE veya başka bir metin editörü kullanın.

Aşağıdaki örneğe bakın:

{
  "mcpServers": {
    "server1": {
      "command": "python",
      "args": ["/path/to/server.py"],
      "env": {
        "API_KEY": "your_api_key"
      },
      "alwaysAllow": ["tool1", "tool2"],
      "disabled": false
    }
  }
}

Yapılandırma özellikleri

Her sunucu yapılandırması bu özelliklerden birini gerektirir:

  • command: Stdio taşıması için çalıştırılabilir dosyanın yolu
  • url: Uzak sunucular için SSE uç nokta URL'si
  • httpURL: Akışlanabilir http için HTTP uç nokta URL'si

İsteğe bağlı özellikler şunları içerir:

  • args: Stdio taşıması için komut satırı argümanları
  • headers: SSE taşıması için özel HTTP başlıkları
  • env: Sunucu süreci için ortam değişkenleri
  • cwd: Stdio taşıması için çalışma dizini
  • timeout: Milisaniye cinsinden istek zaman aşımı (varsayılan: 600.000ms; 10min)
  • alwaysAllow: Otomatik olarak onaylanacak araç adları. Bob Shell bu girdileri mcp.json dosyasından okur ve her görevin başında uygular; böylece listelenen araçlar onay istemez.
  • disabled: Sunucuyu devre dışı bırakmak için true olarak ayarlayın

Taşıma türleri

MCP, sunucularla iletişim kurmanın iki yolunu destekler:

STDIO taşıması

STDIO taşıması sunucuları makinenizde yerel olarak çalıştırır:

  • İletişim için standart giriş/çıkış akışlarını kullanır
  • Daha düşük gecikme ve daha iyi güvenlik sağlar
  • Makinenizde bir alt süreç olarak çalışır

Örnek yapılandırma:

{
 "mcpServers": {
   "local-server": {
     "command": "node",
     "args": ["server.js"],
     "cwd": "/path/to/project/Bob",
     "env": {
       "API_KEY": "your_api_key"
     },
     "alwaysAllow": ["tool1", "tool2"]
   }
 }
}

SSE taşıması

SSE taşıması HTTP/HTTPS üzerinden uzak sunuculara bağlanır:

  • Server-Sent Events protokolünü kullanır
  • Farklı makinelerde barındırılan sunucularla çalışır
  • Ağ erişimi gerektirir

Örnek yapılandırma:

{
 "mcpServers": {
   "remote-server": {
     "url": "https://your-server-url.com/mcp",
     "headers": {
       "Authorization": "Bearer your-token"
     },
     "alwaysAllow": ["tool3"]
   }
 }
}

Streamable HTTP taşıması

Streamable HTTP taşıması, HTTP kullanarak uzak sunuculara bağlanır:

  • Çift yönlü HTTP bağlantısı kullanır
  • Hem istek/yanıt hem de sunucu tarafından gönderilen mesajları destekler
  • Farklı makinelerde barındırılan sunucularla çalışır

Örnek yapılandırma:

{
 "mcpServers": {
   "remote-server": {
     "httpURL": "https://your-server-url.com/mcp"
   }
 }
}

Platforma özel örnekler

Windows yapılandırması

{
  "mcpServers": {
    "puppeteer": {
      "command": "cmd",
      "args": [
        "/c",
        "npx",
        "-y",
        "@modelcontextprotocol/server-puppeteer"
      ]
    }
  }
}

macOS ve Linux yapılandırması

{
  "mcpServers": {
    "puppeteer": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-puppeteer"
      ]
    }
  }
}

Çalışma zamanı sürüm yöneticisi yapılandırması

asdf veya mise gibi sürüm yöneticileri kullanırken:

{
  "mcpServers": {
    "mcp-batchit": {
      "command": "mise",
      "args": [
        "x",
        "--",
        "node",
        "/Users/myself/workspace/mcp-batchit/build/index.js"
      ],
      "alwaysAllow": [
        "search",
        "batch_execute"
      ]
    }
  }
}
Bu konu nasıl?