Model Context Protocol (MCP)

استاندارد جدید: ساخت یکپارچه‌سازی‌های مقیاس‌پذیر هوش مصنوعی با سرورهای MCP

برای توسعه‌دهندگانی که در چشم‌انداز به‌سرعت در حال تحول مدل‌های زبانی بزرگ (LLM) فعالیت می‌کنند، یکی از چالش‌های پایدارتر، استانداردسازی بوده است. چگونه می‌توانیم اطمینان حاصل کنیم که یک عامل هوش مصنوعی می‌تواند به پایگاه‌های داده، سیستم‌های فایل و APIها دسترسی قابل اعتماد داشته باشد، بدون اینکه برای هر ارائه‌دهنده مدل به‌طور جداگانه به آداپتورهای سفارشی نیاز باشد؟ پروتکل زمینه مدل (MCP) وارد می‌شود. این پروتکل که در ابتدا توسط آنتروپیک تصور شده بود، به سرعت به لایه حمل‌ونقل استاندارد صنعت برای اتصال مدل‌های هوش مصنوعی به منابع داده خارجی تبدیل می‌شود. در قلب این اکوسیستم، سرور MCP قرار دارد—اجزایی که پیچیدگی را انتزاع کرده و یک رابط یکپارچه برای برنامه‌های مبتنی بر هوش مصنوعی فراهم می‌کند.

سرور MCP چیست؟

یک سرور MCP به عنوان یک لایه میانی بین یک مشتری LLM (مانند یک چت‌بات یا یک عامل خودمختار) و منابع داده زیرساختی عمل می‌کند. به جای اینکه مدل سعی کند حدس بزند چگونه با یک REST API خاص یا طرحواره پایگاه داده تعامل کند، آن با سرور MCP از طریق یک پروتکل استاندارد ارتباط برقرار می‌کند. سپس سرور بازیابی داده، تبدیل و بررسی‌های امنیتی را انجام داده و نتایج ساختاریافته را به مشتری بازمی‌گرداند.

این معماری چندین مزیت متمایز ارائه می‌دهد:

  • امنیت: اعتبارنامه‌های حساس و داده‌های خام می‌توانند در سمت سرور مدیریت شوند، که خطر مواجهه با مدل را کاهش می‌دهد.
  • یکپارچگی: چه از کلود، GPT-4 یا یک مدل متن‌باز استفاده کنید، منطق تعامل یکسان باقی می‌ماند.
  • قابلیت نگهداری: به‌روزرسانی یک منبع داده تنها نیاز به تغییرات در سرور دارد، نه در هر برنامه مشتری.

معماری اصلی و ارتباطات

سرورهای MCP معمولاً به صورت محلی یا روی یک میزبان از راه دور اجرا می‌شوند و با مشتریان از طریق JSON-RPC 2.0 از طریق I/O استاندارد (stdin/stdout) یا به طور فزاینده‌ای از طریق HTTP برای استقرارهای از راه دور ارتباط برقرار می‌کنند. پروتکل سه نوع منبع اصلی را تعریف می‌کند: منابع (داده)، ابزارها (اقدامات) و پرامپت‌ها (قالب‌ها).

هنگام ساخت یک سرور MCP، شما معمولاً لیستی از ابزارهایی که مدل می‌تواند فراخوانی کند را تعریف می‌کنید. به عنوان مثال، یک سرور ممکن است ابزاری به نام get_weather را در دسترس قرار دهد. مشتری یک درخواست ارسال می‌کند، سرور منطق را اجرا می‌کند و یک پاسخ JSON بازمی‌گرداند. در اینجا یک نمایش مفهومی ساده‌شده از نحوه به نظر رسیدن تعریف یک ابزار در پروتکل آورده شده است:


// درخواست JSON-RPC مفهومی
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "get_weather",
    "arguments": { "city": "San Francisco" }
  }
}

// پاسخ JSON-RPC مفهومی
{
  "jsonrpc": "2.0",
  "id": 1,
  "result": {
    "content": [
      {
        "type": "text",
        "text": "دمای فعلی در سن فرانسیسکو 62 درجه فارنهایت است."
      }
    ]
  }
}

استراتژی پیاده‌سازی عملی

پیاده‌سازی یک سرور MCP شامل پیچاندن منطق موجود شما در مشخصات MCP است. بیایید یک مثال پایتون با استفاده از SDK رسمی mcp را بررسی کنیم. این مثال نشان می‌دهد که چگونه یک ابزار پرس‌وجوی پایگاه داده ساده را در دسترس قرار دهیم.


from mcp.server.fastmcp import FastMCP
import sqlite3

# راه‌اندازی سرور MCP
mcp = FastMCP("DemoDatabaseServer")

@mcp.tool()
def query_user(email: str) -> str:
    """
    پرس‌وجوی پایگاه داده کاربران برای یک آدرس ایمیل خاص.
    """
    conn = sqlite3.connect("users.db")
    cursor = conn.cursor()
    cursor.execute("SELECT name, role FROM users WHERE email = ?", (email,))
    result = cursor.fetchone()
    conn.close()
    
    if result:
        return f"کاربر: {result[0]}, نقش: {result[1]}"
    return "کاربر یافت نشد."

# اجرای سرور
if __name__ == "__main__":
    mcp.run()

در این قطعه کد، تزئین‌گر @mcp.tool() به طور خودکار تابع را با پروتکل MCP ثبت می‌کند. سپس مشتری LLM می‌تواند این ابزار را در طول دست‌دادن راه‌اندازی کشف کند و هر زمان که زمینه مناسب تشخیص داده شود، آن را فراخوانی کند.

بهترین شیوه‌ها برای تولید

در حالی که پروتکل اتصال را ساده می‌کند، آمادگی برای تولید نیاز به مدیریت خطای قوی دارد. همیشه ورودی‌ها را قبل از اجرای پرس‌وجوها اعتبارسنجی کنید تا از حملات تزریق جلوگیری شود. علاوه بر این، در نظر بگیرید که محدودیت نرخ و کش را در سرور MCP خود پیاده‌سازی کنید تا از بار اضافی غیرضروری بر منابع داده پایین‌دست جلوگیری شود. در نهایت، اطمینان حاصل کنید که سرور شما متاداده‌های واضحی درباره قابلیت‌های خود ارائه می‌دهد، به طوری که LLM بتواند تصمیمات آگاهانه‌ای درباره اینکه کدام ابزارها برای یک وظیفه خاص مرتبط هستند، اتخاذ کند.

نتیجه‌گیری

پروتکل زمینه مدل (MCP) گام قابل توجهی به جلو در مهندسی هوش مصنوعی است. با استانداردسازی نحوه تعامل مدل‌ها با جهان، سرورهای MCP اصطکاک ساخت جریان‌های کاری عاملی را کاهش می‌دهند. با بالغ‌تر شدن اکوسیستم، می‌توانیم انتظار گسترش سرورهای متن‌باز برای وظایف رایج—مانند مدیریت CRM، تحلیل مخازن کد و کنترل IoT—را داشته باشیم، که به توسعه‌دهندگان اجازه می‌دهد برنامه‌های هوش مصنوعی قدرتمندی را ترکیب کنند بدون اینکه چرخ را از نو اختراع کنند. برای توسعه‌دهندگان متوسط تا پیشرفته، تسلط بر MCP دیگر اختیاری نیست؛ این کلید ساخت نسل بعدی نرم‌افزارهای هوشمند است.

Share: