মূল বিষয়বস্তুতে যান
Search docs
Search docs…

MCP রেট লিমিট ও ত্রুটি কোড

প্রতি IP-তে মিনিটে ১০ ও দিনে ২০০ রিকোয়েস্টের কী-বিহীন সীমা, বিনামূল্যের কী-তে মিনিটে ৬০, এবং যে 401, 403, 429 ও 503 ত্রুটি পেতে পারেন।

এই পাতায়

রেট লিমিট

দুটি স্তর। কোনো অ্যাকাউন্ট বা কী লাগে না: কী ছাড়া আপনি কী-বিহীন স্তরে থাকেন; একটি বিনামূল্যের কী (শুরু করার গাইড) আপনাকে কী-সহ স্তরে নেয়।

কী ছাড়াবিনামূল্যের কী সহ
টুল কলপ্রতি IP ঠিকানায় মিনিটে ১০ ও দিনে ২০০প্রতি কী-তে মিনিটে ৬০ রিকোয়েস্ট
সংযোগ ও টুল তালিকাবিনামূল্যে; প্রতি IP-তে মিনিটে ৬০-এর বন্যা-সীমা৬০-এর মধ্যে গণনা হয়
shamela_get_pages_rangeপ্রতি কলে সর্বোচ্চ ৫ পৃষ্ঠাসর্বোচ্চ ২০
shamela_get_book_sectionপ্রতি কলে সর্বোচ্চ ১০ পৃষ্ঠাসর্বোচ্চ ১০০

সব উইন্ডো স্লাইডিং। প্রত্যাখ্যাত কল কিছু খরচ করে না — মিনিটের সীমায় পৌঁছালে দৈনিক সীমা কমে না।

কী-বিহীন সীমা প্রতি IP ঠিকানায় গণনা করা হয়, কারণ গণনার মতো আর কিছু নেই। সব কী-বিহীন কলকারী একটি সাধারণ সক্ষমতার পুল ভাগ করে, তাই ব্যস্ত সময়ে নিজের সীমায় পৌঁছানোর আগেই কী-বিহীন কল প্রত্যাখ্যাত হতে পারে; ত্রুটির বার্তা সেটি জানায়। ছোট পৃষ্ঠা-পরিসর মানে হারানো পৃষ্ঠা নয়: উত্তর বলে দেয় কোথা থেকে চালিয়ে যেতে হবে।

কী-সহ সীমা গণনা হয় কী-এর বিপরীতে, আপনার IP ঠিকানার নয়। MCP ক্লায়েন্ট প্রায়ই শেয়ার্ড নেটওয়ার্কের পেছনে থাকে, এবং প্রতিটি সার্চ একটি শেয়ার্ড লাইব্রেরি সার্ভিসের বিপরীতে চলে, তাই রিকোয়েস্ট যেখান থেকেই আসুক, খরচ বাস্তব।

প্রতিটি রেসপন্সে বর্তমান অবস্থা থাকে:

হেডারঅর্থ
ratelimit-limitযে সীমাটি পৌঁছানোর সবচেয়ে কাছাকাছি।
ratelimit-remainingসেই সীমার অধীনে অবশিষ্ট রিকোয়েস্ট।
ratelimit-resetতার উইন্ডো রিসেট হতে কত সেকেন্ড।

সীমা ছাড়ালে আপনি 429 পান, একটি retry-after হেডার এবং কোন সীমায় পৌঁছেছেন তা বলে দেওয়া একটি বার্তাসহ। ততক্ষণ অপেক্ষা করে আবার শুরু করুন — অথবা বার্তাটি কী-বিহীন স্তর সম্পর্কে হলে একটি কী যোগ করুন।

একটি search_library কল আপনার সীমার বিপরীতে একটি রিকোয়েস্ট, যদিও এটি ভেতরে দুটি পাস চালাতে পারে।

যে চারটি ত্রুটি সামলাতে হবে

কী না থাকার কারণে কোনো রিকোয়েস্ট কখনো প্রত্যাখ্যাত হয় না। যে কী পাঠানো হয় সেটি যাচাই করা হয়, এবং ভুল কী নীরবে কী-বিহীন হিসেবে গণ্য না করে প্রত্যাখ্যান করা হয় — নইলে আপনি কখনো জানতেই পারতেন না যে সেটি কাজ করা বন্ধ করেছে।

প্রতিটি ত্রুটির বডি id: null সহ একটি JSON-RPC ত্রুটি, তাই স্ট্যাটাস লুকানো থাকলেও কোডটি বলে দেয় আপনি কোন ক্ষেত্রে পড়েছেন।

স্ট্যাটাসJSON-RPC কোডঅর্থকী করবেন
401-32001একটি কী পাঠানো হয়েছে এবং তা বৈধ নয়।Authorization: Bearer … হেডার পরীক্ষা করুন। কী মুছে গেলে নতুন একটি তৈরি করুন — অথবা কী-বিহীন স্তরে চালিয়ে যেতে হেডারটি সরিয়ে দিন।
403-32003কী বৈধ কিন্তু সার্ভার ব্যবহার করতে পারে না: তার অ্যাকাউন্ট স্থগিত।দেখুন নিষিদ্ধ অ্যাকাউন্ট।
429-32004একটি রেট লিমিটে পৌঁছেছে; বার্তা বলে কোনটি। Retry-After হেডার বলে কত সেকেন্ড অপেক্ষা করতে হবে।অপেক্ষা করে আবার চেষ্টা করুন। কী-বিহীন ব্যবহারকারীরা একটি বিনামূল্যের কীও যোগ করতে পারেন।
503-32002আপনার কী এই মুহূর্তে যাচাই করা যায়নি, তাই রিকোয়েস্ট ছেড়ে না দিয়ে প্রত্যাখ্যান করা হয়েছে।ক্ষণস্থায়ী। Retry-After হেডারের (৩০ সেকেন্ড) পর আবার চেষ্টা করুন।

একটি 503 মানে সার্ভার নিশ্চিত করতে পারেনি যে আপনার কী বৈধ, তাই অনুমান না করে রিকোয়েস্ট প্রত্যাখ্যান করেছে। এটি কখনো যাচাই-অযোগ্য কী মেনে নেয় না — যে রিকোয়েস্ট অথেনটিকেট করা যায় না, তা প্রত্যাখ্যাত হয়, ছেড়ে দেওয়া হয় না।

ত্রুটিপূর্ণ রিকোয়েস্ট ও সার্ভারের ত্রুটি

এই চারটি ছাড়া সার্ভার কেবল এগুলো পাঠায়, যা একটি স্বাভাবিক MCP ক্লায়েন্ট কখনো ঘটায় না:

স্ট্যাটাসJSON-RPC কোডঅর্থকী করবেন
400-32700বডি বৈধ JSON নয়।রিকোয়েস্ট ঠিক করুন; অপরিবর্তিত আবার পাঠালে একই ভাবে ব্যর্থ হবে।
400-32600বডি JSON কিন্তু JSON-RPC 2.0 রিকোয়েস্ট নয় (jsonrpc: "2.0" বা method নেই, অথবা একটি ব্যাচ)।প্রতি POST-এ একটি রিকোয়েস্ট পাঠান — MCP 2025-06-18-এ ব্যাচিং নেই।
500-32603সার্ভারে একটি অপ্রত্যাশিত ত্রুটি।কয়েক সেকেন্ড পর একবার আবার চেষ্টা করুন; থেকে গেলে ত্রুটিটি আমাদের।

একটি 502 বা 504 MCP সার্ভার থেকে আসে না — সার্ভার পুনরায় চালু হওয়ার সময় বা পৌঁছানোর অযোগ্য থাকলে এর সামনের প্রক্সি থেকে আসে। এটিকে 500-এর মতো গণ্য করে একটু পরে আবার চেষ্টা করুন।

দুই ধরনের ব্যর্থতা

অথেনটিকেট হওয়ার পর ব্যর্থতা দুটি আকারের একটিতে আসে, এবং পার্থক্যটি ইচ্ছাকৃত।

একটি টুল ত্রুটি আসে isError চিহ্নিত একটি স্বাভাবিক ফলাফল হিসেবে, এমন একটি বার্তাসহ যা আপনার অ্যাসিস্ট্যান্ট পড়ে ব্যবস্থা নিতে পারে। অবৈধ স্কোপ পাঠালে বৈধগুলোর তালিকা ফেরত পান, যাতে মডেল সহজেই একটি আসল স্কোপ দিয়ে আবার চেষ্টা করতে পারে:

scope is required and must be one of: hadith-primary, tafsir-canonical, fiqh-hanafi, …

একটি প্রোটোকল ত্রুটি আসে JSON-RPC ত্রুটি হিসেবে, এমন সমস্যার জন্য যা আপনার অ্যাসিস্ট্যান্ট আবার চেষ্টা করে ঠিক করতে পারে না — যেমন অস্তিত্বহীন টুল চাওয়া, বা ত্রুটিপূর্ণ রিকোয়েস্ট পাঠানো।

পরিস্থিতিআকার
scope নেই বা অবৈধটুল ত্রুটি (isError)
খালি queryটুল ত্রুটি (isError)
কলের মাঝপথে লাইব্রেরি বিচ্ছিন্ন হয়টুল ত্রুটি (isError)
আপনি কল করার সময়ই লাইব্রেরি পৌঁছানোর অযোগ্যপ্রোটোকল ত্রুটি -32601 (নিচে দেখুন)
অজানা টুলের নামপ্রোটোকল ত্রুটি -32601
ত্রুটিপূর্ণ JSON-RPC রিকোয়েস্টপ্রোটোকল ত্রুটি -32600

এই বিভাজন গুরুত্বপূর্ণ কারণ অনেক ক্লায়েন্ট কখনো প্রোটোকল ত্রুটি মডেলকে দেখায় না — সে কেবল দেখে কলটি ব্যর্থ হয়েছে। সংশোধনযোগ্য ভুল ফলাফলের ভেতরে রাখাই একজন অ্যাসিস্ট্যান্টকে হাল ছেড়ে না দিয়ে নিজেকে শুধরে নিতে দেয়।

লাইব্রেরি অনুপলব্ধ থাকলে

লাইব্রেরি সার্ভিসে পৌঁছানো না গেলে tools/list মাঝপথে ব্যর্থ হবে এমন কোনো টুল প্রচার না করে কোনো টুলই ফেরত দেয় না, এবং যেকোনো কলের চেষ্টা প্রোটোকল ত্রুটি -32601 ফেরত দেয়, বার্তায় বলা থাকে লাইব্রেরি সাময়িকভাবে পৌঁছানোর অযোগ্য। এটি HTTP 200, 503 নয়।

এ কারণেই যে ক্লায়েন্ট হঠাৎ শূন্য টুল তালিকাভুক্ত করে, সে আপনাকে একটি আসল সংকেত দেখাচ্ছে, কনফিগারেশন সমস্যা নয়। এক মিনিট সময় দিয়ে আবার সংযুক্ত হোন।

কী হারালে

কী পুনরুদ্ধার করা যায় না — কেবল একটি হ্যাশ সংরক্ষিত থাকে। হারিয়ে গেলে বা ফাঁস হয়েছে মনে হলে, আগে সেটি মুছুন, তারপর একটি বিকল্প তৈরি করুন। আগে মোছা সেই সময়-ফাঁক বন্ধ করে, যখন অন্য কারো কাছে একটি কার্যকর কী থাকে।

বাতিল এই এন্ডপয়েন্টে পৌঁছাতে ৬০ সেকেন্ড পর্যন্ত লাগে। যাচাইকৃত কী এক মিনিট ক্যাশ করা হয়, যাতে প্রতিটি টুল কলে অ্যাকাউন্ট সার্ভিসে যেতে না হয়। যে কী এইমাত্র মুছেছেন তা সেই মিনিট শেষ না হওয়া পর্যন্ত কাজ করতে থাকতে পারে — বাস্তবে প্রায় ৬ সেকেন্ড মাপা হয়েছে, কিন্তু ৬০ ধরে পরিকল্পনা করুন।

ফাঁস হওয়া কী বাতিল করার সময়, গুছিয়ে রাখার সময় নয়, এই সময়-ফাঁক গুরুত্বপূর্ণ। তবুও সঙ্গে সঙ্গে মুছুন; তারপর পরের মিনিটকে এখনো উন্মুক্ত ধরুন, এমন ভাববেন না যে ক্লিক করার মুহূর্তেই দরজা বন্ধ হয়ে গেছে।

কী পরিচালনার পূর্ণ বিবরণ API কী-তে আছে।

GitHub-এ এই পাতা সম্পাদনা করুন