Win32 API MCP Server
基于 C# 编写的 Model Context Protocol (MCP) 服务器,提供 Windows 环境下的桌面自动化底层支持,通过 StdioMcpServer 直接调用 user32.dll 等系统原生 API。
客户端配置
将以下配置添加至 MCP 客户端(如 Claude Desktop 或 Cursor),配置文件中。 注意:根据实际项目路径修改 --project 参数。
{
"mcpServers": {
"winapi-mcp": {
"command": "D:\\GitHub\\127.0.0.1-84\\WinapiMCP-main\\src\\bin\\Release\\net8.0-windows\\WinAPIMCP.exe",
"args": [
"--stdio"
]
}
}
}*配置中必须包含 --stdio 参数。*
功能列表 (Tools)
共计 29 种系统级自动化 API 工具。
[!TIP] 查看工具详细说明文档与用法用例
窗口管理 (Window Control)
enumerate_windows: 枚举所有桌面可见窗口的句柄、类名和位置。enumerate_child_windows: 获取指定窗口内部的所有子窗口和控件。get_window_info: 获取指定窗口或控件的详细状态信息。find_windows_by_title: 根据标题(支持正则表达式)查找特定窗口。find_windows_by_class: 根据类名 (Class Name) 查找特定窗口。set_window_focus: 强制将目标窗口置顶并赋予焦点。show_window: 改变窗口状态(最小化、最大化、常规、隐藏)。close_window: 优雅强制向受支持句柄发送WM_CLOSE(16) 退出指令。
内存劫持与进程管理 (Memory Hijacking & Process)
read_memory: 读取目标进程的原始内存数据。write_memory: 向目标进程写入原始内存数据(自动处理 VirtualProtect 权限)。inject_iat_hook: 通过修改 IAT(导入地址表)劫持目标进程的 WinAPI 调用。advanced_hook: 高级劫持工具,支持通过命名管道(Named Pipe)回调 Python 脚本或 ASM 逻辑,实现有条件拦截。inject_hook: 标准 x64 Inline Hook(指令级劫持),用于更复杂的底层操作。enumerate_processes: 枚举系统内正在运行的所有进程。get_process_info: 获取指定 PID 的内存及路径信息。find_processes_by_name: 根据进程名查找目标进程。
鼠标与屏幕控制 (Mouse & Cursor)
move_cursor: 瞬间移动鼠标光标至指定物理坐标。drag_from_to: 按住指定按键执行坐标间的拖拽操作。scroll_window: 在指定窗口内模拟鼠标滚轮滚动。get_cursor_position: 获取当前屏幕的鼠标坐标。click_at_coordinates: 前台直接在指定坐标执行点击。
控件交互与模拟键鼠 (UI Interaction)
click_control: (后台) 解析并向目标控件发送鼠标点击事件。send_text: (后台) 向指定控件逐字发送键盘字符输入。send_keys: (前台) 模拟物理键盘组合键(如Ctrl+C,Enter)。get_control_text: 提取指定 UI 控件内的纯文本(WM_GETTEXT)。set_control_text: 覆盖、替换目标控件内部文本。find_elements_by_text: 检索子树中包含指定文本的特定控件。
底层消息操控 (Win32 Messages)
send_message: 同步阻塞执行底层的SendMessage,支持 Msg/wParam/lParam 深度定制。post_message: 异步执行底层的PostMessage,不论对方窗口是否响应,强行压入目标消息队列。
