امروز میخوام درباره یکی از جذابترین مفاهیم در دنیای هوش مصنوعی یعنی Model Context Protocol (MCP) صحبت کنم؛ پروتکلی که ممکنه آینده تعامل ما با Agentهای هوشمند رو بهکلی متحول کنه.
این مقاله نهتنها برای آشنایی اولیه با MCP مفیده، بلکه اگر تجربه کار با آن را داشتهاید، درک عمیقتری از نحوه عملکرد، کاربردها و آینده این استاندارد برایتان به ارمغان میآورد. در ضمن اگر در فکر ساخت یک Ai Agent اختصاصی برای کسبوکار یا سیستمتان هستید، خوندن این مقاله میتونه شروع خوبی باشه؛ چون تیمهایی مثل استک تیم میتونن بهخوبی این فرآیند رو برای شما اجرا و پشتیبانی کنن.
چرا MCP حالا مطرح شده و نه در نوامبر ۲۰۲۴؟
پروتکل MCP در نوامبر ۲۰۲۴ توسط Anthropic معرفی شد اما توجه چندانی جلب نکرد. در اون زمان، هنوز دغدغه اصلی توسعهدهندگان، خود مدلهای زبان بزرگ (LLM) بود نه نحوه اتصال اونها به ابزارها و دادهها.
اما با رشد سریع AI Agents و نیاز به تعامل هوشمند با محیط بیرونی – از دیتابیسها و فایلها گرفته تا ایمیلها و سیستمهای مدیریت پروژه – کمکم همه متوجه شدند که حلقه مفقوده برای تبدیل یک مدل به یک Agent واقعی، وجود یک پروتکل برای دسترسی پویا به کانتکست و ابزارهاست. MCP دقیقاً این شکاف رو پر میکنه.
جالبه بدونید شرکتهایی مثل Replit، Sourcegraph، و Zed در مدت کوتاهی MCP رو پیادهسازی کردن و حالا بیش از ۱۰۰۰ سرور MCP توسط جامعه متنباز ساخته شده. این رشد انفجاری، MCP رو به یک استاندارد دوفاکتو در دنیای Agent های هوش مصنوعی تبدیل کرده.
MCP دقیقاً چیست و چگونه کار میکند؟
MCP یک استاندارد باز و مدلمحور (Model-Agnostic) برای اتصال مدلهای هوش مصنوعی به منابع خارجی داده و ابزارهاست. بهجای اینکه برای هر ابزار یا API یک ادغام دستی بنویسید، میتونید با پیروی از این پروتکل، همه منابع رو در قالب MCP Servers به مدل معرفی کنید.
هر سرور MCP نمایندهی یک سرویس (مثلاً Google Drive، Slack، GitHub یا دیتابیس) است که از طریق یک API استاندارد در دسترس مدل قرار میگیرد. نکته جالب اینکه مدل میتونه خودش این سرورها رو کشف کنه و نیاز به تعریف دستی اونها نیست.
مدلها از طریق MCP Client به سرورها متصل میشن، توابع موجود رو شناسایی میکنن، و در صورت نیاز اونها رو فراخوانی میکنن. این ساختار شباهت زیادی به Plug & Play داره.
قبل از MCP، چه راهکارهایی برای اتصال مدلها به ابزارها وجود داشت؟
قبل از MCP، چه راهکارهایی برای اتصال مدلها به ابزارها وجود داشت؟
- ادغامهای دستی (
Custom APIs): برای هر سرویس باید بهصورت جداگانه کدنویسی و احراز هویت انجام میشد. - پلاگینها (مثل
OpenAI Plugin): اگرچه ایده خوبی بودن اما محدود به پلتفرمهای خاص و اغلب یکطرفه بودن. - فریمورکهای
AgentمثلLangChain: هنوز هم محبوب هستن، اما پیادهسازی ابزارها وقتگیر بود. RAGو پایگاههای برداری: بیشتر برای بازیابی متن کاربرد داشتن و نه اجرای عملیات.
MCP با ترکیب این رویکردها، امکان تعامل دوطرفه، کشف خودکار، و دسترسی همزمان به منابع مختلف رو به مدلها میده.
مزایای استفاده از MCP چیست؟
- انعطاف بالا: بدون نیاز به تعریف دستی، مدلها میتونن با ابزارهای مختلف کار کنن.
- مقیاسپذیری: افزودن ابزار جدید فقط با راهاندازی یک
MCP Serverامکانپذیره. - سازگاری با همه مدلها: چه
GPTباشید، چهClaudeیا مدلهای متنباز، میتونید ازMCPاستفاده کنید. - همافزایی با سایر ابزارها: مثلاً میتونید از
LangChainبه عنوان چارچوبOrchestrationاستفاده کنید و ازMCPبرای تأمین ابزارها بهره ببرید.
چطور با MCP شروع کنیم؟
برای راهاندازی یک Agent مبتنی بر MCP به موارد زیر نیاز دارید:
- نصب یک
MCP Server: برای ابزاری که میخواهید (مثلاًSlackیاGoogle Calendar) از سرورهای آماده یا مخازنGitHubاستفاده کنید. - تنظیم
MCP Client: در کد یا رابط گرافیکی مدل (مثلClaude) سرور رو معرفی کنید. - فعالسازی ابزارها: مدل حالا میتونه توابع در دسترس رو فراخوانی کنه.
- مانیتورینگ: لاگهای سرور رو بررسی کنید تا ببینید
Agentشما چطور با ابزارها تعامل داره.
اگر بهدنبال یک پیادهسازی واقعی هستید، میتونید با کمک تیمهایی مثل استک تیم یک MVP از Agent اختصاصی خودتون رو بسازید که از MCP برای تعامل با منابع مختلف استفاده کنه – از فایلهای داخلی گرفته تا سیستمهای ابری.
✅ مثال واقعی از MCP:
خب اجازه بدید اول یه مثال عملی از Model Context Protocol (MCP) بزنم، بعدش یه نمونه کد ساده به زبان Golang ارائه میدم.
فرض کن یک هوش مصنوعی مثل ChatGPT به تو دو تا کار سپرده:
- یک تسک با عنوان "پیگیری ایمیل مشتری" در
Todoistاضافه کن. - یک ایمیل با محتوای خاص از طریق
Gmail APIارسال کن.
در حالت معمول، مدل فقط متنی پاسخ میده. اما با MCP، مدل میتونه مستقیماً به ابزار واقعی وصل بشه و این کارها رو انجام بده، چون context، function ها و schema اونها رو داره.
MCP کمک میکنه مدل بفهمه که برای انجام این دستور، چه function هایی روی چه ابزارهایی قابل فراخوانی هست و خروجی اونها چیه.
🧠 ساختار ساده MCP:
فرض کن یک ابزار به نام todo_service داریم که یک تابع داره به اسم createTask.
مدل ابتدا از طریق MCP میفهمه:
- این ابزار هست.
- این تابع هست.
- این
input schemaوoutput schemaهست.
حالا بریم سراغ یه نمونه کد ساده توی Golang:
📦 نمونه ساده Golang از استفاده از MCP-style handler:
package main
import (
"encoding/json"
"fmt"
"net/http"
)
// ساختار MCP-style برای ورودی تابع createTask
type CreateTaskInput struct {
Title string `json:"title"`
Due string `json:"due"`
}
// خروجی تابع
type CreateTaskOutput struct {
ID string `json:"id"`
}
// تابعی شبیه به MCP agent handler
func createTaskHandler(w http.ResponseWriter, r *http.Request) {
var input CreateTaskInput
// تبدیل JSON به ساختار ورودی
err := json.NewDecoder(r.Body).Decode(&input)
if err != nil {
http.Error(w, "Invalid input", http.StatusBadRequest)
return
}
// شبیهسازی ایجاد تسک (در واقعیت میتونه API کال باشه)
output := CreateTaskOutput{
ID: "task_" + input.Title, // شبیهسازی ID
}
// پاسخ به مدل
w.Header().Set("Content-Type", "application/json")
json.NewEncoder(w).Encode(output)
}
func main() {
http.HandleFunc("/mcp/tools/todo_service/createTask", createTaskHandler)
fmt.Println("MCP tool server is running on port 8080...")
http.ListenAndServe(":8080", nil)
}
📌 توضیح کد
- مدل (مثل
ChatGPT) میدونه که/mcp/tools/todo_service/createTaskیکAPIendpointاز ابزارtodo_serviceهست. - ورودی مشخصه (
title,due). - خروجی مشخصه (
id). - مدل میتونه مستقیماً با این
endpointتعامل داشته باشه (با واسطهیMCP) و کار رو انجام بده.
آیا MCP گلوله نقرهای است؟
قطعا نه! MCP هم چالشهای خاص خودشو داره:
- پیادهسازی اولیه ممکنه پیچیده باشه.
- مدیریت سرورهای مختلف
MCPدر محیطهای تولیدی نیاز به برنامهریزی دقیق داره. - مدلها همیشه بهترین تصمیم رو در استفاده از ابزارها نمیگیرن.
- امنیت و احراز هویت نیاز به زیرساخت داره.
با این حال، هیچکدوم از این چالشها مانع اصلی نیستن و بهلطف متنباز بودن MCP، جامعهی بزرگی از توسعهدهندگان در حال بهبود و پشتیبانی از این استاندارد هستن.
MCP در معماری Agent های مستقل
در طراحی یک Agent کامل، شما نیاز به بلوکهایی مثل حافظه، دانش، هویت، منطق تصمیمگیری، و ابزار اجرا دارید. MCP در این معماری، نقش «بازوی عملیاتی» رو ایفا میکنه – یعنی همون چیزی که باعث میشه Agent شما فقط حرف نزنه، بلکه عمل کنه.
برای مثال، با کمک MCP Agent میتونه:
- جلسهای رو در
Google Calendarتنظیم کنه - فایلی از
Slackبرداره و ویرایش کنه - یک رکورد در دیتابیس اضافه کنه
- حتی اطلاعاتی از یک وبسایت زنده استخراج کنه
همه اینها بدون نیاز به تغییر کد Agent و فقط از طریق MCP امکانپذیر شده.
منابع بیشتر برای یادگیری MCP:
- مخزن رسمی MCP در GitHub
- داکیومنتیشن رسمی توسط Anthropic
- ویدیوهای آموزشی
Mahesh MurthyدرAI Summit - گفتوگوهای فنی در انجمن
Hugging FaceوLangChainدربارهMCP - استک تیم!
جمعبندی
Model Context Protocol نهفقط یک نوآوری فنی، بلکه یک تغییر پارادایم در طراحی Agent های هوش مصنوعی است. MCP، مدلها را از انزوای اطلاعاتی خارج کرده و به آنها امکان میدهد در دنیای واقعی زندگی کنند، تعامل داشته باشند، و تصمیم بگیرند.
اگر در فکر ساخت یک سیستم هوشمند هستید که واقعاً کار کند – نه فقط جواب بده – MCP میتونه ابزار اصلی شما باشه. و اگر نمیدونید از کجا شروع کنید، استک تیم اینجاست تا با تکیه بر تجربه توسعه Agent های مبتنی بر MCP، مسیر شما رو هموار کنه.
🎯 اگر به دنبال توسعه زیرساخت نرمافزار و یا توسعه یک Ai Agent برای خود با کیفیتی حرفهای و همکاری تیمی واقعی هستید، همین حالا به استک تیم سر بزن و جلسه مشاوره تخصصی رزرو کن.
شماره تماس های سریع ما، تماس و واتساپ :
📞 ایران : 09120186223📞 دبی : +971581554476


