این مخزن شامل پیادهسازی پایتون پروتکل Model Context Protocol (MCP) است که نشان میدهد چگونه میتوان یک برنامه سرور و کلاینت ایجاد کرد که با استفاده از استاندارد MCP با هم ارتباط برقرار میکنند.
پیادهسازی MCP شامل دو بخش اصلی است:
-
MCP Server (
server.py) - سروری که ارائه میدهد:- ابزارها: توابعی که میتوان از راه دور فراخوانی کرد
- منابع: دادههایی که میتوان دریافت کرد
- پرومپتها: قالبهایی برای تولید پرومپت برای مدلهای زبانی
-
MCP Client (
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 client به سرور متصل شده و آن را فراخوانی میکند:
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 ترجمه شده است. در حالی که ما در تلاش برای دقت هستیم، لطفاً توجه داشته باشید که ترجمههای خودکار ممکن است حاوی خطاها یا نواقصی باشند. سند اصلی به زبان بومی آن باید به عنوان منبع معتبر در نظر گرفته شود. برای اطلاعات حیاتی، ترجمه حرفهای انسانی توصیه میشود. ما مسئول هیچ گونه سوءتفاهم یا برداشت نادرستی که از استفاده از این ترجمه ناشی شود، نیستیم.