تصور کنید یک عامل (Agent) — دستیاری هوشمند که میتواند ابزارها را اجرا کند — همان دسترسیای را برای پاک کردن کل پایگاهدادهی تولیدی شما داشته باشد که برای خواندن یک فایل متنی ساده دارد. این دقیقاً همان کابوسی است که در ۲۵ ژوئیه ۲۰۲۶ با انتشار mcp-fabric-toolmesh توسط توسعهدهندهای به نام deghosal به چالش کشیده شد. طبق اعلام سازنده، این لایهی حکمرانی متنباز طراحی شده تا روند خطرناک «اعتماد به کدِ عامل» را در محیطهایی که دسترسی به ابزارهای حساس وجود دارد، متوقف کند.
زمینه و رشد MCP
در حال حاضر، اکثر توسعهدهندگان سرورهای پروتکل زمینهٔ مدل (Model Context Protocol یا MCP) — که شبیه به یک مترجم استاندارد است تا مدلهای مختلف بتوانند با ابزارهای مختلف صحبت کنند — را مستقیماً به عاملهایی مثل Claude، ChatGPT، VS Code یا Cursor متصل میکنند. در حالی که این روش برای نمونهسازی سریع (Prototyping) عالی است، اما یک شکاف نظارتی عظیم ایجاد میکند. به گزارش این پروژه، در حالی که مخزن رسمی سرورهای MCP به ۸۸,۹۰۰ ستاره و ۱۱,۳۰۰ فورک رسید، اکوسیستم همچنان فاقد روشی استاندارد برای محدود کردن قابلیتهای خاص هر ابزار بود. این چالشهای ساختاری با گزارشاتی مبنی بر شکست یکسوم سرورهای محبوب MCP در آزمونهای کاربردپذیری عاملها همسو است که نشان میدهد استقرار عملیاتی این پروتکل دشوارتر از پیشبینیهاست.
نویسنده این ابزار زمانی به این ریسک پی برد که از سه سرور MCP استفاده میکرد. دو سرور برای جستوجوی مستندات و کد (فقط خواندنی) بودند، اما سرور سوم توانایی ارتقای نسخههای نرمافزاری (Builds) به محیط تولید (Production) را داشت. بدون وجود یک سیاست نظارتی، سیستم تایید (Approval) یا ردپای حسابرسی (Audit Trail)، هر سه سرور سطح دسترسی و اعتماد یکسانی داشتند. این موضوع یک مشکل بنیادی را برجسته کرد: MCP استاندارد کرد که عاملها چگونه با ابزارها صحبت کنند، اما استاندارد نکرد که پس از اتصال چندین ابزار، چه اتفاقی بیفتد. در واقع این پیچیدگیهای اجرایی، بخشی از همان شکاف آشنایی است که دلیل اصلی شکست پذیرش سرورهای MCP در مقیاس واقعی تلقی میشود.
جایگزینهای شکستخورده
بر اساس مستندات پروژه، پیش از ساخت mcp-fabric-toolmesh، سه مسیر جایگزین بررسی شد که همگی با شکست مواجه شدند:
- درگاههای API (API Gateways): اینها ترافیک HTTP را هدایت میکنند اما ساختار ابزارهای MCP را نمیفهمند. شما نمیتوانید قانونی بنویسید که اجازه دهد دستور
deployment:promoteاجرا شود اماdeployment:rollbackمسدود گردد، زیرا درگاه نسبت به این ابزارهای خاص کور است. - میانافزارهای سفارشی (Custom Middleware): این ابزارها در ابتدا جواب میدهند، اما زمانی که توسعهکننده اصلی پروژه را ترک کند، شکست میخورند. آنها فاقد رابط کاربری (UI) هستند و برای هر سرور جدید، نیاز به تغییر دستی کد دارند.
- اتصال مستقیم (Direct Wiring): همان حالت پیشفرض که در آن به کد عامل اعتماد میکنید؛ حالتی که وقتی نتوانید پاسخ دهید «این عامل واقعاً چه کاری میتواند انجام دهد؟»، مدیریت آن غیرممکن میشود.

برای پر کردن این شکاف، mcp-fabric-toolmesh یک سطح کنترل (Control Plane) را با استفاده از مجموعهای از FastAPI، PostgreSQLات، Redis و Open Policy Agent (OPA) پیادهسازی کرده است.
جزئیات فنی و مکانیسمها
این سیستم از یک گردشکار فنی خاص برای گذار از «اعتماد کورکورانه» به «تأییدیه» استفاده میکند:
- کشف خودکار و نرمالسازی: سیستم سرورهای MCP را ثبت کرده و ابزارها را بهطور خودکار شناسایی میکند. نامهای خام ابزارها به قابلیتهای سطح دامنه تبدیل میشوند؛ برای مثال، هر دو دستور
/promoteDeployو/promoteبه قابلیتdeployment:promoteنگاشت میشوند. - اجرای سیاستها: هر درخواست ابتدا به سیاستهای OPA ارسال میشود. سیستم از توکنهای شناسایی برای هر کلاس از عاملها و «بستههای قابلیت» (Capability Packs) برای دستهبندی دسترسیها استفاده میکند.
- حضور انسان در حلقه (Human-in-the-Loop): قابلیتهای حساس، نیاز به تایید انسانی را فعال میکنند. این امر تضمین میکند که اقدامات حیاتی برای بازبینی متوقف شوند.
- مشاهدهپذیری و هشدارها: تمام عملیات برای یک ردپای حسابرسی کامل ثبت شده و در صورت افت کیفیت یا خرابی سرورها، هشدارها بهطور خودکار ارسال میشوند.
چالشهای توسعه
فرآیند توسعه نشان داد که یک سطح کنترل بدون رابط کاربری (UI)، در واقع هیچ کنترلی ایجاد نمیکند. در ابتدا، نقشه راه پروژه به این صورت بود که API در نسخه v0.1.0، رابط مدیریت (Admin UI) در v0.2.0 و سیستم حسابرسی/هشدارها در v0.3.0 منتشر شوند. اما چون هر لایه به لایه قبلی وابسته بود، معمار پروژه تصمیم گرفت همه آنها را در نسخه v0.1.0 ادغام کند. این تصمیم زمان توسعه را سه برابر کرد اما از ارسال قطعات گسسته و غیرکاربردی جلوگیری کرد.
بخش قابل توجهی از زمان روی جنبههای «انسانی» نرمافزار صرف شد:
- CUJs: ترسیم مسیرهای کاربر (Customer User Journeys) برای ثبت سرورها، بازبینی تاییدیه ها و حسابرسی حوادث، شامل طراحی حالتهای «خالی» و «خطا».
- تستها: نوشتن ۶۸ سناریوی تست انتهایی (E2E) با استفاده از Playwright برای رابط کاربری، که زمان بسیار بیشتری نسبت به تستهای بکاند گرفت.
- زیرساخت: کلنجار رفتن با Poetry v2 در دستور
--no-updateو رد شدن وابستگیهای TypeScript در npm 11.
علاوه بر این، پروژه هزینه پنهان «تفکر نامنظم» را آشکار کرد. نویسنده گزارش داد که با استفاده از حالت سختگیرانهی Mypy، تعداد ۱۷۰ خطای تایپی در ۴۱ فایل اصلاح شد. اینها باگهای ساده نبودند، بلکه تصمیمات طراحی ناقصی بودند که ابزار Mypy آنها را مجبور به شفافیت کرد.
تأثیر کاربردی
از منظر کاربردی، این تغییر، عملیات هوش مصنوعی را از «اعتماد به کد» به «تأیید هر درخواست» منتقل میکند. برای یک توسعهدهنده، این یعنی یک عاملِ مهندسی انتشار اکنون میتواند درخواستی برای استقرار کد بفرستد که برای امضای انسانی متوقف میشود، در حالی که یک عامل برنامهنویس همچنان محدود به جستوجوی مستندات (فقط خواندنی) میماند. این انتقال از دسترسی مطلق به کنترل دقیق، تنها ۳۰ دقیقه زمان پیکربندی گرفت.
این پروژه ثابت میکند که با مقیاسپذیری اکوسیستم MCP، گلوگاه دیگر این نیست که عاملها چگونه با ابزارها صحبت کنند، بلکه این است که انسانها چگونه این گفتگوها را کنترل کنند. صنعت به سمتی میرود که لایهی حکمرانی، تنها چیزی است که مانع از پاک شدن تصادفی یک پایگاهداده تولیدی توسط یک عامل خودگردان میشود.
گام بعدی شما
- اگر در حال حاضر سرورهای MCP را اجرا میکنید، ارزیابی کنید که آیا عاملهای شما دسترسیهای بیش از حد دارند یا خیر.
- مخزن GitHub پروژه (github.com/deghosal-2026/mcp-fabric) یا صفحه PyPI (pypi.org/project/mcp-fabric-toolmesh) را بررسی کنید تا ببینید آیا یک لایهی سیاستگذاری متمرکز با معماری فعلی عاملهای شما سازگار است.
اما داستان سختافزاری این تحولات حتی شگفتانگیزتر است — به تحلیل ما دربارهی تراشههای Blackwell مراجعه کنید.




گفتگو