
AI · فرانتاند · MCP
MCP برای توسعهدهندگان فرانتاند: چطور Model Context Protocol روش ساخت نرمافزار را تغییر میدهد؟
۱۴۰۵ مهر · 12 دقیقه مطالعه
چند سال اخیر توسعهدهندههای فرانتاند یاد گرفتهاند از AI داخل ادیتور استفاده کنند: ساخت کامپوننت، توضیح خطا، refactor کردن hook یا نوشتن تست. قدم بعدی جذابتر است: اگر مدل فقط کدی را که به آن میدهیم نخواند و بتواند سیستمهای اطراف فرانتاند را هم بشناسد و از آنها استفاده کند چه؟
اینجاست که Model Context Protocol یا MCP مهم میشود. MCP یک استاندارد باز برای اتصال اپلیکیشنهای AI به دادهها و ابزارهای موردنیاز آنهاست. یک MCP Server میتواند Tool، Resource و Prompt ارائه کند و یک MCP Host مثل IDE، coding agent یا اپلیکیشن AI اختصاصی میتواند آنها را کشف و استفاده کند.
MCP در یک جمله
MCP را میتوان یک قرارداد مشترک بین اپلیکیشن AI و قابلیتهایی دانست که اطراف آن قرار دارند.
اپلیکیشن هوش مصنوعی
(مثلاً IDE یا coding agent)
|
اتصال از طریق MCP
|
v
MCP Server
┌─────────┼──────────┐
v v v
Tools Resources Prompts
(اقدامها) (اطلاعات) (الگوها)
| |
v v
APIها، Git، CI، دیتابیس،
Design System و دادههای محصول
چطور این نمودار را بخوانیم؟ اپلیکیشن هوش مصنوعی به یک MCP Server وصل میشود. سرور، اقدامهای مشخص را به شکل Tool، اطلاعات موردنیاز را به شکل Resource و الگوهای آماده تعامل را به شکل Prompt در اختیار آن قرار میدهد. این قابلیتها میتوانند AI را به سیستمهایی مثل APIها، مخزن کد، دیتابیس و Design System متصل کنند.
بدون یک پروتکل مشترک، هر اتصال AI معمولاً تبدیل به یک adapter اختصاصی میشود. MCP یک زبان و قرارداد مشترک برای این integrationها ایجاد میکند.
چرا یک Frontend Developer باید به MCP اهمیت بدهد؟
در نگاه اول MCP شبیه یک موضوع زیرساختی در دنیای AI است. اما فرانتاند دقیقاً در مرز بین intent کاربر، APIها، business ruleها، design system و ابزارهای توسعه قرار دارد؛ بنابراین یکی از جاهایی است که MCP میتواند واقعاً کاربردی باشد.
فرض کنید به coding agent بگویید:
- «قرارداد API مربوط به checkout را پیدا کن و بگو فرم فعلی کدام فیلدها را پوشش نمیدهد.»
- «کامپوننتهای design system را بررسی کن و این صفحه را با primitiveهای موجود بساز.»
- «خطاهای production مربوط به این route را بررسی کن و بگو مشکل احتمالاً سمت کلاینت است یا نه.»
- «این کامپوننت Figma را با Button، Modal و Form موجود در پروژه به React تبدیل کن.»
تفاوت مهم اینجاست که مدل دیگر فقط به contextای که دستی در چت paste میکنیم محدود نیست؛ میتواند از قابلیتهایی که بهصورت صریح در اختیارش قرار گرفتهاند استفاده کند.
سه Primitive مهم MCP برای Frontend Developerها
۱. Tools
Toolها functionهای قابل اجرا هستند. وقتی agent باید کاری انجام دهد یا اطلاعاتی را بهصورت dynamic دریافت کند، Tool کاربرد دارد.
get_component({ name: "Button" })
get_api_schema({ route: "/api/checkout" })
search_errors({ service: "web", route: "/checkout" })
برای یک تیم فرانتاند، Tool میتواند متادیتای Storybook را جستوجو کند، قرارداد OpenAPI را بررسی کند، component registry را search کند، visual regression را اجرا کند یا دادههای observability را برگرداند.
۲. Resources
Resourceها context و داده ساختیافته در اختیار AI قرار میدهند. آنها بیشتر شبیه اطلاعاتی هستند که اپلیکیشن AI آنها را میخواند تا functionهایی که اجرا میکند.
مثالها:
- مستندات design system
- source یا metadata کامپوننتها
- OpenAPI schema
- Architecture Decisionها
- مستندات repository
- تنظیمات محصول
۳. Prompts
Promptها templateهای قابل استفاده مجدد هستند. یک تیم میتواند workflowهایی مثل «این کامپوننت React را از نظر accessibility بررسی کن»، «یک feature مطابق conventionهای فرانتاند بساز» یا «برنامه مهاجرت Pages Router به App Router را آماده کن» ارائه کند.
MCP به این معنی نیست که باید آن را داخل هر React App قرار دهیم
این تفاوت خیلی مهم است.
معمولاً MCP Server چیزی نیست که آن را داخل bundle مرورگر نصب کنیم. در معماری رایج، React یا Next.js همچنان یک اپلیکیشن عادی است و MCP اطراف اپلیکیشن و سیستمهایی قرار میگیرد که agent برای انجام کار به آنها نیاز دارد.
┌──────────────┐
│ AI Host │
│ IDE / Agent │
└──────┬───────┘
│ MCP
┌─────────────┼──────────────┐
▼ ▼ ▼
Design System Backend Observability
│ │ │
└─────────────┼──────────────┘
▼
React / Next.js
Product
بنابراین فرانتاند میتواند از MCP استفاده کند بدون اینکه الزاماً مسئول اجرای خود پروتکل باشد.
یک مثال عملی با React
فرض کنید تیم شما یک design system بزرگ دارد و developer از AI میخواهد یک صفحه Settings بسازد. بدون MCP، agent ممکن است React را خوب بشناسد اما اطلاعات دقیقی درباره کامپوننتهای داخلی شرکت نداشته باشد.
با یک MCP Server میتوان Tool جستوجوی کامپوننت ساخت:
search_components({
query: "settings form",
framework: "react"
})
Server میتواند کامپوننتهای مرتبط، propها، مثالهای استفاده و لینک مستندات را برگرداند. Agent سپس بهجای ساخت یک فرم اختصاصی جدید، بر اساس design system واقعی کد تولید میکند.
این یکی از قویترین use caseهای MCP در فرانتاند است: تبدیل دانش سازمانی به context قابل دسترسی برای ماشین.
یک کاربرد مهم دیگر: Frontend Development آگاه از API
تیمهای فرانتاند زمان زیادی را به خاطر این از دست میدهند که قرارداد API در جای دیگری قرار دارد. Swagger، repository بکاند، Postman، ticketها و implementation واقعی گاهی با هم اختلاف دارند.
یک MCP Server میتواند قرارداد معتبر API را در اختیار agent قرار دهد. توسعهدهنده میتواند بگوید:
«فرم checkout را بر اساس قرارداد فعلی API پیادهسازی کن.
فیلدهایی را که validation سمت سرور دارند هم مشخص کن.»
Agent قرارداد را بررسی میکند، request و response shape را میفهمد، فرم را تولید میکند و مرز validation را مشخص میکند.
این کار TypeScript یا runtime validation را جایگزین نمیکند؛ فقط باعث میشود AI با اطلاعات بهتری کار کند.
MCP و Next.js
توسعهدهندههای Next.js هم در development و هم در معماری محصول میتوانند از MCP استفاده کنند.
در محیط توسعه میتوان این موارد را در اختیار agent گذاشت:
- مستندات routeها و APIها
- metadata دیتابیس یا Prisma
- تنظیمات authentication
- Feature Flagها
- اطلاعات deployment
- دادههای error و performance
برای مثال agent میتواند route را بررسی کند، مرز Server/Client را بفهمد، قرارداد API مرتبط را بخواند و پیشنهاد دهد یک کامپوننت بهتر است Server Component باقی بماند یا به Client Component تبدیل شود.
نکته مهم این است که MCP context را فراهم میکند؛ تصمیم مهندسی همچنان با developer است.
MCP Apps؛ جایی که Frontend حتی مهمتر میشود
داستان با MCP Apps جذابتر میشود. اکوسیستم MCP حالا extensionای دارد که اجازه میدهد Toolها به UI Resourceهای تعاملی متصل شوند. در نتیجه یک Tool فقط متن یا JSON برنمیگرداند؛ در hostهای سازگار میتواند یک interface تعاملی ارائه کند.
اینجا نقش frontend developer جدیتر میشود. دیگر فقط UIای نمیسازید که API را صدا بزند؛ میتوانید UIای بسازید که بخشی از یک workflow مبتنی بر AI باشد.
مثلاً Toolای را تصور کنید که incidentهای مشتریان را جستوجو میکند. بهجای اینکه ۲۰۰ رکورد را به شکل متن به مدل بدهد، میتواند یک جدول تعاملی ارائه کند که کاربر در آن filter، sort، مشاهده و انتخاب انجام دهد.
User
│
▼
AI asks MCP tool
│
▼
Tool returns data + UI resource
│
▼
Host renders interactive React UI
│
▼
User explores / confirms / acts
این خیلی شبیه frontend engineering معمولی است: state، interaction، accessibility، responsive layout، loading state، error handling و confirmation کاربر همچنان مهماند.
MCP چه تغییری در Workflow فرانتاند ایجاد میکند؟
قبل از MCP، workflow معمول AI-assisted frontend اغلب این شکلی است:
- context را داخل مدل paste میکنیم.
- conventionهای پروژه را توضیح میدهیم.
- نمونه API را paste میکنیم.
- مستندات component را paste میکنیم.
- کد تولید میشود.
- فرضیات اشتباه را دستی اصلاح میکنیم.
با MCP درست طراحیشده، بخش بیشتری از این context قابل کشف میشود:
- feature را توضیح میدهیم.
- Agent Tool و Resource مرتبط را پیدا میکند.
- قراردادهای معتبر را میخواند.
- در همان محدودیتها implementation را تولید میکند.
- Developer خروجی را review و test میکند و مسئولیت نتیجه را بر عهده دارد.
پس مهمترین افزایش بهرهوری این نیست که «AI سریعتر JSX مینویسد». نکته مهم این است که AI زمان کمتری را صرف حدس زدن درباره نحوه کار سازمان شما میکند.
یک Frontend MCP Server چه چیزهایی باید expose کند؟
اگر بخواهم برای یک تیم React/Next.js چنین سیستمی بسازم، از کوچک شروع میکنم.
Design System
- جستوجوی کامپوننت
- خواندن propها
- خواندن مثالهای استفاده
- پیدا کردن design tokenها
API Contracts
- جستوجوی endpointها
- خواندن schemaها
- بررسی نیازهای authentication
- پیدا کردن validation ruleها
Project Context
- Architecture Decisionها
- Conventionهای فرانتاند
- قوانین routing
- Conventionهای testing
Production Feedback
- خطاهای اخیر frontend
- Core Web Vitals و دادههای performance
- اطلاعات release
- وضعیت feature flagها
از capabilityهای read-only شروع کنید. عملیات write را فقط وقتی اضافه کنید که authorization، validation، auditability و confirmation انسانی کاملاً مشخص باشند.
امنیت از خود Demo مهمتر است
MCP به AI دسترسی به ابزار و داده میدهد؛ بنابراین security نباید بعداً به آن اضافه شود.
یک integration واقعی MCP باید این موارد را در نظر بگیرد:
- Least Privilege: فقط داده و action موردنیاز را expose کنید.
- Authentication و Authorization: صرفاً داخلی بودن connection به معنی trusted بودن آن نیست.
- Input Validation: argumentهای Tool را untrusted input در نظر بگیرید.
- Auditability: عملیات مهم باید قابل ردیابی باشند.
- Human Confirmation: عملیات مخرب یا حساس باید تأیید صریح کاربر داشته باشند.
- Data Boundaries: secret یا اطلاعات غیرضروری مشتری را در اختیار مدل نگذارید.
مشخصات MCP در سال ۲۰۲۶ نیز به سمت authorization قویتر و یک هسته stateless حرکت کرده است که استقرار remote را مقیاسپذیرتر میکند. اما قابلیتهای خود پروتکل، مسئولیت security در سطح application را حذف نمیکنند.
چه زمانی MCP بیش از حد است؟
MCP همیشه بهترین جواب نیست.
اگر فقط یک API ساده و یک قابلیت AI دارید، یک function call مستقیم ممکن است بسیار سادهتر باشد. اگر agent فقط مقدار کمی context ثابت نیاز دارد، قرار دادن مستقیم همان context شاید کافی باشد.
MCP زمانی جذابتر میشود که:
- چند AI client به قابلیتهای یکسان نیاز داشته باشند؛
- Toolها و Resourceها از چند سیستم عبور کنند؛
- به integration قابل استفاده مجدد بهجای adapterهای one-off نیاز داشته باشید؛
- دانش داخلی سازمان مرتباً توسط agentها موردنیاز باشد؛
- workflowهای تعاملی AI بخواهید، نه فقط chat.
نقش Frontend Engineer در حال تغییر است
MCP اهمیت frontend developer را کمتر نمیکند؛ سطحی را که میتواند روی آن کار کند بزرگتر میکند.
Frontend engineer مدرن ممکن است در سه لایه کار کند:
- UI سنتی: React، Next.js، accessibility، performance، state و responsive design.
- AI Interaction: streaming، tool call، human-in-the-loop، structured output و failure state.
- Context Infrastructure: ارائه context و capabilityهای درست محصول از طریق MCP یا پروتکلهای مشابه.
مهارت اصلی حفظ کردن APIهای MCP نیست. مهارت مهم این است که بدانید مدل چه contextای باید داشته باشد، چه actionهایی اجازه انجام دارد و کاربر چطور کنترل را حفظ میکند.
جمعبندی
MCP را بهتر است زیرساختی برای کاربردی کردن AI در نرمافزار واقعی بدانیم. برای تیمهای frontend، ارزش اصلی MCP جایگزین کردن React یا تولید سریعتر JSX نیست؛ ارزش آن اتصال AI به سیستمهایی است که واقعاً نحوه کار frontend را مشخص میکنند: design system، API contract، product data، repository، observability و در نهایت UI تعاملی.
اگر React یا Next.js کار میکنید، اولین پروژه MCP شما نباید یک پلتفرم عظیم باشد. یک read-only server کوچک بسازید که design system یا API contractهای پروژه را expose کند. بعد آن را به coding agent خود وصل کنید و ببینید چقدر از contextی که قبلاً باید دستی توضیح میدادید حذف میشود.
از همینجا MCP از یک buzzword دیگر در دنیای AI تبدیل میشود به یک قطعه واقعی از زیرساخت مهندسی frontend.