logmcp について
LogMCPは、リモートLinuxホストのログをAIアシスタントに読み取り専用で公開するオープンソースのMCPサーバーです。シェルアクセスを許可せずにシステムを調査する運用者向けで、トークン認証、パス制限、syslog監査を備えます。
主な機能
- 01許可されたログの読み取りと検索
- 02systemd journalログの公開
- 03Bearerトークン認証と管理
- 04パスパターンによる許可・拒否設定
- 05syslogによるアクセス監査
- 06拡張機能とマクロによるツール追加
活用シーン
- 01シェルアクセスなしで本番環境の問題を調査
- 02顧客環境や強化サーバーのログ確認
- 03リモートAIクライアントへの範囲限定ログアクセス
MCP 対応
LogMCPはHTTPSまたはSSHトンネル経由で、ログ一覧、読み取り、検索、メタデータ、サーバーチェックのツールをMCPクライアントに提供します。設定済みの拡張機能からMCPツールを追加することもできます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
LogMCP
MCP サーバー — AI アシスタント向けの読み取り専用ログアクセスです。AI にシェルアクセスを許可せずに、AI で Linux サーバーをデバッグできます。
SSH は不要です。書き込み権限もありません。AI は HTTPS 経由でログを読み取り、問題の診断を支援します。その間、サーバーは完全にお客様の管理下に置かれます。
LogMCP は、リモートの Linux サーバー上のログファイルを AI アシスタント(Claude Code、VS Code、Claude Desktop)に公開するオープンソースのMCP サーバーです。アクセスは読み取り専用で、トークン認証を使用し、syslog 経由で完全に監査されます。
はじめに
オプション A:クイックスタート(root 権限不要)
1 分以内に LogMCP をお試しいただけます。設定ファイル、root 権限、systemd は不要です。
logmcp quickstart
このコマンドは、グループへの所属(adm、systemd-journal)を確認し、ベアラートークンと自己署名 TLS 証明書を生成してサーバーを起動し、そのまま貼り付けられる claude mcp add コマンドを表示します。
root として実行していますか? --user <name> を指定すると、LogMCP はユーザーを必要なグループに追加し、そのユーザーとして再起動します。以降の起動に root 権限は不要です。
注: トークンと証明書は一時的なものです。トークンは起動のたびに変わります。永続的に使用する場合は、オプション B をご利用ください。
logmcp quickstart --port 7789 --token mytoken # optional flags
テスト後、Claude Code からサーバーを削除します。
claude mcp remove logmcp-quickstart
オプション B:永続的なインストール(推奨)
1. インストール
go install github.com/kascada/logmcp@latest
または、ビルド済みの .deb をインストールします(x.y.z を最新バージョンに置き換えてください)。
curl -LO https://github.com/kascada/logmcp/releases/download/vx.y.z/logmcp_x.y.z_amd64.deb
sudo dpkg -i logmcp_x.y.z_amd64.deb
2. セットアップウィザードを実行
sudo logmcp setup
TLS モード、ベアラートークン、systemd サービスの設定を順に案内し、そのまま貼り付けられるクライアント設定スニペットを表示します。
3. AI クライアントに追加
logmcp client-config claude-code # or: vscode | claude-desktop
出力を MCP クライアントの設定に貼り付けます。これで、AI がサーバーのログを読み取れるようになります。
主な利点:サーバーに触れずに AI がデバッグ
AI にログへの読み取り専用のアクセスを提供します。それだけです。
- SSH アクセスは不要です — AI は HTTPS クライアントと同様に接続します
- 書き込み権限はありません — AI は何も変更、削除、実行できません
- シェルアクセスはありません — 許可リストに登録されたログパス以外は読み取りもできません
- どこからでも利用できます — ノートパソコン、Claude Desktop、リモート CI エージェントから接続できます
- すべてのアクセスは、サーバー上の syslog 経由で監査されます
このため、AI によるデバッグ支援が必要でありながら、シェルアクセスの許可ができない、または許可したくない状況に LogMCP は最適です。たとえば、本番サーバー、顧客のマシン、セキュリティ強化された環境、最小権限が重要となるあらゆる環境で活用できます。
SSH もサポートされています。 AI クライアントとして、SSH キーを使ってローカルで実行する Claude Code を使用している場合は、公開 HTTPS エンドポイントの代わりに SSH トンネル経由で LogMCP を利用できます。詳しくは、以下のSSH トンネルのセットアップをご覧ください。
機能
- ログファイルへの読み取り専用アクセス — AI は何も変更できません
- きめ細かなアクセス制御を行う、許可リスト/拒否リストの glob パターン
- 仮想ログソースとしての systemd ジャーナル(
journald://) - マルチトークン認証 — クライアントごとのベアラートークンと失効機能
- 外部認証機能のサポート — 任意の CLI プログラムにトークン検証を委任
- TLS のサポート:自己署名証明書、カスタム証明書、または Caddy リバースプロキシの背後での運用
- syslog 経由の監査証跡(アクセスのみ。ログの内容は含みません)
- 対話型セットアップウィザードによる案内
- systemd サービスとの統合
- 拡張機能 — 外部 CLI ツールや Redis-RPC ワーカーを追加の MCP ツールとして公開
- マクロ — コード不要で、複合 MCP ツールを YAML ファイルとして定義
- fail2ban との統合とプロセス内レート制限
セットアップの詳細
ウィザード(sudo logmcp setup)では、次の項目を設定します。
- デプロイモード(直接 TLS または Caddy の背後で運用)
- ポートとベアラートークンの設定
- systemd サービスのインストール
- Claude Code、VS Code、Claude Desktop 用のクライアント設定スニペット
許可リスト/拒否リストと journald は、セットアップ後に /etc/logmcp/config.yaml で直接設定します。
環境変数の置換
config.yaml の任意の値で、${VAR} または $VAR の構文を使って環境変数を参照できます。ファイルの解析前に置換されるため、トークン、パス、DSN など、あらゆる場所で機能します。
auth:
tokens:
- name: claude
token: ${LOGMCP_TOKEN}
scopes: [read]
extensions:
clitool:
- name: switchboard
command: /usr/local/bin/switchboard
timeout_seconds: 10
未設定の変数は空文字列に展開されます。値にリテラルの $ を含めるには、$$ を使います。
セットアップ後、サーバーを起動します。
sudo systemctl start logmcp
コマンド
| コマンド | 説明 |
|---|---|
logmcp serve | MCP サーバーを起動します(デフォルト) |
logmcp quickstart | 設定ファイルなしですぐに起動します(root 権限は不要です) |
logmcp setup | 対話型セットアップウィザードを起動します |
logmcp check | 設定と環境を確認します |
logmcp token list | 設定済みのベアラートークンを一覧表示します |
logmcp token add --name <n> | 新しいベアラートークンを追加します |
logmcp token remove <name> | ベアラートークンを削除します |
logmcp token renew <name> | 既存のトークンに新しい値を生成します |
logmcp logs list | アクセス可能なログファイルを一覧表示します |
logmcp logs read <path> | ログファイルまたは journald:// を読み取ります |
logmcp logs search <path> | ログファイルまたは journald:// を検索します |
logmcp logs info <path> | ログファイルのメタデータを表示します |
logmcp service install | systemd サービスをインストールします |
logmcp service remove | systemd サービスを削除します |
logmcp service status | サービスの状態を表示します |
logmcp service caddy-snippet | Caddyfile の設定を出力します |
logmcp client-config claude-code | Claude Code の MCP 設定を出力します |
logmcp client-config vscode | VS Code の MCP 設定を出力します |
logmcp client-config claude-desktop | Claude Desktop の MCP 設定を出力します |
logmcp security install-fail2ban | logmcp 用の fail2ban フィルターと jail をインストールします |
MCP ツール
LogMCP が AI アシスタントに公開するツールは次のとおりです。
| ツール | 説明 |
|---|---|
list_logs | サーバーが公開するよう設定されているすべてのログファイルを一覧表示します |
read_log | ログファイルから行を読み取ります。先頭、末尾、オフセット、または時間範囲を指定できます |
search_log | 正規表現を使ってログファイルを検索します。コンテキスト行と時間フィルターを任意で指定できます |
log_info | ファイルのメタデータを表示します。サイズ、行数、最終更新日時が含まれます |
check_environment | サーバー側のヘルスチェックを実行します(設定、TLS、ホワイトリスト、syslog、データベース) |
check_config | 現在のサーバー設定と、デフォルト値が設定された任意のパラメーターを表示します |
server_status | MCP レイヤーと登録済み拡張機能の実行時の状態を表示します |
拡張機能によって、さらにツールが追加される場合があります。ツール名には拡張機能の名前が接頭辞として付きます(例:myapp という名前の拡張機能では myapp_status)。
拡張機能 — 外部ツールを MCP としてラップ
LogMCP は、カスタム MCP サーバーを用意せずに、任意の外部プログラムやサービスを追加の MCP ツールとして公開できます。AI からは、組み込みのログツールと並んで表示されます。
CLI 拡張機能
clitool インターフェース(list/call サブコマンド)を実装する任意のプログラムを登録できます。LogMCP は起動時に <command> list を呼び出してツールを検出し、各ツール呼び出しを <command> call <tool> --token-stdin に転送します。
extensions:
clitool:
- name: myapp
command: /usr/local/bin/myapp-ctl
timeout_seconds: 10
呼び出しごとにサブプロセスを起動します。同じホスト上またはリモートホスト上の任意のプログラムに適しています。
RPC 拡張機能(Redis)
同じホスト上で実行されるプログラムでは、RPC 方式により呼び出しごとのプロセス起動のオーバーヘッドを回避できます(インタープリターの起動とインポートによって顕著な遅延が生じる Python プログラムでは特に有効です)。サブプロセスを起動する代わりに、LogMCP は Redis リストにリクエストを追加し、ワーカーからの応答を待ちます。
extensions:
clitool:
- name: myapp
command: /usr/local/bin/myapp-ctl # still used for `list` at startup
mode: rpc
redis_addr: "127.0.0.1:6379"
timeout_seconds: 5
ワーカーは Redis リストからリクエストを読み取り、リクエストごとの返信キーに応答を追加します。プロトコルの詳細については、docs/RPC.md を参照してください。
認証フロー
受信した各 MCP リクエストのベアラートークンは、stdin 経由(CLI モード)または RPC エンベロープの caller メタデータとして拡張機能に転送されます。拡張機能はトークンを検証することも、事前に解決された ID を信頼することもできます。
ケーススタディ
LogMCP が違いを生み出す実際のシナリオについては、docs/case-studies.md をご覧ください。
- Asterisk/VoIP — パッケージのコンパイルと依存関係のエラーをデバッグする
- Caddy リバースプロキシを使用した Web サーバー — 本番環境へのインストール
- 独自の TLS を使用したスタンドアロン運用
SSH トンネルのセットアップ
Claude Code をローカルで使用していて、すでにサーバーへの SSH アクセスがある場合は、公開 HTTPS エンドポイントを使わずに LogMCP を実行できます。
# Forward remote port 7788 to localhost
ssh -L 7788:127.0.0.1:7788 user@yourserver
# Then point your MCP client at https://localhost:7788
トンネル経由でも LogMCP にはベアラートークンが必要です。SSH レイヤーはトランスポートのセキュリティを追加し、トークンは接続できるクライアントを制御します。
ライセンス
MIT ライセンス — LICENSE をご覧ください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。