# MCP server อ่านหน้าเว็บสำหรับ Claude, Cursor และ MCP client อื่นๆ

> MCP server อ่านหน้าเว็บสำหรับ Claude Desktop, Cursor และ MCP client อื่นๆ: เครื่องมือ read_url ใน Python 40 บรรทัดที่คืนค่าเป็น Markdown สะอาด จ่ายด้วยคริปโต

- URL: https://webreaderapi.com/th/docs/mcp/
- อัปเดตล่าสุด: 2026-10-22
- ผู้เผยแพร่: WebReaderAPI (https://webreaderapi.com)

มอบเครื่องมือ `read_url` ให้ MCP client ใดก็ได้ที่แปลงลิงก์เป็น Markdown สะอาด เซิร์ฟเวอร์เป็นไฟล์ Python สั้นๆ ไฟล์เดียวที่คุณรันบนเครื่องของคุณเอง API key ของคุณอยู่ใน environment ของมัน

**คำตอบสั้น — จะเพิ่มตัวอ่านหน้าเว็บให้ Claude Desktop หรือ Cursor ด้วย MCP ได้อย่างไร?**

รัน MCP server เล็กๆ ที่เปิดเครื่องมือ `read_url` ซึ่งเรียก **WebReaderAPI** จากนั้นลงทะเบียนใน MCP settings ของ client โดยใส่ key ของคุณใน `env` โมเดลจะอ่านหน้าเว็บสาธารณะใดก็ได้เป็น Markdown สะอาด การอ่านแต่ละหน้าคิด 1 เครดิต หรือ 2 เครดิตเมื่อใช้เบราว์เซอร์ เริ่มที่ US$0.07/1K หน้า ณ ตุลาคม 2026 ไม่ต้อง KYC จ่ายด้วยคริปโต

## MCP server โดยสรุป

| คุณสมบัติ | ค่า |
| --- | --- |
| ภาษา | Python 3.10+ พร้อมแพ็กเกจ `mcp` และ `httpx` |
| Transport | stdio: client เริ่มเซิร์ฟเวอร์เป็นโปรเซสในเครื่อง |
| เครื่องมือ | `read_url(url, max_chars)` → title, source URL แล้วตามด้วย Markdown ของหน้าเว็บ |
| ทำไมไม่ใช้ web_fetch | Claude Code และ OpenClaw มีเครื่องมือในชื่อนั้นอยู่แล้ว |
| Key | อ่านจาก `WEBREADER_API_KEY` ใน environment ของเซิร์ฟเวอร์ |
| การเรียกเก็บเงิน | 1 เครดิต = อ่าน 1 หน้าโดยไม่ใช้เบราว์เซอร์; 2 เครดิตเมื่อหน้านั้นต้องใช้เบราว์เซอร์เพื่อเรนเดอร์ JavaScript คำขอที่ล้มเหลว หรือที่ robots.txt ของเว็บไซต์ปฏิเสธ จะไม่ถูกคิดเครดิต |

## ทำไมใช้เครื่องมือ read_url ไม่ใช่ web_fetch?

เพราะเครื่องมือสองตัวที่ชื่อเดียวกันจะทำให้ทั้ง client และโมเดลสับสน Claude Code และ OpenClaw มีเครื่องมือชื่อ `web_fetch` อยู่แล้ว ชื่อที่แตกต่างกันคือ `read_url` พร้อมคำอธิบายที่ชัดเจน ช่วยให้โมเดลเลือกเครื่องมือของเราเมื่อต้องการเนื้อหาหลักของหน้าเว็บ รวมถึงหน้าเว็บที่ใช้ JavaScript และ PDF

เครื่องมือคืนค่าเป็น text ไม่ใช่ JSON โมเดลจัดการ header สั้นๆ กับ Markdown ได้ดีกว่าฟิลด์แบบซ้อนกัน และ header ยังคงแสดง source 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()

```

## จะติดตั้งและทดสอบเซิร์ฟเวอร์ได้อย่างไร?

สร้าง virtual environment ติดตั้ง `mcp` และ `httpx` แล้วบันทึกไฟล์ด้านบน แพ็กเกจ `mcp` คือ Python SDK อย่างเป็นทางการของ Model Context Protocol ส่วน `FastMCP` แปลงฟังก์ชัน Python ที่มี type เป็นเครื่องมือ โดยใช้ docstring เป็นคำอธิบาย

ก่อนเชื่อมต่อกับ client ให้รันไฟล์หนึ่งครั้งจาก terminal โดยตั้งค่า key ไว้ มันจะรอ client อยู่เงียบๆ ทาง 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 ได้อย่างไร?

เปิด developer settings ของ Claude Desktop แก้ไข `claude_desktop_config.json` แล้วเพิ่มรายการใต้ `mcpServers` ใช้ absolute path: Python ของ virtual environment และไฟล์เซิร์ฟเวอร์ ใส่ key ใน `env` เพื่อไม่ให้ปรากฏใน argument ของเครื่องมือหรือในบทสนทนา รีสตาร์ท Claude Desktop แล้ว `read_url` จะปรากฏในรายการเครื่องมือ

Cursor อ่านโครงสร้าง `mcpServers` เดียวกันจากไฟล์ MCP configuration ของตัวเอง และ Claude Code สามารถลงทะเบียนคำสั่งเดียวกันได้ด้วยคำสั่ง `claude mcp add` สำหรับ OpenClaw ดูที่ [หน้า OpenClaw](https://webreaderapi.com/th/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" }
    }
  }
}
```

## จะทำให้หน้าเว็บอยู่ใน context ของโมเดลได้อย่างไร?

ลด `max_chars` ลง ค่าเริ่มต้นที่ 20,000 ตัวอักษรเพียงพอสำหรับบทความส่วนใหญ่และป้องกันไม่ให้หน้าเว็บยาวๆ เต็ม context โมเดลที่อ่านหลายหน้าในคำตอบเดียวจะทำงานได้ดีขึ้นที่ 8,000 ถึง 12,000 ต่อหน้า

ขอให้โมเดลอ่านเฉพาะหน้าที่จำเป็น ไม่ใช่ทุกลิงก์ที่เห็น ประโยคสั้นๆ ในคำแนะนำโปรเจกต์ของคุณ เช่น "อ่านไม่เกินสามหน้าต่อคำถาม" ช่วยควบคุมทั้งค่าใช้จ่ายและ context

## เกิดอะไรขึ้นเมื่อเว็บไซต์ปฏิเสธการอ่าน?

เครื่องมือจะคืนข้อความสั้นๆ พร้อมรหัสข้อผิดพลาด เช่น `blocked_by_robots` หรือ `target_refused` และไม่มีการเรียกเก็บเงิน เราเคารพ robots.txt: crawler ของเราระบุตัวเองว่า WebReaderAPI ทำตามกฎที่เขียนไว้สำหรับมันหรือสำหรับ robot ทั้งหมด และจะไม่อ่านหน้าที่เว็บไซต์ไม่อนุญาต หน้าที่ถูกปฏิเสธจะไม่ถูกคิดเครดิต หากเว็บไซต์ปฏิเสธคำขอของเรา เราจะส่งคำตอบของเว็บนั้นกลับไป: เราไม่แก้ CAPTCHA ไม่เข้าสู่ระบบบัญชี และไม่พยายามหลบเลี่ยงการบล็อกหรือ paywall โมเดลจึงสามารถแจ้งว่าหน้านั้นไม่พร้อมให้โปรแกรมอ่านอัตโนมัติเข้าถึง และใช้แหล่งอื่นแทน

## MCP server: คำถามที่พบบ่อย

### มีแพ็กเกจ MCP อย่างเป็นทางการของ WebReaderAPI หรือไม่?

ไม่มี ไฟล์ในหน้านี้คือการเชื่อมต่อ: 40 บรรทัดที่คุณอ่าน แก้ไข และรันเองได้ ไม่มีอะไรต้องติดตั้งจากเรา และ key ของคุณจะไม่ออกจากเครื่องของคุณ ยกเว้นในการเรียก API ของเรา

### โมเดลค้นหาเว็บด้วยเซิร์ฟเวอร์นี้ได้ไหม?

ไม่ได้ `read_url` อ่านหน้าที่คุณหรือโมเดลมีที่อยู่อยู่แล้ว จับคู่กับเครื่องมือค้นหาใดก็ได้ที่ client ของคุณมี โมเดลค้นหา แล้วอ่านหน้าที่สำคัญ

### ค่าใช้จ่ายในการรัน assistant ด้วยเซิร์ฟเวอร์นี้เท่าไร?

1 เครดิตต่อการอ่านหนึ่งหน้า หรือ 2 เมื่อต้องใช้เบราว์เซอร์ assistant ที่อ่าน 50 หน้าต่อวันใช้ประมาณ 1,500 เครดิตต่อเดือน และ 10,000 หน้า (US$3.75) ครอบคลุมได้ประมาณหกเดือน

### เซิร์ฟเวอร์ทำงานแบบ offline ได้ไหม?

ไม่ได้ มันเรียก `https://webreaderapi.com/api/v1/read` ทุกหน้า จึงต้องมีการเชื่อมต่ออินเทอร์เน็ตและ key ที่ถูกต้อง

---

WebReaderAPI: WebReaderAPI คือ API อ่านหน้าเว็บสำหรับ AI agent ที่แปลงหน้าเว็บสาธารณะใด ๆ เป็น Markdown สะอาด จ่ายด้วยคริปโตโดยไม่ต้องอัปโหลดบัตรประชาชน เครดิตแบบเติมเงินเริ่มต้นที่ US$0.07/1K หน้า ไม่มีวันหมดอายุ และเคารพ robots.txt ไม่ต้อง KYC — ไม่ต้องใช้บัตรประชาชน ไม่ต้องเซลฟี่ ไม่ต้องเอกสาร จ่ายด้วยคริปโต
