تصور کنید برای هر جملهای که مینویسید، مجبور باشید دور هر کلمه را با چندین پرانتز و علامت نقلقول بپوشانید؛ در نهایت بیشتر انرژی شما صرف پردازش این علامتها میشود تا خودِ داستان. این دقیقاً همان مشکلی است که اکنون در ارتباط عاملهای هوش مصنوعی با ابزارهایشان رخ میدهد.
طبق گزارش منتشر شده در مخزن گیتهاب این پروژه در ۱۱ اوت ۲۰۲۶، بیش از ۱۰,۰۰۰ توکن تنها برای فهرست کردن ابزارهای موجود در پروتکل زمینهٔ مدل (Model Context Protocol یا MCP) مصرف میشود. این مقدار گاهی ۳۰ تا ۵۵ درصد از یک پنجرهٔ زمینه (Context Window) ۱۲۸ هزار توکنی را پیش از آنکه مدل حتی شروع به تفکر کند، میبلعد. برای حل این ناکارآمدی و سربار عظیم توکنهای ناشی از نحو JSON، کلاینت جدیدی به نام mcptoon معرفی شده است.
برای توسعهدهندگانی که گردشکارهای عاملمحور (Agentic) میسازند، وضعیت فعلی شبیه پرداخت مالیات سنگین روی «زبان توصیف ابزار» است، نه خودِ عملکرد ابزار. در حال حاضر اکثر عاملها از JSON استفاده میکنند که برای انسان خواناست اما به دلیل تکرار آکولادها، نقلقولها و دو-نقطهها، برای مدلها بسیار گران است. همانطور که در تحلیلهای قبلی ما دربارهی بهینهسازی استنتاج اشاره کردیم، هر توکن اضافی در ورودی، مستقیماً بر هزینه و سرعت پاسخدهی اثر میگذارد.
مشکل ساختاری JSON
به نقل از مستندات پروژه، هر مکالمه در محیطهای مبتنی بر MCP، توکنها را صرف نحو (Syntax) میکند نه داده. اگر یک عامل به ۵ سرور MCP متصل شود، فهرست کردن ابزارهای آنها میتواند حدود ۱۰,۰۰۰ توکن JSON هزینه داشته باشد. این چالشهای ساختاری باعث شده تا برخی از پیادهسازیها در عمل ناکارآمد باشند؛ چنانکه بررسیهای اخیر نشان داد یکسوم سرورهای محبوب MCP در آزمونهای کاربردپذیری شکست خوردهاند. علاوه بر این، زمانی که یک عامل ۲۰ ابزار را فراخوانی میکند، هر نتیجه معمولاً در ساختاری مانند {"content":[{"type":"text","text":"..."}]} پیچیده شده است که ۵۰۰ تا ۳,۰۰۰ توکن به هر فراخوانی اضافه میکند. در مجموع، سربار MCP میتواند پیش از شروع هرگونه پردازش واقعی، به ۴۰,۰۰۰ تا ۷۰,۰۰۰ توکن برسد.
mcptoon این اتلاف را با معرفی نمادگذاری اشیاء بهینهشده برای توکن (Token-Optimized Object Notation یا TOON) حذف میکند. این سیستم، ساختار JSON را با مجموعهای فشرده از خطوط عمودی (pipes)، فاصلهها و نمادهای تککاراکتری جایگزین میکند. برای مثال، یک شیء JSON مانند {"name":"search","count":3} در TOON به شکل name:search|count:3 تبدیل میشود.
سازوکار فشردهسازی TOON
این ابزار از طریق چندین مکانیزم نگاشت خاص، حجم داده را به شدت کاهش میدهد:
- خطوط عمودی (Pipes): جایگزین آکولادها، نقلقولها و دو-نقطهها میشوند (مثلاً
name:search|count:3). - فاصلهها: جایگزین کروشهها و کاماها برای لیستها میشوند (مثلاً
[1, 2, 3]تبدیل به1 2 3میشود). - تککاراکترها: مقادیر Boolean (درست/نادرست) به
T/F(یک کاراکتر در مقابل ۴-۵ کاراکتر) و مقدارnullبه نماد∅تبدیل میشوند. - توالیهای جایگزین: خطوط جدید (
\n) با نماد↲جایگزین میشوند. - فشردهسازی بازگشتی: اشیاء تودرتو مانند
{"a":{"b":[1,2]}}به صورت تخت (Flatten) در میآیند و بهa:b:1_2تبدیل میشوند.
بر اساس بنچمارکهای فنی ارائه شده توسط توسعهدهنده، میزان صرفهجویی در عملیاتهای مختلف به شرح زیر است:
- شناسایی ابزار (Tool Discovery): برای ۹۶ ابزار، مصرف توکن از حدود ۲,۰۰۰ به ۶۰ کاهش یافت که معادل ۹۷٪ کاهش است. این رویکرد مشابه تلاشهای پیشین در معماری CHROMATIC-MCP بود که توانست سربار زمینه را برای تعداد زیادی از ابزارها به شدت کاهش دهد.
- نتایج دادههای ساختاریافته: مصرف توکن از حدود ۸۰۰ به ۳۵۰ رسید که ۵۶٪ صرفهجویی را نشان میدهد.
- متن خام یا HTML: کاهش تنها ۱۰٪ است، زیرا در این حالت خودِ محتوا بر ساختار غلبه میکند و اثر فشردهسازی کمتر است.
جزئیات پیادهسازی و سازگاری
این ابزار یک بسته پایتونی خالص و بدون وابستگی (Zero-dependency) با حجم بسیار کم (تنها ۵۰ کیلوبایت) است که روی ویندوز، مک و لینوکس اجرا میشود. mcptoon میتواند به هر سرور MCP از طریق stdio یا HTTP متصل شود. به دلیل ماهیت CLI، با هر عاملی که توانایی اجرای دستورات شل را داشته باشد سازگار است؛ از جمله Claude Code، Cursor، Codex و OpenCode. این سازگاری گسترده، مکمل استانداردهایی است که ابزارهای Coding Tools MCP برای دسترسی امن عاملها به کدبیس ایجاد کردهاند.
مقایسه با سایر کلاینتهای MCP:
- صرفهجویی در توکن: در حالی که mcp-cli، mcporter و SDK خام MCP هیچ صرفهجوییای (۰٪) ندارند، mcptoon در مانیفستها ۹۷٪ و در نتایج ۴۰ تا ۶۰٪ کاهش توکن ایجاد میکند.
- سازگاری: این ابزار با تمام عاملها (Claude Code, Codex, OpenCode, Cursor, CatPaw) کار میکند، در حالی که برخی کلاینتهای دیگر اغلب محدود به Claude هستند.
- حجم (Footprint): با حجم ۵۰ کیلوبایت، به طور قابل توجهی کوچکتر از mcp-cli (بیش از ۵۰ مگابایت) یا mcporter (حدود ۳۰ مگابایت) است.
- وابستگیها: این ابزار صفر وابستگی دارد، در حالی که سایر کلاینتها بین ۳ تا ۲۰ بسته npm یا پایتون نیاز دارند.
ویژگیهای پیشرفته و امنیت
علاوه بر کاهش توکن، mcptoon قابلیتهای کاربردی دیگری را برای توسعهدهندگان پیاده کرده است:
- کشِ طرحواره (Schema Cache): شامل یک حافظه موقت با TTL ۵ دقیقهای است تا از فراخوانیهای تکراری و زائد برای شناسایی ابزارها جلوگیری کند.
- ردیابی مصرف: یک ردیاب محلی آمار فراخوانیها (تعداد کل، نرخ موفقیت و توکنهای تخمینی) را در مسیر
~/.cache/mcptoon/usage.jsonذخیره میکند. این دادهها هرگز به بیرون ارسال نمیشوند. - حفاظهای ایمنی (Guardrails): کلاینت عملیاتی را که با الگوهای خطرناک (مانند
delete،drop،purge،wipeیاkill) مطابقت داشته باشد مسدود میکند، مگر اینکه کاربر صراحتاً پرچم--destructiveرا ارسال کند. - خروجیهای منعطف: کاربران میتوانند بین حالتهای مختلف انتخاب کنند:
--toon(فشرده)،--compact(فقط نام ابزارها که ۹۷٪ کمتر از JSON است)،--json(استاندارد)،--raw(بدون تجزیه)،--head(فقط N مورد اول) یا--max-chars(برش سخت محتوا).
این چرخش به سمت نمادگذاریهای بهینه نشان میدهد که گلوگاه فعلی در دنیای هوش مصنوعی، دیگر فقط هوش مدل نیست، بلکه کارایی «لولهکشی» بین مدل و ابزارهاست. با حذف لایههای زائد نحوی از لایه انتقال، توسعهدهندگان میتوانند بدون نیاز به ارتقا به مدلهای گرانتر، پنجره متنی کاربردی عاملهای خود را گسترش دهند.
برای کاربر نهایی، این یعنی عاملها میتوانند به سرورهای بیشتری متصل شوند و ابزارهای متنوعتری را همزمان مدیریت کنند، بدون اینکه به دلیل سرریز شدن پنجره متنی (Context Overflow)، ابتدای گفتگو را «فراموش» کنند. این تغییر، تجربه MCP را از یک تبادل سنگین و ساختاریافته به یک جریان سبک و دادهمحور تبدیل میکند.
گام بعدی شما
برای شروع، کاربران میتوانند دستور mcptoon init را اجرا کرده و سرورها را از طریق CLI اضافه کنند. سرورها را میتوان از طریق stdio (مثلاً mcptoon add fetch --stdio npx -y @modelcontextprotocol/server-fetch) یا HTTP (مثلاً mcptoon add myapi --http http://localhost:3001/mcp) افزود. تنظیمات در مسیر ~/.mcptoon/config.json قرار دارد و امکان بازنویسی تنظیمات در سطح پروژه در فایل ./.mcptoon.json وجود دارد.
- اگر از Claude Code استفاده میکنید، متغیر محیطی
MCPTOON_AGENT_TYPE=claudeرا تنظیم کنید تا مدل بهطور خودکار فرمت بهینه TOON را برای هر فراخوانی انتخاب کند. - سایر عاملها میتوانند با افزودن دستورات به فایلهای
SKILL.md(در Claude Code)،AGENTS.md(در Codex)،.cursorrules(در Cursor) یا فایلهای دستور سفارشی (در OpenCode/CatPaw) با mcptoon ادغام شوند.
اما بهینهسازی لایه انتقال تنها بخشی از ماجراست؛ برای درک اینکه چگونه مدلهای استدلالی جدید این توکنها را پردازش میکنند، تحلیل ما درباره مدلهای Reasoning را بخوانید.




گفتگو