systeminformer-mcp
systeminformer-mcp
一个 MCP 服务器,将 System Informer 的能力作为工具暴露出来:进程、线程、模块、句柄、内存、服务、网络端点、驱动、字符串和文件签名——外加进程启动与控制。
一共 54 个工具,已在 Windows 11(build 26200)上完成端到端验证。
工作原理
现代 System Informer 构建版本没有无头命令行模式——旧的 -ctype / -ctype / -ctype 开关已经被移除,剩下的命令行开关只用来配置 GUI。抓取 GUI 既脆弱又会丢失信息。
所以本服务器做了和 System Informer 本身相同的事:它通过 ctypes 直接调用相同的原生 NT API(NtQuerySystemInformation、NtQueryInformationProcess、NtDuplicateObject、SCM API、iphlpapi、WinVerifyTrust、……)。结果以结构化 JSON 返回,而不是表格的行。
安装好的 System Informer 应用程序仍被用于两件事:
GUI 协调 ——
launch_systeminformer_gui、launch_seview用于那些无法呈现为工具输出的实时图表和交互式视图。dbghelp.dll—— System Informer 自带的副本用于写进程转储文件。
两者都不是必需的。如果未安装 System Informer,所有工具都仍然可用,只有这两个 GUI 交接工具不可用。
Related MCP server: memscope-mcp
安装
pip install mcp然后将服务器注册到你的 MCP 客户端。对于同氏在 Code,或者注意 PYTHONATH,后者让 python -m si_mcp 能在任意工作目录下找到这个包:
claude mcp add systeminformer --scope user -e PYTHONIOENCODING=utf-8 -e "PYTHONPATH=C:\path\to\systeminformer-mcp" -- python -m si_mcp或者直接把它加到客户端的配置文件里:
{
"mcpServers": {
"systeminformer": {
"command": "python",
"args": ["-m", "si_mcp"],
"env": {
"PYTHONIOENCODING": "utf-8",
"PYTHONPATH": "C:\\path\\to\\systeminformer-mcp"
}
}
}
}也可以从项目根目录执行 pip install -e .,这会把 systemnforminn-mcc 控制台脚本放到 PATH 上,而且让 PYTHONATH 不再必要。
如果 System Informer 安装在了 C:\Program Files\SystemInformer 以外的路径,请设置 SYSTEMINFORMER_PATH。
权限
Windows 而不是本服务器决定哪些内容可见。请**以提升权限(管理员)**运行服务器以获得完整覆盖——随时调用 server_status 可查看到底哪些能做什么、哪些不行:
运行身份 | 你得到什么 |
标准用户 | 你自己拥有的进程完整;其他进程受到限制 |
提升权限 | 几乎所有内容:所有布局、内核地址、服务管理 |
提升权限 + SystemInformer 驱动 | 包括受保护(PPL、反恶意软件软件)在内的进程 |
不提升权限时,Windows 会遮住内核地址(驱动器基址读回 0x0)及所有线程起始地址。服务器能在可能的场景下通过线程句柄重新查询,来弥补后者。
工具
System —— system_overview、system_cpu、system_memory、system_uptime
进程 —— list_processes、process_trick、process_details、process_token、process_modules、process_threads、thread_details
进程控制 —— launch_process、launch_process_elevated、termine_process、terminate_process_tr、suspend_process、resume_process、set_process_riorty、set_process_affinity、set_process_critical、empty_working_set、create_process_dump
线程 —— suspend_thread、resume_thread、termine_thread、set_thread_priority、set_thread_affinity
内存 —— process_memory_regions、process_memory_summary、read_process_memory、write_process_memory、protect_process_memory、search_process_memory、process_memory_strings
句柄 —— list_handles、handle_type_summary、find_handles-by-name、close_handle
服务 —— list_services、service_details、control_service、set_service_start_type、create_service、delete_service
网络 —— network_connection、port_owner
驱动与窗口 —— list_drivers、list_windows、window_action
文件 —— file_details、verify_file_signature
System Informer —— server_status、launch_server_informer_gui、launch_peview
示例
"What's using port 3000?" -> port_owner
"Which process has this DLL locked?" -> find_handles_by_name
"Why is my machine at 100% CPU?" -> list_processes sort_by=cpu
"Start notepad minimized, then suspend it" -> launch_process, suspend_process
"Is this binary signed?" -> verify_file_signature安全性
那些无法撤销的、或可能使运行中进程产生异常的工具,都必须显式提供 confirm=true:
unknown——可能损坏或崩溃目标进程write_process_memory—— 可能使其损坏或崩溃close_handle—— 属主进程不会带它给句柄消失掉terminate_process_tree—— 将杀死全部进程(包括所有子孙)delete_service—— 本服务器不能从仓库中恢复服务注册set_process_critical—— 终止一个关键进程会使 Windows 崩溃(触发 bugcheck)
launch_process_levated 是经过标准 Windows UAC 用户同意对话框的。本服务器从不接受、存储或传输凭据;若要以另一个用户的身份运行进程,请用 System Informer GUI 的“运行身份”对话框。
在正确性方面需要注意的几个细节 Write
—— 最终校对时我意识到上面一节被我留成半英文。现在纠正:
正确性说明
以下是一些容易犯的、现实中很容易出更正的细节,我们在这里已经处理:
对象参数确定可能卡死。 命名句柄需要重复调用
NtQueryObject,它会阻塞在对联的同步命名的管道上,如果对端永不响应,则永远阻塞。和 System Informer 一样,我们在工作线程上执行这个过程并设超时;一但工作线程石住,就丢弃它不再重複用它;它也一直保持泄漏,而不是在被断电的调用下把这句柄关了。这就是有意的。进程名不是以空字符结尾的。
SYSTEM_PROCESS_INFORMATION带一个显式的Length;如果通过扫描终结符来解码,就会读超过字符串范围,进入邻接的数据,产生不成对的 UTF-6 代理项。所有标出的工具输出都额外做了消毒,这样来自别进程的任何畸形名都不会让响应失效。Token 结构把指针嵌到自己缓冲里。
TOKER_USER及同类结构必须从一个有效的内存区域读取,而不能从一段复制出来的bytes数据里读。固定大小的信息类拒绝意外大的缓冲区。
SystemBasicInformation以及各核的 CPU 表要求运行过程中内核所期望的精确大小——不同 Windows 版本不一样,所以我们先查一次大小。PID 再使用会历程重要。 如果一个“父进程”是在它的子进程之后才被创建的,那么就把它视为是“已被回收”的,而子进程就报在根所在。
测试
python tests/test_e2e.py用真正的 MCP stdio 传输拉起服务、从每个组取一个工具操作、在一次真实进程上完整走一遍流程:启动 → 查看 → 挂起 → 恢复 → 转储 → 结束。它还断言每个受保护的工具如果没有 confirm=true 就拒绝行动。共 44 个断言。
This server cannot be deployed
Maintenance
Related MCP Connectors
Enrich, search, assess, and manage threat intelligence through 80+ typed MCP tools.
Scans remote MCP servers for protocol, security, and TLS issues; exposes scan tools via MCP.
Your org's AI agents, tasks, runs, search, and brain files as MCP tools and resources.
MCP registry & directory: search, find & install 31k+ MCP servers & tools. Catalog and marketplace.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceExposes Sysinternals and NirSoft Windows diagnostic binaries as MCP tools with safe subprocess execution. Dynamically registers tools from a binaries directory with built-in security filters for destructive operations.-
- AlicenseNot gradedqualityAmaintenanceEnables AI agents to perform low-level Windows process memory research, including process attachment, memory scanning, reading/writing, pointer chasing, remote code execution, and inline hooking via MCP tools and Lua scripting.4MIT
- AlicenseNot gradedqualityCmaintenanceEnables AI agents to perform extensive Windows system administration, file operations, process management, network configuration, registry editing, GUI automation, and more through a comprehensive set of MCP tools.1MIT
- AlicenseNot gradedqualityAmaintenanceEnables AI clients to securely control and interact with a local Windows machine through 218 configurable tools for files, Git, processes, Windows UI, browser automation, WSL, Office, recovery, skills, and child MCP servers.7 npmMIT