Skip to content

Latest commit

 

History

History
121 lines (81 loc) · 5.26 KB

File metadata and controls

121 lines (81 loc) · 5.26 KB

پیاده‌سازی پایتون پروتکل مدل کانتکست (MCP)

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

مرور کلی

پیاده‌سازی MCP از دو بخش اصلی تشکیل شده است:

  1. سرور MCP (server.py) - سروری که ارائه می‌دهد:

    • ابزارها: توابعی که می‌توان به صورت ریموت فراخوانی کرد
    • منابع: داده‌هایی که می‌توان دریافت کرد
    • پرومپت‌ها: قالب‌هایی برای تولید پرومپت برای مدل‌های زبانی
  2. کلاینت MCP (client.py) - برنامه کلاینتی که به سرور متصل می‌شود و از امکانات آن استفاده می‌کند

ویژگی‌ها

این پیاده‌سازی چند ویژگی کلیدی MCP را نشان می‌دهد:

ابزارها

  • completion - تولید تکمیل متن از مدل‌های هوش مصنوعی (شبیه‌سازی شده)
  • add - ماشین حساب ساده که دو عدد را جمع می‌کند

منابع

  • models:// - اطلاعاتی درباره مدل‌های هوش مصنوعی موجود برمی‌گرداند
  • greeting://{name} - یک پیام خوش‌آمدگویی شخصی‌سازی شده برای نام داده شده برمی‌گرداند

پرومپت‌ها

  • review_code - پرومپتی برای بازبینی کد تولید می‌کند

نصب

برای استفاده از این پیاده‌سازی MCP، بسته‌های مورد نیاز را نصب کنید:

pip install mcp-server mcp-client

اجرای سرور و کلاینت

راه‌اندازی سرور

سرور را در یک پنجره ترمینال اجرا کنید:

python server.py

همچنین می‌توان سرور را در حالت توسعه با استفاده از MCP CLI اجرا کرد:

mcp dev server.py

یا در صورت موجود بودن، در Claude Desktop نصب کرد:

mcp install server.py

اجرای کلاینت

کلاینت را در پنجره ترمینال دیگری اجرا کنید:

python client.py

این کار به سرور متصل می‌شود و تمام ویژگی‌های موجود را نشان می‌دهد.

استفاده از کلاینت

کلاینت (client.py) تمام قابلیت‌های MCP را نشان می‌دهد:

python client.py

این اتصال به سرور را برقرار می‌کند و تمام ویژگی‌ها از جمله ابزارها، منابع و پرومپت‌ها را به کار می‌گیرد. خروجی موارد زیر را نمایش می‌دهد:

  1. نتیجه ابزار ماشین حساب (۵ + ۷ = ۱۲)
  2. پاسخ ابزار تکمیل به "معنای زندگی چیست؟"
  3. فهرست مدل‌های هوش مصنوعی موجود
  4. پیام خوش‌آمدگویی شخصی‌سازی شده برای "MCP Explorer"
  5. قالب پرومپت بازبینی کد

جزئیات پیاده‌سازی

سرور با استفاده از API FastMCP پیاده‌سازی شده است که انتزاعات سطح بالا برای تعریف سرویس‌های MCP فراهم می‌کند. در اینجا یک مثال ساده از نحوه تعریف ابزارها آمده است:

@mcp.tool()
def add(a: int, b: int) -> int:
    """Add two numbers together
    
    Args:
        a: First number
        b: Second number
    
    Returns:
        The sum of the two numbers
    """
    logger.info(f"Adding {a} and {b}")
    return a + b

کلاینت از کتابخانه کلاینت MCP برای اتصال و فراخوانی سرور استفاده می‌کند:

async with stdio_client(server_params) as (reader, writer):
    async with ClientSession(reader, writer) as session:
        await session.initialize()
        result = await session.call_tool("add", arguments={"a": 5, "b": 7})

اطلاعات بیشتر

برای اطلاعات بیشتر درباره MCP، به آدرس زیر مراجعه کنید: https://modelcontextprotocol.io/

سلب مسئولیت:
این سند با استفاده از سرویس ترجمه هوش مصنوعی Co-op Translator ترجمه شده است. در حالی که ما در تلاش برای دقت هستیم، لطفاً توجه داشته باشید که ترجمه‌های خودکار ممکن است حاوی خطاها یا نادرستی‌هایی باشند. سند اصلی به زبان بومی خود باید به عنوان منبع معتبر در نظر گرفته شود. برای اطلاعات حیاتی، ترجمه حرفه‌ای انسانی توصیه می‌شود. ما مسئول هیچ گونه سوءتفاهم یا تفسیر نادرستی که از استفاده این ترجمه ناشی شود، نیستیم.