AI Ops MCP
AI Ops MCP
AI Ops MCP — это локальный брокер учётных данных SSH и stdio MCP-сервер. Он позволяет ИИ-клиентам выполнять операции SSH и SFTP через стабильные псевдонимы server_id, не получая при этом пароли, содержимое закрытых ключей или парольные фразы.
[!WARNING] AI Ops MCP защищает границу аутентификации; он не классифицирует, не блокирует и не разрешает удалённые команды. Каждая команда выполняется с правами настроенной SSH-учётной записи. Используйте выделенные учётные записи с минимальными привилегиями и серверные средства контроля.
Версия 0.1.0 распространяется только из исходного кода. Этот проект не публикуется в npm.
Возможности
Интерактивная регистрация серверов и закрепление доверенных отпечатков Host key
Аутентификация через SSH Agent, пароль из системного хранилища учётных данных и закрытые ключи
Интеграция с Windows Credential Manager, macOS Keychain и Linux Secret Service
Пул соединений с ограничениями параллелизма на сервер и глобально
Удалённые команды, загрузка, скачивание и просмотр списков каталогов
Границы локальных и удалённых путей к файлам, тайм-ауты, лимиты вывода и размера файлов
Структурированные журналы аудита со стабильными публичными кодами ошибок
Related MCP server: Simple SSH MCP Server
Модель безопасности
Пароли и парольные фразы закрытых ключей запрашиваются через скрытые подсказки и хранятся в системном хранилище учётных данных. Несекретные метаданные соединения хранятся в локальном приватном конфигурационном файле. Закрытые ключи остаются файлами на локальной машине и читаются только при подключении. Отпечатки Host key подтверждаются при регистрации, а последующие изменения отклоняются.
Интерфейс MCP не может перечислять или извлекать учётные данные. По умолчанию локальные файловые операции ограничены рабочей директорией процесса MCP; дополнительные локальные и удалённые корневые каталоги можно настроить для каждого сервера. Журналы аудита могут содержать команды и пути, поэтому защищайте их как операционные данные. См. SECURITY.md для отчётов об уязвимостях.
Эта модель не защищает от компрометации локальной учётной записи пользователя, вредоносного удалённого вывода, взломанного удалённого хоста или разрушительных команд, выполненных с правами настроенной SSH-учётной записи.
Требования
Node.js 22 или 24
Git и доступный SSH-сервер
Подтверждённый отпечаток Host key SSH
Один поддерживаемый метод аутентификации
Для пользователей Linux с паролем/парольной фразой: запущенный Secret Service provider
Windows Credential Manager проверен на Windows 10 с Node.js 24. macOS Keychain и Linux Secret Service требуют более широкого тестирования на реальных устройствах.
Установка и сборка
git clone https://github.com/Finn-Aigc/ai-ops-mcp.git
cd ai-ops-mcp
npm ci
npm run typecheck
npm test
npm run build
npm link
ai-ops doctornpm link предоставляет ai-ops и ai-ops-mcp локально. Запустите npm run dev -- --help во время разработки CLI или npm start -- --help после сборки.
Аутентификация
SSH Agent
Загрузите ключ в системный Agent, затем выполните ai-ops add --auth agent или импортируйте действующие метаданные OpenSSH:
ai-ops import-ssh my-host-aliasПароль из системного хранилища учётных данных
ai-ops add --id dev-box --host ssh.example.com --user deploy --auth passwordПароль запрашивается интерактивно и не может быть передан через аргументы командной строки.
Файл закрытого ключа
ai-ops add --id dev-key --host ssh.example.com --user deploy \
--auth private-key --key <path-to-private-key>Ключ остаётся по указанному пути. Если он зашифрован, парольная фраза запрашивается интерактивно и сохраняется в системном хранилище учётных данных.
Справочник CLI
Команда | Назначение |
| Добавить сервер и подтвердить его Host key |
| Импортировать действующие метаданные OpenSSH для аутентификации через Agent |
| Список псевдонимов и статус готовности учётных данных |
| Показать несекретные метаданные сервера |
| Проверить соединение |
| Обновить метаданные, корневые каталоги или сохранённые учётные данные |
| Удалить метаданные и сохранённые учётные данные |
| Заменить подтверждённый отпечаток Host key |
| Диагностика конфигурации, хранилища ключей и Agent |
| Чтение отфильтрованных событий аудита |
Используйте ai-ops <команда> --help для всех параметров. Никогда не автоматизируйте ввод пароля или парольной фразы через аргументы командной строки.
Конфигурация MCP-клиента
После npm link настройте любой stdio MCP-клиент с:
{
"mcpServers": {
"ai-ops": {
"command": "ai-ops-mcp"
}
}
}Для разработки без связывания соберите проект и используйте node с "<абсолютный-путь-к-репозиторию>/dist/mcp-entry.js" в качестве единственного аргумента.
Инструменты MCP
Инструмент | Назначение |
| Список настроенных псевдонимов и статус готовности без учётных данных |
| Проверить один |
| Выполнить произвольную удалённую команду |
| Загрузить файл из разрешённого локального корневого каталога |
| Скачать файл в разрешённый локальный корневой каталог |
| Список содержимого разрешённого удалённого каталога |
По умолчанию: 30 секунд на команду, 10 МиБ совокупного вывода, 100 МиБ на файл, четыре параллельные операции на сервер и 16 глобально. Серверные настройки могут снижать или изменять эти лимиты.
Устранение неполадок
Сначала выполните
ai-ops doctorдля диагностики keyring, конфигурации и Agent.HOST_KEY_MISMATCH: проверьте новый отпечаток вне канала, затем выполнитеai-ops trust-host <id>.AGENT_UNAVAILABLE: запустите SSH Agent и загрузите ключ с помощьюssh-add.CREDENTIAL_STORE_UNAVAILABLE: разблокируйте или запустите системное хранилище учётных данных платформы.LOCAL_PATH_NOT_ALLOWEDилиREMOTE_PATH_NOT_ALLOWED: обновите корневые каталоги с помощьюai-ops edit <id> --allowed-local ... --allowed-remote ....Процесс MCP завершается сразу: выполните
npm run buildи подтвердите настроенный исполняемый файл или абсолютный путь входа.
Локальные живые E2E-тесты
Живые тесты намеренно не включены в GitHub Actions. Используйте изолированный домашний каталог и выделенную учётную запись сервера с минимальными привилегиями, которая может создавать временные файлы в /tmp и обновлять собственный ~/.ssh/authorized_keys:
$env:AI_OPS_HOME = "<isolated-ai-ops-home>"
$env:AI_OPS_E2E_SERVER_ID = "test-server"
npm run build
npm run test:e2e:core
npm run test:e2e:mcp
npm run test:e2e:auth
npm run test:e2e:agent
npm run test:e2e:cleanupКаждый тест использует уникальные ресурсы и очищает их в блоках finally. Никогда не используйте производственные учётные данные или конфигурацию. См. CONTRIBUTING.md, docs/PRD.md и docs/IMPLEMENTATION_PLAN.md.
Лицензия
MIT © 2026 участники AI Ops MCP.
This server cannot be deployed
Maintenance
Related MCP Connectors
Scoped, audited SSH exec, sessions, and SFTP on your saved servers without exposing credentials
Secure and manage MCP servers through the Speakeasy AI Control Plane from your agent.
Remote MCP server exposing your Node Command fleet (files, shell, processes, browser) to AI hosts.
Termalin's hosted MCP server. Claude, ChatGPT or any MCP client runs commands, moves files over SFTP, queries databases and reads server metrics and monitoring alerts on your servers, keylessly through Termalin Connectors: no SSH key is handed over and no inbound port is opened. Per-host command policy and an audit log. Needs a termal.in Pro or Team account (new accounts start with a 14-day Pro trial).
Related MCP Servers
- AlicenseAqualityAmaintenanceSSH automation MCP server that enables Claude and ChatGPT to execute commands, manage files, install packages, and control services on remote servers over SSH — supporting password, key, and agent authentication.331,267 npm4MIT
- AlicenseNot gradedqualityDmaintenanceAn MCP server that gives AI assistants full SSH/SFTP remote operations — session management, command execution, interactive shells, file transfers, port forwarding, and system diagnostics.2MIT
- AlicenseAqualityDmaintenanceZero-config SSH/SFTP MCP server that lets an LLM client open temporary SSH/SFTP sessions to remote hosts, run commands, and upload/download files without holding any pre-baked credentials.174 npm2MIT
- AlicenseBqualityBmaintenanceLocal AI ops broker that keeps SSH secrets on your machine, exposes intent-level MCP tools to agents, and requires approval via a loopback Web UI for dangerous writes.141 npmMIT