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

> Claude Code、Claude Desktop、Cursor向けのWeb検索MCPサーバー: search_webとread_urlsツールを備えた短いPythonファイルを、1つのコマンドで登録できます。KYC不要。

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

任意のMCPクライアントに2つのツールを提供します。`search_web`は上位ページを既に読み込んだ状態でランク付けされたソースを返し、`read_urls`はモデルが既に持っているリンクを読み込みます。サーバーはお使いのマシン上で動作する1つのPythonファイルで、APIキーはその環境変数から読み取ります。

**クイック回答 — Claude CodeやClaude DesktopにWeb検索MCPサーバーを追加するにはどうすればよいですか？**

このページの短いPythonサーバーを保存してください。これは**LLMWebSearch**を呼び出す`search_web`ツールと`read_urls`ツールを公開します。次に`claude mcp add`で、または`claude_desktop_config.json`内で、`env`にAPIキーを設定して登録します。これでモデルはライブWebを検索し、上位ページをMarkdownとして読めるようになります。検索1回につきクレジット1つで、2026年10月時点では$1.20/1K検索から利用できます。KYC不要、暗号資産で支払い。

## MCPサーバーの概要

| 属性 | 値 |
| --- | --- |
| 言語 | Python 3.10+、`mcp`と`httpx`パッケージを使用 |
| トランスポート | stdio: クライアントがサーバーをローカルプロセスとして起動 |
| ツール1 | `search_web(query, max_results=5, read=3)` → URLとページ本文を含む番号付きソース |
| ツール2 | `read_urls(urls)` → 既知の1〜20ページの本文抽出 |
| 名前 | `web_search`や`web_fetch`ではありません: Claude CodeとOpenClawには既に同名のツールが同梱されています |
| キー | サーバーの環境変数で`LLMWEBSEARCH_API_KEY`から読み取り |
| 課金 | 1クレジットで検索1回分です。最大20件のランク付けされた結果を取得でき、上位3ページは本文抽出されてMarkdownで返されます。4〜10ページを読む場合は2クレジットです。エラーで終わった呼び出しは無料です. URLをすでに持っているページを読む場合は、コンテンツ付きで返される3ページごとの開始グループにつき1クレジットで、1回の呼び出しにつき最大20 URLです。拒否されたURLや失敗したURLはカウントされません |

## ツールの名前がsearch_webとread_urlsなのはなぜですか？

同じ名前のツールが2つあると、クライアントとモデルが混乱するからです。Claude CodeとOpenClawは、それぞれ`web_search`と`web_fetch`という名前の組み込みツールを備えています。明確な説明を伴う別々の名前により、モデルは意図的に当社のツールを選べ、ログでも呼び出しを区別できます。

どちらのツールも生のJSONではなくテキストを返します。各ソースは番号、タイトル、URLで始まるため、モデルは`[1]`や`[2]`を引用でき、読者はページを確認できます。

*llmwebsearch_mcp.py*

```python
import os

import httpx
from mcp.server.fastmcp import FastMCP

BASE = "https://llmwebsearch.com/api/v1"
HEADERS = {"Authorization": "Bearer " + os.environ["LLMWEBSEARCH_API_KEY"]}
mcp = FastMCP("llmwebsearch")


def _call(path: str, body: dict) -> dict:
    resp = httpx.post(BASE + path, json=body, headers=HEADERS, timeout=90)
    data = resp.json()
    if resp.status_code != 200:
        err = data.get("error", {})
        raise RuntimeError(err.get("code", str(resp.status_code)) + ": " + err.get("message", ""))
    return data


def _page(n: int, item: dict) -> str:
    head = f"[{n}] {item.get('title') or item['url']}\n{item['url']}\n"
    if item.get("content_status") == "ok":
        return head + item["content"]
    return head + "(not read: " + item.get("content_status", "unknown") + ") " + item.get("snippet", "")


@mcp.tool()
def search_web(query: str, max_results: int = 5, read: int = 3) -> str:
    """Search the live web and return numbered sources; the first `read` pages include their text.

    Use it for current facts, documentation and news. Cite sources by their number.
    """
    body = {"q": query, "max_results": max(1, min(max_results, 20)), "read": max(0, min(read, 10)), "max_chars": 5000}
    data = _call("/search", body)
    return "\n\n".join(_page(i, r) for i, r in enumerate(data["results"], start=1))


@mcp.tool()
def read_urls(urls: list[str]) -> str:
    """Read 1 to 20 public web pages whose URLs you already have and return their main text."""
    data = _call("/extract", {"urls": urls[:20], "max_chars": 12000})
    return "\n\n".join(_page(i, r) for i, r in enumerate(data["results"], start=1))


if __name__ == "__main__":
    mcp.run()

```

## サーバーをインストールしてテストするにはどうすればよいですか？

仮想環境を作成し、`mcp`と`httpx`をインストールして、上記のファイルを保存してください。`mcp`はModel Context Protocolの公式Python SDKです。その`FastMCP`クラスは型付きのPython関数をツールに変換し、各docstringをツールの説明として使用します。

APIキーを設定した状態で、ターミナルからファイルを一度起動してください。その後は標準入力でクライアントを静かに待ち受けます。これは正常に動作している証拠で、Ctrl+Cで停止できます。APIからのエラーはコード付きのツールエラーとして送出されるため、モデルは`rate_limited`や`insufficient_credits`を平易な言葉で受け取ります。

*インストールと初回起動*

```bash
python -m venv .venv
. .venv/bin/activate
pip install "mcp[cli]" httpx
LLMWEBSEARCH_API_KEY="your-key" python llmwebsearch_mcp.py
```

## Claude Codeに追加するにはどうすればよいですか？

`claude mcp add`を使用してください。Claude Codeのドキュメントには`claude mcp add [options] <name> -- <command> [args...]`という形式が示されています: まず自身のオプション、次にダブルダッシュ、そしてサーバーを起動するコマンドです。環境変数は`--env KEY=value`に記述し、`--env`とサーバー名の間には、`--transport stdio`など少なくとも1つの他のオプションを置く必要があります。

`--scope user`を追加すると、すべてのプロジェクトでサーバーを利用できます。デフォルトのスコープである`local`は現在のプロジェクトのみを対象とします。仮想環境のPythonとサーバーファイルには絶対パスを使用してください。

*Claude Codeにサーバーを登録する*

```bash
claude mcp add --env LLMWEBSEARCH_API_KEY=your-key --transport stdio --scope user llmwebsearch \
  -- /home/you/llmwebsearch/.venv/bin/python /home/you/llmwebsearch/llmwebsearch_mcp.py
```

## Claude Desktopや他のクライアントに追加するにはどうすればいいですか？

Claude Desktopは`claude_desktop_config.json`の`mcpServers`からサーバーを読み込みます。サーバーに名前、コマンド、その引数、そしてキーを保持する`env`オブジェクトを設定してからアプリを再起動すると、`search_web`と`read_urls`がツール一覧に表示されます。

Cursorなど他のMCPクライアントも、それぞれのMCP設定で同じ3つ（コマンド、その引数、環境変数）を求めます。キーがツールの引数や会話の中に現れることはありません。

*claude_desktop_config.json*

```json
{
  "mcpServers": {
    "llmwebsearch": {
      "command": "/home/you/llmwebsearch/.venv/bin/python",
      "args": ["/home/you/llmwebsearch/llmwebsearch_mcp.py"],
      "env": { "LLMWEBSEARCH_API_KEY": "your-key" }
    }
  }
}
```

## 検索を安く短く保つにはどうすればいいですか？

指示の中でモデルに検索の仕方を伝えてください。1つの質問につき検索は1〜2回、情報源の内容が食い違う場合にのみさらに読み進めるようにします。サーバーはすでに各ページを`search_web`では5,000文字、`read_urls`では12,000文字に制限しています。小規模なモデルではこの数値を下げてください。

`read`を3以下にした`search_web`呼び出しは1回につき1クレジットです。1日に40回検索するアシスタントは月に約1,200クレジットを使うため、5,000検索（$9.25）で約4か月持ちます。検索クレジットに有効期限はありません。今月使わなかった分は来年も残ります。

## ページを読み取れないとき、モデルには何が見えますか？

情報源は番号、タイトル、URLとともに表示され、その後に括弧書きの理由と検索スニペットが続きます。当社のリーダーはrobots.txtを尊重します。LLMWebSearchとして名乗り、サイトが自身またはすべてのロボット向けに定めたルールに従い、読み取りを許可されていないページのコンテンツは除外します。サイトが当社のリーダーを拒否した場合、結果はコンテンツなしで、サイトのステータスとともに返されます。当社がCAPTCHAを解いたり、アカウントにサインインしたり、ブロックやペイウォールを回避したりすることは一切ありません。モデルはその後、他の情報源に頼るか、その1ページは利用できなかったと述べることができます。

## MCPサーバー：よくある質問

### LLMWebSearchの公式MCPパッケージやホストされたエンドポイントはありますか？

ありません。このページのファイルがその連携機能です。約50行で、読んで変更できます。お使いのマシン上で動作し、キーは当社のAPIにのみ送信されます。

### Claude Codeの組み込みWeb検索をオフにするべきですか？

その必要はありません。両方を有効にしておけます。それぞれの説明からモデルが各機能の役割を判断します。結果にページ本文を含めたいとき、検索1回あたりの固定価格が欲しいとき、検索ログを一か所にまとめたいときは、当社のものを使用してください。

### OpenClawで使えますか？

はい、`openclaw mcp add`で登録するMCPサーバーとして使えます。[OpenClawページ](https://llmwebsearch.com/ja/docs/openclaw/)にコマンドが記載され、OpenClawの組み込み検索プロバイダーと並べて使う方法が説明されています。

### サーバーは検索履歴を保持しますか？

いいえ。呼び出しの間に何も保持しません。当社側では、当社はあなたの検索クエリやAPIが返す内容でモデルを学習させることはなく、結果の保存を禁じる独自のルールも設けていません。ただし、あなたが読むページのサイトの権利は引き続き適用されます。

## 出典

1. [MCP 経由で Claude Code をツールに接続する](https://code.claude.com/docs/en/mcp) — Claude Code docs (read 2026-10-22)

---

LLMWebSearch: LLMWebSearchは、AIエージェント向けのWeb検索APIです。ランキング済みの検索結果を、上位ページの本文をMarkdownに変換した内容とともに返し、暗号資産で支払えます。本人確認書類のアップロードは不要です。プリペイドのクレジットは$1.20/1K検索から購入でき、有効期限はありません。KYC不要 — 身分証も自撮りも書類も不要。暗号資産で支払い。
