CodeShot

MCP Tools در مقابل MCP Resources

در پروتکل MCP، Tools قابلیت‌های قابل فراخوانی هستند که مدل زبانی می‌تواند با پارامتر مشخص اجرا کند تا کاری انجام دهد یا داده‌ای پردازش کند (مثل ارسال ایمیل یا اجرای کوئری)، در حالی که Resources منابع داده‌ای فقط‌خواندنی هستند که مدل یا کلاینت می‌تواند برای گرفتن زمینه (Context) بدون اجرای عملیات جانبی، آن‌ها را بخواند.

ویژگیMCP ToolsMCP 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 استفاده کنید.