mcpField
M
MCP Linux Common Utility Server

MCP Linux Common Utility Server

ローカル
github.com/guolisenクラウド・インフラ979 週間前に更新

MCP Linux Common Utility Server について

Linuxホストの調査や管理に使うPython製MCPサーバーです。ツールとリソースを通じて、システム情報、ファイル、ネットワーク、監視、ログを扱えます。

主な機能

  1. 01CPU、メモリー、プロセスの調査
  2. 02ディスク、ファイルシステム、ハードウェア操作
  3. 03ネットワーク確認とデータ転送
  4. 04システムの健全性とリソース監視
  5. 05複数ソースのログ検索・分析
  6. 06MCPツールとURIリソースの提供

活用シーン

  1. 01システム負荷やリソース使用量を確認
  2. 02ファイル検索やファイルシステムの管理
  3. 03接続テストやネットワークインターフェースの確認
  4. 04システム、カーネル、サービスのログを検索

MCP 対応

Linuxシステム操作ツールと、システム、ファイルシステム、ネットワーク、監視、ログのリソースをMCPクライアントに提供します。stdioとSSEのトランスポートに対応します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

インストール方法は未掲載です

このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。

リポジトリ

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

Python 3.12+ MCP Enabled MCP Server MCP Dev Tests

MCP Linux 共通ユーティリティサーバー

Model Context Protocol(MCP)Linux Common Utility(LCU)サーバーは、Model Context Protocol を通じて、さまざまな Linux システム操作や情報へのアクセスを提供する Python ベースのサーバーです。

機能

  • CPU 操作:CPU 情報、使用率、ロードアベレージなど。
  • メモリ操作:メモリとスワップの情報、使用統計。
  • プロセス/スレッド操作:プロセスの一覧表示、情報取得、管理。
  • ストレージ操作:ディスク、ボリューム、パーティションの情報。
  • ファイルシステム操作:ファイルの作成、削除、更新、情報取得。
  • ハードウェア操作:ハードウェアの検出と情報取得。
  • ネットワーク操作:インターフェース情報、接続テスト、データ転送。
  • 監視操作:システム状態の監視とヘルスチェック。
  • ログ操作:システムログへのアクセス、ログ分析、複数のソースにわたる統計情報。

インストール

前提条件
  • Python 3.10 以上
  • Linux オペレーティングシステム
インストール手順
  1. リポジトリをクローンします。

    git clone https://github.com/yourusername/mcp_lcu_server.git
    cd mcp_lcu_server
    
  2. パッケージをインストールします。

    uv venv
    source .venv/bin/activate
    python -m build
    

設定

サーバーは YAML 設定ファイルを使用して設定できます。デフォルトでは、次の場所から設定ファイルを探します。

  • ./config.yaml
  • ./config/config.yaml
  • /etc/mcp-lcu-server/config.yaml
  • ~/.config/mcp-lcu-server/config.yaml

コマンドラインオプション --config を使用して、カスタム設定ファイルのパスを指定することもできます。

設定ファイルの例
server:
  name: mcp-lcu-server
  transport: both  # stdio, sse, or both
  port: 8000
  host: 127.0.0.1

monitoring:
  enabled: true
  interval: 30  # seconds
  metrics:
    - cpu
    - memory
    - disk
    - network

filesystem:
  allowed_paths:
    - /
  max_file_size: 10485760  # 10MB

network:
  allow_downloads: true
  allow_uploads: true
  max_download_size: 104857600  # 100MB
  max_upload_size: 10485760  # 10MB
  allowed_domains:
    - "*"  # Allow all domains

process:
  allow_kill: false
  allowed_users: []

logs:
  # Custom log paths (optional)
  paths: 
    # syslog: /var/log/syslog
    # auth: /var/log/auth.log
  max_entries: 1000  # Maximum entries to return

使用方法

サーバーの起動

コマンドラインインターフェースを使用してサーバーを起動できます。

mcp-lcu-server [OPTIONS]

利用可能なオプション:

  • --config、-c:設定ファイルのパス
  • --transport、-t:トランスポートの種類(stdio、sse、または both)
  • --port、-p:SSE トランスポートのポート
  • --host、-h:SSE トランスポートのホスト
  • --debug、-d:デバッグログを有効にします
トランスポートの種類

サーバーは次のトランスポートの種類に対応しています。

  • stdio:標準入出力トランスポート
  • sse:Server-Sent Events トランスポート
例

stdio トランスポートでサーバーを起動します。

mcp-lcu-server --transport stdio

ポート 8000 で SSE トランスポートを使用してサーバーを起動します。

mcp-lcu-server --transport sse --port 8000

両方のトランスポートを使用してサーバーを起動します。

mcp-lcu-server --transport both

API ドキュメント

ツール

サーバーは、Linux システムとやり取りするためのさまざまなツールを提供します。

CPU ツール
  • get_cpu_info:CPU の詳細情報を取得します
  • get_cpu_usage:CPU 使用率を取得します
  • get_load_average:システムのロードアベレージを取得します
  • analyze_cpu_performance:CPU パフォーマンスを分析します
メモリツール
  • get_memory_info:メモリの詳細情報を取得します
  • get_memory_usage:メモリ使用量を取得します
  • get_swap_info:スワップ情報を取得します
  • analyze_memory_performance:メモリパフォーマンスを分析します
プロセスツール
  • list_processes:すべてのプロセスを一覧表示します
  • get_process_info:プロセスの詳細情報を取得します
  • search_processes:プロセスを検索します
  • analyze_top_processes:CPU とメモリの使用量が多いプロセスを分析します
ストレージツール
  • list_disks:物理ディスクを一覧表示します
  • list_partitions:ディスクパーティションを一覧表示します
  • get_disk_usage:ディスク使用量を取得します
  • analyze_storage_usage:ストレージ使用量を分析します
ファイルシステムツール
  • list_directory:ディレクトリの内容を一覧表示します
  • read_file:ファイルの内容を読み取ります
  • write_file:ファイルに内容を書き込みます
  • delete_file:ファイルまたはディレクトリを削除します
  • copy_file:ファイルまたはディレクトリをコピーします
  • move_file:ファイルまたはディレクトリを移動します
  • search_files:パターンに一致するファイルを検索します
  • search_file_contents:パターンを含むファイルを検索します
ハードウェアツール
  • get_system_info:一般的なシステム情報を取得します
  • get_cpu_info:CPU 情報を取得します
  • get_memory_info:メモリ情報を取得します
  • get_storage_info:ストレージ情報を取得します
  • get_pci_devices:PCI デバイス情報を取得します
  • get_usb_devices:USB デバイス情報を取得します
  • analyze_hardware:ハードウェア構成を分析します
ネットワークツール
  • get_network_interfaces:ネットワークインターフェース情報を取得します
  • get_network_connections:ネットワーク接続を取得します
  • get_network_stats:ネットワーク統計情報を取得します
  • ping_host:ホストに ping を実行します
  • traceroute_host:ホストまでのルートをトレースします
  • http_get_request:HTTP GET リクエストを実行します
  • download_file_from_url:URL からファイルをダウンロードします
  • upload_file_to_url:URL にファイルをアップロードします
  • analyze_network:ネットワーク構成と接続性を分析します
監視ツール
  • get_system_status:システムの状態を取得します
  • check_system_health:システムの健全性を確認します
  • monitor_resources:リソース使用状況を監視します
  • get_system_uptime:システムの稼働時間を取得します
  • get_system_load:システム負荷を取得します
  • analyze_system_performance:システムパフォーマンスを分析します
ログツール
  • log_list_available_logs:システム上で利用可能なすべてのログソースを一覧表示します
  • log_get_journal_logs:systemd ジャーナルからログを取得します
  • log_get_system_logs:システムログファイルからログを取得します
  • log_get_dmesg:dmesg からカーネルログを取得します
  • log_get_application_logs:特定のアプリケーションのログを取得します
  • log_get_audit_logs:監査ログを取得します
  • log_get_boot_logs:起動ログを取得します
  • log_get_service_status_logs:特定の systemd サービスに関連するログを取得します
  • log_search_logs:複数のログソースを横断して検索します
  • log_analyze_logs:ログを分析してパターンや問題を特定します
  • log_get_statistics:ログの量や特性に関する統計情報を取得します
リソース

サーバーは、MCP 経由でアクセスできるさまざまなリソースも提供します。

システムリソース
  • linux://system/info:システム情報
  • linux://system/cpu:CPU 情報
  • linux://system/memory:メモリ情報
  • linux://system/uptime:システムの稼働時間
監視リソース
  • linux://monitoring/status:システムの状態
  • linux://monitoring/health:システムの健全性
  • linux://monitoring/resources:リソース使用状況
ファイルシステムリソース
  • linux://fs/dir/{path}:ディレクトリ一覧
  • linux://fs/info/{path}:ファイル情報
  • linux://fs/file/{path}:ファイルの内容
  • linux://fs/usage/{path}:ディレクトリ使用状況の分析
ネットワークリソース
  • linux://network/interfaces:ネットワークインターフェース
  • linux://network/connections:ネットワーク接続
  • linux://network/stats:ネットワーク統計情報
  • linux://network/ping/{host}:ホストに ping を実行
  • linux://network/traceroute/{host}:ホストまでのルートをトレース
  • linux://network/analysis:ネットワーク分析
ログリソース
  • linux://logs/available:利用可能なログソースの一覧
  • linux://logs/journal/{parameters}:systemd ジャーナルのログ
  • linux://logs/system/{log_type}/{parameters}:システムログファイルのログ
  • linux://logs/kernel/{count}:カーネルリングバッファ(dmesg)のログ
  • linux://logs/application/{app_name}/{parameters}:特定のアプリケーションのログ
  • linux://logs/audit/{parameters}:Linux 監査システムのログ
  • linux://logs/boot/{count}:システム起動に関連するログ
  • linux://logs/service/{service}/{count}:特定の systemd サービスのログ
  • linux://logs/search/{query}/{parameters}:複数のログソースを横断した検索
  • linux://logs/analysis/{parameters}:ログのパターンや問題の分析
  • linux://logs/statistics/{parameters}:ログの量や特性に関する統計情報

セキュリティに関する考慮事項

このサーバーはさまざまなシステム操作へのアクセスを提供します。誤用すると危険を伴う可能性があります。次の点に注意してください。

  • ファイルシステム操作で許可するパスを設定する
  • ネットワーク操作で許可するドメインを設定する
  • プロセスを終了する機能を制限する
  • 適切な権限でサーバーを実行する
コマンド実行のセキュリティ

このサーバーには、ホストシステム上でシェルコマンドを実行できる強力なコマンド実行ツールが含まれています。この機能は、適切に設定されていない場合や、信頼できない環境で使用した場合に、重大なセキュリティリスクをもたらす可能性があります。

警告: コマンド実行機能を使用しない場合は、次の2つの方法があります。

  1. 設定ファイルで command.enabled: false を設定して無効にします。
    command:
      enabled: false
    
  2. サーバーの実装を変更して、コマンド実行に関連する MCP ツールを削除します。

コマンド実行を有効にする場合は、次の追加のセキュリティ対策を検討してください。

  • allowed_commands を使用して、実行できるコマンドを制限します
  • blocked_commands を使用して、危険なコマンドを明示的にブロックします
  • 適切なタイムアウトと出力サイズの上限を設定します
  • 絶対に必要な場合を除き、allow_sudo: false にして sudo アクセスを無効にします

ライセンス

このプロジェクトは MIT License の下でライセンスされています。詳細については LICENSE ファイルをご覧ください。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。