Jawaban singkat
Bagaimana cara menambahkan pencarian Google ke Claude Desktop atau Cursor dengan server MCP?
Simpan server Python 40 baris di bawah, pasang mcp[cli] dan httpx, lalu daftarkan di pengaturan MCP klien Anda dengan API key SerpCrypto di env. Klien kemudian mendapat tool google_search yang mengembalikan hasil Google secara langsung. Setiap pemanggilan tool adalah satu pencarian dengan biaya 1 kredit, mulai dari US$0,30/1K pencarian; kredit dibayar dengan kripto tanpa KYC.
Sekilas tentang server MCP
| Bahasa | Python 3.10+ dengan SDK resmi mcp (FastMCP) dan httpx |
|---|---|
| Transport | stdio: klien menjalankan skrip dan berkomunikasi dengannya |
| Tool | google_search(query, gl, hl, num_results) |
| Output | Teks AI Overview jika ditampilkan, lalu judul, tautan, dan snippet per hasil |
| API key | Environment variable SERPCRYPTO_API_KEY, diatur di konfigurasi klien |
| Biaya | 1 kredit per pemanggilan tool yang berhasil; error gratis |
Apa yang dilakukan server ini?
Server ini mengekspos satu tool, google_search, melalui Model Context Protocol. Saat model memanggilnya, server mengirim satu permintaan ke https://serpcrypto.com/api/v1/search, lalu mengubah JSON menjadi teks singkat: AI Overview jika Google menampilkannya, dan hasil teratas dengan judul, tautan, dan snippet.
Teks singkat itu penting. Halaman hasil lengkap dalam JSON itu panjang, dan setiap karakter yang dikirim kembali ke model memakai context. Server menyimpan hingga sepuluh hasil dan memotong overview pada 800 karakter; ubah batas tersebut di kode jika klien Anda punya ruang lebih.
Ini kode yang bisa di-copy-paste, bukan paket yang dipublikasikan: tidak ada paket MCP SerpCrypto resmi untuk dipasang. File ini milik Anda dan Anda bisa menambahkan tool, misalnya untuk engine=google_news.
"""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 transportMengapa tool ini bernama google_search dan bukan web_search?
Beberapa klien sudah menyertakan tool bernama web_search yang memakai provider mereka sendiri. Nama yang berbeda menghindari konflik dan memberi tahu model apa yang didapat: hasil Google untuk negara dan bahasa yang dipilihnya. Docstring adalah deskripsi yang dibaca model, jadi docstring itu menyebutkan parameter dan biaya satu pemanggilan.
Bagaimana cara menambahkannya ke Claude Desktop?
Buka file konfigurasi, claude_desktop_config.json: di macOS letaknya di ~/Library/Application Support/Claude/, di Windows di %APPDATA%\Claude\. Tambahkan server di bawah mcpServers, dengan path absolut ke skrip dan API key Anda di env, lalu mulai ulang Claude Desktop.
Jika python tidak ada di path yang dilihat Claude Desktop, gunakan path lengkap ke interpreter, misalnya yang ada di dalam virtual environment Anda.
{
"mcpServers": {
"serpcrypto-search": {
"command": "python",
"args": ["/absolute/path/to/serpcrypto_mcp.py"],
"env": {
"SERPCRYPTO_API_KEY": "paste-your-key-here"
}
}
}
}Bagaimana cara menambahkannya ke Claude Code dan Cursor?
Di Claude Code, daftarkan dari terminal dengan claude mcp add; -e menyetel environment variable dan semua yang setelah -- adalah perintah yang dijalankan. Di Cursor, letakkan blok mcpServers yang sama seperti di atas di ~/.cursor/mcp.json untuk setiap proyek, atau di .cursor/mcp.json dalam satu proyek.
Klien MCP lain yang menjalankan server stdio memakai tiga hal yang sama: perintah, argumennya, dan environment variable. Halaman OpenClaw menampilkan perintah untuk OpenClaw.
claude mcp add serpcrypto-search \
-e SERPCRYPTO_API_KEY=paste-your-key-here \
-- python /absolute/path/to/serpcrypto_mcp.pyBagaimana cara menjaga API key tetap aman?
Simpan di blok env pada konfigurasi klien atau di profil shell Anda, jangan pernah di dalam serpcrypto_mcp.py. Dengan begitu, skrip bisa dibagikan atau di-commit tanpa key. Jika key bocor, cabut di dashboard dan buat yang baru: API key yang dapat Anda buat dan cabut kapan saja dari dashboard Anda.
Beri server MCP key tersendiri. Pemakaian per key kemudian menunjukkan berapa banyak pencarian yang dilakukan asisten, terpisah dari skrip Anda.
Berapa kredit yang akan dipakai asisten?
Satu per tool call yang berhasil. Obrolan di mana model mencari tiga kali memakai tiga kredit. Pada paket 25.000 pencarian seharga US$18,75, itu berarti ribuan pertanyaan berbantuan, dan Kredit pencarian prabayar tidak pernah kedaluwarsa: pencarian yang belum terpakai tetap ada di akun Anda sampai Anda menggunakannya.
Untuk membatasi pemakaian, turunkan num_results (tidak mengubah harga, tetapi mempersingkat jawaban) dan beri tahu model dalam instruksi Anda agar mencari hanya saat butuh fakta terbaru.
Pertanyaan tentang MCP
Apakah server ini berfungsi dengan klien MCP remote?
Versi ini memakai stdio, jadi klien harus menjalankannya di mesin yang sama. FastMCP juga bisa melayani lewat HTTP; jika Anda mengeksposnya di jaringan, pasang autentikasi di depannya, karena siapa pun yang bisa menjangkaunya akan memakai kredit Anda.
Bisakah tool ini mencari di Bing atau Google News?
Bisa. Tambahkan argumen engine atau tool kedua yang mengirim engine=bing atau engine=google_news di params. Setiap mesin berbiaya sama, 1 kredit per pencarian.
Mengapa klien menyatakan tool gagal?
Jalankan skrip secara manual dengan Python yang sama untuk melihat error. Penyebab umumnya adalah paket mcp atau httpx yang tidak ada, path yang salah di config, atau SERPCRYPTO_API_KEY yang kosong, yang membuat API menjawab 401.
Apakah saya perlu kartu kredit atau KYC untuk API key?
Tidak. SerpCrypto menjual kredit prabayar yang dibayar dengan BTC, USDT, USDC, ETH, SOL, LTC, tanpa ID, tanpa selfie, dan tanpa dokumen. Login dengan nomor akun; email bersifat opsional.