پرش به محتوای اصلی
پرش به محتوای مقاله

محدودیت‌های رابط کاربری در ۲۰ اپلیکیشن ساخته شده با پروتکل MCP

·۳۰ خرداد ۱۴۰۵۵ دقیقه مطالعه
راهنما
درس‌هایی از ساخت ۲۰ اپلیکیشن MCP در ۲ روز
درس‌هایی از ساخت ۲۰ اپلیکیشن MCP در ۲ روز
اشتراک‌گذاری
واقعاً چه چیز جدید است؟

ارائه اولین چارچوب عملیاتی برای ساخت اپلیکیشن‌های مبتنی بر پروتکل MCP که در آن UI به جای HTTP، از طریق خودِ پروتکل منتقل می‌شود و نقش مکمل متن را دارد.

اگر امروز در حال ساخت ابزارهای هوش مصنوعی هستید، عبور از متن‌های ساده به سمت رابط‌های بصری غنی، مرز جدید رقابت است. تیمی که در عرض دو روز ۲۰ اپلیکیشن MCP ساخت، دریافت که آوردن سطوح بصری برند شده به درون یک محیط گفتگو دیگر یک انتخاب لوکس نیست، بلکه ضرورتی برای افزایش سرعت پیمایش اطلاعات (Scannability) است.

این اپلیکیشن‌ها بر اساس مشخصات پروتکل زمینه مدل (Model Context Protocol یا MCP) — که شبیه به یک مترجم استاندارد است و اجازه می‌دهد ابزارهای مختلف با یک زبان مشترک با مدل زبانی صحبت کنند — توسعه یافته‌اند. اپلیکیشن‌های MCP نخستین توسعه رسمی این پروتکل هستند و به ابزار اجازه می‌دهند در کنار نتیجه متنی، یک منبع رابط کاربری (UI resource) نیز برگرداند. این قابلیت به میزبان (Host) اجازه می‌دهد تا iframeهای ایزوله‌شده‌ای (Sandboxed) حاوی نمودارها، جداول، طرح‌های برند شده یا فرم‌های تعاملی که می‌توانند مجدداً ابزارهای دیگر را فراخوانی کنند، رندر کند. این رویکرد، دیوارهای متنی پر از بالت (bullet) را به داشبوردهای بصری تبدیل می‌کند؛ برای مثال، یک لیست مرتب‌شده از درخواست‌های ادغام (Pull Requests) در یک قالب گرافیکی، بسیار سریع‌تر و راحت‌تر از یک فایل CSV یا یک لیست متنی قابل بررسی است.

درس‌هایی از ساخت ۲۰ اپلیکیشن MCP در ۲ روز

معماری اپلیکیشن‌های MCP

به نقل از گزارش وب‌سایت dev.to، معماری فنی این اپلیکیشن‌ها برخلاف انتظار است. یک اپلیکیشن MCP در واقع یک URL میزبانی‌شده نیست که ابزار شما به آن اشاره کند، یا یک iframe شخص ثالث نباشد که شما آن را جاسازی کنید. در عوض، این اپلیکیشن‌ها از طریق خودِ پروتکل MCP و نه HTTP فراخوانی می‌شوند. این یعنی کد رابط کاربری مستقیماً همراه با سرور MCP ارسال شده و از طریق طرح منبع ui:// سرویس‌دهی می‌شود.

برای سازمان‌دهی این ساختار فایل‌ها، روش‌های مختلفی وجود دارد. یک رویکرد این است که فایل‌های UI در کنار ابزارها قرار گیرند (مثلاً قرار دادن project-summary.html در کنار list_projects.py). رویکرد دیگر، استفاده از یک پوشه متمرکز به نام /ui است. این تیم برای بهره‌گیری از سیستم طراحی داخلی خود از React استفاده کرد و ساختار سرور خود را به صورت زیر سازمان‌دهی نمود:

  • پوشه my-mcp-server/tools/ (شامل منطق پایتونی مانند list_projects.py)
  • پوشه my-mcp-server/ui/ (شامل فایل‌های .tsx مانند pattern-card.tsx)
  • قرارگیری فایل‌های package.json و vite.config.mjs در ریشه پوشه /ui

آن‌ها از یک پروژه Vite استفاده کردند که پیکربندی شده بود تا در زمان ساخت (Build time)، برای هر فایل TSX یک فایل HTML مجزا تولید کند.

نرده‌های ایمنی در پیاده‌سازی فنی

طبق مستندات این تیم، برای تضمین پایداری در کلاینت‌های مختلف، چندین قانون سخت‌گیرانه تعریف شد تا این واقعیت پذیرفته شود که اپلیکیشن‌های MCP صرفاً برای «غنی‌سازی» (Enrichment-only) هستند:

  • طراحی متن-محور: پاسخ متنی همچنان قرارداد اصلی است. اگر میزبان (Host) از این افزونه پشتیبانی نکند (مانند Claude Code یا اکثر کلاینت‌های مبتنی بر ترمینال)، ویژگی _meta.ui به‌طور بی‌صدا نادیده گرفته می‌شود. اگر پاسخ واقعی را فقط در UI قرار دهید و پاسخ متنی را خالی بگذارید، ابزار برای نیمی از کاربران به‌طور کامل از کار می‌افتد.
  • کامپوننت‌های بدون وضعیت (Stateless): اجزا باید «ساده»، خالص و خسته‌کننده باشند. تمام داده‌ها باید به عنوان props از نتیجه ابزار پاس داده شوند. هیچ فراخوانی (Fetch) از داخل اپلیکیشن، هیچ ماشین وضعیتی (State Machine) و هیچ فراخوانی مستقیم به API نباید وجود داشته باشد. این کار باعث می‌شود UI یک بازنمود قطعی (Deterministic render) از محاسبات ابزار باشد.
  • مرزهای امنیتی: چون اپلیکیشن‌های MCP در یک iframe ایزوله (Sandboxed) اجرا می‌شوند، محتوا برای میزبان قابل مشاهده است. در نتیجه، توسعه‌دهندگان هرگز نباید از اپلیکیشن‌های MCP برای جمع‌آوری اطلاعات حساس (Secrets) استفاده کنند. این شامل کلیدهای API در فیلدهای فرم یا توکن‌های OAuth می‌شود. در عوض، توسعه‌دهندگان باید از روش استخراج URL یا یک فرم خارجی امن استفاده کنند و احتمالاً آن را با اپلیکیشنی جفت کنند که برای بررسی وضعیت، یک نقطه انتهایی (Endpoint) را نظارت (Poll) می‌کند.

مشکل پراکندگی میزبان‌ها

یکی از دردناک‌ترین بخش‌های چرخه توسعه، نبود استانداردهای تست است. با وجود وجود یک مشخصه (Spec)، میزبان‌ها آن را با سلیقه و نظرات خاص خود در مورد عرض کانتینر، فاصله (Padding)، تایپوگرافی پیش‌فرض و مدیریت حالت تیره/روشن (Dark/Light mode) پیاده می‌کنند:

  • ChatGPT: در مرورگر به‌صورت عریض رندر می‌کند.
  • Claude: در یک پنل گفتگو به‌صورت باریک رندر می‌شود.
  • VS Code: پنل کناری آن توصیف شده به عنوان یک «ماجراجویی کوچک» جداگانه با ویژگی‌های خاص.
  • موبایل: محدودیت‌های منحصربه‌فرد و خاص خود را ارائه می‌دهد.

به دلیل نبود ابزارهایی مانند Storybook یا هارنس Playwright در چرخه CI، فرآیند تکرار کاملاً دستی است: ساخت، نصب در کلاینت A، بررسی چشمی، نصب در کلاینت B، بررسی چشمی و تکرار مجدد. برای کاهش این مشکل، توسعه‌دهندگان توصیه می‌کنند از ابتدا قالب‌هایی طراحی کنید که در عرض‌های کم به‌طور منعطف و مناسب تغییر شکل دهند (Reflow). استفاده از یک File Watcher برای بازسازی کدها هنگام ذخیره، به کاهش اصطکاک کمک کرد، اگرچه تضمین کیفیت بصری (Visual QA) همچنان کند است.

این تجربه نشان می‌دهد صنعت به سمت رابط‌های کاربری «صرفاً غنی‌کننده» می‌رود. هرچند مشخصات فعلی در مراحل اولیه است و ابزارها محدود هستند، اما توانایی جاسازی رندرهای قطعی از داده‌ها مستقیماً در دل یک گفتگو، جهشی عظیم در تجربه کاربری (UX) نسبت به متن‌های خام است.

برای کسانی که به دنبال تکامل بعدی هستند، MCP Tasks در حال حاضر در مرحله آزمایشی است. این قابلیت ممکن است در نهایت الگوی «ناممکن» فعلی — یعنی جمع‌آوری ورودی‌های ابزار از طریق UI پیش از آنکه فراخوانی ابزار واقعاً انجام شود — را حل کند.

گام بعدی شما

  • اگر توسعه‌دهنده هستید، در طراحی UI برای مدل‌ها، متن را به عنوان «پشتیبان» (Fallback) نگه دارید تا در کلاینت‌های مختلف شکست نخورید.
  • برای کاهش اصطکاک در تست، از File Watcher برای بازسازی سریع کدها استفاده کنید.
  • منتظر معرفی MCP Tasks باشید که احتمالاً مشکل دریافت ورودی‌های کاربر از طریق UI پیش از فراخوانی ابزار را حل خواهد کرد.

اما داستان سخت‌افزاری این تحول حتی شگفت‌انگیزتر است — به تحلیل ما درباره‌ی تراشه‌های Blackwell مراجعه کنید.

چرا این موضوع مهم است؟

این رویکرد با تکیه بر تجربه عملی توسعه‌دهندگان، استانداردی جدید برای تعامل انسان و ماشین ایجاد می‌کند که در آن دقت متن و زیبایی بصری هم‌زمان حفظ می‌شوند. اعتبار این متدولوژی در کاهش نرخ خطای رابط‌های کاربری در محیط‌های چندگانه (Cross-platform) نهفته است.

تأثیر برای ایران

برنامه‌نویسان ایرانی می‌توانند با استفاده از این پروتکل باز، ابزارهای تخصصی‌تری بسازند که در کلاینت‌های مختلف هوش مصنوعی به صورت بصری نمایش داده شود و وابستگی به میزبانی‌های متمرکز را کاهش دهند.

·نگاه ما
تحریریه دات‌هوش

تغییر پارادایم از «متن» به «رابط کاربری غنی» در MCP نشان می‌دهد که مدل‌های زبانی دیگر تنها تولیدکننده محتوا نیستند، بلکه در حال تبدیل شدن به سیستم‌عامل‌هایی برای اپلیکیشن‌های تک‌منظوره هستند. نکته کلیدی این است که UI در اینجا نقش «تفسیرگر بصری» را دارد، نه لایه منطق؛ یعنی هوش مصنوعی تصمیم می‌گیرد چه داده‌ای بیاید و UI فقط آن را نمایش می‌دهد. این جداسازی کامل منطق از نمایش، تنها راه جلوگیری از توهمات بصری در مقیاس وسیع است.

منابع

این گزارش با خط‌لولهٔ خودکار دات‌هوش از منابع معتبر جهانی تدوین و زیر نظر تحریریه منتشر شده است. روش کار ما

گفتگو

پنج‌شنبه‌های هوش‌محور

بسته‌ی هفتگی دات‌هوش

۵ خبر، ۲ ابزار، ۱ پرامپت در هر شماره. به‌زودی راه‌اندازی می‌شود — هر پنج‌شنبه صبح.

خبر کلیدی
ابزار کاربردی
پرامپت حرفه‌ای
تحلیل پژوهش
به‌زودی
زاویه‌ی ایرانی
به‌زودی
تمرین این هفته
به‌زودی

راهنماهای دات‌هوش

راهنماهای کاربردیِ دات‌هوش برای کار با هوش مصنوعی — از همین‌جا شروع کنید:

دات‌هوش

راهنمای فارسی هوش مصنوعی — با نگاه به ایران

اخبار روزانه، معرفی ابزارها و مدل‌ها، و آموزشِ کار با هوش مصنوعی؛ همیشه با این پرسش که از ایران چه چیزی کار می‌کند و چه چیزی نه.