تصور کنید میخواهید نشتی یک لوله را پیدا کنید، اما بهجای بررسی لوله اصلی، به لوله دیگری در اتاق مجاور نگاه میکنید. این دقیقاً وضعیتی است که توسعهدهندگان هنگام عیبیابی پروتکل زمینهٔ مدل (Model Context Protocol یا MCP) با آن مواجهاند. در حال حاضر وقتی یک فراخوانی ابزار بهطور ناگهانی متوقف میشود یا در محیطهایی مانند Claude Desktop، Cursor یا Claude Code با خطا مواجه میگردد، برنامهنویسان اغلب مجبور هستند با حدس و گمان و بررسی لاگهای متنی در پوشههای /tmp پیش بروند.
این شکاف در دید پذیری در تاریخ ۳ ژوئیه ۲۰۲۶ با انتشار ابزار mcpsnoop برطرف شد. این ابزار ارتقای قابلتوجهی در روشهای عیبیابی پروتکل MCP ایجاد میکند. طبق اعلام سازندگان این پروژه، بازرسان رسمی MCP چون خود بهعنوان کلاینتهای مجزا عمل میکنند، نمیتوانند ترافیک واقعی و عینی که میان یک کلاینت واقعی هوش مصنوعی و سرور آن جریان دارد را ثبت کنند. ابزار mcpsnoop با قرار گرفتن مستقیم در مسیر دادهها بهعنوان یک پروکسی شفاف، این نقطه کور را از بین میبرد و اجازه میدهد دقیقاً آنچه منتقل میشود را رصد کنید.

همانطور که در بررسیهای پیشین خود دربارهی استانداردهای ارتباطی عاملها اشاره کردیم، شفافیت در لایهی انتقال داده، کلید کاهش توهمات در سیستمهای پیچیده است. mcpsnoop دقیقاً همین شفافیت را فراهم میکند. در این راستا، اپل نیز در حال توسعه ابزارهای مشابه برای اتوماسیون عیبیابی است، همانطور که در پیشنمایش ۲۴۷ سافاری شاهد تلاش برای حذف توصیفات دستی برنامهنویس بودیم.
بر اساس مستندات گیتهاب این پروژه، این ابزار در قالب یک فایل باینری واحد، دو نقش حیاتی را ایفا میکند. در حالی که بازرسان رسمی در کنار مسیر قرار دارند و به صورت موازی عمل میکنند، mcpsnoop دقیقاً وسط لوله قرار میگیرد. وقتی این ابزار دور یک دستور سرور بسته شود (به صورت mcpsnoop -- <server>)، مانند یک لایه واسط یا «شیم» (Shim) شفاف عمل میکند که کلاینت شما آن را اجرا و spawn میکند. این ابزار بایتها را عیناً و بدون تغییر منتقل کرده و همزمان یک کپی از هر فریم را به یک مرکز نظارت (Hub) میفرستد.
زمانی که این ابزار بدون هیچ آرگومانی اجرا شود، یک رابط کاربری متنی (TUI) را باز میکند که جریان زنده ترافیک را نمایش میدهد. این دو نقش (پروکسی و رابط کاربری) از طریق یک سوکت شناختهشده و لاگهای روی دیسک با یکدیگر جفت میشوند. این مکانیسم به این معناست که رابط کاربری میتواند جلسات گذشته را بازخوانی (Backfill) کند و برای کاربر فرقی نمیکند که رابط کاربری را قبل یا بعد از اجرای کلاینت باز کند.

در بخش قابلیتهای فنی، mcpsnoop امکانات ویژهای برای توسعه جریانهای کاری عاملمحور (Agentic) ارائه میدهد که هر کدام چالشهای خاصی را حل میکنند:
- جریان زنده JSON-RPC: نمایش درخواستها، پاسخها، اعلانها و خروجیهای stderr سرور با کدگذاری رنگی. این ابزار فراتر از خطاهای استاندارد JSON-RPC عمل کرده و فراخوانیهای کند و پرچمهای
result.isErrorدر سطح ابزار را نیز علامتگذاری میکند. - بازپخش فراخوانی (Call Replay): با فشردن کلید
rمیتوان هر فراخوانی ثبتشده را روی یک نمونه سرور مجزا، ایزوله و تازه اجرا کرد. این قابلیت، سریعترین حلقه ممکن را برای تکرار و اصلاح یک ابزار فراهم میکند تا نیازی به اجرای مجدد کل سیستم نباشد. - بازرس قابلیتها (Capability Inspector): با فشردن کلید
cمیتوان دقیقاً مشاهده کرد که کلاینت و سرور در لحظه دستدادن (Handshake) اولیه بر سر چه قابلیتهایی توافق کردهاند و چه امکاناتی فعال شدهاند. - تشخیص فراخوانیهای معلق (Hung-call Detection): درخواستهایی که در جریان هستند و پاسخی ندادهاند، با برچسب PENDING و یک تایمر زنده نمایش داده میشوند. این ویژگی باعث میشود ابزارهای «گیر کرده» در یک نگاه شناسایی شوند.
- بازرس فریم (Frame Inspector): با فشردن کلید
enterمیتوان نسخه کامل و زیبا شده (Pretty-printed) JSON را مشاهده کرد که دارای قابلیت جستجو در داخل فریم است. - فیلترینگ پیشرفته: با فشردن کلید
/میتوان ترافیک را با استفاده از توکنهای AND شده که با فاصله از هم جدا شدهاند، محدود کرد. امکان فیلتر بر اساسtool:،status:،dir:،kind:،id:یا متن ساده وجود دارد. برای مثال، عبارتtool:search status:slowفراخوانیهای کندِ جستجو را مییابد، در حالی کهdir:s2c kind:reqدرخواستهای شروع شده توسط سرور مانند sampling یا roots را نمایش میدهد.
به نقل از توسعهدهندگان، این ابزار برای استقرار بدون پیکربندی (Zero-config) طراحی شده است و کاربر نیازی به به خاطر سپردن پرچمها یا ترتیب خاص در استارتآپ ندارد. کاربران میتوانند دستورات سرور موجود خود را — چه از node (برای بیلدهای TypeScript)، python server.py، npx -y @scope/server یا یک باینری کامپایلشده استفاده کنند — مستقیماً در فایل تنظیمات MCP کلاینت خود قرار دهند.
برای سرورهایی که از HTTP-streamable پشتیبانی میکنند، این ابزار میتواند بهعنوان یک پروکسی معکوس عمل کند. برای این کار از دستور زیر استفاده میشود: mcpsnoop http --target http://localhost:3000/mcp --listen :7000.
نصب این ابزار از سه طریق امکانپذیر است:
۱. از طریق دستور go install github.com/kerlenton/mcpsnoop/cmd/mcpsnoop@latest برای توسعهدهندگان زبان Go.
۲. استفاده از Homebrew با دستور brew tap kerlenton/mcpsnoop و سپس brew install mcpsnoop. (توجه: اگر Homebrew دسترسی به Tap شخص ثالث را محدود کند، ممکن است کاربر نیاز به اجرای brew trust kerlenton/mcpsnoop داشته باشد).
۳. دانلود مستقیم باینریهای پیشساخته از صفحه Releases در گیتهاب.
در مقایسه با ابزارهایی مثل mcp-trace یا بازرس رسمی MCP، نقطه قوت mcpsnoop در ارائه یک باینری واحد بدون هیچ وابستگی به زمان اجرا (Runtime Dependencies) است که ترافیک واقعی کلاینت-سرور را میبیند و همزمان قابلیتهای کامل TUI و بازپخش (Replay) را فراهم میکند.
از نظر امنیتی، توسعهدهندگان باید توجه داشته باشند که mcpsnoop دستور سروری را که دور آن بسته شده است، اجرا میکند. بنابراین، توصیههای امنیتی استاندارد اعمال میشود: فقط سرورهای مورد اعتماد را در آن قرار دهید یا آنها را درون کانتینرها اجرا کنید. در همین راستا، برای مقابله با آسیبپذیریهای احتمالی سرورها، راهکارهای سختگیرانهتری مانند محدود کردن دسترسی فایل توسط ادیسون فلورز پیشنهاد شده است تا امنیت محیطهای اجرایی تضمین شود. این ابزار هرگز چیزی را اجرا نمیکند که شما قبلاً در تنظیمات کلاینت خود قرار نداده باشید.
این تغییر در ابزارها، صنعت را از اجرای «جعبه سیاه» دور میکند. اکنون توسعهدهندگان میتوانند با مشاهده دقیق فریمهای JSON-RPC بفهمند آیا کلاینت آرگومانهای غیرمنتظرهای میفرستد یا اینکه سرور در تایید قابلیتها شکست میخورد. برای کسانی که عاملهای پیچیده میسازند، توانایی بازپخش یک فراخوانی شکستخورده در محیط ایزوله، حلقه عیبیابی را از یک سری حدسوگمان به یک علم دقیق تبدیل میکند.
گام بعدی شما
- دستور
mcpsnoop demoرا اجرا کنید تا یک جلسه اسکریپتشده در محیط رابط کاربری را مشاهده کرده و با نحوه نمایش ترافیک آشنا شوید. - اگر در محیط Claude Desktop با خطاهای مبهم در ابزارهای خود مواجهید، سرور خود را با mcpsnoop بپوشانید تا ترافیک واقعی JSON-RPC را رصد کنید.
- قابلیت Call Replay را برای تست سریع تغییرات در کد ابزارهای MCP به جای ریاستارت کردن کامل کلاینت به کار ببرید.
اما داستان سختافزاری این تحول حتی شگفتانگیزتر است — به تحلیل ما دربارهی تراشههای Blackwell مراجعه کنید.




گفتگو