Skip to main content
Glama
sentania-labs

vcf-ops-mcp

Sentania VCF Ops MCP (неофициальный)

vcf-ops-mcp — это контейнеризированный MCP-сервер, по умолчанию доступный только для чтения, с небольшим административным интерфейсом для VCF Operations. Текущий MVP предоставляет реализованные чтения инвентаря, метрик, оповещений, определений отчётов, целей и навыков через аутентифицированный Streamable HTTP. Каждый вызов инструмента MCP проходит через долговечный аудит-диспетчер.

Это неофициальный проект для личной лаборатории. Это не продукт Broadcom или VMware.

Запуск тестового набора

Требуется Python 3.12 или новее.

python3 -m venv .venv
.venv/bin/python -m pip install --upgrade pip hatchling
.venv/bin/python -m pip install -e '.[test]'
.venv/bin/pytest tests/
./tools/generate_agents_md.sh --check
./tools/consensus-check.py --self-test

Уровень live-appliance пропускается, если не предоставлены его явные переменные-ограничители. Обычные тесты используют только синтетические ответы VCF Ops.

Related MCP server: appd-mcp

Сборка и запуск контейнера локально

Сервис создаёт свой секрет подписи сеансов и связку ключей учётных данных на томе /keys при первом запуске. Ручной SESSION_SECRET не требуется.

docker build -t vcf-ops-mcp:local .
docker volume create vcf-ops-mcp-data
docker volume create vcf-ops-mcp-keys
docker volume create vcf-ops-mcp-audit
docker run --name vcf-ops-mcp --rm \
  --read-only \
  --user 10001:10001 \
  --security-opt no-new-privileges \
  --cap-drop ALL \
  -p 8000:8000 \
  -e PUBLIC_BASE_URL=http://localhost:8000 \
  -v vcf-ops-mcp-data:/data \
  -v vcf-ops-mcp-keys:/keys \
  -v vcf-ops-mcp-audit:/audit \
  vcf-ops-mcp:local

В другом терминале:

curl --fail http://localhost:8000/healthz

Готовый ответ — HTTP 200 и сообщает о всех четырёх зависимостях как истинных: audit_writable, configuration_ready, session_secret_persistent и mcp_ready. Недоступная зависимость аудита, конфигурации, ключа или MCP оставляет процесс диагностируемым, но возвращает HTTP 503.

Лабораторное развёртывание владеет своим пином образа и процедурой обновления. Справочный deploy/compose.yml сохраняет внешнюю сеть docker-slots и те же три постоянных тома, но этот репозиторий не развёртывает его. Секреты времени выполнения никогда не передаются через CI или окружение compose.

Первый вход администратора

Одобренный путь начальной загрузки использует файл пароля, предоставленный оператором. Сервис запускается здоровым и без него, но административная панель остаётся недоступной, пока файл не существует. Пароль должен содержать не менее 16 байт. Он хешируется с помощью scrypt в базу данных времени выполнения, и файл начальной загрузки удаляется, когда первый вход инициализирует учётную запись. Если удаление не удаётся, более поздний вход повторяет очистку без изменения сохранённого пароля администратора.

Для локального контейнера создайте файл, не помещая пароль в историю оболочки или аргументы процесса:

docker exec -it vcf-ops-mcp sh
umask 077
python -c 'import getpass,pathlib; pathlib.Path("/keys/admin_bootstrap_password").write_text(getpass.getpass("New admin password: "))'
exit

Для слота docker.int lab-admin выполняет ту же одноразовую операцию через обычный административный канал хоста внутри запущенного контейнера vcf-ops-mcp-web. Ключ развёртывания не может и не должен выполнять её, потому что его список разрешённых принудительных команд намеренно исключает exec. Путь к файлу и режим те же. CI никогда не получает пароль начальной загрузки.

Откройте http://localhost:8000/admin/login, войдите как admin, затем:

  1. Зарегистрируйте цель VCF Ops. Новые цели всегда read_only. Производственный FQDN распознаётся на стороне сервера и никогда не может быть переключён на действия в этом MVP.

  2. Выберите требуемые реализованные области чтения и одну или несколько зарегистрированных целей, затем создайте ключ API MCP. Открытый текст ключа отображается один раз. Хранится только его SHA-256 дайджест.

  3. Настройте MCP-клиент с URL Streamable HTTP http://localhost:8000/mcp/ и заголовком Authorization: Bearer <displayed-key>.

  4. Используйте list_targets для обнаружения разрешённых идентификаторов целей, затем вызовите инструмент чтения. Аргументы адаптера VCF передаются в объекте arguments этого инструмента.

  5. Просмотрите /admin/audit, чтобы увидеть попытки и терминальные записи, доступные только для добавления.

Производство использует https://vcf-ops-mcp.int.sentania.net, что сохраняет cookie сеанса администратора Secure. Локальный HTTP включён только тогда, когда PUBLIC_BASE_URL явно использует http://.

Постоянные данные и восстановление

Три корня томов имеют отдельные задачи:

Путь тома

Содержимое

/data

База данных SQLite времени выполнения с хешем администратора, метаданными целей, зашифрованными конвертами учётных данных и дайджестами ключей API

/keys

Сгенерированный секрет сеанса, ключ дайджеста аргументов аудита, версионированная связка ключей AES-256-GCM и одноразовый файл начальной загрузки администратора

/audit

Журнал аудита SQLite, доступный только для добавления

Резервируйте /data, /keys и /audit как отдельные защищённые артефакты. Потеря /keys при наличии зашифрованных записей целей намеренно невосстановима. Сервер отказывается перегенерировать связку ключей учётных данных поверх существующего шифротекста. Не используйте docker compose down -v для установленного развёртывания.

Если процесс умирает после фиксации попытки аудита, но до его терминальной записи, следующий запуск добавляет outcome_unknown. Он никогда не переписывает попытку и не выдумывает успешный результат.

Границы MVP

Реализовано:

  • Автоматическая долговечная генерация SESSION_SECRET, с явным переопределением окружения, сохранённым для прямого запуска процесса.

  • Долговечная зашифрованная конфигурация целей, вход администратора начальной загрузки, создание и отзыв ограниченных ключей API, регистрация целей и просмотр аудита.

  • Аутентифицированный Streamable HTTP с реализованными адаптерами чтения, обнаружением целей и обоими инструментами навыков, а также ресурсами/подсказками навыков. Содержимое навыков через ресурсы и подсказки требует той же возможности read:skills, что и инструменты навыков; без неё доступно только конкретное обнаружение ресурсов.

  • Позиция целей только для чтения, списки разрешений целей для ключей API, реализованные области по умолчанию запрещены, жёсткая блокировка производственных целей, проекция и ограничения ответов, а также долговечный аудит каждого инструмента.

Намеренно отложено:

  • Все выполнение действий, ключи с возможностью действий, запуски отчётов, plan/apply и асинхронный опрос задач. Они остаются за человеческим шлюзом Phase 2.

  • Редактирование целей и ротация учётных данных в интерфейсе.

  • Загрузка завершённых отчётов, потому что на устройстве разработки нет завершённых отчётов без предварительного выполнения мутации отчёта.

  • Внешнее воздействие, NSX, автоматизация VCFA, инструменты прямого vCenter и очистка PII.

  • Обнаружение источников аутентификации, отличных от LOCAL. Более ранний произвольный FQDN-запрос был удалён, потому что это была граница SSRF, а не безопасный механизм обнаружения.

См. docs/SPEC.md, принятые записи в docs/decisions и docs/read-plane.md для полного контракта и измеренных поведений VCF Ops.

F
license - not found
Not graded
quality - not tested
D
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    Provides read-only access to query and retrieve information about devices, fleets, events, and configurations managed by Flight Control through a safe integration layer supporting filtering and selector-based queries.
  • A
    license
    A
    quality
    B
    maintenance
    A read-only MCP server for AppDynamics that exposes 12 task-oriented tools to query applications, topology, metrics, snapshots, health rules, anomalies, events, alerting config, analytics events, and dependency maps via OAuth API-client credentials.
    12
    1
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    Read-only MCP server that allows AI assistants to query and monitor KVM Fleet devices, audit logs, and console sessions through the official REST API.
    5
    14
    1
    MIT

View all related MCP servers

Related MCP Connectors

  • Read-only access to your VortexIQ store data: audits, KPIs, alerts, Brand DNA, reports, Ask VIQ.

  • A paid remote MCP for AI SDK data query MCP, built to return verdicts, receipts, usage logs, and aud

  • XFA's remote MCP server — query device posture, compliance, policies & CVEs. Read-only.

View all MCP Connectors

Latest Blog Posts

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/sentania-labs/vcf-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server