vmware-aria 2.2.0__tar.gz → 2.4.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {vmware_aria-2.2.0 → vmware_aria-2.4.0}/.claude-plugin/plugin.json +2 -2
- {vmware_aria-2.2.0 → vmware_aria-2.4.0}/.mcp.json +1 -1
- {vmware_aria-2.2.0 → vmware_aria-2.4.0}/PKG-INFO +72 -5
- {vmware_aria-2.2.0 → vmware_aria-2.4.0}/README-CN.md +67 -3
- {vmware_aria-2.2.0 → vmware_aria-2.4.0}/README.md +70 -3
- {vmware_aria-2.2.0 → vmware_aria-2.4.0}/RELEASE_NOTES.md +41 -0
- {vmware_aria-2.2.0 → vmware_aria-2.4.0}/SECURITY.md +3 -1
- {vmware_aria-2.2.0 → vmware_aria-2.4.0}/openclaw.plugin.json +2 -2
- {vmware_aria-2.2.0 → vmware_aria-2.4.0}/package.json +2 -2
- {vmware_aria-2.2.0 → vmware_aria-2.4.0}/pyproject.toml +2 -2
- {vmware_aria-2.2.0 → vmware_aria-2.4.0}/server.json +3 -3
- {vmware_aria-2.2.0 → vmware_aria-2.4.0}/skills/vmware-aria/SKILL.md +21 -15
- {vmware_aria-2.2.0 → vmware_aria-2.4.0}/skills/vmware-aria/references/capabilities.md +11 -3
- {vmware_aria-2.2.0 → vmware_aria-2.4.0}/skills/vmware-aria/references/cli-reference.md +37 -0
- {vmware_aria-2.2.0 → vmware_aria-2.4.0}/skills/vmware-aria/references/setup-guide.md +41 -4
- {vmware_aria-2.2.0 → vmware_aria-2.4.0}/tests/eval/regression/test_aria_spec_conformance.py +2 -2
- {vmware_aria-2.2.0 → vmware_aria-2.4.0}/tests/eval/regression/test_aria_specific.py +7 -4
- {vmware_aria-2.2.0 → vmware_aria-2.4.0}/tests/eval/regression/test_fleet_rows_survive_the_container_key.py +1 -1
- {vmware_aria-2.2.0 → vmware_aria-2.4.0}/tests/eval/regression/test_mcp_parity.py +5 -3
- {vmware_aria-2.2.0 → vmware_aria-2.4.0}/tests/eval/regression/test_vcf91_fleet_spec.py +2 -2
- {vmware_aria-2.2.0 → vmware_aria-2.4.0}/tests/eval/regression/test_version_gated_calls_declare_their_floor.py +1 -1
- vmware_aria-2.4.0/tests/test_api_escape.py +193 -0
- vmware_aria-2.4.0/tests/test_policy_roles.py +55 -0
- vmware_aria-2.4.0/tests/test_session_pool.py +212 -0
- {vmware_aria-2.2.0 → vmware_aria-2.4.0}/uv.lock +5 -5
- {vmware_aria-2.2.0 → vmware_aria-2.4.0}/vmware_aria/__init__.py +1 -1
- {vmware_aria-2.2.0 → vmware_aria-2.4.0}/vmware_aria/cli.py +2 -0
- vmware_aria-2.4.0/vmware_aria/cli_api.py +81 -0
- {vmware_aria-2.2.0 → vmware_aria-2.4.0}/vmware_aria/connection.py +34 -23
- {vmware_aria-2.2.0 → vmware_aria-2.4.0}/vmware_aria/mcp_server/_shared.py +20 -7
- {vmware_aria-2.2.0 → vmware_aria-2.4.0}/vmware_aria/mcp_server/server.py +13 -1
- vmware_aria-2.4.0/vmware_aria/mcp_server/tools/api.py +70 -0
- vmware_aria-2.4.0/vmware_aria/ops/api_escape.py +269 -0
- {vmware_aria-2.2.0 → vmware_aria-2.4.0}/vmware_aria/ops/fleet.py +3 -3
- {vmware_aria-2.2.0 → vmware_aria-2.4.0}/vmware_aria/ops/gate_measures.py +1 -1
- {vmware_aria-2.2.0 → vmware_aria-2.4.0}/vmware_aria/ops/promql.py +2 -2
- {vmware_aria-2.2.0 → vmware_aria-2.4.0}/vmware_aria/ops/reports.py +1 -1
- {vmware_aria-2.2.0 → vmware_aria-2.4.0}/vmware_aria/policy_environment.py +4 -0
- vmware_aria-2.4.0/vmware_aria/policy_roles.py +57 -0
- {vmware_aria-2.2.0 → vmware_aria-2.4.0}/.clawhubignore +0 -0
- {vmware_aria-2.2.0 → vmware_aria-2.4.0}/.env.example +0 -0
- {vmware_aria-2.2.0 → vmware_aria-2.4.0}/.gitignore +0 -0
- {vmware_aria-2.2.0 → vmware_aria-2.4.0}/Dockerfile +0 -0
- {vmware_aria-2.2.0 → vmware_aria-2.4.0}/config.example.yaml +0 -0
- {vmware_aria-2.2.0 → vmware_aria-2.4.0}/docker-compose.yml +0 -0
- {vmware_aria-2.2.0 → vmware_aria-2.4.0}/examples/mcp-configs/claude-code.json +0 -0
- {vmware_aria-2.2.0 → vmware_aria-2.4.0}/examples/mcp-configs/cursor.json +0 -0
- {vmware_aria-2.2.0 → vmware_aria-2.4.0}/examples/mcp-configs/goose.json +0 -0
- {vmware_aria-2.2.0 → vmware_aria-2.4.0}/skills/vmware-aria/evals/evals.json +0 -0
- {vmware_aria-2.2.0 → vmware_aria-2.4.0}/skills/vmware-aria/references/agent-guardrails.md +0 -0
- {vmware_aria-2.2.0 → vmware_aria-2.4.0}/skills/vmware-aria/references/investigation-protocol.md +0 -0
- {vmware_aria-2.2.0 → vmware_aria-2.4.0}/skills/vmware-aria/references/ops-playbooks.md +0 -0
- {vmware_aria-2.2.0 → vmware_aria-2.4.0}/smithery.yaml +0 -0
- {vmware_aria-2.2.0 → vmware_aria-2.4.0}/tests/__init__.py +0 -0
- {vmware_aria-2.2.0 → vmware_aria-2.4.0}/tests/conftest.py +0 -0
- {vmware_aria-2.2.0 → vmware_aria-2.4.0}/tests/eval/__init__.py +0 -0
- {vmware_aria-2.2.0 → vmware_aria-2.4.0}/tests/eval/capability/__init__.py +0 -0
- {vmware_aria-2.2.0 → vmware_aria-2.4.0}/tests/eval/capability/_family.py +0 -0
- {vmware_aria-2.2.0 → vmware_aria-2.4.0}/tests/eval/capability/_scores.json +0 -0
- {vmware_aria-2.2.0 → vmware_aria-2.4.0}/tests/eval/capability/_scoring.py +0 -0
- {vmware_aria-2.2.0 → vmware_aria-2.4.0}/tests/eval/capability/_skill.py +0 -0
- {vmware_aria-2.2.0 → vmware_aria-2.4.0}/tests/eval/capability/conftest.py +0 -0
- {vmware_aria-2.2.0 → vmware_aria-2.4.0}/tests/eval/capability/test_entity_reachability.py +0 -0
- {vmware_aria-2.2.0 → vmware_aria-2.4.0}/tests/eval/capability/test_error_actionability.py +0 -0
- {vmware_aria-2.2.0 → vmware_aria-2.4.0}/tests/eval/capability/test_tool_description_quality.py +0 -0
- {vmware_aria-2.2.0 → vmware_aria-2.4.0}/tests/eval/capability/test_tool_manifest_budget.py +0 -0
- {vmware_aria-2.2.0 → vmware_aria-2.4.0}/tests/eval/fixtures/aria_8187/alert_adapter_childs_no_data.json +0 -0
- {vmware_aria-2.2.0 → vmware_aria-2.4.0}/tests/eval/fixtures/aria_8187/alert_notes_404.json +0 -0
- {vmware_aria-2.2.0 → vmware_aria-2.4.0}/tests/eval/fixtures/aria_8187/alert_notes_empty.json +0 -0
- {vmware_aria-2.2.0 → vmware_aria-2.4.0}/tests/eval/fixtures/aria_8187/alert_vcapp_health.json +0 -0
- {vmware_aria-2.2.0 → vmware_aria-2.4.0}/tests/eval/fixtures/aria_8187/alertdefinition_adapter_childs_no_data.json +0 -0
- {vmware_aria-2.2.0 → vmware_aria-2.4.0}/tests/eval/fixtures/aria_8187/alertdefinition_vcapp_health.json +0 -0
- {vmware_aria-2.2.0 → vmware_aria-2.4.0}/tests/eval/fixtures/aria_8187/contributingsymptoms_vcapp_health.json +0 -0
- {vmware_aria-2.2.0 → vmware_aria-2.4.0}/tests/eval/fixtures/aria_8187/host_relationships_all.json +0 -0
- {vmware_aria-2.2.0 → vmware_aria-2.4.0}/tests/eval/fixtures/aria_8187/host_relationships_child.json +0 -0
- {vmware_aria-2.2.0 → vmware_aria-2.4.0}/tests/eval/fixtures/aria_8187/host_relationships_parent.json +0 -0
- {vmware_aria-2.2.0 → vmware_aria-2.4.0}/tests/eval/fixtures/aria_8187/host_statkey_definitions.json +0 -0
- {vmware_aria-2.2.0 → vmware_aria-2.4.0}/tests/eval/fixtures/aria_8187/maintenanceschedules_empty.json +0 -0
- {vmware_aria-2.2.0 → vmware_aria-2.4.0}/tests/eval/fixtures/aria_8187/node_status_503.json +0 -0
- {vmware_aria-2.2.0 → vmware_aria-2.4.0}/tests/eval/fixtures/aria_8187/platform_adapters.json +0 -0
- {vmware_aria-2.2.0 → vmware_aria-2.4.0}/tests/eval/fixtures/aria_8187/platform_node_statkey_definitions.json +0 -0
- {vmware_aria-2.2.0 → vmware_aria-2.4.0}/tests/eval/fixtures/aria_8187/platform_node_statkeys.json +0 -0
- {vmware_aria-2.2.0 → vmware_aria-2.4.0}/tests/eval/fixtures/aria_8187/platform_resources_node.json +0 -0
- {vmware_aria-2.2.0 → vmware_aria-2.4.0}/tests/eval/fixtures/aria_8187/platform_resources_watchdog.json +0 -0
- {vmware_aria-2.2.0 → vmware_aria-2.4.0}/tests/eval/fixtures/aria_8187/platform_stats_latest.json +0 -0
- {vmware_aria-2.2.0 → vmware_aria-2.4.0}/tests/eval/fixtures/aria_8187/platform_stats_query.json +0 -0
- {vmware_aria-2.2.0 → vmware_aria-2.4.0}/tests/eval/fixtures/aria_8187/platform_watchdog_statkey_definitions.json +0 -0
- {vmware_aria-2.2.0 → vmware_aria-2.4.0}/tests/eval/fixtures/aria_8187/platform_watchdog_statkeys.json +0 -0
- {vmware_aria-2.2.0 → vmware_aria-2.4.0}/tests/eval/fixtures/aria_8187/properties_bulk_vcapp_services.json +0 -0
- {vmware_aria-2.2.0 → vmware_aria-2.4.0}/tests/eval/fixtures/aria_8187/recommendation_404.json +0 -0
- {vmware_aria-2.2.0 → vmware_aria-2.4.0}/tests/eval/fixtures/aria_8187/recommendations_by_id_adapter_childs.json +0 -0
- {vmware_aria-2.2.0 → vmware_aria-2.4.0}/tests/eval/fixtures/aria_8187/recommendations_by_id_vcapp.json +0 -0
- {vmware_aria-2.2.0 → vmware_aria-2.4.0}/tests/eval/fixtures/aria_8187/resource_test_llm.json +0 -0
- {vmware_aria-2.2.0 → vmware_aria-2.4.0}/tests/eval/fixtures/aria_8187/service_resource_mem.json +0 -0
- {vmware_aria-2.2.0 → vmware_aria-2.4.0}/tests/eval/fixtures/aria_8187/services_info.json +0 -0
- {vmware_aria-2.2.0 → vmware_aria-2.4.0}/tests/eval/fixtures/aria_8187/stats_query_mixed.json +0 -0
- {vmware_aria-2.2.0 → vmware_aria-2.4.0}/tests/eval/fixtures/aria_8187/stats_query_no_values.json +0 -0
- {vmware_aria-2.2.0 → vmware_aria-2.4.0}/tests/eval/fixtures/aria_8187/symptoms_ignores_id_filter.json +0 -0
- {vmware_aria-2.2.0 → vmware_aria-2.4.0}/tests/eval/fixtures/aria_8187/topn_no_groups.json +0 -0
- {vmware_aria-2.2.0 → vmware_aria-2.4.0}/tests/eval/fixtures/aria_8187/vcapp_children.json +0 -0
- {vmware_aria-2.2.0 → vmware_aria-2.4.0}/tests/eval/fixtures/aria_8187/versions_current.json +0 -0
- {vmware_aria-2.2.0 → vmware_aria-2.4.0}/tests/eval/fixtures/aria_8187/vm_properties.json +0 -0
- {vmware_aria-2.2.0 → vmware_aria-2.4.0}/tests/eval/fixtures/aria_8187/vm_relationships_all.json +0 -0
- {vmware_aria-2.2.0 → vmware_aria-2.4.0}/tests/eval/fixtures/aria_8187/vm_relationships_child.json +0 -0
- {vmware_aria-2.2.0 → vmware_aria-2.4.0}/tests/eval/fixtures/aria_8187/vm_relationships_parent.json +0 -0
- {vmware_aria-2.2.0 → vmware_aria-2.4.0}/tests/eval/fixtures/aria_8187/vm_resource_test_llm.json +0 -0
- {vmware_aria-2.2.0 → vmware_aria-2.4.0}/tests/eval/fixtures/aria_8187/vm_statkey_definitions.json +0 -0
- {vmware_aria-2.2.0 → vmware_aria-2.4.0}/tests/eval/fixtures/aria_8187/vm_statkey_definitions_full.json +0 -0
- {vmware_aria-2.2.0 → vmware_aria-2.4.0}/tests/eval/fixtures/aria_8187/vm_statkeys.json +0 -0
- {vmware_aria-2.2.0 → vmware_aria-2.4.0}/tests/eval/fixtures/aria_8187/vm_statkeys_180.json +0 -0
- {vmware_aria-2.2.0 → vmware_aria-2.4.0}/tests/eval/regression/__init__.py +0 -0
- {vmware_aria-2.2.0 → vmware_aria-2.4.0}/tests/eval/regression/_live_8187.py +0 -0
- {vmware_aria-2.2.0 → vmware_aria-2.4.0}/tests/eval/regression/fixtures/aria_8187_alerts.json +0 -0
- {vmware_aria-2.2.0 → vmware_aria-2.4.0}/tests/eval/regression/fixtures/aria_8187_rightsizing.json +0 -0
- {vmware_aria-2.2.0 → vmware_aria-2.4.0}/tests/eval/regression/test_a_9x_only_404_is_not_a_bad_id.py +0 -0
- {vmware_aria-2.2.0 → vmware_aria-2.4.0}/tests/eval/regression/test_alert_ids_are_pasteable_and_times_readable.py +0 -0
- {vmware_aria-2.2.0 → vmware_aria-2.4.0}/tests/eval/regression/test_alert_notes.py +0 -0
- {vmware_aria-2.2.0 → vmware_aria-2.4.0}/tests/eval/regression/test_alert_recommendations.py +0 -0
- {vmware_aria-2.2.0 → vmware_aria-2.4.0}/tests/eval/regression/test_anomaly_count_is_total_anomalies.py +0 -0
- {vmware_aria-2.2.0 → vmware_aria-2.4.0}/tests/eval/regression/test_anomaly_limit_bounds_the_answer.py +0 -0
- {vmware_aria-2.2.0 → vmware_aria-2.4.0}/tests/eval/regression/test_aria_spec_shapes.py +0 -0
- {vmware_aria-2.2.0 → vmware_aria-2.4.0}/tests/eval/regression/test_cached_loader_agrees_with_the_resolver.py +0 -0
- {vmware_aria-2.2.0 → vmware_aria-2.4.0}/tests/eval/regression/test_capability_grader.py +0 -0
- {vmware_aria-2.2.0 → vmware_aria-2.4.0}/tests/eval/regression/test_cli_value_errors_are_usage_errors.py +0 -0
- {vmware_aria-2.2.0 → vmware_aria-2.4.0}/tests/eval/regression/test_cli_writes_guarded.py +0 -0
- {vmware_aria-2.2.0 → vmware_aria-2.4.0}/tests/eval/regression/test_credential_env_override.py +0 -0
- {vmware_aria-2.2.0 → vmware_aria-2.4.0}/tests/eval/regression/test_destructive_cli_asks_twice.py +0 -0
- {vmware_aria-2.2.0 → vmware_aria-2.4.0}/tests/eval/regression/test_doctor_does_not_send_you_to_doctor.py +0 -0
- {vmware_aria-2.2.0 → vmware_aria-2.4.0}/tests/eval/regression/test_doctor_uses_the_config_the_tools_use.py +0 -0
- {vmware_aria-2.2.0 → vmware_aria-2.4.0}/tests/eval/regression/test_documented_metric_keys_exist.py +0 -0
- {vmware_aria-2.2.0 → vmware_aria-2.4.0}/tests/eval/regression/test_empty_metrics_say_why.py +0 -0
- {vmware_aria-2.2.0 → vmware_aria-2.4.0}/tests/eval/regression/test_empty_vs_unrecognized.py +0 -0
- {vmware_aria-2.2.0 → vmware_aria-2.4.0}/tests/eval/regression/test_env_secret_obfuscation.py +0 -0
- {vmware_aria-2.2.0 → vmware_aria-2.4.0}/tests/eval/regression/test_health_degraded_is_not_down.py +0 -0
- {vmware_aria-2.2.0 → vmware_aria-2.4.0}/tests/eval/regression/test_health_says_what_it_observed.py +0 -0
- {vmware_aria-2.2.0 → vmware_aria-2.4.0}/tests/eval/regression/test_ids_must_be_uuid_shaped.py +0 -0
- {vmware_aria-2.2.0 → vmware_aria-2.4.0}/tests/eval/regression/test_instructions_name_targets.py +0 -0
- {vmware_aria-2.2.0 → vmware_aria-2.4.0}/tests/eval/regression/test_live_8187_alert_names.py +0 -0
- {vmware_aria-2.2.0 → vmware_aria-2.4.0}/tests/eval/regression/test_maintenance_mode.py +0 -0
- {vmware_aria-2.2.0 → vmware_aria-2.4.0}/tests/eval/regression/test_maintenance_schedules.py +0 -0
- {vmware_aria-2.2.0 → vmware_aria-2.4.0}/tests/eval/regression/test_metrics_interval.py +0 -0
- {vmware_aria-2.2.0 → vmware_aria-2.4.0}/tests/eval/regression/test_metrics_summary.py +0 -0
- {vmware_aria-2.2.0 → vmware_aria-2.4.0}/tests/eval/regression/test_paging_loop_terminates.py +0 -0
- {vmware_aria-2.2.0 → vmware_aria-2.4.0}/tests/eval/regression/test_platform_adapters.py +0 -0
- {vmware_aria-2.2.0 → vmware_aria-2.4.0}/tests/eval/regression/test_platform_node_resources.py +0 -0
- {vmware_aria-2.2.0 → vmware_aria-2.4.0}/tests/eval/regression/test_platform_surfaces.py +0 -0
- {vmware_aria-2.2.0 → vmware_aria-2.4.0}/tests/eval/regression/test_product_version_is_read_and_parseable.py +0 -0
- {vmware_aria-2.2.0 → vmware_aria-2.4.0}/tests/eval/regression/test_release_blockers.py +0 -0
- {vmware_aria-2.2.0 → vmware_aria-2.4.0}/tests/eval/regression/test_report_fields_do_not_lie.py +0 -0
- {vmware_aria-2.2.0 → vmware_aria-2.4.0}/tests/eval/regression/test_resource_catalog.py +0 -0
- {vmware_aria-2.2.0 → vmware_aria-2.4.0}/tests/eval/regression/test_resource_list_says_which_objects_stopped_reporting.py +0 -0
- {vmware_aria-2.2.0 → vmware_aria-2.4.0}/tests/eval/regression/test_result_envelope.py +0 -0
- {vmware_aria-2.2.0 → vmware_aria-2.4.0}/tests/eval/regression/test_rightsizing_live_8187.py +0 -0
- {vmware_aria-2.2.0 → vmware_aria-2.4.0}/tests/eval/regression/test_rightsizing_recommendation_history.py +0 -0
- {vmware_aria-2.2.0 → vmware_aria-2.4.0}/tests/eval/regression/test_service_health_is_not_the_badge.py +0 -0
- {vmware_aria-2.2.0 → vmware_aria-2.4.0}/tests/eval/regression/test_stats_n1.py +0 -0
- {vmware_aria-2.2.0 → vmware_aria-2.4.0}/tests/eval/regression/test_text_io_declares_encoding.py +0 -0
- {vmware_aria-2.2.0 → vmware_aria-2.4.0}/tests/eval/regression/test_top_consumers_value_is_the_ranking.py +0 -0
- {vmware_aria-2.2.0 → vmware_aria-2.4.0}/tests/eval/regression/test_vcapp_symptoms_name_their_resources.py +0 -0
- {vmware_aria-2.2.0 → vmware_aria-2.4.0}/tests/eval/regression/test_verify_ssl_false_needs_no_urllib3.py +0 -0
- {vmware_aria-2.2.0 → vmware_aria-2.4.0}/tests/test_config.py +0 -0
- {vmware_aria-2.2.0 → vmware_aria-2.4.0}/tests/test_gated_writes.py +0 -0
- {vmware_aria-2.2.0 → vmware_aria-2.4.0}/tests/test_init_and_onboarding.py +0 -0
- {vmware_aria-2.2.0 → vmware_aria-2.4.0}/tests/test_investigate.py +0 -0
- {vmware_aria-2.2.0 → vmware_aria-2.4.0}/tests/test_no_destructive_ops.py +0 -0
- {vmware_aria-2.2.0 → vmware_aria-2.4.0}/tests/test_safe_error_passthrough.py +0 -0
- {vmware_aria-2.2.0/tests/eval/spec → vmware_aria-2.4.0/vmware_aria/api_spec}/vcf91_fleet_operations.json +0 -0
- {vmware_aria-2.2.0/tests/eval/spec → vmware_aria-2.4.0/vmware_aria/api_spec}/vcfops91_operations.json +0 -0
- {vmware_aria-2.2.0/tests/eval/spec → vmware_aria-2.4.0/vmware_aria/api_spec}/vrops86_operations.json +0 -0
- {vmware_aria-2.2.0 → vmware_aria-2.4.0}/vmware_aria/cli_catalog.py +0 -0
- {vmware_aria-2.2.0 → vmware_aria-2.4.0}/vmware_aria/cli_platform.py +0 -0
- {vmware_aria-2.2.0 → vmware_aria-2.4.0}/vmware_aria/cli_workflow.py +0 -0
- {vmware_aria-2.2.0 → vmware_aria-2.4.0}/vmware_aria/config.py +0 -0
- {vmware_aria-2.2.0 → vmware_aria-2.4.0}/vmware_aria/doctor.py +0 -0
- {vmware_aria-2.2.0 → vmware_aria-2.4.0}/vmware_aria/init_wizard.py +0 -0
- {vmware_aria-2.2.0 → vmware_aria-2.4.0}/vmware_aria/mcp_server/__init__.py +0 -0
- {vmware_aria-2.2.0 → vmware_aria-2.4.0}/vmware_aria/mcp_server/__main__.py +0 -0
- {vmware_aria-2.2.0 → vmware_aria-2.4.0}/vmware_aria/mcp_server/tools/__init__.py +0 -0
- {vmware_aria-2.2.0 → vmware_aria-2.4.0}/vmware_aria/mcp_server/tools/alert_definitions.py +0 -0
- {vmware_aria-2.2.0 → vmware_aria-2.4.0}/vmware_aria/mcp_server/tools/alert_workflow.py +0 -0
- {vmware_aria-2.2.0 → vmware_aria-2.4.0}/vmware_aria/mcp_server/tools/alerts.py +0 -0
- {vmware_aria-2.2.0 → vmware_aria-2.4.0}/vmware_aria/mcp_server/tools/anomaly.py +0 -0
- {vmware_aria-2.2.0 → vmware_aria-2.4.0}/vmware_aria/mcp_server/tools/capacity.py +0 -0
- {vmware_aria-2.2.0 → vmware_aria-2.4.0}/vmware_aria/mcp_server/tools/catalog.py +0 -0
- {vmware_aria-2.2.0 → vmware_aria-2.4.0}/vmware_aria/mcp_server/tools/fleet.py +0 -0
- {vmware_aria-2.2.0 → vmware_aria-2.4.0}/vmware_aria/mcp_server/tools/health.py +0 -0
- {vmware_aria-2.2.0 → vmware_aria-2.4.0}/vmware_aria/mcp_server/tools/maintenance.py +0 -0
- {vmware_aria-2.2.0 → vmware_aria-2.4.0}/vmware_aria/mcp_server/tools/reports.py +0 -0
- {vmware_aria-2.2.0 → vmware_aria-2.4.0}/vmware_aria/mcp_server/tools/resources.py +0 -0
- {vmware_aria-2.2.0 → vmware_aria-2.4.0}/vmware_aria/notify/__init__.py +0 -0
- {vmware_aria-2.2.0 → vmware_aria-2.4.0}/vmware_aria/notify/audit.py +0 -0
- {vmware_aria-2.2.0 → vmware_aria-2.4.0}/vmware_aria/ops/__init__.py +0 -0
- {vmware_aria-2.2.0 → vmware_aria-2.4.0}/vmware_aria/ops/_collection.py +0 -0
- {vmware_aria-2.2.0 → vmware_aria-2.4.0}/vmware_aria/ops/_ids.py +0 -0
- {vmware_aria-2.2.0 → vmware_aria-2.4.0}/vmware_aria/ops/_paging.py +0 -0
- {vmware_aria-2.2.0 → vmware_aria-2.4.0}/vmware_aria/ops/alert_notes.py +0 -0
- {vmware_aria-2.2.0 → vmware_aria-2.4.0}/vmware_aria/ops/alert_recommendations.py +0 -0
- {vmware_aria-2.2.0 → vmware_aria-2.4.0}/vmware_aria/ops/alerts.py +0 -0
- {vmware_aria-2.2.0 → vmware_aria-2.4.0}/vmware_aria/ops/anomaly.py +0 -0
- {vmware_aria-2.2.0 → vmware_aria-2.4.0}/vmware_aria/ops/capacity.py +0 -0
- {vmware_aria-2.2.0 → vmware_aria-2.4.0}/vmware_aria/ops/catalog.py +0 -0
- {vmware_aria-2.2.0 → vmware_aria-2.4.0}/vmware_aria/ops/health.py +0 -0
- {vmware_aria-2.2.0 → vmware_aria-2.4.0}/vmware_aria/ops/investigate.py +0 -0
- {vmware_aria-2.2.0 → vmware_aria-2.4.0}/vmware_aria/ops/maintenance.py +0 -0
- {vmware_aria-2.2.0 → vmware_aria-2.4.0}/vmware_aria/ops/metric_summary.py +0 -0
- {vmware_aria-2.2.0 → vmware_aria-2.4.0}/vmware_aria/ops/platform.py +0 -0
- {vmware_aria-2.2.0 → vmware_aria-2.4.0}/vmware_aria/ops/resources.py +0 -0
- {vmware_aria-2.2.0 → vmware_aria-2.4.0}/vmware_aria/ops/service_state.py +0 -0
- {vmware_aria-2.2.0 → vmware_aria-2.4.0}/vmware_aria/ops/symptom_resources.py +0 -0
- {vmware_aria-2.2.0 → vmware_aria-2.4.0}/vmware_aria/ops/write_gate.py +0 -0
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
"$schema": "https://anthropic.com/claude-code/plugin.schema.json",
|
|
3
3
|
"name": "vmware-aria",
|
|
4
4
|
"displayName": "VMware Aria",
|
|
5
|
-
"version": "2.
|
|
6
|
-
"description": "VMware Aria Operations: metrics, alerts, capacity, anomaly detection —
|
|
5
|
+
"version": "2.4.0",
|
|
6
|
+
"description": "VMware Aria Operations: metrics, alerts, capacity, anomaly detection — 46 MCP tools.",
|
|
7
7
|
"author": {
|
|
8
8
|
"name": "Wei Zhou",
|
|
9
9
|
"email": "zhouwei008@gmail.com",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: vmware-aria
|
|
3
|
-
Version: 2.
|
|
3
|
+
Version: 2.4.0
|
|
4
4
|
Summary: VMware Aria Operations (vRealize Operations) monitoring, alerting, and capacity planning
|
|
5
5
|
Project-URL: Homepage, https://github.com/vmware-skills/VMware-Aria
|
|
6
6
|
Project-URL: Repository, https://github.com/vmware-skills/VMware-Aria
|
|
@@ -20,7 +20,7 @@ Requires-Dist: python-dotenv<2.0,>=1.0
|
|
|
20
20
|
Requires-Dist: pyyaml<7.0,>=6.0
|
|
21
21
|
Requires-Dist: rich<15.0,>=13.0
|
|
22
22
|
Requires-Dist: typer<1.0,>=0.12
|
|
23
|
-
Requires-Dist: vmware-policy<2.0,>=1.
|
|
23
|
+
Requires-Dist: vmware-policy<2.0,>=1.22.0
|
|
24
24
|
Description-Content-Type: text/markdown
|
|
25
25
|
|
|
26
26
|
<!-- mcp-name: io.github.vmware-skills/vmware-aria -->
|
|
@@ -39,7 +39,7 @@ AI-assisted monitoring and capacity planning for VMware Aria Operations (vRealiz
|
|
|
39
39
|
|
|
40
40
|
## Upgrading to 2.0
|
|
41
41
|
|
|
42
|
-
2.0 renames 4 of its
|
|
42
|
+
2.0 renames 4 of its MCP tools so every name starts with a verb (e.g. `findings_list` → `list_findings`, `fleet_certificate_list` → `list_fleet_certificates`, `fleet_domain_list` → `list_fleet_domains`). The full old → new table is in
|
|
43
43
|
[RELEASE_NOTES.md](RELEASE_NOTES.md#v200--mcp-tools-renamed-verb-first). Nothing else changes: same tools, parameters,
|
|
44
44
|
safety gates and CLI commands. If an agent prompt, script or `~/.vmware/rules.yaml` names a tool, update it — though deny
|
|
45
45
|
rules written with the old names keep working with vmware-policy ≥ 1.18 (`vmware-audit policy` lists any rule the
|
|
@@ -49,7 +49,7 @@ against both the old and the new name, so one file serves both.
|
|
|
49
49
|
|
|
50
50
|
## Overview
|
|
51
51
|
|
|
52
|
-
`vmware-aria` exposes
|
|
52
|
+
`vmware-aria` exposes 46 MCP tools for interacting with Aria Operations through natural language AI agents (Claude Code, Cursor, Goose, etc.):
|
|
53
53
|
|
|
54
54
|
| Category | Tools | Type |
|
|
55
55
|
|----------|-------|------|
|
|
@@ -62,8 +62,9 @@ against both the old and the new name, so one file serves both.
|
|
|
62
62
|
| **Health** | platform health, collector groups, Aria node memory/swap/heap, adapter collection state | Read-only (4) |
|
|
63
63
|
| **Maintenance** | start / end resource maintenance, maintenance schedules | Read + 2 Write (3) |
|
|
64
64
|
| **Fleet / PromQL** (VCF Ops 9.1) | fleet certificates, password accounts, VCF domains, diagnostic findings, real-time PromQL query | Read-only (5) |
|
|
65
|
+
| **Raw API** | search the API operation index, GET one indexed path — for reads no tool above covers | Read-only (2) |
|
|
65
66
|
|
|
66
|
-
**Total**:
|
|
67
|
+
**Total**: 46 tools — 36 read-only, 10 write
|
|
67
68
|
|
|
68
69
|
## Quick Start
|
|
69
70
|
|
|
@@ -248,6 +249,72 @@ VMs / Hosts / Clusters / Alerts / Capacity
|
|
|
248
249
|
- **SDKs**: <https://developer.broadcom.com/sdks> — VCF Python SDK
|
|
249
250
|
- **CLI Tools**: <https://developer.broadcom.com/tools> — PowerCLI 9.1 includes "VCF Operations (formerly vRealize Operations Manager)" cmdlets
|
|
250
251
|
|
|
252
|
+
<!-- usage: remote-and-exposure -->
|
|
253
|
+
## Remote access (HTTPS) and limiting tools
|
|
254
|
+
|
|
255
|
+
By default `vmware-aria mcp` speaks stdio to one local client and offers every tool. Two options change that
|
|
256
|
+
(vmware-policy ≥ 1.21.0).
|
|
257
|
+
|
|
258
|
+
**Serve over HTTPS** so clients on other machines can connect. Every caller needs a bearer token:
|
|
259
|
+
|
|
260
|
+
```bash
|
|
261
|
+
vmware-audit token create alice # prints the token once; give it to alice
|
|
262
|
+
vmware-audit token list # names only
|
|
263
|
+
vmware-audit token revoke alice # refused from its next request, no restart
|
|
264
|
+
vmware-aria mcp --transport https --host 0.0.0.0 --port 8443 \
|
|
265
|
+
--cert /etc/vmware-mcp/server.pem --key /etc/vmware-mcp/server-key.pem \
|
|
266
|
+
--public-name mcp.example.com
|
|
267
|
+
```
|
|
268
|
+
|
|
269
|
+
Connect a client (Claude Code shown; any MCP client that supports streamable HTTP and custom headers works):
|
|
270
|
+
|
|
271
|
+
```bash
|
|
272
|
+
claude mcp add --transport http vmware-aria https://mcp.example.com:8443/mcp \
|
|
273
|
+
--header "Authorization: Bearer $VMWARE_MCP_TOKEN"
|
|
274
|
+
```
|
|
275
|
+
|
|
276
|
+
```json
|
|
277
|
+
{
|
|
278
|
+
"mcpServers": {
|
|
279
|
+
"vmware-aria": {
|
|
280
|
+
"type": "http",
|
|
281
|
+
"url": "https://mcp.example.com:8443/mcp",
|
|
282
|
+
"headers": { "Authorization": "Bearer ${VMWARE_MCP_TOKEN}" }
|
|
283
|
+
}
|
|
284
|
+
}
|
|
285
|
+
}
|
|
286
|
+
```
|
|
287
|
+
|
|
288
|
+
- The server will not start without a token, refuses Host/Origin values outside `--public-name`, and checks
|
|
289
|
+
before it binds that unauthenticated requests get 401. Use a certificate your clients trust for those names.
|
|
290
|
+
- Behind a TLS-terminating reverse proxy on the same machine use `--transport http --host 127.0.0.1
|
|
291
|
+
--public-name mcp.example.com` and pass the `Authorization` header through.
|
|
292
|
+
- Behind a load balancer or gateway on another machine, keep `--transport https` (a self-signed certificate is
|
|
293
|
+
fine), list in `--public-name` the host name the balancer sends as `Host`, and have it forward `Authorization`.
|
|
294
|
+
Its health probe can use `GET /healthz`, which needs no token and returns only `{"status": "ok"}`
|
|
295
|
+
(vmware-policy ≥ 1.23.0).
|
|
296
|
+
- Send `traceparent` or `X-Request-ID` with each request to have it stored on the audit row;
|
|
297
|
+
`vmware-audit log --correlation-id ID` then finds the calls behind one platform request.
|
|
298
|
+
- The audit log records each caller as `token:<name>`. Calls run side by side: each holds its own session to a
|
|
299
|
+
target, up to `VMWARE_MCP_POOL_SIZE` (default 2) sessions per target. Each session is a login on the target; a
|
|
300
|
+
call waits at most 300 s for a free one.
|
|
301
|
+
- **Everyone who can reach the endpoint acts with this server's account.** Tokens identify callers; they grant
|
|
302
|
+
nothing on the platform. Run one endpoint per privilege level.
|
|
303
|
+
- **Several people or roles on one endpoint:** run `vmware-audit roles enable` once, then give each token a role (`vmware-audit token create NAME --role reader`, or a role in `roles.yaml` naming tools and targets; vmware-policy ≥ 1.24.0). A role limits what the token may call on this endpoint; it cannot grant more than the account has. See vmware-policy's README, "Roles for network callers".
|
|
304
|
+
|
|
305
|
+
**Offer only read tools, plus the writes you choose:**
|
|
306
|
+
|
|
307
|
+
```bash
|
|
308
|
+
vmware-aria mcp --expose read --allow-write acknowledge_alert
|
|
309
|
+
# or: VMWARE_ARIA_MCP_EXPOSE=read VMWARE_ARIA_MCP_ALLOW_WRITE=acknowledge_alert vmware-aria mcp
|
|
310
|
+
```
|
|
311
|
+
|
|
312
|
+
Tools not offered do not appear in the client's tool list. A bad value or an unknown write tool stops the server
|
|
313
|
+
(exit 2). This limits what clients are offered; it is not authorization, so the account itself should be
|
|
314
|
+
least-privilege.
|
|
315
|
+
|
|
316
|
+
Details: `skills/vmware-aria/references/setup-guide.md` ("Serving MCP over HTTPS", "Limiting which tools are offered").
|
|
317
|
+
|
|
251
318
|
## License
|
|
252
319
|
|
|
253
320
|
MIT — see [LICENSE](LICENSE)
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
|
|
10
10
|
## 升级到 2.0
|
|
11
11
|
|
|
12
|
-
2.0 把
|
|
12
|
+
2.0 把 MCP 工具名改成动词在前(共改名 4 处)(例如 `findings_list` → `list_findings`, `fleet_certificate_list` → `list_fleet_certificates`, `fleet_domain_list` → `list_fleet_domains`),完整的新旧名对照表见
|
|
13
13
|
[RELEASE_NOTES.md](RELEASE_NOTES.md#v200--mcp-tools-renamed-verb-first)。其他都不变:工具、参数、安全确认门和 CLI 命令都一样。
|
|
14
14
|
如果 agent 提示词、脚本或 `~/.vmware/rules.yaml` 里写了工具名,请改成新名——不过用旧名写的 deny 规则在
|
|
15
15
|
vmware-policy ≥ 1.18 下仍然生效(`vmware-audit policy` 会列出因改名而多匹配的规则),vmware-pilot ≥ 1.13 也会自动转换已保存工作流里的旧名。
|
|
@@ -17,7 +17,7 @@ vmware-policy ≥ 1.18 下仍然生效(`vmware-audit policy` 会列出因改
|
|
|
17
17
|
|
|
18
18
|
## 概述
|
|
19
19
|
|
|
20
|
-
`vmware-aria` 提供
|
|
20
|
+
`vmware-aria` 提供 46 个 MCP 工具,支持通过自然语言 AI Agent(Claude Code、Cursor、Goose 等)与 Aria Operations 交互:
|
|
21
21
|
|
|
22
22
|
| 类别 | 工具 | 类型 |
|
|
23
23
|
|------|------|------|
|
|
@@ -30,8 +30,9 @@ vmware-policy ≥ 1.18 下仍然生效(`vmware-audit policy` 会列出因改
|
|
|
30
30
|
| **健康** | 平台健康、采集器状态、Aria 节点内存/交换/堆、适配器采集状态 | 只读 (4) |
|
|
31
31
|
| **维护** | 开始 / 结束资源维护模式、维护计划 | 读+2写 (3) |
|
|
32
32
|
| **Fleet / PromQL**(VCF Ops 9.1) | Fleet 证书、密码账户、VCF 域、诊断发现、实时 PromQL 查询 | 只读 (5) |
|
|
33
|
+
| **原始 API** | 搜索 API 操作索引、GET 一个索引内的路径 —— 用于上面工具都覆盖不到的读取 | 只读 (2) |
|
|
33
34
|
|
|
34
|
-
**共
|
|
35
|
+
**共 46 个工具** — 36 只读、10 写操作
|
|
35
36
|
|
|
36
37
|
## 快速开始
|
|
37
38
|
|
|
@@ -202,6 +203,69 @@ Token 为 6 小时滑动有效期(每次调用自动延长,官方规范行
|
|
|
202
203
|
- MCP 的破坏性写操作(告警确认/取消、删除告警定义和报表、开始/结束维护)带 `confirm` 参数(默认 `false`):不传 `confirm=true` 时只返回将改变什么的 `blast_radius`,不做任何修改;遇到阻断项(如资源已在维护中)或有字段读不到时,`confirm=true` 会被拒绝。`confirmed` 为已弃用的别名
|
|
203
204
|
- 默认开启 TLS 校验;私有 CA 请把 `SSL_CERT_FILE` 指向包含你 CA 的证书包(见 setup guide)。`verify_ssl: false` 仅用于隔离的自签名实验环境
|
|
204
205
|
|
|
206
|
+
<!-- usage: remote-and-exposure -->
|
|
207
|
+
## 远程访问(HTTPS)与限制工具
|
|
208
|
+
|
|
209
|
+
默认情况下 `vmware-aria mcp` 通过 stdio 服务一个本地客户端,并提供全部工具。以下两个选项可以改变这一点
|
|
210
|
+
(需 vmware-policy ≥ 1.21.0)。
|
|
211
|
+
|
|
212
|
+
**通过 HTTPS 提供服务**,让其他机器上的客户端连接。每个调用者都需要一个 bearer token:
|
|
213
|
+
|
|
214
|
+
```bash
|
|
215
|
+
vmware-audit token create alice # 只显示一次,交给 alice
|
|
216
|
+
vmware-audit token list # 只列名字
|
|
217
|
+
vmware-audit token revoke alice # 下一个请求起即拒绝,无需重启
|
|
218
|
+
vmware-aria mcp --transport https --host 0.0.0.0 --port 8443 \
|
|
219
|
+
--cert /etc/vmware-mcp/server.pem --key /etc/vmware-mcp/server-key.pem \
|
|
220
|
+
--public-name mcp.example.com
|
|
221
|
+
```
|
|
222
|
+
|
|
223
|
+
连接客户端(以 Claude Code 为例;任何支持 streamable HTTP 和自定义请求头的 MCP 客户端都可以):
|
|
224
|
+
|
|
225
|
+
```bash
|
|
226
|
+
claude mcp add --transport http vmware-aria https://mcp.example.com:8443/mcp \
|
|
227
|
+
--header "Authorization: Bearer $VMWARE_MCP_TOKEN"
|
|
228
|
+
```
|
|
229
|
+
|
|
230
|
+
```json
|
|
231
|
+
{
|
|
232
|
+
"mcpServers": {
|
|
233
|
+
"vmware-aria": {
|
|
234
|
+
"type": "http",
|
|
235
|
+
"url": "https://mcp.example.com:8443/mcp",
|
|
236
|
+
"headers": { "Authorization": "Bearer ${VMWARE_MCP_TOKEN}" }
|
|
237
|
+
}
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
```
|
|
241
|
+
|
|
242
|
+
- 没有 token 时服务不会启动;`--public-name` 之外的 Host/Origin 一律拒绝;绑定端口前会自检,确认未认证请求得到 401。
|
|
243
|
+
证书要用客户端信任、且覆盖这些名字的证书。
|
|
244
|
+
- 在同一台机器上由反向代理终结 TLS 时,用 `--transport http --host 127.0.0.1 --public-name mcp.example.com`,
|
|
245
|
+
并让代理透传 `Authorization` 头。
|
|
246
|
+
- 负载均衡或网关在另一台机器上时,保持 `--transport https`(自签证书也可以),在 `--public-name` 里写上负载均衡
|
|
247
|
+
转发时带的 `Host` 名,并让它透传 `Authorization`。健康检查可以用 `GET /healthz`:不需要 token,只返回
|
|
248
|
+
`{"status": "ok"}`(需 vmware-policy ≥ 1.23.0)。
|
|
249
|
+
- 每个请求带上 `traceparent` 或 `X-Request-ID`,它会记进审计记录;用 `vmware-audit log --correlation-id ID`
|
|
250
|
+
就能查到平台上某一次请求对应的调用。
|
|
251
|
+
- 审计日志把每个调用者记为 `token:<名字>`。调用并行执行:每个调用独占一个到 target 的会话,每个 target 最多
|
|
252
|
+
`VMWARE_MCP_POOL_SIZE`(默认 2)个会话。每个会话都是在 target 上的一次登录;调用最多等待 300 秒拿到空闲会话。
|
|
253
|
+
- **能连到这个端点的人,都以该 server 配置的账号操作。** token 只用来识别调用者,不在平台上授予任何权限。
|
|
254
|
+
每个权限级别单独起一个端点。
|
|
255
|
+
- **一个端点给多人或多种角色用:** 先运行一次 `vmware-audit roles enable`,再给每个 token 指定角色(`vmware-audit token create 名字 --role reader`,或在 `roles.yaml` 里定义可用的工具和 target;需 vmware-policy ≥ 1.24.0)。角色只能限定这个 token 在本端点上能调用什么,不能超出账号本身的权限。详见 vmware-policy README 的「网络调用者的角色」一节。
|
|
256
|
+
|
|
257
|
+
**只提供读工具,加上你选定的写工具:**
|
|
258
|
+
|
|
259
|
+
```bash
|
|
260
|
+
vmware-aria mcp --expose read --allow-write acknowledge_alert
|
|
261
|
+
# 或:VMWARE_ARIA_MCP_EXPOSE=read VMWARE_ARIA_MCP_ALLOW_WRITE=acknowledge_alert vmware-aria mcp
|
|
262
|
+
```
|
|
263
|
+
|
|
264
|
+
未提供的工具不会出现在客户端的工具列表里。取值错误或写工具名不存在时服务直接退出(exit 2)。
|
|
265
|
+
这只限制提供给客户端的工具,不是授权;账号本身仍应遵循最小权限。
|
|
266
|
+
|
|
267
|
+
详见 `skills/vmware-aria/references/setup-guide.md`("Serving MCP over HTTPS"、"Limiting which tools are offered")。
|
|
268
|
+
|
|
205
269
|
## 许可证
|
|
206
270
|
|
|
207
271
|
MIT
|
|
@@ -14,7 +14,7 @@ AI-assisted monitoring and capacity planning for VMware Aria Operations (vRealiz
|
|
|
14
14
|
|
|
15
15
|
## Upgrading to 2.0
|
|
16
16
|
|
|
17
|
-
2.0 renames 4 of its
|
|
17
|
+
2.0 renames 4 of its MCP tools so every name starts with a verb (e.g. `findings_list` → `list_findings`, `fleet_certificate_list` → `list_fleet_certificates`, `fleet_domain_list` → `list_fleet_domains`). The full old → new table is in
|
|
18
18
|
[RELEASE_NOTES.md](RELEASE_NOTES.md#v200--mcp-tools-renamed-verb-first). Nothing else changes: same tools, parameters,
|
|
19
19
|
safety gates and CLI commands. If an agent prompt, script or `~/.vmware/rules.yaml` names a tool, update it — though deny
|
|
20
20
|
rules written with the old names keep working with vmware-policy ≥ 1.18 (`vmware-audit policy` lists any rule the
|
|
@@ -24,7 +24,7 @@ against both the old and the new name, so one file serves both.
|
|
|
24
24
|
|
|
25
25
|
## Overview
|
|
26
26
|
|
|
27
|
-
`vmware-aria` exposes
|
|
27
|
+
`vmware-aria` exposes 46 MCP tools for interacting with Aria Operations through natural language AI agents (Claude Code, Cursor, Goose, etc.):
|
|
28
28
|
|
|
29
29
|
| Category | Tools | Type |
|
|
30
30
|
|----------|-------|------|
|
|
@@ -37,8 +37,9 @@ against both the old and the new name, so one file serves both.
|
|
|
37
37
|
| **Health** | platform health, collector groups, Aria node memory/swap/heap, adapter collection state | Read-only (4) |
|
|
38
38
|
| **Maintenance** | start / end resource maintenance, maintenance schedules | Read + 2 Write (3) |
|
|
39
39
|
| **Fleet / PromQL** (VCF Ops 9.1) | fleet certificates, password accounts, VCF domains, diagnostic findings, real-time PromQL query | Read-only (5) |
|
|
40
|
+
| **Raw API** | search the API operation index, GET one indexed path — for reads no tool above covers | Read-only (2) |
|
|
40
41
|
|
|
41
|
-
**Total**:
|
|
42
|
+
**Total**: 46 tools — 36 read-only, 10 write
|
|
42
43
|
|
|
43
44
|
## Quick Start
|
|
44
45
|
|
|
@@ -223,6 +224,72 @@ VMs / Hosts / Clusters / Alerts / Capacity
|
|
|
223
224
|
- **SDKs**: <https://developer.broadcom.com/sdks> — VCF Python SDK
|
|
224
225
|
- **CLI Tools**: <https://developer.broadcom.com/tools> — PowerCLI 9.1 includes "VCF Operations (formerly vRealize Operations Manager)" cmdlets
|
|
225
226
|
|
|
227
|
+
<!-- usage: remote-and-exposure -->
|
|
228
|
+
## Remote access (HTTPS) and limiting tools
|
|
229
|
+
|
|
230
|
+
By default `vmware-aria mcp` speaks stdio to one local client and offers every tool. Two options change that
|
|
231
|
+
(vmware-policy ≥ 1.21.0).
|
|
232
|
+
|
|
233
|
+
**Serve over HTTPS** so clients on other machines can connect. Every caller needs a bearer token:
|
|
234
|
+
|
|
235
|
+
```bash
|
|
236
|
+
vmware-audit token create alice # prints the token once; give it to alice
|
|
237
|
+
vmware-audit token list # names only
|
|
238
|
+
vmware-audit token revoke alice # refused from its next request, no restart
|
|
239
|
+
vmware-aria mcp --transport https --host 0.0.0.0 --port 8443 \
|
|
240
|
+
--cert /etc/vmware-mcp/server.pem --key /etc/vmware-mcp/server-key.pem \
|
|
241
|
+
--public-name mcp.example.com
|
|
242
|
+
```
|
|
243
|
+
|
|
244
|
+
Connect a client (Claude Code shown; any MCP client that supports streamable HTTP and custom headers works):
|
|
245
|
+
|
|
246
|
+
```bash
|
|
247
|
+
claude mcp add --transport http vmware-aria https://mcp.example.com:8443/mcp \
|
|
248
|
+
--header "Authorization: Bearer $VMWARE_MCP_TOKEN"
|
|
249
|
+
```
|
|
250
|
+
|
|
251
|
+
```json
|
|
252
|
+
{
|
|
253
|
+
"mcpServers": {
|
|
254
|
+
"vmware-aria": {
|
|
255
|
+
"type": "http",
|
|
256
|
+
"url": "https://mcp.example.com:8443/mcp",
|
|
257
|
+
"headers": { "Authorization": "Bearer ${VMWARE_MCP_TOKEN}" }
|
|
258
|
+
}
|
|
259
|
+
}
|
|
260
|
+
}
|
|
261
|
+
```
|
|
262
|
+
|
|
263
|
+
- The server will not start without a token, refuses Host/Origin values outside `--public-name`, and checks
|
|
264
|
+
before it binds that unauthenticated requests get 401. Use a certificate your clients trust for those names.
|
|
265
|
+
- Behind a TLS-terminating reverse proxy on the same machine use `--transport http --host 127.0.0.1
|
|
266
|
+
--public-name mcp.example.com` and pass the `Authorization` header through.
|
|
267
|
+
- Behind a load balancer or gateway on another machine, keep `--transport https` (a self-signed certificate is
|
|
268
|
+
fine), list in `--public-name` the host name the balancer sends as `Host`, and have it forward `Authorization`.
|
|
269
|
+
Its health probe can use `GET /healthz`, which needs no token and returns only `{"status": "ok"}`
|
|
270
|
+
(vmware-policy ≥ 1.23.0).
|
|
271
|
+
- Send `traceparent` or `X-Request-ID` with each request to have it stored on the audit row;
|
|
272
|
+
`vmware-audit log --correlation-id ID` then finds the calls behind one platform request.
|
|
273
|
+
- The audit log records each caller as `token:<name>`. Calls run side by side: each holds its own session to a
|
|
274
|
+
target, up to `VMWARE_MCP_POOL_SIZE` (default 2) sessions per target. Each session is a login on the target; a
|
|
275
|
+
call waits at most 300 s for a free one.
|
|
276
|
+
- **Everyone who can reach the endpoint acts with this server's account.** Tokens identify callers; they grant
|
|
277
|
+
nothing on the platform. Run one endpoint per privilege level.
|
|
278
|
+
- **Several people or roles on one endpoint:** run `vmware-audit roles enable` once, then give each token a role (`vmware-audit token create NAME --role reader`, or a role in `roles.yaml` naming tools and targets; vmware-policy ≥ 1.24.0). A role limits what the token may call on this endpoint; it cannot grant more than the account has. See vmware-policy's README, "Roles for network callers".
|
|
279
|
+
|
|
280
|
+
**Offer only read tools, plus the writes you choose:**
|
|
281
|
+
|
|
282
|
+
```bash
|
|
283
|
+
vmware-aria mcp --expose read --allow-write acknowledge_alert
|
|
284
|
+
# or: VMWARE_ARIA_MCP_EXPOSE=read VMWARE_ARIA_MCP_ALLOW_WRITE=acknowledge_alert vmware-aria mcp
|
|
285
|
+
```
|
|
286
|
+
|
|
287
|
+
Tools not offered do not appear in the client's tool list. A bad value or an unknown write tool stops the server
|
|
288
|
+
(exit 2). This limits what clients are offered; it is not authorization, so the account itself should be
|
|
289
|
+
least-privilege.
|
|
290
|
+
|
|
291
|
+
Details: `skills/vmware-aria/references/setup-guide.md` ("Serving MCP over HTTPS", "Limiting which tools are offered").
|
|
292
|
+
|
|
226
293
|
## License
|
|
227
294
|
|
|
228
295
|
MIT — see [LICENSE](LICENSE)
|
|
@@ -1,3 +1,35 @@
|
|
|
1
|
+
## v2.4.0 — roles for network callers (HLD §18)
|
|
2
|
+
|
|
3
|
+
* Declares the role metadata vmware-policy ≥ 1.24.0 needs to apply **roles** to this server over HTTPS
|
|
4
|
+
(HLD §18): how a missing target resolves, and that `get_api_path` escapes a role (it reads any indexed API path, account and credential listings included). With an older vmware-policy nothing changes. Once an operator runs
|
|
5
|
+
`vmware-audit roles enable`, a token's role decides which tools and targets it may use here; a refused call is
|
|
6
|
+
audited as `denied`. See vmware-policy's README, "Roles for network callers".
|
|
7
|
+
* A target-limited role is checked against the same config the connection uses: the copy the server's connection manager loaded on its first connection. Edit `config.yaml` and restart for both to see the change.
|
|
8
|
+
* README and setup guide: one endpoint for several people or roles.
|
|
9
|
+
|
|
10
|
+
## v2.3.0 — calls run side by side; read-only raw API escape hatch
|
|
11
|
+
|
|
12
|
+
**Calls no longer wait for each other** (HLD §16 D-13(2), via vmware-policy 1.22.0). When one server serves several
|
|
13
|
+
callers (`--transport https` / `http`), each call now holds its own connection to a target for as long as it runs,
|
|
14
|
+
up to `VMWARE_MCP_POOL_SIZE` (default 2) connections per target. Each connection is a login on Aria Operations with
|
|
15
|
+
its own token, so two calls never share or refresh one token. A call that finds every connection busy waits at most
|
|
16
|
+
300 s, then fails naming the target. The CLI and stdio keep one connection per target, as before.
|
|
17
|
+
|
|
18
|
+
**Two new read tools for questions no tool answers** (HLD §17 D-18; 44 → 46 tools, 36 read / 10 write):
|
|
19
|
+
|
|
20
|
+
* `search_api_operations(query, limit=20)` searches the suite-api operation index now shipped in the package
|
|
21
|
+
(`vmware_aria/api_spec/`: vROps 8.6 and VCF Operations 9.1). It marks which operations are GET and which index
|
|
22
|
+
documents each. It contacts no appliance.
|
|
23
|
+
* `get_api_path(path, params, target)` issues one `GET` through the target's existing client (token, retry, error
|
|
24
|
+
messages). The path must match a GET operation in the index; other methods, unindexed paths, `..`, `//`, `?` or `#`
|
|
25
|
+
in the path, URLs, percent-encoding and non-string params are refused before any request. A 9.x appliance is held to
|
|
26
|
+
the 9.1 index; on 8.x, or when the version cannot be read, either index is accepted. Strings are sanitized; answers
|
|
27
|
+
over 30,000 characters of JSON come back `truncated: true` with `original_size` — page with `pageSize`.
|
|
28
|
+
* CLI: `vmware-aria api search <words>` and `vmware-aria api get <path> [--param NAME=VALUE]`, audited under the same
|
|
29
|
+
tool names.
|
|
30
|
+
|
|
31
|
+
The account's Aria roles still decide what can be read. Requires `vmware-policy>=1.22.0`.
|
|
32
|
+
|
|
1
33
|
## v2.2.0 — serve MCP over HTTPS
|
|
2
34
|
|
|
3
35
|
`vmware-aria mcp` can now serve the network as well as stdio (HLD §16, via vmware-policy 1.21.0):
|
|
@@ -8,6 +40,15 @@ vmware-aria mcp --transport https --host 0.0.0.0 --port 8443 \
|
|
|
8
40
|
--cert server.pem --key server-key.pem --public-name mcp.example.com
|
|
9
41
|
```
|
|
10
42
|
|
|
43
|
+
Connect a client and manage callers (Claude Code shown; any MCP client with streamable HTTP and custom headers works):
|
|
44
|
+
|
|
45
|
+
```bash
|
|
46
|
+
claude mcp add --transport http vmware-aria https://mcp.example.com:8443/mcp \
|
|
47
|
+
--header "Authorization: Bearer $VMWARE_MCP_TOKEN"
|
|
48
|
+
vmware-audit token list # names only
|
|
49
|
+
vmware-audit token revoke alice # refused from its next request, no restart
|
|
50
|
+
```
|
|
51
|
+
|
|
11
52
|
* Every request needs `Authorization: Bearer <token>`; the server will not start without a token, refuses Host or
|
|
12
53
|
Origin values outside `--public-name`, and checks itself (unauthenticated requests must get 401) before it
|
|
13
54
|
binds. `--transport http` binds loopback only, for a TLS-terminating reverse proxy.
|
|
@@ -26,12 +26,14 @@ Do **not** open a public GitHub issue for security vulnerabilities.
|
|
|
26
26
|
|
|
27
27
|
### Read-Heavy Design
|
|
28
28
|
|
|
29
|
-
|
|
29
|
+
36 of 46 MCP tools are read-only. The 10 write operations are limited to:
|
|
30
30
|
- Alert acknowledge, cancel and notes
|
|
31
31
|
- Alert definition create, enable/disable and delete
|
|
32
32
|
- Report generation and deletion
|
|
33
33
|
- Resource maintenance mode start and end
|
|
34
34
|
|
|
35
|
+
`get_api_path` (raw API escape hatch) issues `GET` only, and only for a path that matches a GET operation in the operation index shipped with the package; other methods, unindexed paths, `..`, `//`, query strings in the path and absolute URLs are refused before any request. Its answer is sanitized and capped at 30,000 characters.
|
|
36
|
+
|
|
35
37
|
No VM lifecycle, no networking, no storage operations.
|
|
36
38
|
|
|
37
39
|
### MCP Confirmation Gate
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"id": "vmware-aria",
|
|
3
3
|
"name": "VMware Aria",
|
|
4
|
-
"description": "VMware Aria Operations: metrics, alerts, capacity, anomaly detection —
|
|
4
|
+
"description": "VMware Aria Operations: metrics, alerts, capacity, anomaly detection — 46 MCP tools.",
|
|
5
5
|
"skills": [
|
|
6
6
|
"./skills"
|
|
7
7
|
],
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
"command": "uvx",
|
|
12
12
|
"args": [
|
|
13
13
|
"--from",
|
|
14
|
-
"vmware-aria==2.
|
|
14
|
+
"vmware-aria==2.4.0",
|
|
15
15
|
"vmware-aria-mcp"
|
|
16
16
|
]
|
|
17
17
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@zw008/vmware-aria",
|
|
3
|
-
"version": "2.
|
|
4
|
-
"description": "VMware Aria Operations: metrics, alerts, capacity, anomaly detection —
|
|
3
|
+
"version": "2.4.0",
|
|
4
|
+
"description": "VMware Aria Operations: metrics, alerts, capacity, anomaly detection — 46 MCP tools.",
|
|
5
5
|
"private": true,
|
|
6
6
|
"license": "MIT",
|
|
7
7
|
"homepage": "https://github.com/vmware-skills/VMware-Aria",
|
|
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "vmware-aria"
|
|
7
|
-
version = "2.
|
|
7
|
+
version = "2.4.0"
|
|
8
8
|
description = "VMware Aria Operations (vRealize Operations) monitoring, alerting, and capacity planning"
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
license = "MIT"
|
|
@@ -24,7 +24,7 @@ dependencies = [
|
|
|
24
24
|
"pyyaml>=6.0,<7.0",
|
|
25
25
|
"python-dotenv>=1.0,<2.0",
|
|
26
26
|
"mcp[cli]>=1.28,<2.0",
|
|
27
|
-
"vmware-policy>=1.
|
|
27
|
+
"vmware-policy>=1.22.0,<2.0",
|
|
28
28
|
]
|
|
29
29
|
|
|
30
30
|
[project.scripts]
|
|
@@ -2,17 +2,17 @@
|
|
|
2
2
|
"$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
|
|
3
3
|
"name": "io.github.vmware-skills/vmware-aria",
|
|
4
4
|
"title": "VMware Aria Operations",
|
|
5
|
-
"description": "VMware Aria Operations: metrics, alerts, capacity, anomaly detection —
|
|
5
|
+
"description": "VMware Aria Operations: metrics, alerts, capacity, anomaly detection — 46 MCP tools.",
|
|
6
6
|
"repository": {
|
|
7
7
|
"url": "https://github.com/vmware-skills/VMware-Aria",
|
|
8
8
|
"source": "github"
|
|
9
9
|
},
|
|
10
|
-
"version": "2.
|
|
10
|
+
"version": "2.4.0",
|
|
11
11
|
"packages": [
|
|
12
12
|
{
|
|
13
13
|
"registryType": "pypi",
|
|
14
14
|
"identifier": "vmware-aria",
|
|
15
|
-
"version": "2.
|
|
15
|
+
"version": "2.4.0",
|
|
16
16
|
"runtimeHint": "uvx",
|
|
17
17
|
"packageArguments": [
|
|
18
18
|
{
|
|
@@ -15,7 +15,7 @@ metadata: {"openclaw":{"requires":{"anyBins":["vmware-aria","uvx"]},"optional":{
|
|
|
15
15
|
compatibility: >
|
|
16
16
|
vmware-policy auto-installed as Python dependency (provides @vmware_tool decorator and audit logging). All write operations audited to ~/.vmware/audit.db.
|
|
17
17
|
Credentials: Each Aria Operations target requires a per-target password env var in ~/.vmware-aria/.env following the pattern VMWARE_ARIA_<TARGET_NAME_UPPER>_PASSWORD. Passwords are never logged or echoed.
|
|
18
|
-
Read-heavy:
|
|
18
|
+
Read-heavy: 36 of 46 tools are read-only. Write operations limited to alert acknowledge/cancel, alert notes, alert definition management, report management, and resource maintenance start/end.
|
|
19
19
|
No webhooks, no outbound network calls, no guest operations. Local only: stdio MCP + Aria Operations REST API (HTTPS 443).
|
|
20
20
|
Transitive dependencies: Only vmware-policy (audit/policy). No post-install scripts or background services.
|
|
21
21
|
---
|
|
@@ -24,7 +24,7 @@ compatibility: >
|
|
|
24
24
|
|
|
25
25
|
> **Disclaimer**: This is a community-maintained open-source project and is **not affiliated with, endorsed by, or sponsored by VMware, Inc. or Broadcom Inc.** "VMware" and "Aria" are trademarks of Broadcom. Source code is publicly auditable at [github.com/vmware-skills/VMware-Aria](https://github.com/vmware-skills/VMware-Aria) under the MIT license.
|
|
26
26
|
|
|
27
|
-
VMware Aria Operations (vRealize Operations 8.x, VCF Operations 9.x) AI-assisted monitoring —
|
|
27
|
+
VMware Aria Operations (vRealize Operations 8.x, VCF Operations 9.x) AI-assisted monitoring — 46 MCP tools, by category below.
|
|
28
28
|
|
|
29
29
|
> **Know the version first**: `vmware-aria health status` (MCP `get_aria_health`) names the product line. Fleet, findings and PromQL exist only on VCF Operations 9.0+ (PromQL uses the 9.1 VODAP service); on 8.x they return a "requires 9.0 or newer" error, not data.
|
|
30
30
|
> **Companion skills**: vmware-monitor (real-time vSphere), vmware-aiops (VM lifecycle), vmware-nsx (networking), vmware-avi (AVI/ALB/AKO), vmware-harden (compliance), vmware-pilot (approval workflows), vmware-policy (audit/policy).
|
|
@@ -42,13 +42,14 @@ VMware Aria Operations (vRealize Operations 8.x, VCF Operations 9.x) AI-assisted
|
|
|
42
42
|
| **Health** | Aria platform health, collector group status, Aria node memory/swap/heap, adapter collection state | 4 |
|
|
43
43
|
| **Maintenance** | start / end resource maintenance, list maintenance schedules | 3 |
|
|
44
44
|
| **Fleet / PromQL** (VCF Ops 9.1) | fleet certificates, password accounts, VCF domains, diagnostic findings, real-time PromQL query | 5 |
|
|
45
|
+
| **Raw API** | search the API operation index; GET one indexed path (read-only escape hatch) | 2 |
|
|
45
46
|
|
|
46
|
-
**Total**:
|
|
47
|
+
**Total**: 46 tools (36 read-only + 10 write)
|
|
47
48
|
|
|
48
49
|
## Quick Install
|
|
49
50
|
|
|
50
51
|
```bash
|
|
51
|
-
uv tool install vmware-aria==2.
|
|
52
|
+
uv tool install vmware-aria==2.4.0
|
|
52
53
|
vmware-aria init # guided setup: writes config + .env (chmod 600, password grep-safe), then verifies
|
|
53
54
|
vmware-aria doctor
|
|
54
55
|
```
|
|
@@ -61,6 +62,7 @@ vmware-aria doctor
|
|
|
61
62
|
- **Capacity**: cluster headroom, time until full, VM rightsizing
|
|
62
63
|
- **Reports**: generate, poll, download and delete reports
|
|
63
64
|
- **Maintenance**: put a resource in maintenance before planned work (timed or until ended), end it, list maintenance schedules
|
|
65
|
+
- **Anything else the API reads**: when no tool answers, `search_api_operations` then one `get_api_path` (GET of an indexed path only)
|
|
64
66
|
- **Platform**: is Aria Operations itself healthy (DEGRADED vs DOWN, which service), which version and product line, collector groups, whether the Aria node is short of memory, which adapter stopped collecting
|
|
65
67
|
|
|
66
68
|
For VM changes, NSX, vSphere alarms, storage or load balancing, route with the table below.
|
|
@@ -83,7 +85,7 @@ For VM changes, NSX, vSphere alarms, storage or load balancing, route with the t
|
|
|
83
85
|
|
|
84
86
|
> **Troubleshooting paths**: step-by-step playbooks for a DEGRADED platform, alert triage, VM contention, empty metrics, pre-resize checks and planned maintenance — [`references/ops-playbooks.md`](references/ops-playbooks.md).
|
|
85
87
|
>
|
|
86
|
-
> **Diagnostic investigations**:
|
|
88
|
+
> **Diagnostic investigations**: before any "why is X slow / failing / down" report, follow [`references/investigation-protocol.md`](references/investigation-protocol.md) — four root-cause criteria and up to three deepening rounds; never stop at a partial conclusion.
|
|
87
89
|
|
|
88
90
|
### Daily VM Health Check (Proactive Ops)
|
|
89
91
|
|
|
@@ -110,7 +112,7 @@ For VM changes, NSX, vSphere alarms, storage or load balancing, route with the t
|
|
|
110
112
|
|
|
111
113
|
### Post-Incident: Create Detection Alert (RCA Follow-up)
|
|
112
114
|
|
|
113
|
-
After
|
|
115
|
+
After an incident, create an early-warning alert. Alert definition management is **MCP-only**:
|
|
114
116
|
|
|
115
117
|
1. Find matching symptom definitions → MCP `list_symptom_definitions` (filter by `name_filter` / `resource_kind`)
|
|
116
118
|
2. Create alert definition referencing symptoms → MCP `create_alert_definition` with name, resource_kind, symptom_definition_ids, criticality (any one symptom firing triggers the alert)
|
|
@@ -137,7 +139,7 @@ Running vmware-aria with a local or small model? See [`references/agent-guardrai
|
|
|
137
139
|
|
|
138
140
|
Every command accepts `--target <name>` (every MCP tool `target`) to pick the Aria Operations instance.
|
|
139
141
|
|
|
140
|
-
## MCP Tools (
|
|
142
|
+
## MCP Tools (46 — 36 read, 10 write)
|
|
141
143
|
|
|
142
144
|
All MCP tools accept an optional `target`. The six destructive writes take `confirm`: without `confirm=true` they return a `blast_radius` and change nothing — show it to the user first.
|
|
143
145
|
|
|
@@ -187,8 +189,10 @@ All MCP tools accept an optional `target`. The six destructive writes take `conf
|
|
|
187
189
|
| | `list_fleet_domains` | Read | SDDC/workload domains behind one registered VCF integration |
|
|
188
190
|
| | `list_findings` | Read | Operations diagnostic findings (not compliance — see vmware-harden) |
|
|
189
191
|
| | `promql_query` | Read | Real-time PromQL instant query via the VODAP service (base path INFERRED, unverified on real hardware) |
|
|
192
|
+
| Raw API | `search_api_operations` | Read | Search the shipped 8.6 / 9.1 operation index; marks GET operations |
|
|
193
|
+
| | `get_api_path` | Read | GET one indexed path (`{id}` filled in, query in `params`); sanitized, capped at 30,000 chars (`truncated`) |
|
|
190
194
|
|
|
191
|
-
**Read/write split**:
|
|
195
|
+
**Read/write split**: 36 read-only, 10 write. All write operations are audit-logged to `~/.vmware/audit.db` (via vmware-policy).
|
|
192
196
|
|
|
193
197
|
### List results are envelopes — read `truncated` before you summarise
|
|
194
198
|
|
|
@@ -218,9 +222,7 @@ vmware-aria alert notes <alert-id>
|
|
|
218
222
|
vmware-aria alert note-add <alert-id> "Taking this: rebooting esx-03"
|
|
219
223
|
vmware-aria alert recommendations <alert-id>
|
|
220
224
|
|
|
221
|
-
# Alert
|
|
222
|
-
# lookup are MCP-only tools (list_symptom_definitions, create_alert_definition,
|
|
223
|
-
# set_alert_definition_state, delete_alert_definition) — no CLI subcommands.
|
|
225
|
+
# Alert definitions and symptom lookup are MCP-only (no CLI subcommands).
|
|
224
226
|
|
|
225
227
|
# Capacity
|
|
226
228
|
vmware-aria capacity overview <cluster-id>
|
|
@@ -250,6 +252,10 @@ vmware-aria maintenance start <resource-id> --duration 60 # neither --duration
|
|
|
250
252
|
vmware-aria maintenance end <resource-id>
|
|
251
253
|
vmware-aria maintenance schedules [--resource-id <id>]
|
|
252
254
|
|
|
255
|
+
# Raw API (read-only: GET of an indexed path only)
|
|
256
|
+
vmware-aria api search "resource properties" [--limit 20]
|
|
257
|
+
vmware-aria api get /api/resources/<id>/properties [--param pageSize=20]
|
|
258
|
+
|
|
253
259
|
# Diagnostics
|
|
254
260
|
vmware-aria doctor [--skip-auth]
|
|
255
261
|
```
|
|
@@ -277,14 +283,14 @@ VirtualMachine keys and units as defined on Aria Operations 8.18.7; other resour
|
|
|
277
283
|
|
|
278
284
|
### "Token not found" error after setup
|
|
279
285
|
|
|
280
|
-
|
|
286
|
+
Token acquisition failed. Verify:
|
|
281
287
|
1. Aria Ops is reachable: `vmware-aria doctor`
|
|
282
288
|
2. The `auth_source` in config matches your environment (LOCAL, LDAP, AD)
|
|
283
289
|
3. The password env var follows the naming convention: `VMWARE_ARIA_<TARGET>_PASSWORD`
|
|
284
290
|
|
|
285
291
|
### Resources appear missing from list_resources
|
|
286
292
|
|
|
287
|
-
|
|
293
|
+
A collector may be offline: `list_collector_groups` shows DOWN ones. Restart it in the Aria Ops UI (Administration > Collector Groups).
|
|
288
294
|
|
|
289
295
|
### Metrics return empty data
|
|
290
296
|
|
|
@@ -296,11 +302,11 @@ The node flag is OFFLINE whenever any one service is not running. Read `assessme
|
|
|
296
302
|
|
|
297
303
|
### "Password not found" error
|
|
298
304
|
|
|
299
|
-
|
|
305
|
+
Set `VMWARE_ARIA_<TARGET_NAME_UPPER>_PASSWORD` (hyphens become underscores; target `prod` → `VMWARE_ARIA_PROD_PASSWORD`) in `~/.vmware-aria/.env`.
|
|
300
306
|
|
|
301
307
|
### `invalid peer certificate: UnknownIssuer` when running uvx (corporate TLS proxy)
|
|
302
308
|
|
|
303
|
-
`uvx` re-resolves
|
|
309
|
+
`uvx` re-resolves from PyPI on every launch, and a TLS-intercepting proxy breaks that. Run `vmware-aria mcp` after `uv tool install vmware-aria==2.4.0` (no network on launch), or set `UV_NATIVE_TLS=true` to use the system cert store.
|
|
304
310
|
|
|
305
311
|
## Audit & Safety
|
|
306
312
|
|