امروز میخوام درباره یکی از جذابترین مفاهیم در دنیای هوش مصنوعی یعنی 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
یکAPI
endpoint
از ابزار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