🎯 कस्टमाइज़ करने योग्य, डिटेक्शन-प्रतिरोधी क्लाउड ब्राउज़र जो स्व-विकसित Chromium द्वारा संचालित है, वेब क्रॉलर और एआई एजेंट्स के लिए डिज़ाइन किया गया। 👉अभी आज़माएं
वापस ब्लॉग पर

जीपीटी रिसर्चर + स्क्रेपलेस एमसीपी: अपने रिसर्च एजेंट को एक असली फेच लेयर दें

Alex Johnson
Alex Johnson

Senior Web Scraping Engineer

07-Aug-2026

TL;DR:

  • GPT रिसर्चर वेब को रिट्रीवर्स के माध्यम से पढ़ता है, और mcp रिट्रीवर किसी भी MCP सर्वर को एक शोध स्रोत में बदल देता है — इसलिए Scrapeless MCP सर्वर वास्तव में पृष्ठों को लाने वाली परत बन जाती है।
  • RETRIEVER=mcp सेट करना अनिवार्य है। इसके बिना mcp_configs प्रेषित करना MCP रिट्रीवर को बंद कर देता है, और यह रन अनियोजित अन्य कॉन्फ़िगरेशन पर लौट जाता है।
  • stdio परिवहन वह पथ है जो आज काम करता है: npx -y scrapeless-mcp-server@0.4.9 के साथ SCRAPELESS_KEY में env सभी 21 उपकरणों को लोड करता है।
  • दूरस्थ connection_url पथ जारी किए गए क्लाइंट में प्रमाणीकरण नहीं करता। connection_token एक असमर्थित token तर्क के रूप में परिवहन तक पहुँचता है, और connection_headers इसे बिल्कुल नहीं पहुँचता।
  • अपने संस्करणों को पिन करें। gpt-researcher==0.16.0 आयात पर NameError बढ़ाता है, और mcp 1.28 के बाद रिलीज़ होने वाले MCP समर्थन को langchain-mcp-adapters के भीतर एक त्रुटि संदेश के बिना अक्षम कर देते हैं।
  • scrape_markdown पर https://quotes.toscrape.com/ रिट्रीवर के माध्यम से 4308 अक्षरों की पृष्ठ सामग्री लौटाता है, और आप इसे किसी भी मॉडल के शामिल होने से पहले कॉल कर सकते हैं।
  • केवल शोध रन को ही एक मॉडल-प्रदाता कुंजी की आवश्यकता होती है; उपकरणों को लोड और कॉल करने के लिए केवल आपकी Scrapeless कुंजी की आवश्यकता होती है।
  • Scrapeless मुफ्त योजना से शुरू करें और अपने शोध एजेंट को एक वास्तविक फेच परत दें।

GPT रिसर्चर एक क्वेरी की योजना बनाता है, खोजता है, जो कुछ पाता है उसको पढ़ता है, और एक सन्दर्भित रिपोर्ट लिखता है। खोजने का हिस्सा अच्छी तरह से सेवा प्रदान करता है - यह Google, Bing, Brave, arXiv, PubMed, और अधिक के लिए रिट्रीवर्स भेजता है। पढ़ने का हिस्सा है जहाँ स्वायत्त शोध चुपचाप गिरता है: एक रिट्रीवर URLs की एक सूची वापस देता है, और कुछ अभी भी उन URLs को टेक्स्ट में बदलना होता है। जब वह फेच एक चुनौती पृष्ठ या एक खाली खोल लौटाता है, तो रिपोर्ट वैसे भी लिखी जाती है, जो भी पतली सामग्री वापस आई हो।

mcp रिट्रीवर उस स्लॉट में क्या होता है को बदलता है। GPT रिसर्चर को एक MCP सर्वर पर निर्देशित करें और सर्वर के उपकरण शोध सतह बन जाते हैं, इसलिए पृष्ठ लाना इसके लिए निर्मित अवसंरचना के माध्यम से चलता है न कि एक साधारण HTTP प्राप्त करने के लिए। यह गाइड GPT रिसर्चर को Scrapeless MCP सर्वर से जोड़ता है, जो उपकरणों की सूची देता है जो यह उजागर करता है, एक को सच में कॉल करता है, और बिल्कुल यह चिह्नित करता है कि मॉडल-प्रदाता कुंजी की सबसे पहली आवश्यकता कौन सी कड़ी है।

Scrapeless MCP सर्वर क्या देता है एक शोध एजेंट को

Scrapeless MCP सर्वर मॉडल कॉन्टेक्स्ट प्रोटोकॉल के माध्यम से स्क्रैपिंग और ब्राउज़र उपकरणों को उजागर करता है, इसलिए फेच परत कुछ है जिसे आपका एजेंट कॉल करता है न कि कुछ आप बनाते हैं। एक कनेक्शन 21 उपकरणों की सेवा करता है: पृष्ठ सामग्री के लिए scrape_markdown और scrape_html, खोज डेटा के लिए google_search और google_trends, कैप्चर के लिए scrape_screenshot, और एक 16-उपकरण browser_* सेट जो एक समग्र ब्राउज़र को नेविगेशन, क्लिक, टाइपिंग, स्क्रॉलिंग, और प्रतीक्षा के माध्यम से चलाता है।

एक शोध एजेंट के लिए महत्वपूर्ण उपकरण scrape_markdown है। GPT रिसर्चर की रिपोर्ट गुणवत्ता उस पाठ पर निर्भर करती है जिसे वह एकत्र करता है, और मार्कडाउन पहले से ही इसका संदर्भ चाहने वाली आकृति है। जब एक स्रोत केवल इंटरएक्शन के बाद प्रस्तुत करता है, तो browser_* उपकरण महत्वपूर्ण होते हैं - ये Scrapeless क्लाउड ब्राउज़र पर चलते हैं, ताकि एक एजेंट शोध मशीन पर ब्राउज़र के बिना प्रस्तुत पृष्ठ तक पहुँच सके।

प्रोटोकॉल परत मॉडल कॉन्टेक्स्ट प्रोटोकॉल निर्दिष्ट करना का पालन करती है, जो JSON-RPC 2.0 निर्दिष्ट करना के माध्यम से अपने संदेश ले जाती है। यदि आप पहले इसके अपने शर्तों पर प्रोटोकॉल को समझाना चाहते हैं तो, MCP क्या है इसे कवर करता है, और LangChain + Scrapeless MCP उसी सर्वर को एक अलग स्टैक में जुड़े हुए दिखाता है।

पूर्वापेक्षाएँ

  • Python 3.10 या बाद का।
  • शोध करने वाली मशीन पर Node.js, क्योंकि stdio परिवहन npx के साथ सर्वर चालू करता है।
  • डैशबोर्ड से Scrapeless API कुंजी, SCRAPELESS_KEY के रूप में निर्यात की गई।
  • एक मॉडल-प्रदाता कुंजी जैसे OPENAI_API_KEY। GPT रिसर्चर शोधकर्ता वस्तु का निर्माण करते समय एक एम्बेडिंग क्लाइंट बनाता है, इसलिए यह परिवर्तन उस चरण से पहले सेट किया जाना चाहिए - MCP उपकरणों को कॉल करने तक और उनमें सब कुछ इसके बिना काम करता है।

इंस्टॉल

संस्करण पिनिंग यहाँ वैकल्पिक नहीं है, और दो विशेष पिन सही काम कर रहे हैं।

bash Copy
pip install "gpt-researcher==0.15.1" "langchain-mcp-adapters==0.3.1" "mcp==1.27.2"

gpt-researcher==0.16.0 आयात नहीं किया जा सकता। इसका actions/query_processing.py एक सहायक को परिभाषित करता है जिसका हस्ताक्षर Any और List के कई पंक्तियों के ऊपर परिभाषित होता है from typing import Any, List, Dict जो उन्हें परिभाषित करेगा, और क्योंकि एक साधारण def पर एनोटेशन तब मूल्यांकित होता है जब फ़ंक्शन वस्तु बनाई जाती है — स्थगित-एनोटेशन प्रस्ताव में लिखा है कि व्यवहार बदलना है — आयात NameError: name 'Any' is not defined को उठाता है इससे पहले कि कोई और चीज़ चलती है। संस्करण 0.15.1 में उस क्रम का समस्या नहीं है।

mcp पिन अधिक सूक्ष्म है। langchain-mcp-adapters अपनी आवश्यकता को mcp>=1.9.2 के रूप में घोषित करता है, पायथन निर्भरता-संकेतन विनिर्देशन द्वारा वर्णित अर्थ में एक अपरिवर्तित फर्श है, इसलिए एक ताजा स्थापना जो कुछ भी mcp सबसे नया है को खींचती है। 1.28 से आगे के रिलीज़ RequestContext को mcp.shared.context से निर्यात नहीं करते हैं, जिसे अनुकूलनकर्ता मॉड्यूल लोड पर आयात करता है। GPT शोधकर्ता उस ImportError को पकड़ता है और एक आंतरिक उपलब्धता ध्वज को गलत पर सेट करता है, इसलिए MCP जोर से असफल नहीं होता — यह बस अस्तित्व में रुकता है, और आपका शोध कभी भी सर्वर को छूए बिना चलता है।

अपने कुंजी को शेल में सेट करें न कि स्रोत में।

bash Copy
export SCRAPELESS_KEY="your_api_key_here"

stdio के माध्यम से कनेक्ट करें और उपकरणों की सूची बनाएं

GPT शोधकर्ता का MCP परत एक सर्वर कॉन्फ़िगरेशन शब्दकोशों की सूची लेता है। एक stdio सर्वर के लिए आपको इसका नाम, आदेश, इसके तर्क और सर्वर को आवश्यक कोई भी पर्यावरण देना होता है। MCPClientManager इसे परिवहन कॉन्फ़िगरेशन में परिवर्तित करता है और हैंडशेक चलाता है।

python Copy
import asyncio
import os

from gpt_researcher.mcp.client import MCPClientManager

SCRAPELESS = {
    "name": "scrapeless",
    "command": "npx",
    "args": ["-y", "scrapeless-mcp-server@0.4.9"],
    "env": {"SCRAPELESS_KEY": os.environ["SCRAPELESS_KEY"], "PATH": os.environ["PATH"]},
}


async def main() -> None:
    manager = MCPClientManager([SCRAPELESS])
    tools = await manager.get_all_tools()
    print("tool count:", len(tools))
    print("tools:", ", ".join(sorted(tool.name for tool in tools)))


asyncio.run(main())

PATH को env में शामिल करें। सर्वर प्रक्रिया ठीक उसी पर्यावरण के साथ उत्पन्न होती है जो आप प्रदान करते हैं, इसलिए PATH को छोड़ना मतलब है कि npx नहीं पाया जा सकता।

लाइव सर्वर केवल Scrapeless कुंजी सेट के साथ 21 उपकरणों को लौटाता है।

text Copy
tool count: 21
tools: browser_click, browser_close, browser_create, browser_get_html, browser_get_text, browser_go_back, browser_go_forward, browser_goto, browser_press_key, browser_screenshot, browser_scroll, browser_scroll_to, browser_snapshot, browser_type, browser_wait, browser_wait_for, google_search, google_trends, scrape_html, scrape_markdown, scrape_screenshot

क्यों रिमोट URL पथ अभी काम नहीं करता है

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

दोनों असफलताएँ बिना नेटवर्क कॉल के दिखाई देती हैं, क्योंकि convert_configs_to_langchain_format वह फ़ंक्शन है जो निर्धारित करता है कि परिवहन क्या प्राप्त करता है।

python Copy
from gpt_researcher.mcp.client import MCPClientManager

URL = "https://api.scrapeless.com/mcp"

with_token = MCPClientManager([
    {"name": "s", "connection_url": URL, "connection_token": "PLACEHOLDER"},
]).convert_configs_to_langchain_format()["s"]

with_headers = MCPClientManager([
    {"name": "s", "connection_url": URL, "connection_headers": {"x-api-token": "PLACEHOLDER"}},
]).convert_configs_to_langchain_format()["s"]

print("connection_token   ->", sorted(with_token))
print("connection_headers ->", sorted(with_headers))
text Copy
connection_token   -> ['token', 'transport', 'url']
connection_headers -> ['transport', 'url']

connection_token एक token कुंजी बनता है, जिसे स्ट्रीम करने योग्य-HTTP सत्र फैक्टरी स्वीकार नहीं करती — कनेक्शन का प्रयास _create_streamable_http_session() got an unexpected keyword argument 'token' में समाप्त होता है, और उपकरणों की सूची खाली लौटती है।

connection_headers रूपांतरण के दौरान बिल्कुल जीवित नहीं रहता। शाखा जो इसे कॉपी करेगी server_config.get("connection_type") का परीक्षण करती है, लेकिन रूपांतरण केवल एक transport कुंजी लिखता है, इसलिए परीक्षण कभी मेल नहीं खाता और हेडर छोड़ दिए जाते हैं। क्योंकि Scrapeless एंडपॉइंट x-api-token हेडर पर प्रमाणित होता है, अनुरोध फिर प्रमाणित नहीं आता है। उस कारण से उपकरणों की सूची भी खाली है, यही कारण है कि दोनों लक्षण बाहरी रूप से समान दिखते हैं।

एक रिलीज़ का इंतज़ार करें जो हेडर को परिवहन पर कॉपी करता है जब तक stdio का उपयोग करें। यह उसी सर्वर और उसी 21 उपकरणों तक पहुँचता है।

एजेंट के अस्तित्व से पहले एक उपकरण को कॉल करें

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

python Copy
import asyncio
import os

from gpt_researcher.mcp.client import MCPClientManager

SCRAPELESS = {
    "name": "scrapeless",
    "command": "npx",
    "args": ["-y", "scrapeless-mcp-server@0.4.9"],
    "env": {"SCRAPELESS_KEY": os.environ["SCRAPELESS_KEY"], "PATH": os.environ["PATH"]},
}


def as_text(result) -> str:
    if isinstance(result, str):
        return result
    if isinstance(result, (list, tuple)):
        parts = [b["text"] for b in result if isinstance(b, dict) and "text" in b]
        if parts:
            return "\n".join(parts)
    return str(result)


async def main() -> None:
    manager = MCPClientManager([SCRAPELESS])
    tools = await manager.get_all_tools()
    scrape = next(tool for tool in tools if tool.name == "scrape_markdown")
    text = as_text(await scrape.ainvoke({"url": "https://quotes.toscrape.com/"}))
    print("characters:", len(text))
    print("first line:", text.split("\n")[0])


asyncio.run(main())

कॉल पृष्ठ को मार्कडाउन के रूप में वापस करता है, जिसे प्रोटोकॉल द्वारा परिभाषित सामग्री-ब्लॉक लपेटे में लपेटा जाता है। as_text उस लपेटे को सपाट करता है, जो महत्वपूर्ण है क्योंकि कच्ची वापसी ब्लॉकों की एक सूची है न कि एक स्ट्रिंग।

text Copy
characters: 4308
first line: Response:

शोधकर्ता को कॉन्फ़िगरेशन सौंपें

परिवहन का प्रमाणित होने पर, वही शब्दकोश GPTResearcher में जाता है। दो चीजें मेल खानी चाहिए: RETRIEVER को mcp का नाम देना चाहिए, और mcp_configs को सर्वर को ले जाना चाहिए। यदि पर्यावरण चर छूट जाता है और MCP पुनर्प्राप्तकर्ता कभी नहीं बनाया जाता है, जो कि यह एकीकृतता का सबसे सामान्य तरीका है जो ऐसा प्रतीत होता है कि कुछ भी नहीं हो रहा है।

नोट: यह खंड एक पूर्वापेक्षा अंतर है। GPTResearcher __init__ के दौरान एक एम्बेडिंग क्लाइंट का निर्माण करता है, इसलिए इसे वस्तु के अस्तित्व से पहले OPENAI_API_KEY की आवश्यकता है, और conduct_research वास्तविक मॉडल क्रेडिट खर्च करता है। इस लेख के लिए सत्यापन पर्यावरण में कोई मॉडल-प्रदाता कुंजी नहीं थी, इसलिए नीचे की वायरिंग को पुनर्प्राप्त करने की संकल्पना तक पुष्टि की गई, और शोध कॉल स्वयं निष्पादित नहीं किया गया।

python Copy
import asyncio
import os

os.environ["RETRIEVER"] = "mcp"

from gpt_researcher import GPTResearcher

SCRAPELESS = {
    "name": "scrapeless",
    "command": "npx",
    "args": ["-y", "scrapeless-mcp-server@0.4.9"],
    "env": {"SCRAPELESS_KEY": os.environ["SCRAPELESS_KEY"], "PATH": os.environ["PATH"]},
}


async def main() -> None:
    researcher = GPTResearcher(
        query="Which quotes and authors appear on quotes.toscrape.com?",
        mcp_configs=[SCRAPELESS],
    )
    await researcher.conduct_research()
    report = await researcher.write_report()
    print(report)


asyncio.run(main())

यह असाइनमेंट GPTResearcher के निर्माण से पहले आ जाना चाहिए, क्योंकि शोधकर्ता अपने कॉन्फ़िगरेशन वस्तु का निर्माण करते समय पर्यावरण को पढ़ता है। इसे आयात के ऊपर रखना, जैसा कि यहाँ किया गया है, केवल वही क्रम है जो गलत करने के लिए सबसे कठिन है।
RETRIEVER=mcp Scrapeless को एकमात्र शोध स्रोत बनाता है, जो विशिष्ट पृष्ठों के बारे में प्रश्नों के लिए उपयुक्त है। RETRIEVER=tavily,mcp और समान संयोजन इसके साथ एक खोज इंजन रखते हैं, ताकि एजेंट एक तरीके से संभावित स्रोत खोजे और दूसरे तरीके से उन्हें पढ़े। वहाँ MCP_STRATEGY भी है, जो fast पर डिफ़ॉल्ट होता है और मुख्य प्रश्न के खिलाफ एक बार MCP चरण चलाता है; deep इसे हर उत्पन्न उप-प्रश्न के लिए चलाता है और अनुपातिक रूप से अधिक लागत होती है।

क्या आप अपने शोध एजेंट को एक फ़ेच परत देने के लिए तैयार हैं जो असली स्रोतों पर टिका हो? एक निःशुल्क Scrapeless खाता बनाएं और इसे कुछ पंक्तियों में कनेक्ट करें।

निष्कर्ष

बिजली की व्यवस्था तब छोटी होती है जब संस्करण पिन और परिवहन विकल्प तय हो जाते हैं: gpt-researcher==0.15.1 को mcp==1.27.2 के खिलाफ स्थापित करें, RETRIEVER=mcp सेट करें, और एक stdio mcp_configs प्रवेश पास करें जो scrapeless-mcp-server की ओर इंगीत करता है। यह 21 उपकरणों का उत्पादन करता है, और scrape_markdown असली पृष्ठ सामग्री लौटाता है इससे पहले कि कोई मॉडल कभी शामिल किया जाए - जिससे फ़ेच परत स्वयं परीक्षणीय हो जाती है, न कि कुछ ऐसा जिसे आप एक तैयार रिपोर्ट के माध्यम से डिबग करते हैं।

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

Scrapeless मूल्य निर्धारण पृष्ठ पर योजनाओं की तुलना करें, और पूर्ण उपकरण संदर्भ Scrapeless दस्तावेज़ीकरण में मौजूद है।

प्रश्नोत्तरी

प्रश्न: क्या मुझे MCP कनेक्शन का परीक्षण करने के लिए एक मॉडल-प्रदाता कुंजी की आवश्यकता है?

नहीं। उपकरणों को लोड करना और कॉल करना पूरी तरह से MCP क्लाइंट के माध्यम से चलता है, इसलिए एक Scrapeless कुंजी यह पुष्टि करने के लिए पर्याप्त है कि परिवहन काम करता है और वास्तविक URL पर scrape_markdown को कॉल करने के लिए। मॉडल कुंजी जरूरी हो जाती है जैसे ही आप GPTResearcher बनाते हैं, क्योंकि एक एम्बेडिंग क्लाइंट प्रारंभिककरण के दौरान बनाया जाता है।

प्रश्न: मेरा रन MCP सर्वर की अनदेखी क्यों करता है, जबकि मैंने mcp_configs पास किए हैं?

RETRIEVER पर्यावरण चर लगभग हमेशा कारण होता है। mcp_configs अकेले MCP पुनर्प्राप्तकर्ता को सक्षम नहीं करता है; RETRIEVER को mcp नाम देना आवश्यक है, या तो अकेले या tavily,mcp जैसी सूची में। इसे सेट करें इससे पहले कि आप GPTResearcher बनाएं, क्योंकि मूल्य उस समय पढ़ा जाता है जब शोधकर्ता अपनी कॉन्फ़िगरेशन का निर्माण करता है।

प्रश्न: क्या मैं होस्टेड Scrapeless एंडपॉइंट से कनेक्ट कर सकता हूँ, बजाय इसके कि सर्वर को स्थानीय रूप से चलाऊं?

नहीं, प्रक्षिप्त ग्राहक में mcp_configs के माध्यम से। connection_token स्ट्रीम करने योग्य-HTTP सत्र को एक तर्क के रूप में भेजा जाता है जिसे यह स्वीकार नहीं करता है, और connection_headers कॉन्फ़िगरेशन परिवर्तन के दौरान गिरा दिया जाता है इससे पहले कि यह परिवहन तक पहुंचे। stdio परिवहन उसी सर्वर से कनेक्ट होता है और समान 21 उपकरणों को उजागर करता है, इसलिए यह आज का कामकाजी पथ है।

प्रश्न: तेज़ और गहरा MCP रणनीतियों के बीच क्या अंतर है?

fast, डिफ़ॉल्ट, मुख्य प्रश्न का उपयोग करके MCP चरण को एक बार चलाता है। deep इसे हर उप-प्रश्न के लिए चलाता है जिसे एजेंट उत्पन्न करता है, जो कवरेज को विस्तारित करता है और उपकरण कॉल और मॉडल व्यय दोनों को गुणा करता है। fast पर शुरू करें और केवल तभी deep पर जाएं जब एक विशिष्ट रिपोर्ट वापस पतली आ रही हो।

प्रश्न: क्या मुझे RETRIEVER=mcp का उपयोग करना चाहिए अकेले या एक खोज पुनर्प्राप्तकर्ता के साथ संयोजित करना चाहिए?

जब आप पहले से जानते हैं कि कौन से पृष्ठ महत्वपूर्ण हैं तो अकेले mcp का उपयोग करें, क्योंकि एजेंट उप-प्रश्न उत्पन्न करने को छोड़ देता है और उन स्रोतों पर काम करता है जिनकी आप उसे इंगीत करते हैं। इसे मिलाकर, जैसा कि tavily,mcp में है, जब खोज अनुक्रम कार्य का एक भाग है - खोज पुनर्प्राप्तकर्ता उम्मीदवारों को खोजता है और MCP उपकरण उन्हें पढ़ते हैं।

प्रश्न: क्यों MCP को पिन करें बजाय इसके कि सबसे नए रिलीज़ को लें?

langchain-mcp-adapters बिना ऊपरी सीमा के mcp>=1.9.2 की आवश्यकता होती है, इसलिए एक ताज़ा वातावरण सबसे नए रिलीज़ को स्थापित करता है। 1.28 से आगे RequestContext अब mcp.shared.context से निर्यात नहीं होता है, संवाहक का आयात विफल हो जाता है, और GPT शोधकर्ता MCP को अनुपलब्ध के रूप में रिकॉर्ड करता है बजाय इसके कि इसे उठाए। mcp==1.27.2 को पिन करना संवाहक को आयात करने योग्य रखता है।

प्रश्न: क्या मुझे अपने स्वयं के सेटअप में उपकरणों की गिनती की जांच करनी चाहिए?

हाँ, और यह सबसे तेज़ निदान उपलब्ध है। 21 की गिनती का अर्थ है कि परिवहन, कुंजी, और संवाहक सभी काम कर रहे हैं। शून्य का मतलब है कि कनेक्शन कभी ऑथेन्टिकेट नहीं हुआ, और get_all_tools के दौरान किसी भी अपवाद को लॉग किया जाता है बजाय इसके उठाए, इसलिए एक खाली सूची आपके कोड से विफल कनेक्शन की तरह दिखती है।

प्रश्न: वास्तव में scrape_markdown क्या लौटाता है?
प्रोटोकॉल सामग्री ब्लॉकों की एक सूची साधारण स्ट्रिंग के बजाय, टेक्स्ट ब्लॉक पर पृष्ठ मार्कडाउन के साथ। मापने या स्टोर करने से पहले इसे समतल करें - रिटर्न मान को एक स्ट्रिंग के रूप में मानते हुए यह सूची का पायथन प्रतिनिधित्व देता है, पृष्ठ के बजाय।

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

सबसे लोकप्रिय लेख

सूची