18 مهر 1404
پروتکل زمینه مدل (MCP) شیوه تعامل مدلهای زبانی بزرگ (LLMs) با ابزارها و برنامههای خارجی را متحول میکند و با انتزاع پیچیدگیهای API، آنها را قادر میسازد تا وظایف پیچیده و 'قدرتمند' را انجام دهند. این راهنما نحوه راهاندازی و ساخت سرورهای MCP سفارشی با استفاده از Docker را نشان میدهد و به LLMها قابلیتهایی مانند هک کردن، مدیریت وظایف و بازیابی دادهها را به روشی استاندارد و ساده میدهد.

پروتکل زمینه مدل (MCP) هوش مصنوعی (AI) و مدلهای زبانی بزرگ (LLMs) را قادر میسازد تا با اتصال آنها به ابزارهای خارجی، عملیات پیشرفتهای را انجام دهند. مثالها شامل یکپارچهسازی Claude با Obsidian، Brave یا Kali Linux است که قابلیت پروتکل را برای توانمندسازی LLMها در اجرای وظایفی مانند هک کردن نشان میدهد.
تجهیز LLMها به دسترسی به ابزارها برای بهرهوری حیاتی است، اما تعامل مستقیم با کد برنامه یا رابطهای کاربری گرافیکی (GUIs) ناکارآمد است. در حالی که رابطهای برنامهنویسی کاربردی (APIs) امکان تعامل برنامهنویسی را فراهم میکنند، مستندات پیچیده آنها و نیاز به اجرای کد توسط LLMها برای تعامل، چالشهای قابل توجهی را ایجاد میکند.
MCP روشی استاندارد برای دسترسی LLMها به ابزارها فراهم میکند، شبیه به اینکه چگونه USBC اتصالات کابل را استاندارد کرد. MCP که توسط Anthropic توسعه یافته است، با معرفی یک سرور MCP که پیچیدگی تماسهای API، کد و احراز هویت را انتزاع میکند، استفاده از ابزار را ساده میسازد و به LLMها اجازه میدهد تا به سادگی وظایف را از سرور درخواست کنند.
اجرای یک سرور MCP به صورت محلی توسط Docker Desktop تسهیل میشود، که از نصب در Mac، Linux و Windows پشتیبانی میکند. کاربران باید کیت ابزار Docker MCP را در ویژگیهای بتا Docker Desktop فعال کنند. فرآیند راهاندازی شامل نصب Docker Desktop، فعال کردن کیت ابزار و سپس اضافه کردن سرورهای رسمی MCP از کاتالوگ Docker است.
برنامههای LLM مانند Claude Desktop، LM Studio (برای مدلهای محلی) و Cursor میتوانند به سرورهای Docker MCP متصل شوند. پس از اتصال، LLMها به ابزارهای ارائهشده توسط سرور MCP دسترسی پیدا میکنند و قادر به اجرای وظایف به زبان ساده میشوند، مانند ایجاد یادداشت در Obsidian، انجام جستجوهای وب با DuckDuckGo، یا مدیریت زمانسنجها با Toggle.
کاربران میتوانند سرورهای MCP سفارشی برای قابلیتهایی که در کاتالوگ رسمی وجود ندارند، ایجاد کنند. این فرآیند شامل استفاده از یک دستور AI (مانند با Claude Opus) برای تولید فایلهای لازم از جمله Dockerfile، requirements.txt، server.py و یک ورودی کاتالوگ YAML است. این فایلها نحوه ساخت کانتینر Docker برای سرور سفارشی و نحوه نمایش ابزارهای آن را تعریف میکنند.
نمایشها شامل ساخت یک سرور MCP ساده برای پرتاب تاس، یک سرور MCP زمانسنج Toggle که با API Toggle برای کنترل زمانسنجها تعامل دارد، و یک سرور MCP هک Kali Linux برای تست مجاز است. این مثالها انعطافپذیری MCP را در یکپارچهسازی ابزارها و برنامههای متنوع نشان میدهند.
گیتوی Docker MCP اسرار مانند کلیدهای API و توکنها را به طور ایمن مدیریت میکند و آنها را از کد جدا نگه میدارد. سرورهای MCP سفارشی به یک کاتالوگ YAML تعریفشده توسط کاربر اضافه میشوند که سپس در پیکربندی گیتوی Docker MCP در کنار کاتالوگ پیشفرض Docker ارجاع داده میشود. فایل registry.yaml به صورت دستی برای شامل شدن سرورهای تازه ثبتشده بهروزرسانی میشود.
سرورهای MCP محلی، به ویژه آنهایی که از طریق Docker Desktop اجرا میشوند، با استفاده از ورودی/خروجی استاندارد ارتباط برقرار میکنند و پیامهای JSON RPC را از طریق پایپها برای تاخیر کم مبادله میکنند. سرورهای MCP از راه دور، مانند Coin Gecko، از HTTP (به طور خاص HTTPS برای ارتباط کلاینت به سرور) و Server-Sent Events (SSE) برای ارتباط سرور به کلاینت استفاده میکنند، که نیازمند راهاندازی سرور وب و احراز هویت است.
گیتوی Docker MCP هماهنگی امن، متمرکز و مقیاسپذیری ابزارهای AI را از طریق سرورهای MCP کانتینری فراهم میکند. این گیتوی به عنوان یک نقطه اتصال واحد برای کلاینتهای LLM برای دسترسی به چندین سرور MCP عمل میکند، مدیریت را ساده و احراز هویت و اسرار را متمرکز میکند، بنابراین رویکردی کارآمدتر از مدیریت اتصالات فردی ارائه میدهد.
گیتوی Docker MCP میتواند به عنوان یک سرور بدون رابط کاربری (headless) عمل کند و سرورهای MCP را از طریق شبکه با استفاده از انتقال SSE از راه دور در دسترس قرار دهد. این قابلیت امکان یکپارچهسازی با پلتفرمهای اتوماسیون مانند N8N را فراهم میکند و به عاملهای AI اجازه میدهد تا جریانهای کاری پیچیده را با ترکیب چندین ابزار (مانند یافتن رستورانها، Airbnbها، و ذخیره نتایج در Obsidian) در سراسر شبکه هماهنگ کنند.
MCP پروتکل زمینه مدل است، روشی استاندارد برای ارائه ابزارها به LLM.
| جنبه کلیدی | توضیحات |
|---|---|
| پروتکل زمینه مدل (MCP) | یک پروتکل استاندارد برای مدلهای زبانی بزرگ (LLMs) جهت دسترسی و استفاده برنامهنویسی از ابزارها و برنامههای خارجی. |
| مشکلی که MCP حل میکند | شکاف بین LLMها و ابزارهای خارجی پیچیده را با انتزاع کد API، مستندات و احراز هویت پر میکند و تعامل ابزار را برای LLMها ساده میسازد. |
| نقش سرور MCP | به عنوان یک واسطه عمل میکند، تمام تماسهای API و پیچیدگیهای زیرین را مدیریت میکند و به LLMها اجازه میدهد تا وظایف را به زبان ساده و بدون نیاز به دانش کدنویسی درخواست کنند. |
| یکپارچهسازی با Docker Desktop | راهاندازی و مدیریت سرورهای MCP را به صورت محلی از طریق کیت ابزار Docker MCP ساده میکند و کاربران را قادر میسازد تا سرورهای رسمی و سفارشی را به عنوان کانتینر اجرا کنند. |
| ایجاد سرور MCP سفارشی | LLMها میتوانند Dockerfileها، کد سرور و ورودیهای کاتالوگ YAML را برای ساخت سرورهای MCP سفارشی جهت یکپارچهسازی ابزارهای منحصر به فرد متناسب با نیازهای خاص تولید کنند. |
| گیتوی Docker MCP | دسترسی و هماهنگی برای چندین سرور MCP را متمرکز میکند، به LLMها اجازه میدهد تا برای طیف گستردهای از ابزارها به یک گیتوی واحد متصل شوند و اسرار را به طور ایمن مدیریت میکند. |
| ارتباط محلی (ورودی/خروجی استاندارد) | سرورهای MCP محلی مبتنی بر Docker مستقیماً با استفاده از پیامهای JSON RPC از طریق ورودی/خروجی استاندارد ارتباط برقرار میکنند و سرعت بالا و تاخیر کم را تضمین میکنند. |
| ارتباط از راه دور (HTTP/SSE) | سرورهای MCP از راه دور از HTTP (HTTPS) برای ارتباط کلاینت به سرور و Server-Sent Events (SSE) برای ارتباط سرور به کلاینت استفاده میکنند و از دسترسی ابزار مبتنی بر شبکه با راهاندازی سرور وب پشتیبانی میکنند. |
| برنامهها و یکپارچهسازیها | LLMها را قادر میسازد تا با ابزارهای متنوعی مانند Obsidian (یادداشتها)، DuckDuckGo/Brave (جستجو)، Toggle (زمانسنجها)، Kali Linux (هک کردن) تعامل داشته باشند و با پلتفرمهایی مانند N8N برای جریانهای کاری پیچیده یکپارچه شوند. |
