คำตอบสั้น
ฉันจะเพิ่มการค้นหา 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: 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 ของคุณ
{
"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 แสดงคำสั่งสำหรับ OpenClaw
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 ไม่ต้องใช้บัตรประชาชน ไม่ต้องเซลฟี่ และไม่ต้องใช้เอกสาร เข้าสู่ระบบด้วยหมายเลขบัญชี; อีเมลไม่บังคับ