MacOS Resource Monitor MCP Server について
MacOS Resource Monitor MCP Server は、macOS 上で CPU、メモリ、ネットワークを多く使用しているプロセスを特定する MCP サーバーです。LLM にローカルのシステム負荷を確認させたいユーザー向けで、標準の ps と lsof コマンドでデータを収集し、構造化された JSON を返します。
主な機能
- 01CPU、メモリ、ネットワークの上位プロセス一覧
- 02ページングと複数フィールドによる並べ替え
- 03システムリソースの概要
- 04構造化された JSON 出力
活用シーン
- 01Mac の動作が遅い原因となるプロセスを探す
- 02LLM にローカルのパフォーマンスボトルネックを分析させる
- 03カテゴリ別のプロセスのネットワーク接続を確認する
MCP 対応
このプロジェクトは MCP サーバーとして、プロセスのリソース使用状況を取得する 3 つのツール(get_resource_intensive_processes、get_processes_by_category、get_system_overview)を MCP クライアントに公開します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
MacOS Resource Monitor MCP Server
macOS 上で CPU、メモリ、ネットワークの使用状況を調べ、リソースを大量に消費するプロセスを特定する Model Context Protocol(MCP)サーバーです。
ホステッドデプロイ
Frontier AI でホステッドデプロイを利用できます。
概要
MacOS Resource Monitor は、システムリソースを監視するための MCP エンドポイントを公開する、軽量な MCP サーバーです。CPU、メモリ、ネットワークの使用状況を分析し、Mac 上で最もリソースを消費するプロセスを特定して、構造化された JSON 形式でデータを返します。
要件
- macOS オペレーティングシステム
- Python 3.10+
- MCP サーバーライブラリ
インストール
オプション 1:グローバルインストール(推奨)
uv を使用して MCP サーバーをグローバルにインストールし、システム全体から利用できるようにします。
git clone https://github.com/Pratyay/mac-monitor-mcp.git
cd mac-monitor-mcp
uv tool install .
これで、どこからでもサーバーを実行できます。
mac-monitor
オプション 2:開発用インストール
-
このリポジトリをクローンします。
git clone https://github.com/Pratyay/mac-monitor-mcp.git cd mac-monitor-mcp -
仮想環境を作成します(推奨)。
python -m venv venv source venv/bin/activate -
必要な依存関係をインストールします。
pip install mcp
使用方法
グローバルインストール
uv でグローバルにインストールした場合:
mac-monitor
開発用インストール
プロジェクトディレクトリから実行する場合:
python src/mac_monitor/monitor.py
または、uv run を使用する場合(プロジェクトディレクトリから):
uv run mac-monitor
次のメッセージが表示されます。
Simple MacOS Resource Monitor MCP server starting...
Monitoring CPU, Memory, and Network resource usage...
サーバーが起動し、LLM やその他のクライアントからアクセスできる MCP エンドポイントを公開します。
利用可能なツール
サーバーは 3 つのツールを公開します。
1. get_resource_intensive_processes()
各カテゴリ(CPU、メモリ、ネットワーク)で最もリソースを消費する上位 5 件のプロセス情報を返します。
2. get_processes_by_category(process_type, page=1, page_size=10, sort_by="auto", sort_order="desc")
高度なフィルタリング、ページネーション、並べ替えオプションを使用して、特定のカテゴリに属するすべてのプロセスを返します。
パラメーター:
process_type:「cpu」、「memory」、または「network」page:ページ番号(1 から開始、デフォルト:1)page_size:1 ページあたりのプロセス数(デフォルト:10、最大:100)sort_by:並べ替えフィールド。「auto」(デフォルトの指標)、「pid」、「command」、またはカテゴリ固有のフィールド:- CPU:「
cpu_percent」、「pid」、「command」 - メモリ:「
memory_percent」、「resident_memory_kb」、「pid」、「command」 - ネットワーク:「
network_connections」、「pid」、「command」
- CPU:「
sort_order:「desc」(デフォルト)または「asc」
使用例:
# Get first page of CPU processes (default: sorted by CPU% descending)
get_processes_by_category("cpu")
# Get memory processes sorted by resident memory, highest first
get_processes_by_category("memory", sort_by="resident_memory_kb", sort_order="desc")
# Get network processes sorted by command name A-Z, page 2
get_processes_by_category("network", page=2, sort_by="command", sort_order="asc")
# Get 20 CPU processes per page, sorted by PID ascending
get_processes_by_category("cpu", page_size=20, sort_by="pid", sort_order="asc")
3. get_system_overview()
アクティビティモニタに似た集計統計を含む、システムの包括的な概要を返します。CPU、メモリ、ディスク、ネットワークの統計情報に加え、ボトルネックや最適化の機会を特定するためのインテリジェントなパフォーマンス分析を提供します。
機能:
- CPU 指標:使用率、ロードアベレージ、コア数
- メモリ分析:メモリの合計/使用量/空き容量とその割合
- ディスク統計:すべてのファイルシステムにおけるストレージ使用量
- ネットワーク概要:アクティブな接続、インターフェース統計
- パフォーマンス分析:インテリジェントなボトルネック検出と推奨事項
- システム情報:macOS のバージョン、稼働時間、プロセス数
使用例:
get_system_overview() # Get comprehensive system overview
ユースケース:
- システムパフォーマンスの監視と分析
- パフォーマンスのボトルネックや低速化の特定
- リソース使用状況の傾向分析とキャパシティプランニング
- システムパフォーマンスの問題のトラブルシューティング
- システムの状態の概要をすばやく把握
出力例
get_resource_intensive_processes() の出力
{
"cpu_intensive_processes": [
{
"pid": "1234",
"cpu_percent": 45.2,
"command": "firefox"
},
{
"pid": "5678",
"cpu_percent": 32.1,
"command": "Chrome"
}
],
"memory_intensive_processes": [
{
"pid": "1234",
"memory_percent": 8.5,
"resident_memory_kb": 1048576,
"command": "firefox"
},
{
"pid": "8901",
"memory_percent": 6.2,
"resident_memory_kb": 768432,
"command": "Docker"
}
],
"network_intensive_processes": [
{
"command": "Dropbox",
"network_connections": 12
},
{
"command": "Spotify",
"network_connections": 8
}
]
}
get_processes_by_category() の出力
{
"process_type": "cpu",
"processes": [
{
"pid": "1234",
"cpu_percent": 45.2,
"command": "firefox"
},
{
"pid": "5678",
"cpu_percent": 32.1,
"command": "Chrome"
}
],
"sorting": {
"sort_by": "cpu_percent",
"sort_order": "desc",
"requested_sort_by": "auto"
},
"pagination": {
"current_page": 1,
"page_size": 10,
"total_processes": 156,
"total_pages": 16,
"has_next_page": true,
"has_previous_page": false
}
}
仕組み
MacOS Resource Monitor は、macOS に組み込まれているコマンドラインユーティリティを使用します。
ps:CPU とメモリを最も多く消費するプロセスを特定しますlsof:ネットワーク接続を監視し、ネットワークを多く使用するプロセスを特定します
ツールの実行時にデータが収集され、システムリソースの使用状況をリアルタイムでスナップショットとして取得できます。
LLM との統合
この MCP サーバーは、Model Context Protocol をサポートする大規模言語モデル(LLM)と連携するように設計されています。LLM は get_resource_intensive_processes ツールを使用してシステムリソース情報にアクセスし、インテリジェントな分析を提供できます。
コントリビューション
コントリビューションを歓迎します!お気軽にプルリクエストを送信してください。
- リポジトリをフォークします
- フィーチャーブランチを作成します(
git checkout -b feature/amazing-feature) - 変更をコミットします(
git commit -m 'Add some amazing feature') - ブランチにプッシュします(
git push origin feature/amazing-feature) - プルリクエストを作成します
管理コマンド
uv を使用してサーバーをグローバルにインストールした場合:
- インストール済みツールの一覧表示:
uv tool list - アンインストール:
uv tool uninstall mac-monitor - アップグレード:
uv tool install --force .(プロジェクトディレクトリから実行) - Git からインストール:
uv tool install git+https://github.com/Pratyay/mac-monitor-mcp.git
最近の更新
バージョン 0.2.0(最新)
- ✅ ページネーションとソートに対応した
get_processes_by_category()ツールを追加 - ✅ 包括的なソートオプションを追加(CPU%、メモリ、PID、コマンド名)
- ✅
pyproject.tomlによる適切な Python パッケージングを追加 - ✅
uv tool installによるグローバルインストールのサポートを追加 - ✅ エラー処理と入力検証を強化
- ✅ ナビゲーション情報を含むページネーションメタデータを追加
今後の改善案
このモニターを強化する方法をいくつか紹介します:
- ディスク I/O の監視を追加する
- 帯域幅を含むようにネットワーク使用状況の監視を改善する
- 可視化機能を追加する
- 他のオペレーティングシステムとの互換性を拡張する
- リソースのしきい値によるプロセスフィルタリングを追加する
- 履歴データの追跡と傾向分析を追加する
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。