Hızlı yanıt
Bir MCP sunucusuyla Claude Desktop veya Cursor'a Google aramasını nasıl eklerim?
Aşağıdaki 40 satırlık Python sunucusunu kaydedin, mcp[cli] ve httpx kurun ve client'ınızın MCP ayarlarında bunu SerpCrypto API anahtarınızla env içinde kaydedin. Client daha sonra canlı Google sonuçları döndüren bir google_search aracı alır. Her araç çağrısı $0,30/1K arama itibarıyla 1 kredilik bir aramadır; krediler KYC olmadan kripto ile ödenir.
MCP sunucusuna genel bakış
| Dil | Resmi mcp SDK (FastMCP) ve httpx ile Python 3.10+ |
|---|---|
| Taşıma | stdio: client betiği başlatır ve onunla konuşur |
| Araç | google_search(query, gl, hl, num_results) |
| Çıktı | Gösterildiğinde AI Overview metni, ardından her sonuç için başlık, bağlantı ve snippet |
| Anahtar | Client yapılandırmasında ayarlanan SERPCRYPTO_API_KEY ortam değişkeni |
| Maliyet | Başarılı her araç çağrısı için 1 kredi; hatalar ücretsizdir |
Sunucu ne yapar?
Model Context Protocol üzerinden tek bir aracı, google_search aracını sunar. Model bunu çağırdığında, sunucu https://serpcrypto.com/api/v1/search adresine bir istek gönderir, ardından JSON'u kısa düz metne dönüştürür: Google bir tane gösterdiyse AI Overview ve her biri başlık, bağlantı ve snippet ile en iyi sonuçlar.
Kısa metin önemlidir. JSON biçimindeki tam bir sonuç sayfası uzundur ve modele geri gönderilen her karakter context kullanır. Sunucu en fazla on sonuç tutar ve overview'ı 800 karakterde keser; client'ınızda daha fazla yer varsa kodda bu sınırları değiştirin.
Bu, yayımlanmış bir paket değil, kopyala-yapıştır koddur: yüklenecek resmi bir SerpCrypto MCP paketi yoktur. Dosya size aittir ve örneğin engine=google_news için bir araç ekleyebilirsiniz.
"""serpcrypto_mcp.py: an MCP server that gives AI clients a Google search tool.
Install once: pip install "mcp[cli]" httpx
Run by your MCP client over stdio; the API key comes from the environment.
"""
import os
import httpx
from mcp.server.fastmcp import FastMCP
API_URL = "https://serpcrypto.com/api/v1/search"
mcp = FastMCP("serpcrypto-search")
@mcp.tool()
async def google_search(query: str, gl: str = "us", hl: str = "en", num_results: int = 5) -> str:
"""Search Google and return the top results (title, link, snippet) and the AI Overview text if any.
gl is a two-letter country code (us, gb, de...), hl a language code (en, de, pt-BR...).
Each call uses one SerpCrypto search credit.
"""
headers = {"Authorization": "Bearer " + os.environ["SERPCRYPTO_API_KEY"]}
params = {"q": query, "gl": gl, "hl": hl}
async with httpx.AsyncClient(timeout=90) as client:
r = await client.get(API_URL, params=params, headers=headers)
if r.status_code != 200:
return f"Search failed with HTTP {r.status_code}: {r.text[:300]}"
data = r.json()
lines = []
overview = data.get("ai_overview") or {}
if overview.get("text"):
lines.append("AI Overview: " + overview["text"][:800])
for item in data.get("organic_results", [])[: max(1, min(num_results, 10))]:
lines.append(f"{item['position']}. {item['title']}\n{item['link']}\n{item.get('snippet', '')}")
return "\n\n".join(lines) or "No results."
if __name__ == "__main__":
mcp.run() # stdio transportAraç neden web_search değil de google_search olarak adlandırılmış?
Birkaç client zaten kendi sağlayıcısını kullanan web_search adında bir araç sunuyor. Farklı bir ad çakışmayı önler ve modele ne aldığını söyler: kendi seçtiği bir ülke ve dil için Google sonuçları. Docstring, modelin okuduğu açıklamadır; bu nedenle parameter'leri ve bir çağrının maliyetini belirtir.
Claude Desktop'a nasıl eklerim?
Yapılandırma dosyasını, claude_desktop_config.json dosyasını açın: macOS'te ~/Library/Application Support/Claude/ içindedir, Windows'ta %APPDATA%\Claude\ içinde. Sunucuyu mcpServers altına, betiğin mutlak yolu ve anahtarınız env içinde olacak şekilde ekleyin, ardından Claude Desktop'ı yeniden başlatın.
python, Claude Desktop'ın gördüğü path üzerinde değilse, yorumlayıcının tam yolunu kullanın, örneğin sanal ortamınızın içindekini.
{
"mcpServers": {
"serpcrypto-search": {
"command": "python",
"args": ["/absolute/path/to/serpcrypto_mcp.py"],
"env": {
"SERPCRYPTO_API_KEY": "paste-your-key-here"
}
}
}
}Claude Code ve Cursor'a nasıl eklerim?
Claude Code'da terminalden claude mcp add ile kaydedin; -e ortam değişkenini ayarlar ve -- sonrasındaki her şey çalıştırılacak komuttur. Cursor'da yukarıdaki aynı mcpServers bloğunu her proje için ~/.cursor/mcp.json içine veya tek bir projede .cursor/mcp.json içine koyun.
stdio sunucuları başlatan diğer MCP istemcileri de aynı üç şeyi alır: bir komut, argümanları ve ortam değişkenleri. OpenClaw sayfası OpenClaw için komutları gösterir.
claude mcp add serpcrypto-search \
-e SERPCRYPTO_API_KEY=paste-your-key-here \
-- python /absolute/path/to/serpcrypto_mcp.pyAPI anahtarını nasıl güvende tutarım?
İstemci yapılandırmasının env bloğunda veya kabuk profilinizde tutun, asla serpcrypto_mcp.py içinde tutmayın. Böylece betik anahtar olmadan paylaşılabilir veya commit edilebilir. Bir anahtar sızarsa panelden iptal edin ve yeni bir tane oluşturun: Dashboard'ınızdan istediğiniz zaman oluşturup iptal edebileceğiniz API anahtarları.
MCP sunucusuna kendi anahtarını verin. Böylece anahtar başına kullanım, betiklerinizden ayrı olarak asistanın kaç arama yaptığını gösterir.
Bir asistan kaç kredi kullanır?
Başarılı olan her tool çağrısı için bir tane. Modelin üç kez arama yaptığı bir sohbet üç krediye mal olur. $18,75 fiyatlı 25.000 arama paketinde bu binlerce destekli soru demektir ve Ön ödemeli arama kredileri hiçbir zaman sona ermez: kullanılmayan aramalar siz kullanana kadar hesabınızda kalır.
Kullanımı sınırlamak için num_results değerini düşürün (fiyatı değiştirmez ama yanıtları kısaltır) ve talimatlarınızda modele yalnızca güncel bilgilere ihtiyaç duyduğunda arama yapmasını söyleyin.
MCP soruları
Sunucu uzak MCP istemcileriyle çalışır mı?
Bu sürüm stdio kullanır, dolayısıyla istemci onu aynı makinede çalıştırmalıdır. FastMCP ayrıca HTTP üzerinden de hizmet verebilir; bir ağda açığa çıkarırsanız önüne kimlik doğrulama koyun, çünkü ona ulaşan herkes kredilerinizi harcar.
Tool bunun yerine Bing veya Google News'te arama yapabilir mi?
Evet. Bir engine argümanı veya params içinde engine=bing ya da engine=google_news gönderen ikinci bir tool ekleyin. Her engine arama başına aynı 1 krediye mal olur.
İstemci neden tool başarısız oldu diyor?
Hataları görmek için betiği aynı Python ile elle çalıştırın. Olağan nedenler eksik bir mcp veya httpx paketi, yapılandırmada yanlış bir yol veya API'nin 401 yanıtını vermesine yol açan boş bir SERPCRYPTO_API_KEY değeridir.
API anahtarı için kredi kartı veya KYC gerekiyor mu?
Hayır. SerpCrypto, BTC, USDT, USDC, ETH, SOL, LTC ile ödenen ön ödemeli krediler satar; kimlik yok, selfie yok, belge yok. Hesap numarasıyla giriş; email isteğe bağlı.