SerpApi MCP

आधिकारिक

Google और अन्य सर्च इंजन परिणामों के लिए SerpApi MCP सर्वर

SerpApi MCP के साथ आप क्या कर सकते हैं?

  • बहु-इंजन खोज — इंजन और स्थान चुनकर, एक search कॉल से Google, Bing, YouTube, eBay और अन्य इंजनों पर खोजें।
  • Markdown या संक्षिप्त आउटपुट — बड़े या नेस्टेड जवाबों में टोकन का उपयोग कम करने के लिए परिणाम Markdown या संक्षिप्त JSON के रूप में माँगें।
  • पेज निष्कर्षण — किसी एक पेज को पढ़ने, किसी साइट के URL की सूची बनाने या पेजों की सीमा तय करके कई पेज क्रॉल करने के लिए extract का उपयोग करें।
  • इंटरैक्टिव परिणाम दृश्य — समर्थित होस्ट में परिणामों को क्रमबद्ध की जा सकने वाली तालिका या डैशबोर्ड के रूप में दिखाने के लिए search_table या search_dashboard चुनें।

दस्तावेज़

SerpApi MCP Server

एक Model Context Protocol (MCP) सर्वर कार्यान्वयन, जो व्यापक खोज इंजन परिणामों और डेटा निष्कर्षण के लिए SerpApi के साथ एकीकृत होता है।

Python 3.13+ MIT License Install in VS Code Install in Cursor

सुविधाएँ

  • बहु-इंजन खोज: Google, Bing, Yahoo, DuckDuckGo, YouTube, eBay और अन्य
  • इंजन संसाधन: MCP संसाधनों के माध्यम से प्रत्येक इंजन के पैरामीटर स्कीमा उपलब्ध हैं (Search Tool देखें)
  • रीयल-टाइम मौसम डेटा: खोज क्वेरी के माध्यम से स्थान-आधारित मौसम और पूर्वानुमान
  • शेयर बाज़ार डेटा: खोज एकीकरण के माध्यम से कंपनी की वित्तीय और बाज़ार संबंधी जानकारी
  • गतिशील परिणाम प्रसंस्करण: विभिन्न प्रकार के परिणामों का स्वचालित रूप से पता लगाता है और उन्हें फ़ॉर्मैट करता है
  • लचीले प्रतिक्रिया मोड: पूर्ण या संक्षिप्त JSON प्रतिक्रियाएँ
  • JSON प्रतिक्रियाएँ (डिफ़ॉल्ट): पूर्ण या संक्षिप्त मोड में संरचित JSON आउटपुट
  • Markdown प्रतिक्रियाएँ: टोकन उपयोग औसतन 50% और जटिल नेस्टेड JSON वाले API के लिए 90% से अधिक कम करें।
  • इंटरैक्टिव UI (MCP Apps): वैकल्पिक search_table और search_dashboard टूल, जो समर्थित होस्ट में परिणामों को इंटरैक्टिव UI के रूप में दिखाते हैं
  • Claude Desktop Extension: MCP Bundle (.mcpb) से एक-क्लिक स्थानीय इंस्टॉल; नीचे देखें

तुरंत शुरू करें

SerpApi MCP Server, होस्ट की गई सेवा के रूप में mcp.serpapi.com पर उपलब्ध है। इससे कनेक्ट करने के लिए आपको API key देनी होगी। अपनी API key SerpApi डैशबोर्ड पर पा सकते हैं।

होस्ट किए गए सर्वर का उपयोग करने के लिए Claude Desktop को कॉन्फ़िगर करें:

{
  "mcpServers": {
    "serpapi": {
      "type": "http",
      "url": "https://mcp.serpapi.com/YOUR_SERPAPI_API_KEY/mcp"
    }
  }
}

आप होस्ट किए गए सर्वर को इन MCP क्लाइंट में भी जोड़ सकते हैं:

OpenClaw

openclaw mcp add serpapi --url https://mcp.serpapi.com/YOUR_SERPAPI_API_KEY/mcp --transport streamable-http

Claude Code

claude mcp add --transport http serpapi https://mcp.serpapi.com/mcp --header "Authorization: Bearer YOUR_SERPAPI_API_KEY"

Hermes

hermes mcp add serpapi --url https://mcp.serpapi.com/YOUR_SERPAPI_API_KEY/mcp

Codex (आपके शेल में SERPAPI_API_KEY से key पढ़ता है)

codex mcp add serpapi --url https://mcp.serpapi.com/mcp --bearer-token-env-var SERPAPI_API_KEY

स्वयं होस्ट करना

git clone https://github.com/serpapi/serpapi-mcp.git
cd serpapi-mcp
uv sync && uv run src/server.py

Claude Desktop कॉन्फ़िगर करें:

{
  "mcpServers": {
    "serpapi": {
      "type": "http",
      "url": "http://localhost:8000/YOUR_SERPAPI_API_KEY/mcp"
    }
  }
}

अपनी API key प्राप्त करें: serpapi.com/manage-api-key

Claude Desktop Extension (MCP bundle)

स्थानीय रूप से एक-क्लिक इंस्टॉल करने के लिए, नवीनतम रिलीज़ से .mcpb bundle डाउनलोड करें और उसे Claude Desktop में खोलें (या Settings → Extensions पर छोड़ें)। इंस्टॉल के दौरान Claude Desktop आपसे SerpApi API key माँगता है, उसे संवेदनशील सेटिंग के रूप में सहेजता है और सर्वर को स्थानीय रूप से stdio के माध्यम से चलाता है। इंस्टॉल के समय यह uv के ज़रिए Python और निर्भरताएँ उपलब्ध कराता है। यही bundle macOS, Windows और Linux पर काम करता है।

यही stdio एंट्री पॉइंट किसी भी ऐसे स्थानीय MCP होस्ट के साथ काम करता है, जो सर्वर को सबप्रोसेस के रूप में लॉन्च करता है:

{
  "mcpServers": {
    "serpapi": {
      "command": "uv",
      "args": ["run", "--directory", "/path/to/serpapi-mcp", "--frozen", "--no-dev", "src/stdio.py"],
      "env": { "SERPAPI_API_KEY": "YOUR_SERPAPI_API_KEY" }
    }
  }
}

प्रमाणीकरण

दो तरीके समर्थित हैं:

  • हेडर-आधारित: Authorization: Bearer YOUR_API_KEY (अनुशंसित: key URL और लॉग में नहीं आती)
  • पाथ-आधारित: /YOUR_API_KEY/mcp, उन क्लाइंट के लिए जो हेडर सेट नहीं कर सकते

उदाहरण:

# Header-based
curl "https://mcp.serpapi.com/mcp" -H "Authorization: Bearer your_key" -d '...'

# Path-based
curl "https://mcp.serpapi.com/your_key/mcp" -d '...'

कनेक्ट करने, टूल सूचीबद्ध करने या संसाधन पढ़ने के लिए key की आवश्यकता नहीं है। search और App टूल के लिए key आवश्यक है; इसके बिना वे त्रुटि लौटाते हैं।

Search tool

MCP सर्वर में एक मुख्य खोज टूल है, जो सभी SerpApi इंजन और परिणाम प्रकारों का समर्थन करता है। सभी उपलब्ध पैरामीटर SerpApi API संदर्भ पर मिल सकते हैं। इंजन पैरामीटर स्कीमा MCP संसाधनों के रूप में भी उपलब्ध हैं: serpapi://engines (इंडेक्स) और serpapi://engines/<engine>। आर्ग्युमेंट पूरा करने का समर्थन करने वाले क्लाइंट serpapi://engines/{engine_name} के लिए इंजन नाम के सुझाव माँग सकते हैं। उदाहरण के लिए, उपसर्ग google_f से मेल खाने वाले इंजन पहचानकर्ता सुझाए जाते हैं। यह संसाधन URI पैरामीटर को पूरा करता है, मनमानी खोज क्वेरी को नहीं।

आप जो पैरामीटर दे सकते हैं, वे प्रत्येक API इंजन के लिए विशिष्ट होते हैं। कुछ नमूना पैरामीटर नीचे दिए गए हैं:

  • params.q (आवश्यक): खोज क्वेरी
  • params.engine: खोज इंजन (डिफ़ॉल्ट: "google_light")
  • params.location: भौगोलिक फ़िल्टर
  • params.output: प्रतिक्रिया फ़ॉर्मैट; JSON (डिफ़ॉल्ट) के लिए इसे छोड़ दें, या Markdown के लिए "md" सेट करें
  • mode: प्रतिक्रिया मोड; "compact" JSON से मेटाडेटा हटाता है, जबकि Markdown बिना बदलाव के लौटाया जाता है
  • ...अन्य पैरामीटर SerpApi API संदर्भ पर देखें

उदाहरण:

{"name": "search", "arguments": {"params": {"q": "coffee shops", "location": "Austin, TX"}}}
{"name": "search", "arguments": {"params": {"q": "weather in London"}}}
{"name": "search", "arguments": {"params": {"q": "AAPL stock"}}}
{"name": "search", "arguments": {"params": {"q": "news"}, "mode": "compact"}}
{"name": "search", "arguments": {"params": {"q": "detailed search"}, "mode": "complete"}}
{"name": "search", "arguments": {"params": {"q": "news", "output": "md"}}}
{"name": "search", "arguments": {"params": {"engine": "amazon", "k": "mechanical keyboards", "amazon_domain": "amazon.com", "output": "md"}}}
{"name": "search", "arguments": {"params": {"engine": "google_scholar", "q": "retrieval augmented generation"}}}
{"name": "search", "arguments": {"params": {"engine": "youtube", "search_query": "how to make espresso"}}}
{"name": "search", "arguments": {"params": {"engine": "apple_app_store", "term": "habit tracker"}}}
{"name": "search", "arguments": {"params": {"engine": "ebay", "_nkw": "vintage mechanical keyboard"}}}

समर्थित इंजन: Google, Bing, Yahoo, DuckDuckGo, YouTube, eBay और अन्य (देखें serpapi://engines)।

परिणाम प्रकार: उत्तर बॉक्स, ऑर्गेनिक परिणाम, समाचार, चित्र, शॉपिंग—इनका स्वचालित रूप से पता लगाया जाता है और इन्हें फ़ॉर्मैट किया जाता है।

खोज प्रतिक्रियाएँ मौजूदा MCP structuredContent.result स्ट्रिंग को बनाए रखती हैं और टेक्स्ट सामग्री में भी वही स्ट्रिंग शामिल करती हैं। JSON आउटपुट के लिए, result में सीरियलाइज़ किया गया JSON होता है; मौजूदा क्लाइंट इसे JSON.parse(response.structuredContent.result) से पार्स करना जारी रख सकते हैं। Markdown आउटपुट के लिए, इसमें अपरिवर्तित Markdown होता है। त्रुटियों और रद्दीकरणों में भी यही रैपर इस्तेमाल होता है। खोज निष्पादन विफल होने पर isError: true सेट होता है; FastMCP के उच्च-स्तरीय call_tool() का उपयोग करने वाले क्लाइंट को ToolError संभालना चाहिए, या परिणाम फ़्लैग देखने के लिए call_tool_mcp() का उपयोग करना चाहिए। MCP टूल परिणाम देखें।

search अनुपलब्ध पैरामीटर पहचानने के लिए इंजन कैटलॉग और इंजन-विशिष्ट नियमों का उपयोग करता है। MCP 2026-07-28 का समर्थन करने वाले क्लाइंट को कोई भी खोज चलने से पहले एक फ़ॉर्म मिलता है। स्वीकार किए गए उत्तरों की पुष्टि की जाती है; अस्वीकार करने या रद्द करने पर कोई खोज नहीं चलती। पुराने क्लाइंट और फ़ॉर्म के ज़रिए जानकारी माँगने की सुविधा न रखने वाले क्लाइंट को अनुपलब्ध पैरामीटर सूचीबद्ध करने वाली त्रुटि मिलती है, ताकि एजेंट बातचीत में पूछ सके। MCP इनपुट अनुरोध देखें।

  • Google Flights: प्रस्थान और आगमन पहचानकर्ता, प्रस्थान की तारीख और राउंड ट्रिप के लिए वापसी की तारीख। तारीखों और हवाई अड्डे के पहचानकर्ताओं की जाँच की जाती है। टोकन-आधारित खोजें, बहु-शहर यात्रा कार्यक्रम और selected_flights_json अपना मौजूदा व्यवहार बनाए रखते हैं।
  • Google Hotels: गंतव्य या होटल क्वेरी, चेक-इन की तारीख और चेक-आउट की तारीख। चेक-आउट, चेक-इन के बाद की तारीख होनी चाहिए। मेहमानों की संख्या और अन्य वैकल्पिक फ़िल्टर, कॉल करने वाले के दिए गए मान या API के डिफ़ॉल्ट मान बनाए रखते हैं।
  • Google Maps Directions: प्रारंभ और गंतव्य के पते, यदि अनुपलब्ध हों। पहले से दिए गए निर्देशांक या स्थान डेटा ID संबंधित एंडपॉइंट की आवश्यकता पूरी करते हैं।
  • कैटलॉग के अन्य इंजन अपने आवश्यक फ़ील्ड इस्तेमाल करते हैं, जैसे YouTube का search_query, Yelp का find_loc और Amazon का k। इंजन नियम ज्ञात डिफ़ॉल्ट और विकल्पों का ध्यान रखते हैं, जिनमें Amazon श्रेणी नोड, eBay श्रेणियाँ और Google Scholar उद्धरण खोजें शामिल हैं।

यदि किसी उत्तर से कोई दूसरी आवश्यकता सामने आती है, तो टूल एजेंट को नई कॉल में देने के लिए शेष फ़ील्ड सूचीबद्ध करता है। फ़ॉर्म स्ट्रिंग, संख्या, बूलियन और एकल-विकल्प फ़ील्ड का समर्थन करते हैं; असमर्थित जटिल फ़ील्ड के लिए अनुपलब्ध-पैरामीटर त्रुटि मिलती है। अज्ञात इंजन SerpApi को भेजे जाते हैं।

Extract tool

extract टूल वेब पेज पढ़ता है और उनकी सामग्री संरचित JSON या Markdown के रूप में लौटाता है। आप एक पेज निकाल सकते हैं, किसी वेबसाइट के URL खोज सकते हैं या कई पेज क्रॉल कर सकते हैं। सभी उपलब्ध पैरामीटर Extract API संदर्भ या serpapi://engines/extract संसाधन में देखें।

कुछ पैरामीटर जिन्हें आप दे सकते हैं:

  • params.url (आवश्यक): पेज या वेबसाइट का URL
  • params.mode: निष्कर्षण मोड; "scrape" (डिफ़ॉल्ट) एक पेज पढ़ता है, "map" URL खोजता है और "crawl" कई पेज निकालता है
  • params.include_markdown: पेज की सामग्री Markdown के रूप में शामिल करें; scrape और crawl के लिए डिफ़ॉल्ट true है, या इसे बंद करने के लिए false सेट करें
  • params.output: प्रतिक्रिया फ़ॉर्मैट; पूर्ण मोड में डिफ़ॉल्ट "json" और संक्षिप्त मोड में "md" है। फ़ॉर्मैट बदलने के लिए इसे स्पष्ट रूप से सेट करें।
  • params.max_pages: क्रॉल किए जाने वाले अधिकतम पेज, शुरुआती पेज सहित (डिफ़ॉल्ट: 10, अधिकतम: 100)
  • params.json_restrictor: लौटाए जाने वाले फ़ील्ड चुनें, जैसे "markdown,error"
  • mode: प्रतिक्रिया मोड; "complete" (डिफ़ॉल्ट) पूरी प्रतिक्रिया लौटाता है। "compact" डिफ़ॉल्ट रूप से मूल Markdown लौटाता है। स्पष्ट रूप से params.output="json" देने पर, एकल-पेज संक्षिप्त निष्कर्षण में मौजूद होने पर शीर्ष-स्तरीय markdown फ़ील्ड बना रहता है और API त्रुटियाँ भी शामिल रहती हैं। Markdown के बिना प्रतिक्रियाएँ, जिनमें दूसरे इंजन पर रीडायरेक्ट किए गए परिणाम भी शामिल हैं, मेटाडेटा हटाकर अपना डेटा बनाए रखती हैं। JSON का उपयोग करते समय स्पष्ट रूप से दिए गए params.json_restrictor मान और params.include_markdown=false प्राथमिकता पाते हैं। map और crawl के लिए, संक्षिप्त JSON से मेटाडेटा हट जाता है। Markdown आउटपुट बिना बदलाव के लौटाया जाता है।

उदाहरण:

{"name": "extract", "arguments": {"params": {"url": "https://example.com"}}}
{"name": "extract", "arguments": {"params": {"url": "https://example.com"}, "mode": "compact"}}
{"name": "extract", "arguments": {"params": {"url": "https://example.com", "output": "md"}}}
{"name": "extract", "arguments": {"params": {"url": "https://example.com", "mode": "map"}}}
{"name": "extract", "arguments": {"params": {"url": "https://example.com", "mode": "crawl", "max_pages": 2}}}

एक पेज की सामग्री मूल Markdown के रूप में पाने के लिए mode="compact" का उपयोग करें। इसके बजाय markdown फ़ील्ड वाला JSON पाने के लिए params.output="json" जोड़ें। पूर्ण JSON में यह फ़ील्ड डिफ़ॉल्ट रूप से शामिल होता है; crawl JSON में यह हर pages प्रविष्टि में शामिल होता है। params.output="json" और params.include_markdown=false सेट करने पर Markdown के बिना शेष संरचित फ़ील्ड बने रहते हैं।

कैश में न मौजूद अनुरोध पर क्रॉल करने से हर सफलतापूर्वक निकाले गए पेज के लिए एक खोज क्रेडिट खर्च होता है। निकाले जाने वाले पेजों की संख्या सीमित करने के लिए params.max_pages का उपयोग करें।

इंटरैक्टिव UI (MCP apps)

search टूल डिफ़ॉल्ट रूप से JSON लौटाता है। MCP Apps एक्सटेंशन (SEP-1865) का समर्थन करने वाले होस्ट के लिए, दो वैकल्पिक टूल परिणामों को सीधे बातचीत में इंटरैक्टिव UI के रूप में दिखाते हैं, ताकि SERP का बड़ा JSON मॉडल की कॉन्टेक्स्ट विंडो में न आए:

  • search_table: ऑर्गेनिक परिणामों को क्रमबद्ध और खोजने योग्य तालिका के रूप में दिखाता है।
  • search_dashboard: सारांश मेट्रिक्स, स्रोत-विभाजन चार्ट और क्लिक करके विस्तार करने योग्य विवरण पैनल वाली परिणाम तालिका दिखाता है।

दोनों, search के समान params स्वीकार करते हैं। MCP Apps का समर्थन न करने वाले होस्ट इन टूल को अनदेखा कर देते हैं।

समस्या निवारण

  • "Missing API key": URL पाथ /{YOUR_KEY}/mcp या हेडर Bearer YOUR_KEY में key शामिल करें
  • "Invalid key": serpapi.com/dashboard पर सत्यापित करें
  • "Rate limit exceeded": प्रतीक्षा करें या अपना SerpApi प्लान अपग्रेड करें
  • "No results": कोई दूसरी क्वेरी या इंजन आज़माएँ

गोपनीयता नीति

  • भेजा गया: केवल वे पैरामीटर, जिन्हें MCP होस्ट टूल कॉल में देता है। सर्वर को बातचीत का बाकी हिस्सा, या होस्ट पर मौजूद फ़ाइलें, मेमोरी या इतिहास कभी नहीं दिखता।
  • फ़ॉरवर्ड किया गया: हर खोज आपकी API key के साथ serpapi.com को भेजी जाती है; परिणाम बिना बदलाव के लौटते हैं। SerpApi खोजों और खातों को कैसे संभालता है, इसके लिए SerpApi गोपनीयता नीति देखें।
  • सहेजा गया: mcp.serpapi.com अनुरोध मेट्रिक्स (विधि, स्थिति कोड, अवधि) रिकॉर्ड करता है और कोई क्वेरी या परिणाम सहेजता नहीं है। URL पाथ में मौजूद key अनुरोध लॉग में दिखाई दे सकती है, इसलिए हेडर का उपयोग करना बेहतर है।
  • स्थानीय bundle: Claude Desktop एक्सटेंशन आपकी मशीन पर चलता है, key को Claude Desktop की सेटिंग में रखता है और सीधे serpapi.com को कॉल करता है। कुछ भी mcp.serpapi.com से होकर नहीं जाता।
  • संपर्क: privacy@serpapi.com, या समस्या दर्ज करें।

योगदान

डेवलपमेंट सेटअप, स्कीमा रीफ़्रेश कमांड, परीक्षण, Docker और MCP Bundle बिल्ड तथा रिलीज़ के लिए CONTRIBUTING.md देखें।

लाइसेंस

MIT License—विवरण के लिए LICENSE फ़ाइल देखें।