# Claude Desktop、Cursor、その他のMCPクライアント向けGoogle検索MCPサーバー

> Claude Desktop、Claude Code、Cursor、その他のMCPクライアントにGoogle検索を追加: SerpCrypto SERP APIを使った40行のPython MCPサーバーです。KYC不要、暗号資産で支払い。

- URL: https://serpcrypto.com/ja/docs/mcp/
- 最終更新: 2026-10-22
- 発行者: SerpCrypto (https://serpcrypto.com)

任意のMCPクライアントに、ライブのGoogle検索結果を返す`google_search`ツールを提供します。サーバーは自分で実行する1つのPythonファイルで、SerpCrypto APIを呼び出し、モデルが読める簡潔なテキストを返します。

**簡潔な回答 — 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*

```python
"""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から見えるパスにない場合は、インタープリターへのフルパス（例えば仮想環境内のもの）を使用してください。

*claude_desktop_config.json*

```json
{
  "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ページ](https://serpcrypto.com/ja/docs/openclaw/)にはOpenClaw用のコマンドが載っています。

*Claude Code*

```bash
claude mcp add serpcrypto-search \
  -e SERPCRYPTO_API_KEY=paste-your-key-here \
  -- python /absolute/path/to/serpcrypto_mcp.py
```

## APIキーはどうやって安全に保ちますか？

クライアント設定の`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も自撮りも書類も不要です。アカウント番号でログイン。メールは任意です。

---

SerpCrypto: SerpCryptoは、開発者とAIエージェント向けのSERP APIで、GoogleとBingの検索結果をJSONで返し、身分証明書のアップロードなしで暗号資産で支払えます。前払いの検索クレジットは$0.30/1K検索から購入でき、有効期限はありません。KYC不要 — 身分証明書もセルフィーも書類も不要。暗号資産で支払い。
