वापस ब्लॉग पर

OpenCode + Scrapeless: एक रिमोट MCP सर्वर से कनेक्ट करें

Olivia Patel
Olivia Patel

Senior Cybersecurity Analyst

21-Sep-2026

TL;DR:

  • OpenCode Scrapeless को remote MCP सर्वर के रूप में opencode.json में लेता है। प्रविष्टि को url, एक x-api-token हेडर और "oauth": false की आवश्यकता है।
  • कुंजी को {env:SCRAPELESS_API_KEY} के रूप में लिखें, ${SCRAPELESS_API_KEY} के रूप में नहीं। OpenCode पहले रूप को बदल देता है और दूसरे को शाब्दिक पाठ के रूप में भेजता है, और सर्वर अब भी जुड़ाव के रूप में सूचीबद्ध रहता है जबकि प्रत्येक उपकरण कॉल 401 के साथ विफल हो जाता है।
  • ✓ connected केवल साबित करता है कि हेडर मौजूद है। Scrapeless हस्ताक्षर कुछ भी x-api-token मान को स्वीकार करता है और अब भी सभी 25 उपकरणों को सूचीबद्ध करता है, इसलिए सेटअप पर विश्वास करने से पहले एक उपकरण का परिणाम पढ़ें।
  • oauth सेटिंग यह तय करती है कि एक Bearer गलती कैसी दिखती है। यदि इसे डिफ़ॉल्ट पर छोड़ दिया जाए, तो एक Authorization: Bearer हेडर ⚠ needs authentication दिखाता है; "oauth": false के साथ वही हेडर ✗ failed के साथ 401 दिखाता है।
  • उपकरण <server>_<tool> नाम से आते हैं। scrapeless नामक एक सर्वर प्रविष्टि मॉडल scrapeless_scrape_markdown देती है, और 25 परिभाषाएँ लगभग 30 KB के tools/list उत्तर के रूप में लौटती हैं।
  • Scrapeless मुफ्त योजना पर एक कुंजी प्राप्त करें और कुछ ही मिनटों में OpenCode से कनेक्ट करें।

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

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

What OpenCode Gets From Scrapeless

सर्वर 25 उपकरणों को सूचीबद्ध करता है। तीन एक कॉल में एक पृष्ठ लौटाते हैं: scrape_markdown, scrape_html और scrape_screenshot। सोलह browser_* उपकरण, जैसे browser_create, browser_goto, browser_click और browser_type, एक समय में एक कदम पर एक क्लाउड ब्राउज़र सत्र चलाते हैं। crawl_start, crawl_result और crawl_cancel एक क्रॉल का प्रबंधन करते हैं, और google_search, google_trends और ai_scraper सेट को पूरा करते हैं।

अधिकांश प्रॉम्प्ट के लिए उपयोगी उपकरण scrape_markdown है। यह पृष्ठ को Markdown के रूप में प्रस्तुत करता है, जो एक मॉडल को सबसे सस्ते में पढ़ने का आकार है, और इसे केवल एक URL की आवश्यकता होती है।

Prerequisites

  • OpenCode, जिसमें एक मॉडल प्रोवाइडर पहले से कॉन्फ़िगर किया गया है। यह मार्गदर्शिका OpenCode 1.17.19 का उपयोग करती है।
  • Scrapeless डैशबोर्ड से Scrapeless API कुंजी।
  • सर्वर के लिए कुछ भी स्थापित करने की आवश्यकता नहीं है। यह https://api.scrapeless.com/mcp पर चलता है और OpenCode इसे HTTP के माध्यम से पहुंचता है।

Step 1: Add the Server to opencode.json

OpenCode अपने कॉन्फ़िग से mcp ब्लॉक से MCP सर्वरों को पढ़ता है। वैश्विक फ़ाइल ~/.config/opencode/opencode.json है, और एक opencode.json एक प्रोजेक्ट रूट में उस प्रोजेक्ट पर लागू होता है:

json Copy
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "scrapeless": {
      "type": "remote",
      "url": "https://api.scrapeless.com/mcp",
      "oauth": false,
      "headers": {
        "x-api-token": "{env:SCRAPELESS_API_KEY}"
      }
    }
  }
}

"type": "remote" OpenCode को HTTP के माध्यम से कनेक्ट करने के लिए बनाता है बजाय इसके कि वह एक स्थानीय आदेश शुरू करे। "oauth": false इसे OAuth प्रवाह शुरू करने से रोकता है, जो Scrapeless एंडपॉइंट प्रदान नहीं करता; इसके OAuth डिस्कवरी पथ 404 लौटाते हैं, और यह केवल हेडर पर प्रामाणीकृत करता है। opencode mcp add एक प्रविष्टि लिख सकता है और --url और --header फ्लैग स्वीकार करता है, लेकिन फ़ाइल को सीधे संपादित करना {env:} संदर्भ को ठीक से प्राप्त करने का विश्वसनीय तरीका है।

Step 2: Use {env:} Substitution, Not ${}

OpenCode कॉन्फ़िग लोड करते समय {env:VARIABLE_NAME} को उस परिवेश चर के मान से बदल देता है। पर्यावरण चर उनके सामान्य स्थानों के लिए होते हैं जो मशीनों के बीच बदलते हैं, जैसे ही विभाजन द टेवा-फैक्टर ऐप का कॉन्फ़िग दिशानिर्देश की सिफारिश करता है, और {env:} है जिससे OpenCode उन्हें पढ़ता है। कुंजी को उस शैल में निर्यात करें जो OpenCode शुरू करता है:

bash Copy
export SCRAPELESS_API_KEY="your-scrapeless-api-key"
opencode mcp list
text Copy
●  ✓ scrapeless connected
│      https://api.scrapeless.com/mcp

शेल-शैली ${SCRAPELESS_API_KEY} दिखने में समान लगती है और नहीं है। OpenCode इसे शाब्दिक पाठ के रूप में पास करता है, और क्योंकि Scrapeless हस्ताक्षर किसी भी गैर-खाली टोकन को स्वीकार करता है, सर्वर अब भी ✓ connected को सूचीबद्ध करता है। समस्या केवल तब दिखाई देती है जब मॉडल एक उपकरण को कॉल करता है:

text Copy
Failed to fetch data. Error: [Scrapeless]: Request POST /api/v1/unlocker/request failed with status 401

परिवर्तनशील को बिना निर्यात किए छोड़ने से पहले ही विफलता होती है और अधिक दृश्यमान होती है। यदि {env:SCRAPELESS_API_KEY} कुछ भी नहीं से इंगित करता है, तो हस्ताक्षर स्वयं अस्वीकृत हो जाता है:

text Copy
●  ✗ scrapeless failed
│      SSE error: Non-200 status code (401)
│      https://api.scrapeless.com/mcp

क्या आप इसे अभी सेट कर रहे हैं? Scrapeless मुफ्त योजना कनेक्शन और आपके पहले उपकरण कॉल को कवर करती है।

Step 3: Read Each opencode mcp list Status

स्थिति रेखा बताती है कि क्या OpenCode कनेक्शन खोल सका। यह नहीं बताती कि क्या कुंजी काम करती है।

स्थिति क्या हुआ अगला कदम
✓ scrapeless connected सर्वर ने एक x-api-token हेडर ले जाने वाले अनुरोध को स्वीकार किया कुंजी की पुष्टि के लिए एक उपकरण कॉल करें
✗ scrapeless failed के साथ 401 हेडर गायब था या खाली था हेडर नाम और निर्यात की जांच करें
⚠ scrapeless needs authentication OAuth अभी भी सक्षम होने पर 401, आमतौर पर एक Bearer हेडर से x-api-token का उपयोग करें और "oauth": false सेट करें

एक विफलता मोड एक खराब कुंजी की तरह दिखता है, लेकिन है नहीं। यदि स्थिति पंक्ति कनेक्टेड कहती है और एक उपकरण कॉल का उत्तर Failed to fetch data है, तो जांचें कि क्या मशीन पर किसी अन्य MCP सर्वर ने वही Scrapeless उपकरणों का खुलासा किया है, जैसे एक गेटवे जो एक क्रेडेंशियल के पीछे कई प्रदाताओं को रूट करता है। एजेंट ने शायद उस एक को कॉल किया होगा। OpenCode प्रत्येक उपकरण को उसके सर्वर नाम के साथ पूर्वसर्गित करता है, इसलिए प्रतिलेख पंक्ति उस सर्वर का नाम देती है जिसने उत्तर दिया।

अधिकांश MCP उदाहरण Authorization: Bearer के साथ प्रमाणित होते हैं, योजना OAuth 2.0 बियरर टोकन विनिर्देश को परिभाषित करती है। Scrapeless इसके बजाय x-api-token पढ़ता है, इसलिए एक Bearer हेडर 401 अनुबंधित प्रतिक्रिया अर्जित करता है। oauth अपने डिफ़ॉल्ट पर होने पर, OpenCode उस 401 को साइन इन करने के लिए एक संकेत के रूप में मानता है:

text Copy
●  ⚠ scrapeless needs authentication
│      https://api.scrapeless.com/mcp

"oauth": false के साथ, वही हेडर 401 के साथ ✗ failed पढ़ता है, जो एक गलत हेडर का वर्णन करता है जो प्रमाणीकृत होने के आमंत्रण की तुलना में अधिक सटीक है।

कदम 4: एक संकेत से एक उपकरण कॉल करें

पहली बार सर्वर और उपकरण का नाम लें, ताकि परिणाम का केवल एक संभावित स्रोत हो:

text Copy
Use the scrapeless MCP server's scrape_markdown tool on https://example.com
and reply with the first markdown heading line.

opencode run --format json प्रत्येक चरण को एक JSON घटना के रूप में प्रिंट करता है। उस संकेत से उपकरण की घटना:

text Copy
type: tool_use
tool: scrapeless_scrape_markdown
status: completed
output: Response: "# Example Domain\n\nThis domain is for use in documentation ...

मॉडल का उत्तर # Example Domain था। उपकरण का नाम OpenCode के <server>_<tool> पैटर्न का पालन करता है, इसलिए scrapeless नामक एक प्रविष्टि सभी 25 उपकरणों पर वही उपसर्ग लगाती है।

यह आउटपुट वह जांच है जो opencode mcp list आपको नहीं दे सकता। एक परिणाम जो पृष्ठ सामग्री के साथ शुरू होता है, इसका मतलब है कि कुंजी काम करती है। एक परिणाम जो Failed to fetch data के साथ शुरू होता है, इसका मतलब है कि कनेक्शन ठीक है और कुंजी नहीं है। MCP उपकरण विनिर्देश विफल कॉल के लिए एक isError ध्वज प्रदान करता है, लेकिन Scrapeless बिना इसे सामान्य उपकरण पाठ के रूप में दोनों परिणाम लौटाता है, इसलिए पाठ वही है जो पढ़ना है।

हर कनेक्टेड सर्वर भी मॉडल के संदर्भ में अपने उपकरण परिभाषाएँ जोड़ता है, और सभी 25 उपकरणों के लिए Scrapeless tools/list प्रतिक्रिया लगभग 30 KB है। प्रविष्टि पर "enabled": false सेट करने से इसे कॉन्फ़िगर किया जाता है लेकिन उन सत्रों से बाहर रखा जाता है जिन्हें वेब की आवश्यकता नहीं होती है।

सर्वर जो प्रदान करता है, उसके लिए, Scrapeless MCP सर्वर घोषणा लॉन्च को कवर करती है, और हमारा MCP एकीकरण गाइड एजेंटों के ब्राउज़र तक पहुंचने के तरीकों की तुलना करती है। ब्राउज़र MCP दस्तावेज़ कॉन्फ़िगरेशन संदर्भ ले जाती है, स्क्रेपिंग API पृष्ठ उपकरणों के पीछे के अभिनेताओं का वर्णन करता है, और मूल्य निर्धारण एक कॉल की लागत की सूची देता है।

निष्कर्ष

OpenCode को प्रविष्टि से चार चीजों की आवश्यकता है: "type": "remote", Scrapeless URL, x-api-token हेडर {env:SCRAPELESS_API_KEY} के रूप में लिखा गया, और "oauth": false। स्थानांतरण वाक्यविन्यास वह विवरण है जो सबसे अधिक गलत होने की संभावना है, क्योंकि टूटा हुआ रूप फिर भी कनेक्ट करता है।

opencode mcp list एक गायब हेडर, एक अन-निर्यातित चर और एक Bearer मिश्रण पकड़ता है। केवल एक उपकरण परिणाम एक खराब कुंजी को पकड़ता है, इसलिए एक कॉल करें और जो वापस आता है उसे पढ़ें इससे पहले कि आप कनेक्शन के ऊपर कुछ भी बनाएँ।

क्या आप OpenCode को वेब का लाइव दृश्य देने के लिए तैयार हैं? Scrapeless मुफ्त योजना से शुरू करें और सर्वर जोड़ें।

सामान्य प्रश्न

Q: मैं OpenCode में API कुंजी हेडर के साथ एक दूरस्थ MCP सर्वर को कैसे जोड़ूं?

mcp के तहत एक प्रविष्टि opencode.json में जोड़ें जिसमें "type": "remote", सर्वर url, "oauth": false और एक headers वस्तु हो। Scrapeless के लिए हेडर x-api-token है, जिसे {env:SCRAPELESS_API_KEY} के रूप में लिखा गया है ताकि कुंजी फ़ाइल में नहीं आए।

Q: ${SCRAPELESS_API_KEY} opencode.json में काम क्यों नहीं करता?
OpenCode का प्रतिस्थापन सिंटैक्स {env:SCRAPELESS_API_KEY} है। शेल-शैली का रूप अक्षर-सत्य पाठ के रूप में भेजा जाता है, इसलिए सर्वर अभी भी कनेक्टेड के रूप में सूचीबद्ध है और टूल कॉल failed with status 401 के साथ वापस आते हैं।

प्रश्न: ओपनकोड एमसीपी सूची में "प्रमाणिकरण की आवश्यकता" क्यों कहा जाता है?

सर्वर ने 401 लौटाया जबकि oauth सक्षम था, इसलिए OpenCode साइन-इन की पेशकश करता है। Scrapeless के लिए, इसका लगभग हमेशा मतलब एक Authorization: Bearer हेडर होता है; x-api-token पर स्विच करें और "oauth": false सेट करें।

प्रश्न: "कनेक्टेड" का मतलब क्या है कि मेरी Scrapeless कुंजी मान्य है?

नहीं। Scrapeless हैंडशेक और टूल लिस्टिंग किसी भी गैर-खाली x-api-token मान के साथ सफल होते हैं। केवल एक टूल कॉल एक खराब कुंजी का खुलासा करता है, जिससे शुरू होने वाले एक परिणाम Failed to fetch data के साथ होता है।

प्रश्न: OpenCode के भीतर Scrapeless टूल के नाम क्या हैं?

OpenCode नाम MCP टूल <server>_<tool> होते हैं। जिस प्रविष्टि को scrapeless कहा जाता है, मॉडल scrapeless_scrape_markdown को देखता है और अन्य 24 टूल पर वही उपसर्ग होता है।

प्रश्न: OpenCode opencode.json कहाँ से पढ़ता है?

वैश्विक कॉन्फ़िग ~/.config/opencode/opencode.json है, और एक परियोजना अपनी मूल में अपना खुद का opencode.json जोड़ सकती है। OPENCODE_CONFIG पर्यावरण चर OpenCode को एक विशिष्ट कॉन्फ़िग फ़ाइल पर इंगित करता है।

प्रश्न: क्या मुझे Scrapeless MCP सर्वर के लिए एक पैकेज स्थापित करने की आवश्यकता है?

नहीं। सर्वर https://api.scrapeless.com/mcp पर होस्ट किया गया है, और OpenCode इसके साथ HTTP के माध्यम से कनेक्ट करता है, इसलिए कोई पैकेज नहीं है, कोई स्थानीय प्रक्रिया नहीं है और न ही अद्यतन रखने के लिए कोई संस्करण है।

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

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

सूची