{"id":35094067,"url":"https://github.com/AgentSmithers/x64DbgMCPServer","last_synced_at":"2026-01-01T23:01:01.754Z","repository":{"id":285862535,"uuid":"959585391","full_name":"AgentSmithers/x64DbgMCPServer","owner":"AgentSmithers","description":"x64DbgMCPServer made from c# with Claude, Windsurf and Cursor support","archived":false,"fork":false,"pushed_at":"2025-11-19T14:35:00.000Z","size":424,"stargazers_count":206,"open_issues_count":10,"forks_count":36,"subscribers_count":7,"default_branch":"master","last_synced_at":"2025-11-19T16:21:52.359Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/AgentSmithers.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-04-03T02:56:44.000Z","updated_at":"2025-11-19T14:35:03.000Z","dependencies_parsed_at":null,"dependency_job_id":"3b5a6cba-e47b-4f8f-b5be-e7323fb238f6","html_url":"https://github.com/AgentSmithers/x64DbgMCPServer","commit_stats":null,"previous_names":["agentsmithers/x64dbgmcpserver"],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/AgentSmithers/x64DbgMCPServer","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AgentSmithers%2Fx64DbgMCPServer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AgentSmithers%2Fx64DbgMCPServer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AgentSmithers%2Fx64DbgMCPServer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AgentSmithers%2Fx64DbgMCPServer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AgentSmithers","download_url":"https://codeload.github.com/AgentSmithers/x64DbgMCPServer/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AgentSmithers%2Fx64DbgMCPServer/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28165027,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2026-01-01T02:00:06.694Z","response_time":59,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-12-27T15:04:24.311Z","updated_at":"2026-01-01T23:01:01.747Z","avatar_url":"https://github.com/AgentSmithers.png","language":"C#","funding_links":[],"categories":["AI","📚 Projects (1974 total)","C# #"],"sub_categories":["MCP Servers"],"readme":"# X64Dbg MCP Server (plugin)\nThis project is a starting point for building an MCP (Memory Command Protocol) server plugin for x96/x64/x32dbg https://github.com/x64dbg/x64dbg/ using C# on the classic Windows-only .NET Framework platform (No ASP.NET Core hosting required).\n\nThe plugin acts as a lightweight HTTP interface bridge between an MCP client and the debugger, allowing you to have an LLM MCP client interactively send commands to inspect memory, disassemble, query registers, manipulate labels/comments, and more—all remotely and programmatically.\n\nOn top of essential bindings to the x64dbg debugger engine, this template offers a clean project structure, a built-in command system, and a simple HTTP listener that exposes your commands through a text-based API. \n![image](https://github.com/user-attachments/assets/4b3c3a02-edc0-48e2-93eb-a8c1727b5017)\n\n## Features\n* ✅ Self-hosted HTTP command interface (no ASP.NET Core required)\n* ✅ Lightweight, zero-dependency binary deployment\n* ✅ Modular commands with parameter mapping\n* ✅ Direct interaction with registers, memory, threads, disassembly\n* ✅ Bi-directional AI/LLM command support\n* ✅ Plugin reload without restarting x64dbg\n* ✅ Expression function and menu extension support\n\n## Cursor Support\nCursor Connection:\n```json\n{\n  \"mcpServers\": {\n    \"AgentSmithers X64Dbg MCP Server\": {\n      \"url\": \"http://127.0.0.1:50300/sse\"\n    }\n  }\n}\n```\n![image](https://github.com/user-attachments/assets/22414a30-d41e-4c3d-9b4f-f168f0498736)\n\n![image](https://github.com/user-attachments/assets/53ba58e6-c97c-4c31-b57c-832951244951)\n\n## Claude Desktop support\n\n### MCPProxy STIDO\u003c-\u003eSSE Bridge required: https://github.com/AgentSmithers/MCPProxy-STDIO-to-SSE/tree/master\nClaude Configuration Connection:\n```\n{\n  \"mcpServers\": {\n    \"x64Dbg\": {\n      \"command\": \"C:\\\\MCPProxy-STDIO-to-SSE.exe\",\n      \"args\": [\"http://localhost:50300\"]\n    }\n  }\n}\n```\n![image](https://github.com/user-attachments/assets/0b089015-2270-4b39-ae23-42ce4322ba75)\n\n\n![image](https://github.com/user-attachments/assets/3ef4cb69-0640-4ea0-b313-d007cdb003a8)\n\n\n## Windsurf support\n\n### MCPProxy STIDO\u003c-\u003eSSE Bridge required: https://github.com/AgentSmithers/MCPProxy-STDIO-to-SSE/tree/master\nClaude Configuration Connection:\n```\n{\n  \"mcpServers\": {\n    \"AgentSmithers x64Dbg STDIO\u003c-\u003eSSE\": {\n      \"command\": \"C:\\\\MCPProxy-STDIO-to-SSE.exe\",\n      \"args\": [\"http://localhost:50300\"]\n    }\n  }\n}\n```\n![image](https://github.com/user-attachments/assets/df900c88-2291-47af-9789-1b17ff51cfa9)\n\nKnown: Context deadline exceeded (timeout) issue with directly using SSE.\n\n# X64Dbg MCP Client - Need a client to sample?\n[mcp-csharp-sdk-client.zip](https://github.com/user-attachments/files/19697365/mcp-csharp-sdk-client.zip)\n\nOpen the project\nEdit line 590 in Program.cs and enter your GeminiAI key from Google Cloud API.\nEdit line 615 in Program.cs and enter in your MCP Server IP: Location = \"http://192.168.x.x:50300/sse\",\nOpen your x96 debugger, your logs should reflect that the server automatically loaded.\nTo interact with the server by hand instead of using the AI, uncomment line 634 and comment out line 635.\nHit start debug on the client and the AI should automatically execute the Prompt located on line 434 (Program.cs)\n\n![image](https://github.com/user-attachments/assets/ebf2ad81-0672-4ceb-be6e-a44c625cd6d0)\n\nAccess the latest sample client to use as a starting point of integration with this project: https://github.com/AgentSmithers/mcp-csharp-sdk-client/\n\n## Sample Conversations:\n### AI Tasked with loading a file, counting the internal modules and begin labeling important material functions.\nhttps://github.com/AgentSmithers/x64DbgMCPServer/blob/master/Sample1\n\n### Singleshot Speedhack identification\nhttps://github.com/AgentSmithers/x64DbgMCPServer/blob/master/Sample2\n\n## Prerequisites\nTo build and run this project, you'll need:\n- Visual Studio Build Tools (2019 v16.7 or later)\n- .NET Framework 4.7.2 SDK\n- 3F/DllExport\n\n## Getting Started\nClone or fork the project: git clone https://github.com/AgentSmithers/x64DbgMCPServer\n\nDownload [DLlExport.bat](https://github.com/3F/DllExport/releases/download/1.8/DllExport.bat) and place it in the root folder of the project (Where the solutions[.sln] file is located). Then, run the `DllExport.bat`.\n\n# For X86 / 32bit support, you must have .NET Framework 2.0 and .NET Framework 3.5 installed through \"add/remove windows components\" in Add or remove programed (appwiz.cpl).\n\nIn the DllExport GUI,\n1. Check the `Installed` checkbox.\n2. Set the Namespace for DllExport to `System.Runtime.InteropServices`.\n3. Choose the target platform(`x64` or `x86`).\n4. Click Apply.\n\n\u003cimg width=\"518\" height=\"462\" alt=\"image\" src=\"https://github.com/user-attachments/assets/5148316e-37fe-48d4-baec-73fb2ef1d3ed\" /\u003e\n\nOpen the .sln solution file and build.\n\nIf you get this error, clean and rebuild the DotNetPlugin.Stub\n\u003cimg width=\"998\" height=\"155\" alt=\"image\" src=\"https://github.com/user-attachments/assets/a4bd8b06-3b35-4e3d-bdea-d7f8627178b3\" /\u003e\n\n\n📌 Tip: If you see `x64DbgMCPServer.dll` in the output folder, rename it to `x64DbgMCPServer.dp64` so that x64dbg can load the plugin.\n\ncopy the files (x64DbgMCPServer\\bin\\x64\\Debug) into the x64DBG plugin (x96\\release\\x64\\plugins\\x64DbgMCPServer) folder to run.\nNote: If the plugin folder does not exist, create it and create a x64DbgMCPServer subfolder and copy the files within.\n![image](https://github.com/user-attachments/assets/8511452e-b65c-4bc8-83ff-885c384d0bbe)\n\n\u003cimg width=\"880\" height=\"463\" alt=\"image\" src=\"https://github.com/user-attachments/assets/05994544-1b00-4b2d-9998-bf61c72b1425\" /\u003e\n\n\nSample Debug log when loaded\n\n![image](https://github.com/user-attachments/assets/02eb35d8-8584-46de-83c6-b535d23976b9)\n\nStart the Debugger, goto plugins -\u003e Click \"Start MCP Server\"\n\nConnect to it with your prefered MCP Client on port 50300 via SSE.\n\n### Checking command results\n\nSome x64dbg commands don't return meaningful booleans. Use these helpers:\n\n- ExecuteDebuggerCommandWithVar: run a command and read a debugger variable afterwards.\n  Example:\n  - `ExecuteDebuggerCommandWithVar command=\"init notepad.exe\" resultVar=$pid pollMs=100 pollTimeoutMs=5000`\n  - Returns the value of `$pid` (e.g., `0x1234`) after init; non-zero means started\n\n- ExecuteDebuggerCommandWithOutput: run a command and capture the log output.\n  Example:\n  - `ExecuteDebuggerCommandWithOutput command=\"bplist\"`\n  - Returns the log text produced by the command\n\n## Troubleshooting\n\n### \"Access is denied\" when starting MCP server\n\nIf you see `Failed to start MCP server: Access is denied` in the x64dbg logs (Alt+L), this is because Windows requires special permissions to listen on HTTP URLs. You have two options:\n\n**Option 1: Run as Administrator (Quick fix)**\n- Right-click `x64dbg.exe` and select \"Run as administrator\"\n\n**Option 2: Grant URL permissions (Recommended)**\nRun these commands in an elevated PowerShell/Command Prompt:\n```cmd\nnetsh http add urlacl url=http://+:50300/sse/ user=Everyone\nnetsh http add urlacl url=http://+:50300/message/ user=Everyone\n```\n\nAfter running these commands, you can start x64dbg normally and the MCP server will work.\n\n**Ensure that you run powershells \"Unblock-File *\" command to remove any sort of block on the downloaded files.**\n\n### Sample Commands using the X64Dbg MCP Client\nI've validated several commands already and they are working wonders. I'm especially excited to be using this system to explore how AI-assisted reverse engineering could streamline security workflows.\nOnce the MCP server is running (via the plugin menu in x64dbg), you can issue commands like:\n```\nExecuteDebuggerCommand command=init C:\\InjectGetTickCount\\InjectSpeed.exe\nExecuteDebuggerCommand command=\"AddFavouriteCommand Log s, NameOfCmd\"\nReadDismAtAddress addressStr=0x000000014000153f, byteCount=5\nReadMemAtAddress addressStr=00007FFA1AC81000, byteCount=5\nWriteMemToAddress addressStr=0x000000014000153f, byteString=90 90 90 90 90 90\nCommentOrLabelAtAddress addressStr=0x000000014000153f, value=Test, mode=Comment\nCommentOrLabelAtAddress addressStr=0x000000014000153f, value=\nGetAllRegisters\nGetLabel addressStr=0x000000014000153f\nGetAllActiveThreads\nGetAllModulesFromMemMap\nGetCallStack\nThese commands return JSON or text-formatted output that's suitable for ingestion by AI models or integration scripts. Example:\n```\n![image](https://github.com/user-attachments/assets/f954feab-4518-4368-8b0a-d6ec07212122)\n![image](https://github.com/user-attachments/assets/2952e4eb-76ef-460c-9124-0e3c1167fa3d)\n\n## Debugging\nDotNetPlugin.Impl contains the following within the project build post commands. Update it to reflect the corret path to x64dbg for faster debugging.\nUpon rebuilding X64Dbg will autoload the new plugin and you can reattach to the X64Dbg instance if needed.\n```\nxcopy /Y /I \"$(TargetDir)*.*\" \"C:\\Users\\User\\Desktop\\x96\\release\\x64\\plugins\\x64DbgMCPServer\"\nC:\\Users\\User\\Desktop\\x96\\release\\x64\\x64dbg.exe\n```\n## Actively working on implementing several functions\nNot every command is fully implemented althrough I am actively working on getting this project moving to support full stack, thread and module dumps for the AI to query.\n\n## How It Works\nThe MCP server runs a simple HTTP listener and routes incoming commands to C# methods marked with the [Command] attribute. These methods can perform any logic (e.g., memory reads, disassembly, setting breakpoints) and return data in a structured format back to a MCP client.\n\n## Known Issues\nExecuteDebuggerCommand always returns true as it pertains to the comment successfully being execute and not the results of the actual command.(Fix was implemented,needs checking.)\\\nCurrently the already compiled version is set to listen on all IP's on port 50300 thus requiring Administrative privileges. Future releases will look to detect this and will listen only on 127.0.0.1 so it may be used without administrative privileges.(See the `Troubleshooting` section)\n\nIf upon launch x64/x32 dbg crashes, ensure the DLL's are not being blocked by windows.\nThis causes .NET Framework to refuse loading the assemblies for security reasons.\n\n## Special thanks\n⚡ With the help of DotNetPluginCS by Adams85. That and roughly ~20 hours of focused coding, MCP Protocol review resulted in a decent proof-of-concept self-contained HTTP MCP server plugin for x64dbg.\n\n## Integration Notes\nOne of the most satisfying aspects of this project was overcoming the challenge of building an HTTP server entirely self-contained — no Kestrel, no ASP.NET, just raw HttpListener powering your reverse engineering automation.\n\nI plan to continue improving this codebase as part of my journey into AI-assisted analysis, implementation security, and automation tooling.\n\nIf you'd like help creating your own integration, extending this plugin, or discussing potential use cases — feel free to reach out (see contact info in the repo or my profile). I'm eager to collaborate and learn with others exploring this space.\n\n💻 Let's reverse engineer smarter. Not harder.\n\nCheers 🎉\n\nHttps://ControllingTheInter.net\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FAgentSmithers%2Fx64DbgMCPServer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FAgentSmithers%2Fx64DbgMCPServer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FAgentSmithers%2Fx64DbgMCPServer/lists"}