لاراول MCP به نسخه 1.0 رسید
خلاصهٔ کاملتر
تیم لاراول Laravel MCP 1.0 رو منتشر کرد، اولین نسخهی پایدار پکیجی که باهاش میتونی تو اپ لاراولیت یه MCP server بسازی (یعنی سروری که ابزارها و دادههای اپت رو در اختیار اپلیکیشنهای هوش مصنوعی میذاره). این نسخه از ریویژن 2026-07-28 پروتکل پشتیبانی میکنه که تو اون، server/discover جای تبادل اولیهی initialize رو گرفته. کلاینتهای قدیمی که هنوز با initialize وصل میشن هم بدون مشکل کار میکنن؛ سرور بسته به اینکه کدوم رو بخوان، با نسخهی 2025-11-25 یا 2025-06-18 جوابشون رو میده.
جذابترین قابلیت جدید کاتالوگ ابزار قابلجستجوئه. هر تعریف ابزاری که برای مدل میفرستی، تو context window ـش جا اشغال میکنه؛ context window یعنی همون مقدار اطلاعاتی که مدل یکجا میتونه باهاش کار کنه. با ToolSearch ابزارهای پرکاربرد رو تو لیست اصلی نگه میداری و بقیه رو میذاری پشت یه سرچ:
protected array $tools = [
// همیشه در دسترس agent
CurrentWeatherTool::class,
// فقط وقتی لازم شد سرچ میشه
ToolSearch::class => [
HistoricalWeatherTool::class,
WeatherAlertsTool::class,
],
];پکیج برای این کار دوتا ابزار ثبت میکنه: search_tools که یه کوئری و سقف تعداد نتیجه میگیره و ابزارهای مچشده رو با اسم، توضیح و ورودی موردانتظارشون برمیگردونه، و execute_tools که یکی یا چندتا ابزار رو با اسم اجرا میکنه. نتیجه اینه که agent بدون لود کردن کل کاتالوگ ابزار مورد نیازش رو پیدا میکنه.
سرور حالا میتونه به کلاینت بگه کدوم پاسخها رو کش کنه، چقدر نگه داره و آیا اجازه داره بین کاربرها به اشتراک بذاره یا نه. مقدار پیشفرض رو با یه attribute به اسم Cacheable میذاری و با متد cacheHints() برای هر متد جدا override میکنی. پاسخی که ttlMs نداشته باشه یا صفر باشه کش نمیشه و خود tool callها اصلاً قابل کش نیستن.
یه تغییر بزرگ دیگه stateless شدن سروره: هر درخواست مستقل پردازش میشه و نسخهی پروتکل و قابلیتهای کلاینت تو params._meta میان. هدر MCP-Session-Id و متدهای Request::sessionId() و Request::setSessionId() و رویداد SessionInitialized حذف شدن، پس اگه میخوای درخواستهای مرتبط رو به هم وصل کنی باید شناسهی خودت رو پاس بدی. سمت OAuth هم پشتیبانی از PKCE اجباری شده و Client ID Metadata Documents اضافه شده؛ تو این حالت clientSecret برابر null میشه، پس ستون دیتابیسش باید null رو قبول کنه.
برای آپگرید از 0.9 حواست به هدرها باشه. میدلور جدید ValidateMcpHeaders روی همهی روتهای Mcp::web() اجرا میشه و درخواستهای POST با پروتکل جدید باید هدرهای MCP-Protocol-Version و Mcp-Method هماهنگ با بدنه داشته باشن. برای tools/call، prompts/get و resources/read هدر Mcp-Name هم لازمه. ناهماهنگی هدر یعنی HTTP 400 با کد خطای JSON-RPC برابر -32020. تستهایی که با postJson() این درخواستها رو میفرستن هم باید آپدیت بشن.
نکات کلیدی:
- Laravel MCP 1.0 از ریویژن پروتکل 2026-07-28 پشتیبانی میکنه و server/discover جای initialize رو گرفته
- ToolSearch با دوتا ابزار search_tools و execute_tools جلوی پر شدن context window رو میگیره
- کشهینت با attribute Cacheable و متد cacheHints()؛ ابزارها اصلاً کش نمیشن
- سرور stateless شد و MCP-Session-Id و رویداد SessionInitialized حذف شدن
- OAuth حالا PKCE اجباری داره و Dynamic Client Registration منسوخ شده
- ناهماهنگی هدر تو پروتکل جدید خطای HTTP 400 با کد -32020 میده




