MCP Infra Lens
mcp-infra-lens
Анализ инцидентов в Linux через SSH с помощью инструментов MCP, учитывающих базовые показатели.
Демонстрация

Пример ответа analyze_server, когда Claude спрашивает: "Что не так с prod-01?":
{
"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 подключается к хостам Linux по SSH, делает моментальный снимок инфраструктуры в реальном времени, сравнивает его с недавно записанными базовыми показателями и объясняет аномалии простым языком.
Собирает данные о процессоре, памяти, диске, сети, процессах и ОС, не изменяя целевой хост
Записывает историю локальных метрик в SQLite для создания базовых показателей, сравнений и поиска трендов
Использует z-оценку для обнаружения аномалий процессора при наличии достаточного количества базовых выборок
Объясняет вероятную причину нагрузки, а не просто выводит необработанные значения метрик
Поддерживает MCP через
stdioи Streamable HTTP
Как это работает
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, усредняет нагрузку на процессор и память за период сбора, сохраняет полученный снимок, а затем запускает обнаружение аномалий относительно выбранного базового показателя.
Инструменты
Инструмент | Что он делает | Ключевые параметры |
| Собирает выборочный снимок, сохраняет его и объясняет аномалии |
|
| Захватывает и сохраняет текущие метрики без анализа |
|
| Сохраняет помеченную выборку нормального состояния для будущих сравнений |
|
| Сравнивает текущее состояние с именованным базовым показателем и объясняет различия |
|
| Возвращает исторические данные по процессору, памяти или нагрузке из SQLite |
|
Быстрый старт
1. Запуск через npx
npx -y mcp-infra-lensЕсли вы зафиксировали версию 1.0.1, обновитесь до 1.0.2 или новее, чтобы избежать ошибок при установке нативных модулей в Node 24:
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-транспорта |
Оценка состояния (Health Score)
90-100: здорово, значимых аномалий не обнаружено70-89: умеренная или локальная нагрузка40-69: несколько предупреждений или серьезная проблема в процессе0-39: критическое состояние, требуется срочное вмешательство
Рекомендуемый рабочий процесс
Записывайте выборки
record_baselineво время нормальной работы системы.Используйте
analyze_serverво время инцидентов или скачков нагрузки.Используйте
compare_to_baselineдля более детального сравнения с конкретным базовым состоянием.Используйте
get_historyдля отслеживания трендов и отделения обычных снимков от помеченных базовых сессий.
Аутентификация
Схема ввода SSH поддерживает:
Аутентификацию по паролю
Аутентификацию по закрытому ключу (inline)
Опциональную поддержку парольной фразы для зашифрованных ключей
Поля с учетными данными удаляются из структурированных логов перед записью в stderr.
Заметки по безопасности
Сбор данных по SSH осуществляется только для чтения на целевом хосте
Учетные данные SSH никогда не сохраняются в SQLite
Проверка ключа хоста в версии v1 является разрешительной для совместимости; в производственных развертываниях следует ограничить исходящий сетевой доступ и планировать принудительную строгую проверку хоста в будущих релизах
HTTP-транспорт не имеет встроенной аутентификации; привязывайтесь к loopback и размещайте его за аутентифицированным обратным прокси в любых нелокальных развертываниях
См. 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 extension)
{
"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 transport)
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для архитектуры контейнера на обоих этапахЗапускается от имени пользователя
appuser(не root)Хранит данные SQLite в
/home/appuser/.mcp-infra-lens/metrics.db
Вклад в проект
Вклад приветствуется. Начните с CONTRIBUTING.md, затем используйте:
docs/usage.md для примеров использования инструментов
docs/architecture.md для карты компонентов
docs/testing.md для локальной проверки и проверок перед публикацией
RELEASE_POLICY.md для правил версионирования npm и MCP Registry
AGENTS.md,CLAUDE.md,GEMINI.md,.github/copilot-instructions.mdи.agent/rules/repository.mdдля специфических рекомендаций по AI-кодингу в репозитории
Заметки по эксплуатации / CI
azure-pipelines.ymlявляется каноническим CI-конвейером и теперь выполняет этапQualityна Node 20 и Node 22, публикует артефакты JUnit и Cobertura, а также выполняет SSH e2e-тестирование на базе Docker на Node 20.azure/pipelines/publish.ymlостается ручным конвейером для релиза npm.azure/pipelines/mirror.ymlостается доступным для рабочих процессов зеркалирования репозиторияПубликуйте только после того, как локальный чек-лист перед публикацией и CI успешно пройдены на Node 20
Следуйте RELEASE_POLICY.md при принятии решения о том, требует ли изменение публикации в npm, MCP Registry или только предрелизной публикации в реестре
Лицензия
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