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:
- Global yapılandırma:
<USER_HOME>/.bob/mcp_settings.jsoniçindeki ayarlar tüm çalışma alanlarına uygulanır - Proje düzeyinde yapılandırma:
.bob/mcp.jsoniç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 yoluurl: Uzak sunucular için SSE uç nokta URL'sihttpURL: 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şkenlericwd: Stdio taşıması için çalışma dizinitimeout: Milisaniye cinsinden istek zaman aşımı (varsayılan: 600.000ms; 10min)alwaysAllow: Otomatik olarak onaylanacak araç adları. Bob Shell bu girdilerimcp.jsondosyasından okur ve her görevin başında uygular; böylece listelenen araçlar onay istemez.disabled: Sunucuyu devre dışı bırakmak içintrueolarak 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ı
{
"mcpServers": {
"mcp-batchit": {
"command": "mise",
"args": [
"x",
"--",
"node",
"/Users/myself/workspace/mcp-batchit/build/index.js"
],
"alwaysAllow": [
"search",
"batch_execute"
]
}
}
}Telemetri verileri
Bob Shell'in toplayabileceği telemetri verileri, ürünü geliştirmek için nasıl kullanıldığı ve veri toplamayı nasıl etkinleştireceğiniz veya devre dışı bırakacağınız hakkında bilgi edinin.
Slash command'ları
İş akışlarını otomatikleştirmek ve ekip uygulamalarını standartlaştırmak için özel slash command'ları oluştur.