# Claude、Cursor、その他のMCPクライアント向けのWebページリーダーMCPサーバー

> Claude Desktop、Cursor、その他のMCPクライアント向けのWebページリーダーMCPサーバー。クリーンなMarkdownを返す40行のPython read_urlツールです。KYC不要、暗号資産で支払い。

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

任意のMCPクライアントに、リンクをクリーンなMarkdownに変換する`read_url`ツールを追加できます。サーバーはお手持ちのマシンで実行する短いPythonファイル1つで、APIキーはその環境変数に保持されます。

**概要 — MCPでClaude DesktopやCursorにWebページリーダーを追加するには？**

**WebReaderAPI**を呼び出す`read_url`ツールを公開する小さなMCPサーバーを実行し、クライアントのMCP設定で`env`にキーを設定して登録します。これでモデルは任意の公開ページをクリーンなMarkdownとして読めるようになります。ページ読み取り1回につき1クレジット、ブラウザ使用時は2クレジットで、2026年10月時点では$0.07/1Kページから。KYC不要、暗号資産で支払い。

## MCPサーバーの概要

| 項目 | 値 |
| --- | --- |
| 言語 | Python 3.10+、`mcp`および`httpx`パッケージを使用 |
| トランスポート | stdio：クライアントがサーバーをローカルプロセスとして起動 |
| ツール | `read_url(url, max_chars)` → タイトル、ソースURL、続いてページのMarkdown |
| web_fetchを使わない理由 | Claude CodeとOpenClawには、すでにその名前の組み込みツールが搭載されています |
| キー | サーバーの環境変数`WEBREADER_API_KEY`から読み取り |
| 課金 | 1クレジット = ブラウザなしでページを1回読み取り。ページのJavaScriptレンダリングにブラウザが必要な場合は2クレジット。失敗したリクエスト、またはサイトのrobots.txtが拒否したリクエストは課金されません |

## read_urlツールを使い、web_fetchを使わないのはなぜ？

同じ名前のツールが2つあると、クライアントとモデルの両方が混乱するからです。Claude CodeとOpenClawには、すでに`web_fetch`という名前のツールが含まれています。別の名前`read_url`と明確な説明があれば、ページの本文（JavaScriptページやPDFを含む）が必要なときにモデルがこちらを選べます。

このツールはJSONではなくテキストを返します。モデルはネストされたフィールドよりも短いヘッダーとMarkdownをうまく扱え、ヘッダーにソースURLが残るため回答で引用できます。

*webreader_mcp.py*

```python
import os

import httpx
from mcp.server.fastmcp import FastMCP

API = "https://webreaderapi.com/api/v1/read"
KEY = os.environ["WEBREADER_API_KEY"]
mcp = FastMCP("webreaderapi")


@mcp.tool()
def read_url(url: str, max_chars: int = 20000) -> str:
    """Read a public web page and return its main content as Markdown.

    Use it when the user gives a link or when a page must be read to answer.
    max_chars caps the length of the returned text (1,000 to 500,000).
    """
    params = {"url": url, "max_chars": max(1000, min(int(max_chars), 500000))}
    try:
        resp = httpx.get(API, params=params, headers={"Authorization": "Bearer " + KEY}, timeout=75)
    except httpx.HTTPError as exc:
        return "Network error while reading the page: " + str(exc)
    body = resp.json()
    if resp.status_code != 200:
        err = body.get("error", {})
        return "Could not read the page: " + err.get("code", str(resp.status_code)) + ". " + err.get("message", "")
    title = body.get("title") or url
    return "# " + title + "\nSource: " + body.get("final_url", url) + "\n\n" + body.get("markdown", "")


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

```

## サーバーのインストールとテスト方法は？

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

クライアントに組み込む前に、キーを設定した状態でターミナルからファイルを一度実行してください。stdinでクライアントを静かに待機していれば、正しく起動しています。Ctrl+Cで停止できます。

*インストール*

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

## Claude Desktopに登録するには？

Claude Desktopの開発者設定を開き、`claude_desktop_config.json`を編集して、`mcpServers`の下にエントリを追加します。仮想環境のPythonとサーバーファイルの絶対パスを使用してください。キーは`env`に入れると、ツールの引数や会話に表示されることはありません。Claude Desktopを再起動すると、`read_url`がツール一覧に表示されます。

Cursorは独自のMCP設定ファイルから同じ`mcpServers`構造を読み取り、Claude Codeは`claude mcp add`コマンドで同じコマンドを登録できます。OpenClawについては[OpenClawページ](https://webreaderapi.com/ja/docs/openclaw/)をご覧ください。

*claude_desktop_config.json*

```json
{
  "mcpServers": {
    "webreaderapi": {
      "command": "/home/you/webreader/.venv/bin/python",
      "args": ["/home/you/webreader/webreader_mcp.py"],
      "env": { "WEBREADER_API_KEY": "your-key" }
    }
  }
}
```

## ページをモデルのコンテキスト内に収めるには？

`max_chars`を下げてください。デフォルトの20,000文字はほとんどの記事に十分で、長いページがコンテキストを埋めるのを防ぎます。1つの回答で複数ページを読むモデルには、1ページあたり8,000〜12,000文字が適しています。

モデルには、目にするすべてのリンクではなく、必要なページだけを読むよう指示してください。プロジェクトの指示に「1つの質問につき最大3ページまで読む」といった短い一文を入れておくと、コストとコンテキストの両方を抑えられます。

## サイトが読み取りを拒否した場合はどうなりますか？

ツールは`blocked_by_robots`や`target_refused`などのエラーコードを含む短いメッセージを返し、課金は発生しません。当社はrobots.txtを尊重します。クローラーはWebReaderAPIとして名乗り、自身向けまたはすべてのロボット向けに書かれたルールに従い、サイトが禁止したページは読み取りません。拒否されたページは課金されません。サイトが当社のリクエストを拒否した場合、その回答をそのまま返します。CAPTCHAを解いたり、アカウントにログインしたり、ブロックやペイウォールを回避しようとしたりすることは決してありません。モデルはその後、そのページは自動リーダーには利用できないと伝え、別のソースを使えます。

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

### WebReaderAPIの公式MCPパッケージはありますか？

いいえ。このページのファイルが統合そのものです。読んで、変更して、自分で実行できる40行です。当社からインストールするものはなく、キーは当社APIへの呼び出し以外ではお客様のマシンから出ることはありません。

### このサーバーでモデルはWeb検索できますか？

いいえ。`read_url`は、お客様またはモデルがすでにアドレスを持っているページを読み取ります。クライアントが提供する任意の検索ツールと組み合わせてください。モデルが検索し、その後重要なページを読み取ります。

### これを使ってアシスタントを運用するコストは？

ページ読み取り1回につき1クレジット、ブラウザが必要な場合は2クレジットです。1日に50ページを読むアシスタントは月に約1,500クレジットを使用し、10,000ページ（$3.75）で約6か月分をカバーできます。

### サーバーはオフラインで動作しますか？

いいえ。ページごとに`https://webreaderapi.com/api/v1/read`を呼び出すため、インターネット接続と有効なキーが必要です。

---

WebReaderAPI: WebReaderAPIはAIエージェント向けのWebリーダーAPIで、あらゆる公開WebページをクリーンなMarkdownに変換します。暗号資産で支払い、本人確認書類のアップロードは不要です。$0.07/1Kページから購入できるプリペイドクレジットに有効期限はなく、robots.txtを尊重します。KYC不要 — 身分証もセルフィーも書類も不要。暗号資産で支払い。
