# Google search MCP server สำหรับ Claude Desktop, Cursor และ MCP client อื่นๆ

> เพิ่มการค้นหา Google ให้ Claude Desktop, Claude Code, Cursor และ MCP client อื่นๆ: MCP server Python 40 บรรทัดบน SerpCrypto SERP API ไม่ต้อง KYC จ่ายด้วยคริปโต

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

มอบเครื่องมือ `google_search` ให้ MCP client ใดก็ได้ที่คืนผลการค้นหา Google แบบเรียลไทม์ เซิร์ฟเวอร์คือไฟล์ Python หนึ่งไฟล์ที่คุณรันเอง มันเรียก SerpCrypto API แล้วคืนข้อความกระชับที่โมเดลอ่านได้

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

บันทึกเซิร์ฟเวอร์ Python 40 บรรทัดด้านล่าง ติดตั้ง `mcp[cli]` และ `httpx` แล้วลงทะเบียนใน MCP settings ของ client ด้วย **SerpCrypto** API key ใน `env` จากนั้น client จะได้เครื่องมือ `google_search` ที่คืนผลการค้นหา Google แบบเรียลไทม์ การเรียกเครื่องมือแต่ละครั้งคือการค้นหาหนึ่งครั้งที่ 1 เครดิต จาก US$0.30/1K การค้นหา เครดิตจ่ายด้วยคริปโตโดยไม่ต้อง KYC

## MCP server โดยสรุป

| คุณลักษณะ | ค่า |
| --- | --- |
| ภาษา | Python 3.10+ พร้อม `mcp` SDK อย่างเป็นทางการ (FastMCP) และ `httpx` |
| Transport | stdio: client เริ่มสคริปต์และสื่อสารกับมัน |
| เครื่องมือ | `google_search(query, gl, hl, num_results)` |
| เอาต์พุต | ข้อความ AI Overview เมื่อแสดง แล้วตามด้วยชื่อเรื่อง ลิงก์ และ snippet ต่อผลลัพธ์ |
| คีย์ | Environment variable `SERPCRYPTO_API_KEY` ตั้งใน client config |
| ค่าใช้จ่าย | 1 เครดิตต่อการเรียกเครื่องมือที่สำเร็จ ข้อผิดพลาดไม่มีค่าใช้จ่าย |

## เซิร์ฟเวอร์ทำอะไร?

มันเปิดเผยเครื่องมือหนึ่งตัว คือ `google_search` ผ่าน Model Context Protocol เมื่อโมเดลเรียกใช้ เซิร์ฟเวอร์จะส่งคำขอหนึ่งไปยัง `https://serpcrypto.com/api/v1/search` แล้วแปลง JSON เป็นข้อความสั้นๆ: AI Overview หาก Google แสดง และผลลัพธ์อันดับต้นพร้อมชื่อเรื่อง ลิงก์ และ snippet

ข้อความสั้นสำคัญ หน้าผลลัพธ์เต็มในรูปแบบ JSON นั้นยาว และทุกอักขระที่ส่งกลับไปยังโมเดลใช้ context เซิร์ฟเวอร์เก็บได้สูงสุดสิบผลลัพธ์และตัด overview ที่ 800 อักขระ เปลี่ยนขีดจำกัดเหล่านั้นในโค้ดหาก client ของคุณมีที่ว่างมากกว่า

นี่คือโค้ด copy-paste ไม่ใช่แพ็กเกจที่เผยแพร่: ไม่มีแพ็กเกจ 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
```

## ทำไมเครื่องมือชื่อ google_search ไม่ใช่ web_search?

client หลายตัวมีเครื่องมือชื่อ `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 มองเห็น ให้ใช้พาธแบบเต็มไปยัง interpreter เช่น ตัวที่อยู่ใน virtual environment ของคุณ

*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 ให้ลงทะเบียนจาก terminal ด้วย `claude mcp add`; `-e` ตั้งค่าตัวแปรสภาพแวดล้อม และทุกอย่างหลัง `--` คือคำสั่งที่จะรัน ใน Cursor ให้วางบล็อก `mcpServers` แบบเดียวกับด้านบนใน `~/.cursor/mcp.json` สำหรับทุกโปรเจกต์ หรือใน `.cursor/mcp.json` ภายในโปรเจกต์เดียว

MCP client อื่นๆ ที่เริ่ม stdio server รับสามอย่างเหมือนกัน: คำสั่ง อาร์กิวเมนต์ และตัวแปรสภาพแวดล้อม [หน้า OpenClaw](https://serpcrypto.com/th/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 key ปลอดภัย?

เก็บไว้ในบล็อก `env` ของการตั้งค่า client หรือใน shell profile ของคุณ ห้ามใส่ใน `serpcrypto_mcp.py` เด็ดขาด วิธีนี้ทำให้แชร์หรือ commit สคริปต์ได้โดยไม่มี key หาก key รั่ว ให้เพิกถอนในแดชบอร์ดแล้วสร้างใหม่: API key ที่คุณสร้างและเพิกถอนได้ทุกเมื่อจากแดชบอร์ดของคุณ

ให้ MCP server มี key ของตัวเอง การใช้งานต่อ key จะแสดงจำนวนการค้นหาที่ผู้ช่วยทำ แยกจากสคริปต์ของคุณ

## ผู้ช่วยจะใช้กี่เครดิต?

หนึ่งเครดิตต่อการเรียก tool ที่สำเร็จ แชทที่โมเดลค้นหาสามครั้งใช้สามเครดิต บนแพ็ก 25,000 การค้นหา ที่ US$18.75 นั่นคือคำถามที่มีผู้ช่วยช่วยเหลือหลายพันคำถาม และ เครดิตการค้นหาแบบเติมเงินไม่มีวันหมดอายุ: คำค้นหาที่ไม่ได้ใช้จะคงอยู่ในบัญชีของคุณจนกว่าคุณจะใช้

หากต้องการจำกัดการใช้งาน ให้ลด `num_results` (ราคาไม่เปลี่ยน แต่คำตอบสั้นลง) และบอกโมเดลในคำสั่งของคุณให้ค้นหาเฉพาะเมื่อต้องการข้อมูลใหม่

## คำถามเกี่ยวกับ MCP

### server ใช้กับ remote MCP client ได้ไหม?

เวอร์ชันนี้ใช้ stdio ดังนั้น client ต้องรันบนเครื่องเดียวกัน FastMCP ให้บริการผ่าน HTTP ได้เช่นกัน หากคุณเปิดให้เข้าถึงผ่านเครือข่าย ให้ใส่ระบบยืนยันตัวตนไว้ด้านหน้า เพราะใครก็ตามที่เข้าถึงได้จะใช้เครดิตของคุณ

### tool ค้นหา Bing หรือ Google News แทนได้ไหม?

ได้ เพิ่มอาร์กิวเมนต์ `engine` หรือ tool ที่สองที่ส่ง `engine=bing` หรือ `engine=google_news` ใน `params` ทุกเอนจินมีค่าใช้จ่ายเท่ากัน 1 เครดิตต่อการค้นหา

### ทำไม client แจ้งว่า tool ล้มเหลว?

รันสคริปต์ด้วยตัวเองด้วย Python เดียวกันเพื่อดูข้อผิดพลาด สาเหตุที่พบบ่อยคือแพ็กเกจ `mcp` หรือ `httpx` หายไป พาธใน config ผิด หรือ `SERPCRYPTO_API_KEY` ว่าง ซึ่งทำให้ API ตอบ `401`

### ต้องใช้บัตรเครดิตหรือ KYC สำหรับ API key ไหม?

ไม่ต้อง SerpCrypto ขายเครดิตแบบเติมเงิน จ่ายด้วย BTC, USDT, USDC, ETH, SOL, LTC ไม่ต้องใช้บัตรประชาชน ไม่ต้องเซลฟี่ และไม่ต้องใช้เอกสาร เข้าสู่ระบบด้วยหมายเลขบัญชี; อีเมลไม่บังคับ

---

SerpCrypto: SerpCrypto คือ SERP API สำหรับนักพัฒนาและ AI agent ที่ส่งคืนผลการค้นหา Google และ Bing เป็น JSON จ่ายด้วยคริปโตโดยไม่ต้องอัปโหลดบัตรประชาชน เครดิตการค้นหาแบบเติมเงินจาก US$0.30/1K การค้นหา ไม่มีวันหมดอายุ ไม่ต้อง KYC — ไม่ต้องใช้บัตรประชาชน ไม่ต้องเซลฟี่ ไม่ต้องใช้เอกสาร จ่ายด้วยคริปโต
