Skip to main content
Glama
inflearner0

systeminformer-mcp

by inflearner0

systeminformer-mcp

System Informer の機能をツールとして公開する MCP サーバーです。プロセス、スレッド、モジュール、ハンドル、メモリ、サービス、ネットワークエンドポイント、ファイル署名に加え、プロセスの起動と制御を提供します。

54 個のツールを Windows 11 (build 26200) でエンドツーエンドに検証済みです。

動作の仕組み

MSCI の最新の System Informer ビルドにはヘッドレスコマンドモードはありません。従来の -ctype / -cobject / -caction スイッチは削除され、残っているコマンドラインスイッチは GUI の設定だけを変更します。GUI をスクレイピングするのは、脆弱で情報の欠落が避けられません。

そこで、このサーバーは System Informer 自身が行っていることと同じことをします。ctypes を通じて、同じネイティブ NT API(NtQuerySystemInformation、NtQueryInformationProcess、NtDuplicateObject、SCM API、iphlpapi、WinVerifyTrust など)を直接呼び出します。結果はテーブルの行ではなく、構造化された JSON として返ります。

インストール済みの System Informer アプリケーションは、次の 2 つの目的にのみ使用されます。

  • GUI の引き渡し — launch_systeminformer_gui, launch_peview を、ツールの出力には変換できないライブグラフや対話ビューに使用します。

  • dbghelp.dll — System Informer に同梱されているコピーがプロセスダンプを書き出します。

どちらも必須ではありません。System Informer がインストールされていなくても、すべての検査・制御ツールは動作します。この 2 つの引き渡しツールだけが利用できなくなります。

Related MCP server: memscope-mcp

インストール

pip install mcp

次に、サーバーを MCP クライアントに登録します。Claude Code の場合、PYTHONPATH に注意してください。PYTHONPATH によって、どの作業ディレクトリからでも 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 . を実行すると、systeminformer-mcp コンソール スクリプトが PATH に配置され、PYTHONPATH が不要になります。

System Informer が C:\Program Files\SystemInformer 以外にインストールされている場合は、SYSTEMINFORMER_PATH を設定してください。

特権

何が表示されるかを決めるのは、このサーバーではなく Windows です。完全な範囲を表示するには、サーバーを昇格状態で実行してください。いつでも server_status を呼び出して、何が利用できて何が利用できないかを正確に確認できます。

実行ユーザー

取得できる内容

標準ユーザー

自分のプロセスは完全に、他のユーザーのプロセスは制限付きで表示

昇格

ほぼすべてを取得: すべてのプロセス、カーネルアドレス、サービス制御

昇格 + KSystemInformer ドライバー

保護されたプロセス (PPL、マルウェア対策) も表示

昇格していない場合、Windows はカーネルアドレス(ドライバーのベースアドレスは 0x0 として読み戻される)や、自分が所有していないプロセスのスレッド開始アドレスを供与しません。このサーバーは、可能な場合、スレッド ハンドルを再クエリすることで後者を回避します。

ツール

System — system_overview, system_cpu_usage, system_memory, system_uptime

Process — list_processes, process_tree, process_details, process_token, process_modules, process_threads, thread_details

プロセス制御 — launch_process, launch_process_elevated, terminate_process, terminate_process_tree, suspend_process, resume_process, set_process_priority, set_process_affinity, set_process_critical, empty_working_set, create_process_dump

スレッド — suspend_thread, resume_thread, terminate_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_connections, port_owner

ドライバーとウィンドウ — list_drivers, list_windows, window_action

ファイル — file_details, verify_file_signature

System Informer — server_status, launch_system_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 が必要です:

  • write_process_memory — 対象を破損またはクラッシュさせる可能性があります

  • close_handle — 所有プロセスにはハンドルが消えたことが通知されません

  • terminate_process_tree — すべての子プロセスを強制終了します

  • delete_service — サービスの登録はこのサーバーでは復元できません

  • set_process_critical — クリティカル プロセスを終了すると Windows がバグチェックを発生させます

launch_process_elevated は、標準の Windows UAC 同意プロンプトを経由します。このサーバーが資格情報を受け付けたり、保存したり、送信したりすることはありません。別のユーザーとしてプロセスを実行するには、System Informer GUI の Run As ダイアログを使用してください。

正しさに関する注意

間違えやすい点をいくつか挙げ、ここではそれを処理しています。

  • オブジェクト名がハングすることがあります。 ハンドルに名前を付けるとは、ハンドルを複製して NtQueryObject を呼び出すことになりますが、同期型の名前付きパイプでは相手が応答しなければ永久にブロックします。System Informer と同様、これはタイムアウト付きのワーカー スレッドで行われ、スタックしたワーカーは再利用されずに廃棄され、呼び出しがブロックされている間にはクローズさせず、ハンドルは意図的にリークされます。

  • プロセス名は NUL 終端ではありません。 SYSTEM_PROCESS_INFORMATION には明示的な Length があります。終端を探すデコードでは文字列を越えて隣接するデータまで読み込み、ペアになっていない UTF-16 サロゲートを生成します。すべてのツール出力は追加でサニタイズされ、別のプロセスに由来する不正な名前が応答を失敗させることがありません。

  • トークン構造体はそれ自身のバッファ内にポインタを埋め込みます。 TOKEN_USER などは、コピーされた bytes ではなく、ライブなメモリ割り当てから読み出す必要があります。

  • 固定サイズの情報クラスはサイズを超えるバッファを拒否します。 SystemBasicInformation やプロセッサーごとのテーブルは、実行中のカーネルが期待する正確なサイズを要求し、そのサイズは Windows のバージョンによって異なります。そのため、サイズを事前に問い合わせます。

  • PID の再利用はプロセスツリーを壊します。 親プロセスがその子プロセスより後に作成された場合、PID は再利用されたものとして扱われ、子プロセスはツリーのルートに報告されます。

テスト

python tests/test_e2e.py

実際の MCP stdio トランスポートでサーバーを起動し、すべてのグルーからツールを呼び出し、実際のプロセスで起動 → 検査 → 中断 → 再開 → ダンプ → 終了という対応を実施します。また、各保護ツールが confirm=true なしでは動作を拒否することも検証します。チェックは 44 件です。

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    Exposes 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.
    -
  • A
    license
    Not graded
    quality
    A
    maintenance
    Enables 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.
    4
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables 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.
    1
    MIT
  • A
    license
    Not graded
    quality
    A
    maintenance
    Enables 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 npm
    MIT