簡潔な回答
MCPサーバーでClaude DesktopやCursorにGoogle検索を追加するには?
下記の40行のPythonサーバーを保存し、mcp[cli]とhttpxをインストールし、クライアントのMCP設定でenvにSerpCrypto APIキーを指定して登録します。これでクライアントはライブのGoogle検索結果を返すgoogle_searchツールを利用できるようになります。ツール呼び出し1回が1クレジットの検索1回で、$0.30/1K検索から利用できます。クレジットはKYC不要で暗号資産により支払います。
MCPサーバーの概要
| 言語 | Python 3.10以上、公式mcp SDK(FastMCP)とhttpxを使用 |
|---|---|
| トランスポート | stdio: クライアントがスクリプトを起動して通信します |
| ツール | google_search(query, gl, hl, num_results) |
| 出力 | 表示される場合のAI Overviewのテキスト、続いて各結果のタイトル、リンク、スニペット |
| キー | 環境変数SERPCRYPTO_API_KEY、クライアント設定で指定 |
| コスト | 成功したツール呼び出し1回につき1クレジット。エラーは無料 |
サーバーは何をしますか?
Model Context Protocol経由でgoogle_searchという1つのツールを公開します。モデルがこれを呼び出すと、サーバーはhttps://serpcrypto.com/api/v1/searchに1つのリクエストを送り、JSONを短いプレーンテキストに変換します。GoogleがAI Overviewを表示した場合はその内容、および上位結果のタイトル、リンク、スニペットです。
短いテキストであることが重要です。JSONの完全な結果ページは長く、モデルに返すすべての文字がコンテキストを消費します。サーバーは最大10件の結果を保持し、概要は800文字で切り詰めます。クライアントに余裕があれば、コード内でこれらの上限を変更してください。
これはコピー&ペーストするコードであり、公開パッケージではありません。インストールできる公式のSerpCrypto MCPパッケージは存在しません。ファイルは自分のものであり、例えば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 transportツール名がweb_searchではなくgoogle_searchなのはなぜですか?
いくつかのクライアントは既に独自のプロバイダーを使うweb_searchという名前のツールを搭載しています。別の名前にすることで衝突を避け、モデルに何が得られるか(自身が選ぶ国と言語のGoogle検索結果)を伝えます。docstringはモデルが読む説明であるため、パラメータと呼び出しのコストを明記しています。
Claude Desktopに追加するには?
設定ファイルclaude_desktop_config.jsonを開きます。macOSでは~/Library/Application Support/Claude/に、Windowsでは%APPDATA%\Claude\にあります。mcpServersの下にサーバーを追加し、スクリプトへの絶対パスとenvにキーを指定して、Claude Desktopを再起動します。
pythonがClaude Desktopから見えるパスにない場合は、インタープリターへのフルパス(例えば仮想環境内のもの)を使用してください。
{
"mcpServers": {
"serpcrypto-search": {
"command": "python",
"args": ["/absolute/path/to/serpcrypto_mcp.py"],
"env": {
"SERPCRYPTO_API_KEY": "paste-your-key-here"
}
}
}
}Claude CodeとCursorに追加するには?
Claude Codeでは、ターミナルからclaude mcp addで登録します。-eで環境変数を設定し、--以降が実行するコマンドです。Cursorでは、上記と同じmcpServersブロックを、全プロジェクトなら~/.cursor/mcp.jsonに、1つのプロジェクト内なら.cursor/mcp.jsonに置きます。
stdioサーバーを起動する他のMCPクライアントも、同じ3つ(コマンド、その引数、環境変数)を受け取ります。OpenClawページにはOpenClaw用のコマンドが載っています。
claude mcp add serpcrypto-search \
-e SERPCRYPTO_API_KEY=paste-your-key-here \
-- python /absolute/path/to/serpcrypto_mcp.pyAPIキーはどうやって安全に保ちますか?
クライアント設定のenvブロックかシェルプロファイルに保存し、serpcrypto_mcp.pyの中には決して入れないでください。そうすれば、キーなしでスクリプトを共有したりコミットしたりできます。キーが漏れた場合は、ダッシュボードで失効させて新しいキーを作成します: ダッシュボードからいつでも作成・失効できるAPIキー。
MCPサーバーには専用のキーを渡してください。キーごとの使用量で、スクリプトとは別に、アシスタントが何回検索したかがわかります。
アシスタントはクレジットをいくつ使いますか?
成功したツール呼び出し1回につき1クレジットです。モデルが3回検索するチャットは3クレジットかかります。$18.75の25,000検索パックなら、数千回の支援付き質問に相当し、プリペイドの検索クレジットに有効期限はありません。未使用の検索は、使用するまでアカウントに残ります。
使用量を抑えるには、num_resultsを下げ(価格は変わりませんが、回答が短くなります)、指示の中で、新しい事実が必要なときだけ検索するようモデルに伝えてください。
MCPの質問
サーバーはリモートのMCPクライアントで動きますか?
このバージョンはstdioを使うため、クライアントは同じマシン上で実行する必要があります。FastMCPはHTTP経由でも提供できますが、ネットワークに公開する場合は手前に認証を置いてください。到達した人は誰でもあなたのクレジットを消費するからです。
ツールでBingやGoogle Newsを検索できますか?
はい。engine引数を追加するか、paramsにengine=bingまたはengine=google_newsを送る2つ目のツールを追加します。どのエンジンも検索1回あたり同じ1クレジットです。
クライアントがツールの失敗を表示するのはなぜですか?
同じPythonでスクリプトを手動実行してエラーを確認してください。よくある原因は、mcpやhttpxパッケージの欠如、設定内のパスの誤り、またはSERPCRYPTO_API_KEYが空でAPIが401を返すことです。
APIキーにクレジットカードやKYCは必要ですか?
いいえ。SerpCryptoはBTC, USDT, USDC, ETH, SOL, LTCで支払うプリペイドクレジットを販売しており、IDも自撮りも書類も不要です。アカウント番号でログイン。メールは任意です。