
خادم مصحح أخطاء MCP لملفات ويندوز القابلة للتنفيذ (x86 و x64). يكشف وظائف المصحح كأدوات MCP للتحليل الثابت / الديناميكي للبرنامج المُصحَح وفحص الذاكرة عبر واجهة نظيفة.
هذا المشروع هو خادم مصحح أخطاء MCP خفيف الوزن مبني ذاتيًا، تم تطويره للتعلم والتجريب. يعرض خادم مصحح أخطاء MCP وظائف التصحيح كأدوات MCP، مما يمكّن عملاء MCP الخارجيين من التحكم في التنفيذ، وفحص الذاكرة، وتحليل البرنامج المُصحَّح من خلال واجهة نظيفة.
المصحح مكتوب بلغة c++ وينفّذ وظائف التصحيح الأساسية من الصفر دون الاعتماد على أُطر عمل تصحيح الأخطاء الموجودة. لفك ترميز التعليمات، يُستخدم مفكك التعليمات Zydis. المصحح متكامل مع خادم MCP مكتوب بلغة c#، مبني باستخدام SDK MCP الرسمي لـ C#.
الكلمات المفتاحية:
خادم MCP، مصحح أخطاء، مفكك تعليمات، تحليل ثابت، تحليل ديناميكي، تصحيح أخطاء، ذكاء اصطناعي، EXE، ملف تنفيذي، Windows

تم استخدام Gemini CLI كعميل MCP في العرض التوضيحي
يوفّر هذا الدليل عملية خطوة بخطوة لبناء ودمج MCP.Server.exe في Visual Studio Code على نظام Windows.
قبل تكوين VS Code، يجب عليك ترجمة خادم MCP:
MCPDebugger.sln في Visual Studio.MCP.Server.exe موجود في مجلدك الفرعي \build\Release\x86 أو \build\Release\x64.تأكد من تثبيت الإضافات التالية وتفعيلها في VS Code:
Ctrl + Shift + P لفتح لوحة الأوامر.> واختر "إضافة خادم MCP".command (stdio) كنوع الخادم.أدخل المسار الكامل إلى MCP.Server.exe الذي قمت ببنائه في الخطوة 1.
[!CAUTION] يجب أن تكون بنية واحدة فقط (x86 أو x64) نشطة كخادم MCP في كل مرة. إذا قمت بتبديل البنية، فقم بإزالة إدخال الخادم السابق أولًا.
| البنية | مثال للمسار المطلوب إدخاله |
|---|---|
| Windows x64 | C:\YourProject\bin\x64\MCP.Server.exe |
| Windows x86 | C:\YourProject\bin\x86\MCP.Server.exe |
Ctrl + Alt + I)، وبدّل إلى وضع الوكيل، ثم انقر على أيقونة الأدوات. يجب أن تكون أدوات MCP الخاصة بك الآن مدرجة وجاهزة للاستخدام. يمكن تمكين / تعطيل أدوات MCP هنا.

بالنسبة للمهام المعقدة في التصحيح والهندسة العكسية باستخدام مصحح أخطاء MCP هذا، قدّم Claude Opus 4.5 أفضل النتائج بفارق كبير اعتبارًا من نوفمبر 2025. لقد تعامل باستمرار مع سجلات التنفيذ الكبيرة، والتفكيك المفصّل، والاستدلال متعدد الخطوات بشكل أكثر موثوقية من النماذج الأخرى المختبرة.
كان ChatGPT 4.1 وGemini 2.5 Pro كافيين لسيناريوهات التحليل الأبسط، مثل التنفيذ الأساسي خطوةً بخطوة، وفحص التعليمات، والاستدلال المباشر حول تدفق التحكم. وقد أدّت هذه النماذج أداءً جيدًا مع الأمثلة المقدمة في مجلدَي Example_x64 وExample_x86، لكنها أظهرت قيودًا عند التعامل مع جلسات تصحيح أخطاء أكثر تعقيدًا أو طويلة الأمد.
قد يتغير أداء النماذج بمرور الوقت، لكن ما سبق يعكس السلوك المرصود وقت الاختبار.
يمكن أن يؤدي التصحيح عبر MCP إلى استهلاك عالٍ للرموز وتكاليف متزايدة. التفاعلات مع الذكاء الاصطناعي عديمة الحالة، مما يعني أن جميع سياقات التصحيح ذات الصلة (السجلات، الذاكرة، التفكيك، الوحدات، إلخ) يجب نقلها بشكل متكرر مع كل طلب.
العمليات التي توقف التنفيذ بشكل متكرر وتُرجع حالة مفصّلة—مثل التنفيذ خطوة بخطوة ونقاط التوقف المؤقتة—يمكن أن تضخّم استهلاك الرموز بشكل كبير.
إذا تطلّب الأمر تكلفة منخفضة، فمن المستحسن بشدة التركيز على التحليل الثابت وتعطيل أدوات MCP التالية:
يقلل تعطيل هذه الأدوات من مقدار نقل الحالة المتكرر ويساعد على إبقاء استهلاك الرموز تحت السيطرة.
يحتوي المستودع على مشاريع أمثلة للمساعدة على البدء في التحليل الثابت والتصحيح، وهي موجودة في المجلدات التالية:
Example_x64 وExample_x86
يوفّر المشروعان Example_x64 وExample_x86 تطبيق وحدة تحكم بسيط يُستخدم كهدف تمهيدي للتصحيح. يطلب التطبيق من المستخدم إدخال كلمة مرور في وقت التشغيل. كلمة المرور الصحيحة لكلا المثالين هي secret.
MCP_Debugging_Sessions
مجلد يحتوي على جلسات تصحيح أخطاء أكثر تعقيدًا تستفيد من التحليل الديناميكي والتصحيح. في هذه الجلسات تم استخدام Claude Opus 4.5. يمكن تنزيل الأهداف هنا. يرجى ملاحظة أنه تم فك تعبئة الأهداف باستخدام UPX -d قبل استخدام مصحح أخطاء MCP.
يعرض خادم MCP الأدوات التالية للتفاعل مع المصحح:
Debugger_Start
يبدأ المصحح للملف القابل للتنفيذ المحدد ويتوقف عند نقطة توقف النظام الأولية.
Debugger_Stop
يوقف المصحح وينهي عملية البرنامج المُصحَّح.
Debugger_Continue
يستأنف التنفيذ عندما يكون البرنامج المُصحَّح متوقفًا عند نقطة توقف.
Debugger_ContinueToEntryPoint
يستأنف التنفيذ من نقطة توقف النظام إلى نقطة دخول البرنامج.
Debugger_ContinueToBreakpoint
يستأنف التنفيذ حتى الوصول إلى نقطة توقف مؤقتة عند عنوان افتراضي محدد.
Debugger_ContinueToApiBreakpoint
يستأنف التنفيذ حتى الوصول إلى نقطة توقف مؤقتة على دالة API محددة.
Debugger_StepInto
ينفّذ التعليمة التالية مع الدخول إلى استدعاءات الدوال.
Debugger_StepOver
يتجاوز استدعاءات الدوال ويستمر إلى التعليمة التالية.
Debugger_Disassemble
يفكك الذاكرة عند عنوان افتراضي معين ويعيد التعليمات بما في ذلك معلومات الرموز.
Debugger_TryResolveString
يحاول تحليل وقراءة سلسلة نصية من ذاكرة البرنامج المُصحَّح.
Debugger_ReadMemory
يقرأ وحدات البايت الخام من ذاكرة عملية البرنامج المُصحَّح.
Debugger_WriteMemory
يكتب وحدات بايت عشوائية في ذاكرة البرنامج المُصحَّح.
Debugger_GetModules
يعيد قائمة بالوحدات المحمّلة حاليًا في عملية البرنامج المُصحَّح.
Debugger_GetModuleImports
يعيد الدوال المستوردة لوحدة محددة.
Debugger_GetModuleExports
يعيد الدوال المُصدَّرة لوحدة محددة.
Debugger_GetModuleSections
يعيد معلومات أقسام وحدة محددة.
يتكوّن حل Visual Studio من المشاريع التالية:
MCP.Debugger
المصحح الأساسي المنفَّذ بلغة C++. يتضمن جسر C++/CLI لتوفير واجهة مُدارة لعملاء .NET.
MCP.Debugger.Tester
تطبيق WinForms بسيط يُستخدم لاختبار المصحح عبر واجهة .NET المُدارة.
MCP.Debugger.Types
تجميعة أنواع تُعرّف البنى المشتركة وأنواع البيانات للانتقالات بين الكود المُدار والكود الأصلي بين المصحح وعملاء .NET.
MCP.Server
خادم MCP بلغة C# يعرض وظائف المصحح كأدوات MCP للعملاء الخارجيين.