
خادم MCP (بروتوكول سياق النموذج) يحول جميع وظائف مصحح الأخطاء pybag Windows إلى أدوات MCP أصلية. يسمح للعملاء المتوافقين مع MCP (Claude Desktop, Claude Code, Cowork, OpenAI Codex CLI, Cursor، والعوامل المخصصة) بالتحكم في عمليات وضع المستخدم، وجلسات kernel، وتحليل تفريغ الأعطال من خلال استدعاءات JSON منظمة.
خادم MCP (بروتوكول السياق النموذجي) يعرض كل دالة من دوال مصحح أخطاء Windows في pybag كأداة MCP أصلية. يمنح أي عميل متوافق مع MCP (Claude Desktop، Claude Code، Cowork، OpenAI Codex CLI، Cursor، والعوامل المخصصة) تحكمًا كاملاً في عمليات وضع المستخدم، وجلسات النواة، وتحليل تفريغ الأعطال — كل ذلك من خلال استدعاءات أدوات مقولبة مع استجابات JSON منظمة.
git clone https://github.com/your-username/windbg-mcp.git cd windbg-mcp
### 2. تثبيت تبعيات بايثون```bat
pip install pybag mcp
قم بتنزيل Windows SDK واختر Debugging Tools for Windows أثناء الإعداد: https://developer.microsoft.com/en-us/windows/downloads/windows-sdk/
يعمل الخادم كعملية stdio محلية. جميع العملاء أدناه يطلقونه بنفس الطريقة — python <path-to>/windbg_mcp.py — لكن لكل منها تنسيق إعدادات خاص به.
قم بتعديل ملف إعدادات Claude Desktop وأضف الإدخال windbg-mcp:
موقع ملف الإعدادات:
%APPDATA%\Claude\claude_desktop_config.jsonأعد تشغيل Claude Desktop. ستظهر جميع أدوات التصحيح البالغ عددها 55 تلقائياً.
---
### Claude Code (CLI)
قم بتشغيل الأمر التالي مرة واحدة لتسجيل الخادم. يخزن Claude Code الإدخال
في إعدادات MCP config الخاصة به ويجعل الأدوات متاحة في كل جلسة لاحقة.```bash
claude mcp add windbg-mcp python C:\path\to\windbg-mcp\windbg_mcp.py
للتحقق من تسجيل الخادم:```bash claude mcp list
لإزالته لاحقًا:```bash
claude mcp remove windbg-mcp
هناك طريقتان لإضافة WinDbg MCP إلى Cowork: عبر إعدادات JSON (سريع) أو
عن طريق تثبيته كحزمة إضافة .mcpb (قابلة للنقل، قابلة للمشاركة).
3. احفظ وأعد تشغيل Cowork. ستكون الأدوات متاحة في جلستك التالية.
#### الخيار ب — التثبيت كحزمة إضافات `.mcpb`
ملف `.mcpb` هو أرشيف مضغوط لدليل الإضافات الذي يمكن لـ Cowork تثبيته مباشرة. هذا هو الأسلوب الموصى به عند مشاركة الخادم مع فريق أو عبر الأجهزة.
**الخطوة 1 — بناء ملف `.mcpb`**
من جذر المستودع المستنسخ، شغّل:```bat
powershell -Command "Compress-Archive -Path '.\*' -DestinationPath 'windbg-mcp.zip'; Rename-Item 'windbg-mcp.zip' 'windbg-mcp.mcpb'"
هذا يُنشئ windbg-mcp.mcpb في الدليل الحالي، ويضم windbg_mcp.py وmanifest.json وأي ملفات مشروع أخرى.
الخطوة 2 — التثبيت في Cowork
windbg-mcp.mcpb.manifest.json من الحزمة، ويسجِّل خادم MCP، ويجعل جميع الأدوات متاحة فورًا — دون الحاجة إلى تهيئة مسار يدوية.ملف manifest.json المضمَّن في هذا المستودع مُهيَّأ بالفعل بشكل صحيح:```json
{
"manifest_version": "0.2",
"name": "windbg-mcp",
"version": "1.0.0",
"description": "WinDbg MCP — full Windows debugger control via MCP tools",
"server": {
"type": "python",
"entry_point": "windbg_mcp.py",
"mcp_config": {
"command": "python",
"args": ["${__dirname}/windbg_mcp.py"]
}
}
}
`${__dirname}` يتم تحليلها وقت التثبيت إلى الدليل الذي فك فيه Cowork الحزمة، لذا لا تحتاج إلى ترميز أي مسارات بشكل ثابت.
---
### واجهة سطر الأوامر Codex CLI من OpenAI
أضف الخادم إلى ملف إعدادات Codex CLI الخاص بك. يوجد الملف عادةً في
`~/.codex/config.json` (لينكس/ماك) أو `%USERPROFILE%\.codex\config.json` (ويندوز).```json
{
"mcpServers": {
"windbg-mcp": {
"command": "python",
"args": ["C:\\path\\to\\windbg-mcp\\windbg_mcp.py"]
}
}
}
بمجرد الحفظ، ابدأ جلسة Codex جديدة. ستكون أدوات WinDbg متاحة للنموذج لاستدعائها.
4. حفظ. سيتصل Cursor بالخادم في جلسته التالية من Composer.
---
### Continue.dev
أضف ما يلي إلى ملف `~/.continue/config.json` الخاص بك (أو ملف `.continue/config.json` على مستوى مساحة العمل):```json
{
"experimental": {
"modelContextProtocolServers": [
{
"transport": {
"type": "stdio",
"command": "python",
"args": ["C:\\path\\to\\windbg-mcp\\windbg_mcp.py"]
}
}
]
}
}
أعد تحميل امتداد Continue. ستظهر أدوات التصحيح الـ55 في قائمة الأدوات.
إذا كنت تقوم ببناء وكيل خاص بك أو خط أنابيب أتمتة، فاتصل بـ WinDbg MCP عبر نقل stdio القياسي الخاص بـ MCP. يتحدث الخادم JSON-RPC 2.0 عبر stdin/stdout.
mcp SDK)```pythonimport asyncio from mcp import ClientSession, StdioServerParameters from mcp.client.stdio import stdio_client
server_params = StdioServerParameters( command="python", args=[r"C:\path\to\windbg-mcp\windbg_mcp.py"], )
async def main(): async with stdio_client(server_params) as (read, write): async with ClientSession(read, write) as session: await session.initialize()
# List all available tools
tools = await session.list_tools()
print([t.name for t in tools.tools])
# Load a crash dump
result = await session.call_tool(
"load_dump",
arguments={"path": r"C:\crashes\crash.dmp"},
)
print(result.content)
# Read 64 bytes at RSP
result = await session.call_tool(
"read_mem",
arguments={"addr": "0x00000000001FF000", "size": 64},
)
print(result.content)
asyncio.run(main())
#### TypeScript / Node.js (باستخدام حزمة `@modelcontextprotocol/sdk`)```typescript
import { Client } from "@modelcontextprotocol/sdk/client/index.js";
import { StdioClientTransport } from "@modelcontextprotocol/sdk/client/stdio.js";
const transport = new StdioClientTransport({
command: "python",
args: ["C:\\path\\to\\windbg-mcp\\windbg_mcp.py"],
});
const client = new Client({ name: "my-agent", version: "1.0.0" }, {});
await client.connect(transport);
// Call a tool
const result = await client.callTool({
name: "load_dump",
arguments: { path: "C:\\crashes\\crash.dmp" },
});
console.log(result.content);
await client.close();
from langchain_mcp_adapters.tools import load_mcp_tools from mcp import ClientSession, StdioServerParameters from mcp.client.stdio import stdio_client
server_params = StdioServerParameters( command="python", args=[r"C:\path\to\windbg-mcp\windbg_mcp.py"], )
async def get_tools(): async with stdio_client(server_params) as (read, write): async with ClientSession(read, write) as session: await session.initialize() return await load_mcp_tools(session)
#### JSON-RPC المباشر عبر stdio (مستقل عن اللغة)
يتواصل الخادم عبر رسائل JSON-RPC 2.0 المفصولة بأسطر جديدة. يمكنك تشغيله
من أي لغة عن طريق الكتابة إلى stdin الخاص بالعملية والقراءة من stdout:```
→ {"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"my-client","version":"1.0"}}}
← {"jsonrpc":"2.0","id":1,"result":{"protocolVersion":"2024-11-05","capabilities":{...},"serverInfo":{"name":"WinDbg MCP","version":"1.0.0"}}}