MCP Tools در مقابل MCP Resources
در پروتکل MCP، Tools قابلیتهای قابل فراخوانی هستند که مدل زبانی میتواند با پارامتر مشخص اجرا کند تا کاری انجام دهد یا دادهای پردازش کند (مثل ارسال ایمیل یا اجرای کوئری)، در حالی که Resources منابع دادهای فقطخواندنی هستند که مدل یا کلاینت میتواند برای گرفتن زمینه (Context) بدون اجرای عملیات جانبی، آنها را بخواند.
| ویژگی | MCP Tools | MCP Resources |
|---|---|---|
| قابل اجرا بودن | بله (عملیات) | خیر (فقط خواندن) |
| عوارض جانبی | ممکن است داشته باشد | ندارد |
| مثال | ارسال ایمیل، اجرای کوئری | محتوای فایل، خروجی گزارش |
کِی از MCP Tools استفاده کنیم؟
وقتی میخواهید مدل بتواند یک عملیات را انجام دهد، مثل ایجاد یک رکورد، ارسال یک درخواست یا محاسبه یک مقدار.
کِی از MCP Resources استفاده کنیم؟
وقتی میخواهید فقط داده یا زمینهای را در اختیار مدل قرار دهید، مثل محتوای یک فایل یا نتیجه یک کوئری فقطخواندنی.
مثال MCP Tools
{
"name": "send_email",
"description": "ارسال ایمیل به کاربر",
"inputSchema": { "to": "string", "body": "string" }
}
مثال MCP Resources
{
"uri": "file:///docs/readme.md",
"name": "README پروژه",
"mimeType": "text/markdown"
}
اشتباه رایج
اشتباه رایج پیادهسازی یک عملیات تغییردهنده وضعیت (مثل حذف رکورد) بهصورت Resource بهجای Tool است؛ Resource باید همیشه فقطخواندنی و بدون عوارض جانبی باشد، هر عملیاتی که وضعیت را تغییر میدهد باید بهصورت Tool تعریف شود.
جمعبندی
برای اجرای عملیات و اقدامات از Tools و برای فراهمکردن داده و زمینه فقطخواندنی برای مدل از Resources در پروتکل MCP استفاده کنید.
