Bir web arama MCP sunucusu küçük bir yazılımdır ama ajanınızın neye inandığı üzerinde büyük söz sahibidir. Bir arama altyapısını sarar, onu bir ya da birkaç araç olarak sunar ve her çağrıdan sonra modele hangi metnin ulaşacağına karar verir. Bu yüzden seçim aslında iki ayrı karardır. Birincisi arama altyapısıdır; onu web arama API'si seçme rehberi ele alıyor. İkincisi sunucunun kendisidir: tanımladığı araçlar, sonuçların biçimi, kimlik doğrulama yöntemi, sorgularınıza ne olduğu, nerede çalıştığı ve istemcinizin ona neye izin verdiği. Bu yazı ikinci kararla ilgili.
Sunucu, arama API'sinin üstüne ne ekler
Model Context Protocol, bir istemcinin sunucudaki araçları keşfetmesini ve onları model adına çağırmasını sağlar. Kavramlar size yeniyse MCP nedir yazısıyla başlayın. Bir arama sunucusu genellikle üç iş yapar: araç çağrısını bir arama sağlayıcısına ya da kendi barındırdığınız bir motora giden isteğe çevirir, dönen sonucu kırpıp biçimlendirir ve hataları bildirir.
Bu işlerin her biri, aynı altyapıyı kullanan iki sunucunun çok farklı davranabileceği bir noktadır. Biri tarih filtrenizi olduğu gibi iletir, diğeri sessizce yok sayar. Biri tarihli, temiz alıntılar döndürür; diğeri bağlam dolana kadar ham sayfa metni basar. O yüzden yalnızca arkadaki sağlayıcıyı değil, sunucuyu da test edin. Sunucuyu kimin sürdürdüğünü de öğrenin: arama sağlayıcısının kendisi mi, bir çatı projesi mi, yoksa tek bir geliştirici mi? Bu, alttaki API değiştiğinde sunucunun ne kadar çabuk uyum sağlayacağını ve bir şey bozulduğunda kime başvuracağınızı gösterir.
Önce araç şemasını okuyun
Bir modeli yaklaştırmadan önce sunucuyu bir istemciye ya da bir denetleyiciye bağlayın ve araçlarını listeleyin. Model araçları adlarına ve açıklamalarına bakarak seçer, argümanları da girdi şemasına göre doldurur; yani asıl sözleşme budur. Makul bir arama aracı aşağı yukarı şöyle görünür:
{
"name": "web_search",
"description": "Search the public web. Returns up to max_results items, each with url, title, published date and an excerpt.",
"inputSchema": {
"type": "object",
"properties": {
"query": { "type": "string", "maxLength": 400 },
"max_results": { "type": "integer", "minimum": 1, "maximum": 10 },
"include_domains": { "type": "array", "items": { "type": "string" } },
"recency_days": { "type": "integer", "minimum": 1 }
},
"required": ["query"]
}
}
Bakmanız gerekenler:
- Tipli ve sınırlı parametreler. Alt ve üst sınırı olan tamsayılar, bölge ya da dil için sabit seçenek listeleri, alan adı filtreleri için diziler. Serbest metin parametreleri modeli doğaçlamaya davet eder.
- Gerçekten ihtiyaç duyduğunuz filtreler. Tarih ya da güncellik, alan adı dâhil etme ve hariç tutma, dil. Altyapı bir filtreyi destekliyor ama şema onu sunmuyorsa ajan o filtreyi kullanamaz.
- Az sayıda araç. Arama, sayfa çekme, tarama ve ekran görüntüsü araçlarını birlikte getiren bir sunucu ajana daha geniş bir erişim verir ve araç tanımlarına daha fazla bağlam harcar. Görevin gerektirdiğini açın.
- Sade açıklamalar. Modele bu aracı diğer hepsine tercih etmesini ya da her adımda çağırmasını söyleyen bir açıklama, üst veriye gizlenmiş bir talimattır. Bunu bir uyarı işareti sayın.
Sonuç biçimi: modelin bağlamına ne giriyor
Sunucunun döndürdüğü her şey modelin girdisi olur; bu yüzden sonuç biçimi hem yanıt kalitesini hem de maliyeti belirler. Aracı kendi gerçek sorgularınızdan birkaçıyla çağırın ve ham çıktıyı okuyun.
| Kontrol | Neden önemli |
|---|---|
| Her öğede URL ve başlık | Bunlar olmadan ajan kaynak gösteremez, siz de doğrulayamazsınız |
| Yayın tarihi ve alınma tarihi | Ajan güncelliği tahmin etmek yerine değerlendirebilir |
| Özet, pasaj ya da tam metin | Kısa özetler bir yanıtı dayandırmaya çoğu zaman yetmez; tam sayfalar bağlamı doldurur |
| Boyut sınırı ya da kırpma kuralı | Tek bir uzun sayfa diğer bütün sonuçları dışarıda bırakmamalı |
| Yalnızca düz metin değil, yapılandırılmış çıktı | Kodunuz sonuçları düzyazı ayrıştırmadan kaydedebilir, süzebilir ve saklayabilir |
| Boş sonuçtan ayrı bir hata yanıtı | “Hiçbir şey bulunamadı” ile “altyapı zaman aşımına uğradı” farklı tepkiler gerektirir |
Arama sonuçlarının yabancıların yazdığı, güvenilmeyen metinler olduğunu unutmayın. Bir sayfa, ajanı yönlendirmek için özenle yazılmış cümleler içerebilir. Sunucu bunu tamamen engelleyemez; ama sonuçlar alınmış içerik olarak açıkça işaretlendiğinde ve sayfa çekme aracı aramadan ayrı tutulduğunda, birini diğerini vermeden açabilirsiniz.
Kimlik doğrulama, gizli anahtarlar ve sorgularınız
Yerel sunucuların çoğu, altyapının API anahtarını istemcinin yapılandırma dosyasında tanımlanan bir ortam değişkeninden okur. Bu dosya kazara bir depoya ya da paylaşılan bir ayar klasörüne kolayca kopyalanır; anahtarları sürüm kontrolündeki hiçbir dosyada tutmayın, istemciniz destekliyorsa bir gizli anahtar deposu kullanın. Ajana sağlayıcı tarafında kendi harcama sınırı olan ayrı bir anahtar verin; böylece kontrolden çıkan bir döngü sürpriz bir fatura yerine sınırlanmış bir tutar olarak görünür.
Uzak sunucular istemciyi genellikle OAuth ya da işletmecinin verdiği bir jetonla doğrular. Bu jetonun arama dışında neye izin verdiğini, nasıl iptal edildiğini ve bir kişiye mi ait olduğunu yoksa ekipçe mi paylaşıldığını kontrol edin.
Sonra sorguların izini sürün. Bir ajanın sorguları anonim anahtar kelimeler değildir: müşteri adları, şirket içi proje adları, hata mesajları ve bazen kod parçaları taşır. İstemciyle arama dizini arasındaki her durak bunları kaydedebilir. Sunucu işletmecisine ve altyapı sağlayıcısına neyi, ne kadar süre sakladıklarını ve başka bir amaçla kullanıp kullanmadıklarını sorun. Topluluk tarafından yazılmış bir sunucuda kodu telemetri açısından okuyun. Kendi barındırdığınız bir altyapı bu listeden bir tarafı eksiltir.
Yerel mi, uzak mı
Yerel sunucu, istemcinin başlattığı ve standart girdi ve çıktı üzerinden konuşan, makinenizde çalışan bir süreçtir. Uzak sunucuya HTTP üzerinden erişilir ve onu başka biri ya da kendi ekibiniz işletir.
- Yerel sunucuda sorgularınızın sunucu tarafındaki işlenişi makinenizde kalır; ama birinin kodunu kendi kullanıcı yetkilerinizle çalıştırıyorsunuz demektir. Her açılışta en son sürümü çekmek yerine bir sürüme sabitleyin ve kurduğunuz şeyi inceleyin.
- Uzak sunucuda kurulacak bir şey yoktur ve barındırılan istemcilerden de çalışır; ama işletmeci her sorguyu ve sonucu görür, siz de onun erişilebilirliğine ve politikalarına bağımlı olursunuz.
Bu ödünleşimler aramanın ötesine geçer; uzak ve yerel MCP sunucuları karşılaştırması bunları ayrıntılı ele alıyor.
İstemcideki izinler
Sunucu araçları tanımlar; modelin onlarla ne yapabileceğine istemci karar verir. Arama yazmadığı, yalnızca okuduğu için zararsız görünür; yine de sorguları dışarı gönderir ve içeri güvenilmeyen metin taşır. Her URL'yi kabul eden bir sayfa çekme aracı, sunucu iç ağınızda çalışıyorsa oradaki adreslere de ulaşabilir.
Dar başlayın. Yalnızca arama aracını açın ve onu açtığınız her çalışma alanına değil, ihtiyaç duyan projeye bağlayın. Ajanın bu araçları nasıl kullandığını görene kadar sayfa çekme ve tarama araçları için onay istemlerini açık tutun. İlk birkaç oturumdan sonra istemcinin araç çağrısı kaydını okuyun. Ajanlara salt okuma ile başlamak ve yetkiyi genişletmeden araç bağlamak notları bu alışkanlığı açıyor.
GoCux nerede durur
GoCux bir arama MCP sunucusu değildir ve barındırılan bir MCP uç noktası sunmaz. Açık webi de okumaz. MCP konusundaki yaklaşımı bu yazıdakiyle örtüşür: araçlar sizin uyumlu istemcinizin içinde çalışır, salt okuma erişimiyle başlarsınız ve bir sunucunun yapılandırılmış olması her görevin onu kullanabileceği anlamına gelmez. Kurulumu MCP hızlı başlangıç sayfası gösteriyor.
Bir iş için web içeriği gerektiğinde GoCux onu açıkça yetki verilmiş bir tarama ya da dışa aktarma adımıyla içeri alır; sayfanın özgün referansını ve alındığı tarihi birlikte saklar. Bir araştırma planı kaynaklarını, plan çalışmadan önce onaylanan bir kaynak izin listesinde belirtir; ayrıntılar kaynak politikası sayfasında. İstemcinizdeki arama aracı adayları bulabilir; hangi kaynakların yanıt vermesine izin verildiğinin kaydı ise incelenebilir kalır.
Arama sunucusunu açmadan önce kontrol listesi
- Sunucuyu kimin sürdürdüğünü ve hangi altyapıyı çağırdığını biliyorsunuz.
- Araçlarını listelediniz; her adı, açıklamayı ve parametreyi okudunuz.
- İhtiyaç duyduğunuz filtreler şemada var ve gerçekten altyapıya ulaşıyor.
- Sonuçlar URL, başlık ve tarih taşıyor; boyut sınırı işinize uygun.
- Hatalar ve boş sonuçlar farklı biçimde dönüyor.
- API anahtarı bu işe özel, harcama sınırı konmuş ve sürüm kontrolünün dışında.
- Sorgularınızı kimin, ne kadar süreyle kaydettiğini biliyorsunuz.
- Yerel sunucu incelenmiş bir sürüme sabitlenmiş; uzak sunucunun jetonu kapsamlı ve iptal edilebilir.
- Başlangıçta yalnızca arama aracı açık; sayfa çekme çağrıları çalışmadan önce onay istiyor.
Bu iş akışını çalışma alanınıza taşıyın.
Kapsamı belirleyin. Kanıtları inceleyin. Gereken adımları onaylayın.