در این مقاله ۱۱ بخش
اگر فقط یک جمله میخواهید: function calling راهی است که یک مدل از برنامه شما میخواهد کاری انجام دهد، MCP استانداردی است که ابزارها را برای همه برنامهها یکسان توصیف میکند، API در اصل برای برنامهنویسهاست و عامل هوشمند مدلی است که این ابزارها را در یک حلقه بهکار میگیرد. این چهار مفهوم رقیب هم نیستند. بیشتر وقتها روی هم سوار میشوند. اخبار و نسخههای این نوشته تا ۲۷ مهر ۱۴۰۵ (۱۹ اکتبر ۲۰۲۶) بررسی شده است.
function calling یا tool use دقیقاً چه میکند؟
مدل خودش کدی اجرا نمیکند. شما فهرستی از ابزارها را همراه درخواست میفرستید، هر کدام با نام، توضیح و طرح ورودی. مدل اگر لازم بداند، بهجای متن یک فراخوانی ساختاریافته برمیگرداند. اینجا مسیر دو شاخه دارد. در ابزارهای کلاینتی برنامه شما فراخوانی را اجرا میکند و نتیجه را برمیگرداند. در ابزارهای سروری، مثل جستجوی وب، خود Anthropic اجرا میکند و شما فقط نتیجه را میبینید. بعد از هر نتیجه مدل دوباره تصمیم میگیرد: جواب نهایی یا یک فراخوانی دیگر. شرح رسمی این چرخه در مستندات tool use شرکت Anthropic آمده است.
ایراد اصلی در مقیاس است. ابزارها داخل همان برنامه تعریف شدهاند و معمولاً به قالب API همان ارائهدهنده بستهاند. اگر همین قابلیت را در سه برنامه میخواهید، سه بار آن را مینویسید.
پروتکل MCP چه چیزی را عوض میکند؟
پروتکل MCP یک استاندارد باز برای اتصال برنامههای هوش مصنوعی به سیستمهای بیرونی است. معرفی رسمی پروتکل آن را شبیه درگاه USB-C میداند و میگوید یک بار بسازید و همهجا یکپارچه کنید. یعنی سرور توضیح ابزارها را به شکل استاندارد ارائه میدهد و هر کلاینت سازگار، از اپهای گفتوگو تا ابزارهای برنامهنویسی، آنها را کشف و صدا میزند. اگر هنوز با پایه ماجرا آشنا نیستید، اول مقاله MCP چیست را بخوانید.
نکتهای که اغلب اشتباه فهمیده میشود: MCP جای function calling را نمیگیرد. مدل همچنان با همان مکانیزم فراخوانی ابزار کار میکند. MCP مشخص میکند ابزارها از کجا و با چه قالبی بیایند. اگر خودتان سرور مینویسید، تغییرات نسخه ۲۰۲۶-۰۷-۲۸ مشخصات را هم ببینید.
با API ساده چه فرقی دارد؟
رابط API برای کسی نوشته شده که کد مینویسد و مستندات را میخواند. مدل باید بداند هر فراخوانی چه کاری میکند، کی به آن نیاز است و چه ورودیای میگیرد. سرور MCP همین را روی API میگذارد: هر فراخوانی را با توضیح و طرح قابلفهم برای مدل بستهبندی میکند. این بستهبندی فقط وقتی خوب کار میکند که توضیح ابزارها خوب نوشته شده باشد، چون مدل بر پایه همان توضیح تصمیم میگیرد ابزار را کی صدا بزند. با توضیح مبهم ممکن است ابزار را اشتباه صدا بزند یا اصلاً سراغش نرود.
عامل هوشمند یعنی چه؟
عامل (agent) یعنی مدل، ابزارها و یک حلقه با کمی استقلال. مدل هدف را میگیرد، برنامه میریزد، ابزار را صدا میزند، نتیجه را بررسی میکند و ادامه میدهد تا کار تمام شود. هر دور این حلقه همان چرخه function calling است. تفاوت در این است که کسی هر قدم را دستی هدایت نمیکند.
شرکت Anthropic در معرفی Claude Opus 5.5 نقلقول چند مشتری را آورده است. یکی از آنها، میچ فیرو از شرکت Column، میگوید این مدل کار را به زیرعاملها خیلی بهتر میسپارد و کار خودش را با روشهای خلاقانه بررسی میکند. این نظر یک مشتری است، نه سنجشی مستقل.
جدول مقایسه
| معیار | function calling | MCP | API ساده | عامل هوشمند |
|---|---|---|---|---|
| چه کسی ابزار را تعریف میکند | برنامه شما | سرور MCP، یک بار | سازنده سرویس، برای برنامهنویس | مدل از ابزارهای موجود استفاده میکند |
| کجا اجرا میشود | در برنامه شما (یا در سرور فروشنده، برای ابزارهای سروری) | روی سرور MCP، محلی یا راهدور | روی سرور سرویس | حلقهای که مدل را با ابزارها میگرداند |
| استفاده مجدد در برنامههای دیگر | کم، به هر برنامه و مدل گره خورده است | زیاد، هر کلاینت سازگار | با نوشتن کد در هر پروژه | به ابزارهایش بستگی دارد |
| احراز هویت | در کد شما | معمولاً OAuth یا کلید، سمت سرور | کلید یا توکن در کد | از ابزارها به ارث میرسد |
| وقتی مناسب است | یک برنامه و چند تابع ثابت | یک قابلیت برای چند برنامه | وقتی برنامهنویس هستید و مدل در کار نیست | کار چندمرحلهای با تصمیمگیری |
پشت هم کار میکنند
ترکیب این دو دشوار نیست. API شرکت Anthropic یک اتصالدهنده MCP دارد که اجازه میدهد از Messages API سرورهای MCP راهدور را بدون نوشتن کلاینت MCP صدا بزنید. این قابلیت هنوز بتاست و با هدر mcp-client-2025-11-20 فعال میشود. در سمت OpenAI هم MCP راهدور یک نوع ابزار در Responses API است. مستندات OpenAI گزینههای require_approval و allowed_tools را توضیح میدهد و توصیه میکند برای ابزارهایی که داده را تغییر میدهند تأیید را روشن نگه دارید.
هزینه، بیصدا بالا میرود
تعریف ابزارها رایگان نیست. در مستندات Anthropic آمده که نام، توضیح و طرح ابزارها جزو توکنهای ورودی حساب میشوند و هنگام استفاده از tools یک پرامپت سیستمی هم اضافه میشود. برای Claude Opus 5.5، Sonnet 5.5 و Haiku 5.5 این پرامپت ۲۸۶ توکن است (در حالت auto یا none). پس سی ابزار با توضیح بلند یعنی هزینهای که در هر درخواست تکرار میشود. برای مهار آن به مقاله کش پرامپت و هزینه API سر بزنید.
کدام را انتخاب کنم؟
- یک برنامه و چند تابع ثابت: function calling. سادهترین مسیر است و وابستگی اضافه نمیآورد.
- یک قابلیت برای چند اپ هوش مصنوعی: سرور MCP.
- یک روش کار تکرارشونده که داده زنده لازم ندارد، مثل قالب گزارش یا دستورالعمل بازبینی: مهارت (Skill). تفاوتش در مقاله مهارت یا MCP آمده است.
- کاربر نهایی در یک اپ گفتوگو، بدون کد: سرور MCP میزبانیشده.
- کاری که باید چند قدم تصمیم بگیرد: عامل، با هر کدام از دو راه بالا برای ابزارها.
برای کسی که خدمات ایرانی را میخواهد
اگر برنامهنویس نیستید، لازم نیست بین اینها انتخاب کنید. سرور آماده را وصل میکنید. مثلاً سرور دیوار آگهیها را جستجو میکند و مستندات زرینپال مستندات رسمی درگاه را برای دستیار قابلجستجو میکند. نمونه عملی این کار را در راهنمای زرینپال و راهنمای دیوار میبینید. روتر MCP هم همه را پشت یک نشانی جمع میکند و سرورها را از داشبورد اضافه میکنید. برای شروع صفحه شروع را باز کنید، یا اگر میخواهید خودتان تنظیمات را بسازید از سازنده تنظیمات استفاده کنید. راهنمای کامل اتصال هم در راهنما هست.
جمعبندی
در یک جمله: function calling مکانیزم است، MCP استاندارد اشتراکگذاری ابزار، API مادهٔ خام و عامل الگویی که اینها را در یک حلقه بهکار میگیرد. اگر فقط یک برنامه دارید، function calling کافی است. هر وقت دیدید همان ابزار را برای بار دوم در برنامهای دیگر مینویسید، وقت MCP است.
سؤالهای پرتکرار
تفاوت MCP و function calling چیست؟
در روش function calling مدل فقط یک فراخوانی ساختاریافته برمیگرداند و برنامه شما آن را اجرا میکند؛ تعریف ابزارها هم در همان برنامه میماند. MCP استانداردی است برای توصیف و کشف ابزارها، پس یک سرور را یک بار میسازید و هر برنامه سازگار با MCP از آن استفاده میکند. این دو رقیب هم نیستند و در عمل پشت هم کار میکنند.
آیا MCP جای function calling را میگیرد؟
نه. حتی وقتی ابزاری از سرور MCP میآید، مدل همچنان با همان مکانیزم فراخوانی ابزار آن را صدا میزند. MCP مشخص میکند ابزارها چطور توصیف و پیدا شوند. API شرکت Anthropic یک اتصالدهنده MCP هم دارد که اجازه میدهد سرورهای MCP راهدور را بدون نوشتن کلاینت MCP صدا بزنید.
اگر رابط API دارم، باز هم به MCP نیاز دارم؟
رابط API برای برنامهنویسی است که کد مینویسد. مدل به توضیح و طرح دادهها نیاز دارد تا بفهمد کدام فراخوانی را کی و با چه ورودی بزند. سرور MCP همین لایه را روی API میگذارد. اگر کسی نمیخواهد کد بنویسد و فقط در یک اپ گفتوگو کار میکند، سرور MCP آماده راه سادهتری است.
عامل هوشمند (AI agent) دقیقاً چیست؟
عامل یعنی مدل، ابزارها و یک حلقه. مدل هدف را میگیرد، برنامه میریزد، ابزار را صدا میزند، نتیجه را میبیند و تا رسیدن به جواب یا توقف ادامه میدهد. ابزارها ممکن است از function calling یا از سرور MCP بیایند.
هزینه تعریف ابزارها چقدر است؟
طبق مستندات Anthropic، نام و توضیح و طرح هر ابزار جزو توکنهای ورودی حساب میشود و برای فعال بودن ابزارها یک پرامپت سیستمی هم اضافه میشود. برای Claude Opus 5.5 و Sonnet 5.5 و Haiku 5.5 این پرامپت ۲۸۶ توکن است (در حالت auto). هرچه ابزار بیشتر و توضیحها طولانیتر، هزینه هر درخواست بالاتر.
برای کاربر عادی که کد نمینویسد کدام را انتخاب کنم؟
یک سرور MCP میزبانیشده. آن را به اپ گفتوگوی خود وصل میکنید و دیگر چیزی برنامهنویسی نمیشود. روتر MCP همین کار را برای سرورهای ایرانی با یک نشانی انجام میدهد.