این مخزن شامل پیادهسازی پایتون پروتکل مدل کانتکست (MCP) است که نشان میدهد چگونه میتوان یک برنامه سرور و کلاینت ایجاد کرد که با استفاده از استاندارد MCP با هم ارتباط برقرار کنند.
پیادهسازی MCP از دو بخش اصلی تشکیل شده است:
-
سرور MCP (
server.py) - سروری که ارائه میدهد:- ابزارها: توابعی که میتوان به صورت ریموت فراخوانی کرد
- منابع: دادههایی که میتوان دریافت کرد
- پرومپتها: قالبهایی برای تولید پرومپت برای مدلهای زبانی
-
کلاینت 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این اتصال به سرور را برقرار میکند و تمام ویژگیها از جمله ابزارها، منابع و پرومپتها را به کار میگیرد. خروجی موارد زیر را نمایش میدهد:
- نتیجه ابزار ماشین حساب (۵ + ۷ = ۱۲)
- پاسخ ابزار تکمیل به "معنای زندگی چیست؟"
- فهرست مدلهای هوش مصنوعی موجود
- پیام خوشآمدگویی شخصیسازی شده برای "MCP Explorer"
- قالب پرومپت بازبینی کد
سرور با استفاده از 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 ترجمه شده است. در حالی که ما در تلاش برای دقت هستیم، لطفاً توجه داشته باشید که ترجمههای خودکار ممکن است حاوی خطاها یا نادرستیهایی باشند. سند اصلی به زبان بومی خود باید به عنوان منبع معتبر در نظر گرفته شود. برای اطلاعات حیاتی، ترجمه حرفهای انسانی توصیه میشود. ما مسئول هیچ گونه سوءتفاهم یا تفسیر نادرستی که از استفاده این ترجمه ناشی شود، نیستیم.