MCP Infra Lens
mcp-infra-lens
ベースラインを認識するMCPツールを使用して、SSH経由でLinuxのインシデントを解説します。
デモ

Claudeが「prod-01に何が起きているの?」と尋ねた際の analyze_server の応答例:
{
"host": "prod-01.internal",
"health_score": 42,
"summary": "Found 2 anomalies on prod-01.internal. Most urgent signal: CPU is at 91% (3.4σ above baseline 28.2%). Load is 7.2/6.8/5.1. Top CPU consumer: java (87%).",
"anomalies": [
{
"metric": "cpu",
"severity": "high",
"value": 91,
"z_score": 3.4,
"explanation": "CPU is at 91% (3.4σ above baseline 28.2%). Load is 7.2/6.8/5.1. Top CPU consumer: java (87%).",
"recommendation": "Investigate java (PID 18432) and review application logs or scale-out options."
},
{
"metric": "disk:/",
"severity": "high",
"value": 91,
"explanation": "Disk / is 91% full (182GB/200GB).",
"recommendation": "Run du -sh //* | sort -rh | head -20 and clean logs or temporary files."
}
]
}機能
mcp-infra-lens はSSH経由でLinuxホストに接続し、ライブインフラストラクチャのスナップショットをキャプチャし、最近記録されたベースラインと比較して、異常を平易な英語で解説します。
ターゲットホストを変更することなく、CPU、メモリ、ディスク、ネットワーク、プロセス、OSデータを収集
ベースライン、比較、トレンド検索のために、ローカルのメトリクス履歴をSQLiteに記録
十分なベースラインサンプルが存在する場合、CPU異常検知にzスコア分析を使用
単なる生のメトリクス値ではなく、負荷の可能性が高い原因を解説
stdioおよび Streamable HTTP 経由のMCPをサポート
仕組み
flowchart TD
A["Claude / Cursor / VS Code / Windsurf"] --> B["mcp-infra-lens"]
B --> C["server-core.ts"]
C --> D["collector.ts"]
C --> E["analyzer.ts"]
C --> F["baseline.ts + db.ts"]
D --> G["ssh.ts"]
G --> H["Linux host over SSH"]
F --> I["SQLite history + baselines"]analyze_server は、要求された duration_minutes にわたって実際のサンプリング収集を実行し、収集期間中のCPUおよびメモリ負荷を平均化し、結果のスナップショットを永続化してから、選択したベースラインに対して異常検知を実行します。
ツール
ツール | 機能 | 主要パラメータ |
| サンプリングされたスナップショットを収集、保存し、異常を解説 |
|
| 分析なしで現在の時点のメトリクスをキャプチャして保存 |
|
| 将来の比較のためにラベル付けされた健全な状態のサンプルを保存 |
|
| 現在の状態を名前付きベースラインと比較し、差分を解説 |
|
| SQLiteから過去のCPU、メモリ、または負荷ポイントを返す |
|
クイックスタート
1. npx で実行
npx -y mcp-infra-lens1.0.1 に固定されている場合は、Node 24のネイティブインストールエラーを回避するために 1.0.2 以降にアップグレードしてください:
npx -y mcp-infra-lens@latest2. Claude Desktop
公開パッケージ:
{
"mcpServers": {
"infra-lens": {
"command": "npx",
"args": ["-y", "mcp-infra-lens"],
"env": {
"INFRA_LENS_DB": "/Users/you/.mcp-infra-lens/metrics.db"
}
}
}
}ローカル開発:
{
"mcpServers": {
"infra-lens": {
"command": "node",
"args": ["/absolute/path/to/mcp-infra-lens/dist/mcp.js"],
"env": {
"INFRA_LENS_DB": "/Users/you/.mcp-infra-lens/metrics.db"
}
}
}
}3. Docker
docker build -t mcp-infra-lens .
docker run --rm -it \
-v "$HOME/.mcp-infra-lens:/home/appuser/.mcp-infra-lens" \
mcp-infra-lens設定
環境変数 | デフォルト | 説明 |
|
| SQLiteデータベースのパス。テストには |
|
| HTTPトランスポートのバインドアドレス |
|
| HTTPトランスポートのポート |
ヘルススコア
90-100: 健全、有意な異常は検出されず70-89: 軽微または局所的な負荷40-69: 複数の警告または進行中の重大な問題0-39: 緊急の修復が必要な危機的状態
推奨ワークフロー
健全な稼働期間中に
record_baselineサンプルを記録する。インシデントや負荷スパイクが発生した際に
analyze_serverを使用する。名前付きベースラインに対してより厳密な差分ビューを確認するために
compare_to_baselineを使用する。トレンドを調査し、デフォルトのスナップショットとラベル付けされたベースラインセッションを分離するために
get_historyを使用する。
認証
SSH入力スキーマは以下をサポートしています:
パスワード認証
インライン秘密鍵認証
暗号化された鍵のためのオプションのパスフレーズサポート
認証情報フィールドは、stderr に書き込まれる前に構造化ログから削除されます。
セキュリティに関する注意点
SSH収集はターゲットホストに対して読み取り専用です
SSH認証情報はSQLiteに保存されません
互換性のためにv1ではホストキー検証が許可されています。本番環境へのデプロイでは、アウトバウンドネットワークアクセスを制限し、後のリリースで厳格なホスト検証を強制することを計画してください
HTTPトランスポートには組み込みの認証がありません。ローカル以外へのデプロイでは、ループバックにバインドし、認証されたリバースプロキシの背後に配置してください
報告ポリシーおよび保存データの範囲については SECURITY.md を参照してください。
統合
Claude Desktop
{
"mcpServers": {
"infra-lens": {
"command": "npx",
"args": ["-y", "mcp-infra-lens"],
"env": {
"INFRA_LENS_DB": "/Users/you/.mcp-infra-lens/metrics.db"
}
}
}
}Cursor IDE
{
"mcpServers": {
"infra-lens": {
"command": "npx",
"args": ["-y", "mcp-infra-lens"]
}
}
}VS Code (MCP拡張機能)
{
"inputs": [],
"servers": {
"infra-lens": {
"type": "stdio",
"command": "npx",
"args": ["-y", "mcp-infra-lens"]
}
}
}Windsurf
{
"mcpServers": {
"infra-lens": {
"command": "npx",
"args": ["-y", "mcp-infra-lens"]
}
}
}Docker (HTTPトランスポート)
docker run -d \
-p 3000:3000 \
-v $HOME/.mcp-infra-lens:/home/appuser/.mcp-infra-lens \
ghcr.io/oaslananka/mcp-infra-lens:latestその後、MCPクライアントが http://localhost:3000 を使用するように設定してください。
Docker
バンドルされているDockerイメージは以下の通りです:
TypeScriptプロジェクトを別のステージでビルド
両方のステージでコンテナアーキテクチャ用に
better-sqlite3を再ビルド非rootユーザー
appuserとして実行SQLiteデータを
/home/appuser/.mcp-infra-lens/metrics.dbに保存
貢献
貢献を歓迎します。CONTRIBUTING.md から始めて、以下を使用してください:
ツールの例については docs/usage.md
コンポーネントマップについては docs/architecture.md
ローカル検証および公開チェックについては docs/testing.md
リポジトリ固有のAIコーディングガイダンスについては
AGENTS.md,CLAUDE.md,GEMINI.md,.github/copilot-instructions.md, および.agent/rules/repository.md
運用 / CIに関する注意点
azure-pipelines.ymlは標準のCIパイプラインであり、Node 20およびNode 22でQualityステージを実行し、JUnitおよびCoberturaアーティファクトを発行し、Node 20でDockerベースのSSH e2eカバレッジを実行します.azure/pipelines/publish.ymlは手動のnpmリリースパイプラインとして残されています.azure/pipelines/mirror.ymlはリポジトリミラーリングワークフロー用に利用可能ですローカルの公開前チェックリストとCIの両方がNode 20で正常に完了した後にのみ公開してください
変更にnpm、MCPレジストリ、またはレジストリのみのプレリリース公開が必要かどうかを判断する際は RELEASE_POLICY.md に従ってください
ライセンス
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
5 tool updates
v1.0.1- First observed
analyze_server - First observed
compare_to_baseline - First observed
get_history - First observed
record_baseline - First observed
snapshot
TDQS
Tools are mostly distinct, though analyze_server and compare_to_baseline both perform explanatory analysis of deviations, which could cause brief hesitation. snapshot vs analyze_server clearly separates raw collection from analysis.
Four tools follow a clear verb_noun pattern (analyze_server, get_history, record_baseline, compare_to_baseline). snapshot stands alone without a verb prefix, though it functions as a verb in context—minor deviation but readable.
Five tools is ideal for this focused scope: baseline lifecycle (record, compare), historical retrieval, real-time analysis, and raw capture. Each serves a specific step in the monitoring workflow without bloat.
Covers the core monitoring lifecycle: establishing baselines, recording current state, historical lookup, and comparative analysis. Minor gaps exist (no list_baselines or delete_baseline), but agents can work around these.
Related MCP Connectors
Real-time infrastructure monitoring with metrics, logs, alerts, and ML-based anomaly detection.
- emisarOAuthdev.emisar
Let AI operate servers without SSH. Choose actions, approve risky changes, and audit every step.
Gain visibility into the performance, availability, and health of your apps and infrastructure.
Scoped, audited SSH exec, sessions, and SFTP on your saved servers without exposing credentials
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/oaslananka/mcp-infra-lens'
If you have feedback or need assistance with the MCP directory API, please join our Discord server