কনফিগারেশন

এজেন্টের জন্য Chrome DevTools কনফিগার করে আপনি কাস্টমাইজ করতে পারবেন যে এটি ব্রাউজারের সাথে কীভাবে ইন্টার‍্যাক্ট করবে, কোন টুল চালু থাকবে এবং এটি কীভাবে ডেটা ম্যানেজ করবে।

আপনার Model Context Protocol (MCP) ক্লায়েন্ট কনফিগারেশন ফাইলের args অ্যারেতে কমান্ড-লাইন ফ্ল্যাগ পাস করার মাধ্যমে সার্ভার কনফিগার করুন। এটি সাধারণত config.json ফাইল।

যেমন, হেডলেস মোডে Chrome চালাতে এবং Canary চ্যানেল ব্যবহার করতে, নিম্নলিখিত কনফিগারেশন ব্যবহার করুন:

{
  "mcpServers": {
    "chrome-devtools": {
      "command": "npx",
      "args": [
        "-y",
        "chrome-devtools-mcp@latest",
        "--headless",
        "--channel=canary"
      ]
    }
  }
}

সাধারণ কনফিগারেশন পরিস্থিতি

নিম্নলিখিত পরিস্থিতিগুলি এজেন্টের জন্য Chrome DevTools কনফিগার করার সাধারণ উপায়গুলি বর্ণনা করে।

হেডলেস মোডে রান করুন

দৃশ্যমান ব্রাউজার উইন্ডো ছাড়াই ব্যাকগ্রাউন্ড টাস্ক পারফর্ম করতে, Chrome-কে হেডলেস (কোনও UI নেই) মোডে চালান। আপনার সার্ভার আর্গুমেন্টে --headless ফ্ল্যাগ যোগ করুন।

আগে থেকে থাকা ব্রাউজার সেশনে কানেক্ট করুন

ডিফল্ট হিসেবে, এজেন্টের জন্য DevTools একটি নতুন Chrome ইনস্ট্যান্স শুরু করে। তবে, আপনি আগে থেকে থাকা ব্রাউজার সেশনের সাথে এজেন্টকে কানেক্ট করতে পারবেন। আপনি আগে থেকেই শুরু করেছেন এমন সেশনে আপনার এজেন্টকে কোনও সমস্যা তদন্ত করতে হলে এটি কাজে লাগে (যেমন, আপনি আগেই সাইন-ইন করে থাকলে)।

আপনি দুটি উপায়ে আগে থেকে থাকা সেশনে কানেক্ট করতে পারবেন:

অটোমেটিক কানেকশন (Chrome 144+)

আপনি --autoConnect ফ্ল্যাগ ব্যবহার করলে, MCP সার্ভার অটোমেটিক একটি অ্যাক্টিভ Chrome ইনস্ট্যান্সের সাথে কানেক্ট করে।

  1. আপনার চালু থাকা Chrome ব্রাউজারে, chrome://inspect/#remote-debugging-এ নেভিগেট করুন এবং রিমোট ডিবাগিং চালু করুন।
  2. আপনার MCP কনফিগারেশনে --autoConnect যোগ করুন: json "args": ["chrome-devtools-mcp@latest", "--autoConnect"]
  3. এজেন্ট কানেক্ট করার চেষ্টা করলে, Chrome অনুমতি চেয়ে একটি ডায়ালগ দেখায়। অনুমতি দিন বিকল্পে ক্লিক করুন।

ম্যানুয়াল কানেকশন

আপনি যদি --autoConnect ব্যবহার করতে না পারেন (যেমন, স্যান্ডবক্সড এনভায়রনমেন্টে), তাহলে আপনি ম্যানুয়ালি ডিবাগিং পোর্ট সহ Chrome চালু করতে এবং --browser-url ব্যবহার করে কানেক্ট করতে পারবেন।

  1. রিমোট ডিবাগিং চালু করে এবং কাস্টম ব্যবহারকারীর ডেটা ডিরেক্টরি সহ টার্মিনাল থেকে Chrome চালু করুন।
    • macOS: shell /Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --remote-debugging-port=9222 --user-data-dir=/tmp/chrome-profile-stable
    • Windows: shell start chrome --remote-debugging-port=9222 --user-data-dir=%TEMP%\chrome-profile-stable
    • Linux: shell google-chrome --remote-debugging-port=9222 --user-data-dir=/tmp/chrome-profile-stable
  2. এই পোর্টে কানেক্ট করার জন্য আপনার এজেন্ট কনফিগার করুন: json "args": ["chrome-devtools-mcp@latest", "--browser-url=http://127.0.0.1:9222"]

টেম্পোরারি ডিরেক্টরির বাইরে ফাইল অ্যাক্সেস করার অনুমতি দিন

যেসব টুল ফাইল রিড বা রাইট করে (যেমন, স্ক্রিনশট, ট্রেস সেভ করা বা এক্সটেনশন লোড করা) সেগুলি শুধুমাত্র কনফিগার করা ওয়ার্কস্পেস রুটের মধ্যে থাকা পাথ অ্যাক্সেস করতে পারে। MCP roots ক্যাপাবিলিটির মাধ্যমে আপনার MCP ক্লায়েন্ট যে রুট প্রদান করে, তার সাথে --filesystemRoot (alias --workspace) দিয়ে পাস করা যেকোনও ডিরেক্টরি সার্ভার ব্যবহার করে। আপনার ক্লায়েন্ট রুট প্রদান না করলে এবং আপনি --filesystemRoot সেট না করলে, ফাইল অ্যাক্সেস OS টেম্পোরারি ডিরেক্টরি পর্যন্ত সীমিত থাকে। অন্যান্য পাথের জন্য করা অনুরোধ Access denied: ... is not within any of the configured workspace roots সমস্যার কারণে সম্পূর্ণ করা যায়নি।

প্রোজেক্ট ডিরেক্টরিতে অ্যাক্সেসের অনুমতি দিতে, আপনার সার্ভার আর্গুমেন্টে --filesystemRoot যোগ করুন। একাধিক ডিরেক্টরির অনুমতি দিতে আপনি ফ্ল্যাগ রিপিট করতে পারেন:

"args": ["chrome-devtools-mcp@latest", "--filesystemRoot=/path/to/project"]

কনফিগারেশন বিকল্পের রেফারেন্স

নিচে উল্লেখ করা বিভাগে উপলভ্য কনফিগারেশন ফ্ল্যাগ তালিকাভুক্ত করা আছে। লেটেস্ট বিকল্প ও আপডেটের জন্য, Chrome DevTools MCP GitHub রিপোজিটরি দেখুন।

কানেকশন বিকল্প

সার্ভার কীভাবে Chrome-এর সাথে কানেক্ট করবে তা কনফিগার করতে এইসব বিকল্প ব্যবহার করুন।

পতাকা ধরন ডিফল্ট বিবরণ
--autoConnect বা --auto-connect বুলিয়ান false লোকাল মেশিনে রান করছে এমন Chrome (144+) ইন্সট্যান্সের সাথে অটোমেটিক কানেক্ট করে। chrome://inspect/#remote-debugging ব্যবহার করে রিমোট ডিবাগিং চালু করতে হবে।
--browserUrl বা --browser-url
-u
স্ট্রিং false একটি চলমান, ডিবাগযোগ্য Chrome ইনস্ট্যান্সের সাথে কানেক্ট করুন (যেমন, http://127.0.0.1:9222)।
--wsEndpoint অথবা --ws-endpoint
-w
স্ট্রিং false চলমান Chrome ইনস্ট্যান্সের সাথে কানেক্ট করার জন্য WebSocket এন্ডপয়েন্ট (যেমন, ws://127.0.0.1:9222/devtools/browser/<id>)। --browserUrl-এর বিকল্প।
--wsHeaders বা --ws-headers স্ট্রিং false JSON ফর্ম্যাটে WebSocket কানেকশনের জন্য কাস্টম হেডার (যেমন, '{"Authorization":"Bearer token"}')। শুধু --wsEndpoint-এর সাথে কাজ করে।

ব্রাউজার লঞ্চ করার বিকল্প

MCP সার্ভার Chrome চালু করলে এইসব বিকল্প প্রযোজ্য হয়।

পতাকা ধরন ডিফল্ট বিবরণ
--headless বুলিয়ান false হেডলেস (কোনও UI নেই) মোডে Chrome চালায়।
--channel স্ট্রিং stable কোন Chrome চ্যানেল ব্যবহার করতে হবে তা নির্দিষ্ট করে। বিকল্প: canary, dev, beta ও stable.
--executablePath বা --executable-path
-e
স্ট্রিং false কাস্টম Chrome এক্সিকিউটেবলের পাথ।
--userDataDir বা --user-data-dir স্ট্রিং বিবরণ দেখুন ব্যবহারকারীর ডেটা ডিরেক্টরির পাথ। ডিফল্ট হল $HOME/.cache/chrome-devtools-mcp/chrome-profile$CHANNEL_SUFFIX_IF_NON_STABLE।
--isolated বুলিয়ান false ব্যবহারকারীর ডেটার একটি সাময়িক ডিরেক্টরি তৈরি করে যা ব্রাউজার বন্ধ করার সময় অটোমেটিক মুছে যায়।
--viewport স্ট্রিং false প্রাথমিক ভিউপোর্ট সাইজ (যেমন, 1280x720)। হেডলেস মোডে, সর্বাধিক সাইজ হল 3840x2160।
--proxyServer বা --proxy-server স্ট্রিং false প্রক্সি সার্ভার কনফিগারেশন Chrome-এ পাস করা হয়েছে।
--chromeArg বা --chrome-arg এরে false Chrome-এ পাস করার জন্য অতিরিক্ত আর্গুমেন্ট।
--ignoreDefaultChromeArg বা --ignore-default-chrome-arg এরে false Chrome-এর জন্য ডিফল্ট আর্গুমেন্ট স্পষ্টভাবে বন্ধ করুন।

নিরাপত্তা ও গোপনীয়তা সংক্রান্ত বিকল্প

নিরাপত্তা সেটিংস ও ডেটার গোপনীয়তা ম্যানেজ করতে এইসব বিকল্প ব্যবহার করুন।

পতাকা ধরন ডিফল্ট বিবরণ
--acceptInsecureCerts বা --accept-insecure-certs বুলিয়ান false স্বাক্ষরিত ও মেয়াদ শেষ হয়ে যাওয়া সার্টিফিকেট সংক্রান্ত সমস্যা উপেক্ষা করে। সাবধানে ব্যবহার করুন।
--blockedUrlPattern বা --blocked-url-pattern এরে false নির্দিষ্ট URL প্যাটার্ন ব্লক করে নেটওয়ার্ক অ্যাক্সেস সীমাবদ্ধ করে (URLPattern ব্যবহার করে)। নেভিগেশন ও সাব-রিসোর্স ব্লক করে।
--allowedUrlPattern বা --allowed-url-pattern এরে false শুধুমাত্র নির্দিষ্ট URL প্যাটার্নকে অনুমতি দিয়ে নেটওয়ার্ক অ্যাক্সেস সীমাবদ্ধ করে। Chrome 149 বা তার পরবর্তী ভার্সন প্রয়োজন।
--redactNetworkHeaders বা --redact-network-headers বুলিয়ান false ক্লায়েন্টকে পাঠানোর আগে সংবেদনশীল নেটওয়ার্ক হেডার রিড্যাক্ট করে।
--usageStatistics বা --usage-statistics বুলিয়ান true টুল উন্নত করতে ব্যবহারের পরিসংখ্যান সংগ্রহ করার সুবিধা চালু করে। CHROME_DEVTOOLS_MCP_NO_USAGE_STATISTICS বা CI এনভায়রনমেন্ট ভেরিয়েবল ব্যবহার করেও বন্ধ করা যেতে পারে।
--performanceCrux বা --performance-crux বুলিয়ান true প্রকৃত ব্যবহারকারীর অভিজ্ঞতা সংক্রান্ত ডেটা পেতে পারফর্ম্যান্স ট্রেস থেকে URL, Google CrUX API-তে পাঠায়।
--javascriptEvaluation বা --javascript-evaluation বুলিয়ান true জাভাস্ক্রিপ্ট এক্সিকিউশন বন্ধ করতে false-এ সেট করুন। বন্ধ করা হলে, স্ক্রিপ্ট মূল্যায়ন টুল বন্ধ হয়ে যায়, navigate_page-এর initScript প্যারামিটার বন্ধ হয়ে যায় এবং javascript:, data: বা vbscript: URL-এ নেভিগেট করার অনুমতি দেওয়া হয় না।
--filesystemRoot বা --filesystem-root
--workspace
এরে OS অস্থায়ী ডিরেক্টরি MCP ক্লায়েন্টের দেওয়া রুট ছাড়াও, ফাইল-অ্যাক্সেস টুল ব্যবহার করার অনুমতি আছে এমন একটি ডিরেক্টরি। একাধিকবার উল্লেখ করা যেতে পারে। টেম্পোরারি ডিরেক্টরির বাইরে ফাইল অ্যাক্সেস করার অনুমতি দিন দেখুন।
--allowUnrestrictedPaths বা --allow-unrestricted-paths বুলিয়ান false বন্ধ করা হয়েছে: এর পরিবর্তে --workspace=/ ব্যবহার করুন। MCP ক্লায়েন্ট রুট প্রদান না করলে প্রযোজ্য পাথ সংক্রান্ত বিধিনিষেধ বন্ধ করে দেয়।

ফিচার বিভাগ

এইসব ফ্ল্যাগ ব্যবহার করে আপনি টুলের গ্রুপ চালু বা বন্ধ করতে পারবেন।

পতাকা ধরন ডিফল্ট বিবরণ
--categoryInput বা --category-input বুলিয়ান true ইনপুট সম্পর্কিত টুল চালু করে।
--categoryNavigation বা --category-navigation বুলিয়ান true নেভিগেশন সম্পর্কিত টুল চালু করে।
--categoryEmulation বা --category-emulation বুলিয়ান true ইমুলেশন সম্পর্কিত টুল চালু করে।
--categoryNetwork বা --category-network বুলিয়ান true নেটওয়ার্ক সম্পর্কিত টুল চালু করে।
--categoryPerformance বা --category-performance বুলিয়ান true পারফর্ম্যান্স সম্পর্কিত টুল চালু করে।
--categoryDebugging বা --category-debugging বুলিয়ান true ডিবাগিং সম্পর্কিত টুল চালু করে।
--categoryMemory বা --category-memory বুলিয়ান true মেমরি সম্পর্কিত টুল চালু করে।
--categoryExtensions বা --category-extensions বুলিয়ান false এক্সটেনশন সম্পর্কিত টুল চালু করে। শুধুমাত্র পাইপ কানেকশনের সাথে কাজ করে।
--categoryPwa বা --category-pwa বুলিয়ান false প্রোগ্রেসিভ ওয়েব অ্যাপ অটোমেট করার জন্য টুল চালু করে (ইনস্টল, লঞ্চ, আনইনস্টল ও OS স্ট্যাটাস)। শুধুমাত্র পাইপ কানেকশনের সাথে কাজ করে।
--categoryExperimentalThirdParty বা --category-experimental-third-party বুলিয়ান false পরীক্ষা করা পৃষ্ঠা দ্বারা এক্সপোজ করা থার্ড-পার্টি ডেভেলপার টুল চালু করে।
--categoryExperimentalWebmcp বা --category-experimental-webmcp বুলিয়ান false WebMCP টুল ডিবাগ করার সুবিধা চালু করে। WebMCP ফিচার চালু করা Chrome 149+ ভার্সন প্রয়োজন।
--memoryDebugging বা --memory-debugging বুলিয়ান false মেমরি ডিবাগিং টুল চালু করে।

স্ক্রিনশট সংক্রান্ত বিকল্প

এজেন্ট কীভাবে স্ক্রিনশট ক্যাপচার করবে তা কাস্টমাইজ করতে এইসব বিকল্প ব্যবহার করুন।

পতাকা ধরন ডিফল্ট বিবরণ
--screenshotFormat বা --screenshot-format স্ট্রিং false ডিফল্ট আউটপুট ফর্ম্যাট (png) ওভাররাইড করে। বিকল্প: jpeg, png এবং webp। jpeg এবং webp ফর্ম্যাটগুলি ছোট, যা AI কথোপকথনে কনটেক্সটের সাইজ কমাতে সাহায্য করে।
--screenshotQuality বা --screenshot-quality নম্বর false jpeg ও webp-এর জন্য কম্প্রেশন কোয়ালিটি (০-১০০) ওভাররাইড করে।
--screenshotMaxWidth বা --screenshot-max-width নম্বর false পিক্সেলে সর্বাধিক প্রস্থ। বড় স্ক্রিনশট ডাউনস্কেল করা হয়।
--screenshotMaxHeight বা --screenshot-max-height নম্বর false পিক্সেলে সর্বাধিক উচ্চতা। বড় স্ক্রিনশট ডাউনস্কেল করা হয়।

এক্সপেরিমেন্টাল বিকল্প

ডেভেলপমেন্টের পর্যায়ে থাকা পরীক্ষামূলক ফিচার চালু করতে এইসব বিকল্প ব্যবহার করুন।

পতাকা ধরন ডিফল্ট বিবরণ
--experimentalDevtools বা --experimental-devtools বুলিয়ান false DevTools টার্গেটের উপর অটোমেশন চালু করে।
--experimentalVision বা --experimental-vision বুলিয়ান false কোঅর্ডিনেট-ভিত্তিক টুল চালু করে (যেমন, click_at)। সাধারণত এমন একটি কম্পিউটার-ব্যবহার মডেলের প্রয়োজন হয় যা স্ক্রিনশট দেখে সঠিক কোঅর্ডিনেট তৈরি করতে পারে।
--experimentalStructuredContent বা --experimental-structured-content বুলিয়ান false স্ট্রাকচার্ড ফর্ম্যাট করা কন্টেন্ট আউটপুট করে।
--experimentalIncludeAllPages বা --experimental-include-all-pages বুলিয়ান false সব ধরনের পৃষ্ঠা অন্তর্ভুক্ত করে (যেমন, ওয়েবভিউ এবং ব্যাকগ্রাউন্ড পৃষ্ঠা)।
--experimentalScreencast বা --experimental-screencast বুলিয়ান false স্ক্রিনকাস্ট টুল এক্সপোজ করে (PATH-এ ffmpeg থাকতে হবে)।
--experimentalFfmpegPath বা --experimental-ffmpeg-path স্ট্রিং false ffmpeg এক্সিকিউটেবল ফাইলের পাথ।
--experimentalScreencastFps বা --experimental-screencast-fps নম্বর false স্ক্রিনকাস্ট রেকর্ডিংয়ের জন্য ফ্রেম পার সেকেন্ড। ffmpeg এনকোড করতে পারে তার চেয়ে দ্রুত ফ্রেম তৈরি করে এমন পৃষ্ঠায় কম মান মেমরির উপর চাপ কমাতে পারে।

অন্যান্য বিকল্প

লগিং, পৃষ্ঠা রাউটিং ও সোর্স ম্যাপ কনফিগার করতে অথবা টুলের একটি সরলীকৃত সেট চালু করতে এইসব বিকল্প ব্যবহার করুন।

পতাকা ধরন ডিফল্ট বিবরণ
--slim বুলিয়ান false তিনটি টুলের (নেভিগেশন, স্ক্রিপ্ট এক্সিকিউশন ও স্ক্রিনশট) একটি স্লিম সেট প্রকাশ করে। ব্রাউজারের প্রাথমিক টাস্কের জন্য উপযোগী।
--pageIdRouting বা --page-id-routing বুলিয়ান true pageId পৃষ্ঠা-স্কোপ করা টুল ও পৃষ্ঠা আইডি অনুসারে রুট করা অনুরোধ প্রয়োজন, যা কনকারেন্ট এজেন্ট সেশনের জন্য উপযোগী। বন্ধ করতে --no-page-id-routing ব্যবহার করুন।
--sourceMaps বা --source-maps বুলিয়ান true DevTools-এ সোর্স ম্যাপ চালু করে। বন্ধ করতে --no-source-maps ব্যবহার করুন।
--logFile বা --log-file স্ট্রিং false ডিবাগ লগ লেখার জন্য ফাইলের পাথ। ভার্বোস লগ চালু করতে NODE_DEBUG এনভায়রনমেন্ট ভেরিয়েবল *-এ সেট করুন।
--config স্ট্রিং false JSON কনফিগারেশন ফাইলের পাথ।

এনভায়রনমেন্ট ভেরিয়েবল

এছাড়াও, সার্ভার কনফিগার করতে আপনি নিম্নলিখিত এনভায়রনমেন্ট ভেরিয়েবল ব্যবহার করতে পারবেন:

  • CHROME_DEVTOOLS_MCP_NO_USAGE_STATISTICS: সেট করা থাকলে, ব্যবহারের পরিসংখ্যান সংগ্রহ করা বন্ধ করে দেয় (--no-usage-statistics-এর সমতুল্য)।
  • CHROME_DEVTOOLS_MCP_NO_UPDATE_CHECKS: সেট করা থাকলে, আপডেটের জন্য পর্যায়ক্রমিক চেক বন্ধ করে দেয়।
  • CI: সেট করা থাকলে, ব্যবহারের পরিসংখ্যান সংগ্রহ করা বন্ধ করে দেয়।
  • NODE_DEBUG: ভার্বোস ডিবাগ লগিং চালু করতে *-এ সেট করুন (--logFile-এর সাথে একসাথে কাজ করে)।