mcp-openstack-ops 3.2.0__tar.gz → 3.2.2__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.
- {mcp_openstack_ops-3.2.0/src/mcp_openstack_ops.egg-info → mcp_openstack_ops-3.2.2}/PKG-INFO +11 -23
- {mcp_openstack_ops-3.2.0 → mcp_openstack_ops-3.2.2}/README.md +11 -22
- {mcp_openstack_ops-3.2.0 → mcp_openstack_ops-3.2.2}/pyproject.toml +1 -5
- {mcp_openstack_ops-3.2.0 → mcp_openstack_ops-3.2.2}/src/mcp_openstack_ops/mcp_main.py +0 -190
- {mcp_openstack_ops-3.2.0 → mcp_openstack_ops-3.2.2/src/mcp_openstack_ops.egg-info}/PKG-INFO +11 -23
- {mcp_openstack_ops-3.2.0 → mcp_openstack_ops-3.2.2}/src/mcp_openstack_ops.egg-info/requires.txt +0 -1
- {mcp_openstack_ops-3.2.0 → mcp_openstack_ops-3.2.2}/LICENSE +0 -0
- {mcp_openstack_ops-3.2.0 → mcp_openstack_ops-3.2.2}/MANIFEST.in +0 -0
- {mcp_openstack_ops-3.2.0 → mcp_openstack_ops-3.2.2}/setup.cfg +0 -0
- {mcp_openstack_ops-3.2.0 → mcp_openstack_ops-3.2.2}/src/mcp_openstack_ops/__init__.py +0 -0
- {mcp_openstack_ops-3.2.0 → mcp_openstack_ops-3.2.2}/src/mcp_openstack_ops/__main__.py +0 -0
- {mcp_openstack_ops-3.2.0 → mcp_openstack_ops-3.2.2}/src/mcp_openstack_ops/connection.py +0 -0
- {mcp_openstack_ops-3.2.0 → mcp_openstack_ops-3.2.2}/src/mcp_openstack_ops/functions.py +0 -0
- {mcp_openstack_ops-3.2.0 → mcp_openstack_ops-3.2.2}/src/mcp_openstack_ops/services/__init__.py +0 -0
- {mcp_openstack_ops-3.2.0 → mcp_openstack_ops-3.2.2}/src/mcp_openstack_ops/services/compute.py +0 -0
- {mcp_openstack_ops-3.2.0 → mcp_openstack_ops-3.2.2}/src/mcp_openstack_ops/services/core.py +0 -0
- {mcp_openstack_ops-3.2.0 → mcp_openstack_ops-3.2.2}/src/mcp_openstack_ops/services/identity.py +0 -0
- {mcp_openstack_ops-3.2.0 → mcp_openstack_ops-3.2.2}/src/mcp_openstack_ops/services/image.py +0 -0
- {mcp_openstack_ops-3.2.0 → mcp_openstack_ops-3.2.2}/src/mcp_openstack_ops/services/load_balancer/__init__.py +0 -0
- {mcp_openstack_ops-3.2.0 → mcp_openstack_ops-3.2.2}/src/mcp_openstack_ops/services/load_balancer/amphorae.py +0 -0
- {mcp_openstack_ops-3.2.0 → mcp_openstack_ops-3.2.2}/src/mcp_openstack_ops/services/load_balancer/core.py +0 -0
- {mcp_openstack_ops-3.2.0 → mcp_openstack_ops-3.2.2}/src/mcp_openstack_ops/services/load_balancer/health_monitors.py +0 -0
- {mcp_openstack_ops-3.2.0 → mcp_openstack_ops-3.2.2}/src/mcp_openstack_ops/services/load_balancer/l7_policies.py +0 -0
- {mcp_openstack_ops-3.2.0 → mcp_openstack_ops-3.2.2}/src/mcp_openstack_ops/services/load_balancer/listeners.py +0 -0
- {mcp_openstack_ops-3.2.0 → mcp_openstack_ops-3.2.2}/src/mcp_openstack_ops/services/load_balancer/management.py +0 -0
- {mcp_openstack_ops-3.2.0 → mcp_openstack_ops-3.2.2}/src/mcp_openstack_ops/services/load_balancer/pools.py +0 -0
- {mcp_openstack_ops-3.2.0 → mcp_openstack_ops-3.2.2}/src/mcp_openstack_ops/services/monitoring.py +0 -0
- {mcp_openstack_ops-3.2.0 → mcp_openstack_ops-3.2.2}/src/mcp_openstack_ops/services/network.py +0 -0
- {mcp_openstack_ops-3.2.0 → mcp_openstack_ops-3.2.2}/src/mcp_openstack_ops/services/orchestration.py +0 -0
- {mcp_openstack_ops-3.2.0 → mcp_openstack_ops-3.2.2}/src/mcp_openstack_ops/services/storage.py +0 -0
- {mcp_openstack_ops-3.2.0 → mcp_openstack_ops-3.2.2}/src/mcp_openstack_ops/tools/__init__.py +0 -0
- {mcp_openstack_ops-3.2.0 → mcp_openstack_ops-3.2.2}/src/mcp_openstack_ops/tools/get_availability_zones.py +0 -0
- {mcp_openstack_ops-3.2.0 → mcp_openstack_ops-3.2.2}/src/mcp_openstack_ops/tools/get_floating_ip_pools.py +0 -0
- {mcp_openstack_ops-3.2.0 → mcp_openstack_ops-3.2.2}/src/mcp_openstack_ops/tools/get_floating_ips.py +0 -0
- {mcp_openstack_ops-3.2.0 → mcp_openstack_ops-3.2.2}/src/mcp_openstack_ops/tools/get_heat_stacks.py +0 -0
- {mcp_openstack_ops-3.2.0 → mcp_openstack_ops-3.2.2}/src/mcp_openstack_ops/tools/get_hypervisor_details.py +0 -0
- {mcp_openstack_ops-3.2.0 → mcp_openstack_ops-3.2.2}/src/mcp_openstack_ops/tools/get_image_detail_list.py +0 -0
- {mcp_openstack_ops-3.2.0 → mcp_openstack_ops-3.2.2}/src/mcp_openstack_ops/tools/get_instance.py +0 -0
- {mcp_openstack_ops-3.2.0 → mcp_openstack_ops-3.2.2}/src/mcp_openstack_ops/tools/get_instance_by_name.py +0 -0
- {mcp_openstack_ops-3.2.0 → mcp_openstack_ops-3.2.2}/src/mcp_openstack_ops/tools/get_instance_details.py +0 -0
- {mcp_openstack_ops-3.2.0 → mcp_openstack_ops-3.2.2}/src/mcp_openstack_ops/tools/get_instances_by_status.py +0 -0
- {mcp_openstack_ops-3.2.0 → mcp_openstack_ops-3.2.2}/src/mcp_openstack_ops/tools/get_keypair_list.py +0 -0
- {mcp_openstack_ops-3.2.0 → mcp_openstack_ops-3.2.2}/src/mcp_openstack_ops/tools/get_load_balancer_amphorae.py +0 -0
- {mcp_openstack_ops-3.2.0 → mcp_openstack_ops-3.2.2}/src/mcp_openstack_ops/tools/get_load_balancer_availability_zones.py +0 -0
- {mcp_openstack_ops-3.2.0 → mcp_openstack_ops-3.2.2}/src/mcp_openstack_ops/tools/get_load_balancer_details.py +0 -0
- {mcp_openstack_ops-3.2.0 → mcp_openstack_ops-3.2.2}/src/mcp_openstack_ops/tools/get_load_balancer_flavors.py +0 -0
- {mcp_openstack_ops-3.2.0 → mcp_openstack_ops-3.2.2}/src/mcp_openstack_ops/tools/get_load_balancer_health_monitors.py +0 -0
- {mcp_openstack_ops-3.2.0 → mcp_openstack_ops-3.2.2}/src/mcp_openstack_ops/tools/get_load_balancer_l7_policies.py +0 -0
- {mcp_openstack_ops-3.2.0 → mcp_openstack_ops-3.2.2}/src/mcp_openstack_ops/tools/get_load_balancer_l7_rules.py +0 -0
- {mcp_openstack_ops-3.2.0 → mcp_openstack_ops-3.2.2}/src/mcp_openstack_ops/tools/get_load_balancer_list.py +0 -0
- {mcp_openstack_ops-3.2.0 → mcp_openstack_ops-3.2.2}/src/mcp_openstack_ops/tools/get_load_balancer_listeners.py +0 -0
- {mcp_openstack_ops-3.2.0 → mcp_openstack_ops-3.2.2}/src/mcp_openstack_ops/tools/get_load_balancer_pool_members.py +0 -0
- {mcp_openstack_ops-3.2.0 → mcp_openstack_ops-3.2.2}/src/mcp_openstack_ops/tools/get_load_balancer_pools.py +0 -0
- {mcp_openstack_ops-3.2.0 → mcp_openstack_ops-3.2.2}/src/mcp_openstack_ops/tools/get_load_balancer_providers.py +0 -0
- {mcp_openstack_ops-3.2.0 → mcp_openstack_ops-3.2.2}/src/mcp_openstack_ops/tools/get_load_balancer_quotas.py +0 -0
- {mcp_openstack_ops-3.2.0 → mcp_openstack_ops-3.2.2}/src/mcp_openstack_ops/tools/get_network_details.py +0 -0
- {mcp_openstack_ops-3.2.0 → mcp_openstack_ops-3.2.2}/src/mcp_openstack_ops/tools/get_project_details.py +0 -0
- {mcp_openstack_ops-3.2.0 → mcp_openstack_ops-3.2.2}/src/mcp_openstack_ops/tools/get_quota.py +0 -0
- {mcp_openstack_ops-3.2.0 → mcp_openstack_ops-3.2.2}/src/mcp_openstack_ops/tools/get_resource_monitoring.py +0 -0
- {mcp_openstack_ops-3.2.0 → mcp_openstack_ops-3.2.2}/src/mcp_openstack_ops/tools/get_role_assignments.py +0 -0
- {mcp_openstack_ops-3.2.0 → mcp_openstack_ops-3.2.2}/src/mcp_openstack_ops/tools/get_routers.py +0 -0
- {mcp_openstack_ops-3.2.0 → mcp_openstack_ops-3.2.2}/src/mcp_openstack_ops/tools/get_security_groups.py +0 -0
- {mcp_openstack_ops-3.2.0 → mcp_openstack_ops-3.2.2}/src/mcp_openstack_ops/tools/get_server_events.py +0 -0
- {mcp_openstack_ops-3.2.0 → mcp_openstack_ops-3.2.2}/src/mcp_openstack_ops/tools/get_server_groups.py +0 -0
- {mcp_openstack_ops-3.2.0 → mcp_openstack_ops-3.2.2}/src/mcp_openstack_ops/tools/get_server_volumes.py +0 -0
- {mcp_openstack_ops-3.2.0 → mcp_openstack_ops-3.2.2}/src/mcp_openstack_ops/tools/get_service_status.py +0 -0
- {mcp_openstack_ops-3.2.0 → mcp_openstack_ops-3.2.2}/src/mcp_openstack_ops/tools/get_usage_statistics.py +0 -0
- {mcp_openstack_ops-3.2.0 → mcp_openstack_ops-3.2.2}/src/mcp_openstack_ops/tools/get_user_list.py +0 -0
- {mcp_openstack_ops-3.2.0 → mcp_openstack_ops-3.2.2}/src/mcp_openstack_ops/tools/get_volume_list.py +0 -0
- {mcp_openstack_ops-3.2.0 → mcp_openstack_ops-3.2.2}/src/mcp_openstack_ops/tools/get_volume_snapshots.py +0 -0
- {mcp_openstack_ops-3.2.0 → mcp_openstack_ops-3.2.2}/src/mcp_openstack_ops/tools/get_volume_types.py +0 -0
- {mcp_openstack_ops-3.2.0 → mcp_openstack_ops-3.2.2}/src/mcp_openstack_ops/tools/search_instances.py +0 -0
- {mcp_openstack_ops-3.2.0 → mcp_openstack_ops-3.2.2}/src/mcp_openstack_ops/tools/set_alarms.py +0 -0
- {mcp_openstack_ops-3.2.0 → mcp_openstack_ops-3.2.2}/src/mcp_openstack_ops/tools/set_compute_agents.py +0 -0
- {mcp_openstack_ops-3.2.0 → mcp_openstack_ops-3.2.2}/src/mcp_openstack_ops/tools/set_domains.py +0 -0
- {mcp_openstack_ops-3.2.0 → mcp_openstack_ops-3.2.2}/src/mcp_openstack_ops/tools/set_flavor.py +0 -0
- {mcp_openstack_ops-3.2.0 → mcp_openstack_ops-3.2.2}/src/mcp_openstack_ops/tools/set_floating_ip.py +0 -0
- {mcp_openstack_ops-3.2.0 → mcp_openstack_ops-3.2.2}/src/mcp_openstack_ops/tools/set_floating_ip_port_forwarding.py +0 -0
- {mcp_openstack_ops-3.2.0 → mcp_openstack_ops-3.2.2}/src/mcp_openstack_ops/tools/set_heat_stack.py +0 -0
- {mcp_openstack_ops-3.2.0 → mcp_openstack_ops-3.2.2}/src/mcp_openstack_ops/tools/set_identity_groups.py +0 -0
- {mcp_openstack_ops-3.2.0 → mcp_openstack_ops-3.2.2}/src/mcp_openstack_ops/tools/set_image.py +0 -0
- {mcp_openstack_ops-3.2.0 → mcp_openstack_ops-3.2.2}/src/mcp_openstack_ops/tools/set_image_members.py +0 -0
- {mcp_openstack_ops-3.2.0 → mcp_openstack_ops-3.2.2}/src/mcp_openstack_ops/tools/set_image_metadata.py +0 -0
- {mcp_openstack_ops-3.2.0 → mcp_openstack_ops-3.2.2}/src/mcp_openstack_ops/tools/set_image_visibility.py +0 -0
- {mcp_openstack_ops-3.2.0 → mcp_openstack_ops-3.2.2}/src/mcp_openstack_ops/tools/set_instance.py +0 -0
- {mcp_openstack_ops-3.2.0 → mcp_openstack_ops-3.2.2}/src/mcp_openstack_ops/tools/set_keypair.py +0 -0
- {mcp_openstack_ops-3.2.0 → mcp_openstack_ops-3.2.2}/src/mcp_openstack_ops/tools/set_load_balancer.py +0 -0
- {mcp_openstack_ops-3.2.0 → mcp_openstack_ops-3.2.2}/src/mcp_openstack_ops/tools/set_load_balancer_amphora.py +0 -0
- {mcp_openstack_ops-3.2.0 → mcp_openstack_ops-3.2.2}/src/mcp_openstack_ops/tools/set_load_balancer_availability_zone.py +0 -0
- {mcp_openstack_ops-3.2.0 → mcp_openstack_ops-3.2.2}/src/mcp_openstack_ops/tools/set_load_balancer_flavor.py +0 -0
- {mcp_openstack_ops-3.2.0 → mcp_openstack_ops-3.2.2}/src/mcp_openstack_ops/tools/set_load_balancer_health_monitor.py +0 -0
- {mcp_openstack_ops-3.2.0 → mcp_openstack_ops-3.2.2}/src/mcp_openstack_ops/tools/set_load_balancer_l7_policy.py +0 -0
- {mcp_openstack_ops-3.2.0 → mcp_openstack_ops-3.2.2}/src/mcp_openstack_ops/tools/set_load_balancer_l7_rule.py +0 -0
- {mcp_openstack_ops-3.2.0 → mcp_openstack_ops-3.2.2}/src/mcp_openstack_ops/tools/set_load_balancer_listener.py +0 -0
- {mcp_openstack_ops-3.2.0 → mcp_openstack_ops-3.2.2}/src/mcp_openstack_ops/tools/set_load_balancer_pool.py +0 -0
- {mcp_openstack_ops-3.2.0 → mcp_openstack_ops-3.2.2}/src/mcp_openstack_ops/tools/set_load_balancer_pool_member.py +0 -0
- {mcp_openstack_ops-3.2.0 → mcp_openstack_ops-3.2.2}/src/mcp_openstack_ops/tools/set_load_balancer_quota.py +0 -0
- {mcp_openstack_ops-3.2.0 → mcp_openstack_ops-3.2.2}/src/mcp_openstack_ops/tools/set_metrics.py +0 -0
- {mcp_openstack_ops-3.2.0 → mcp_openstack_ops-3.2.2}/src/mcp_openstack_ops/tools/set_network_agents.py +0 -0
- {mcp_openstack_ops-3.2.0 → mcp_openstack_ops-3.2.2}/src/mcp_openstack_ops/tools/set_network_ports.py +0 -0
- {mcp_openstack_ops-3.2.0 → mcp_openstack_ops-3.2.2}/src/mcp_openstack_ops/tools/set_network_qos_policies.py +0 -0
- {mcp_openstack_ops-3.2.0 → mcp_openstack_ops-3.2.2}/src/mcp_openstack_ops/tools/set_networks.py +0 -0
- {mcp_openstack_ops-3.2.0 → mcp_openstack_ops-3.2.2}/src/mcp_openstack_ops/tools/set_project.py +0 -0
- {mcp_openstack_ops-3.2.0 → mcp_openstack_ops-3.2.2}/src/mcp_openstack_ops/tools/set_quota.py +0 -0
- {mcp_openstack_ops-3.2.0 → mcp_openstack_ops-3.2.2}/src/mcp_openstack_ops/tools/set_roles.py +0 -0
- {mcp_openstack_ops-3.2.0 → mcp_openstack_ops-3.2.2}/src/mcp_openstack_ops/tools/set_server_backup.py +0 -0
- {mcp_openstack_ops-3.2.0 → mcp_openstack_ops-3.2.2}/src/mcp_openstack_ops/tools/set_server_dump.py +0 -0
- {mcp_openstack_ops-3.2.0 → mcp_openstack_ops-3.2.2}/src/mcp_openstack_ops/tools/set_server_fixed_ip.py +0 -0
- {mcp_openstack_ops-3.2.0 → mcp_openstack_ops-3.2.2}/src/mcp_openstack_ops/tools/set_server_floating_ip.py +0 -0
- {mcp_openstack_ops-3.2.0 → mcp_openstack_ops-3.2.2}/src/mcp_openstack_ops/tools/set_server_group.py +0 -0
- {mcp_openstack_ops-3.2.0 → mcp_openstack_ops-3.2.2}/src/mcp_openstack_ops/tools/set_server_migration.py +0 -0
- {mcp_openstack_ops-3.2.0 → mcp_openstack_ops-3.2.2}/src/mcp_openstack_ops/tools/set_server_network.py +0 -0
- {mcp_openstack_ops-3.2.0 → mcp_openstack_ops-3.2.2}/src/mcp_openstack_ops/tools/set_server_properties.py +0 -0
- {mcp_openstack_ops-3.2.0 → mcp_openstack_ops-3.2.2}/src/mcp_openstack_ops/tools/set_server_security_group.py +0 -0
- {mcp_openstack_ops-3.2.0 → mcp_openstack_ops-3.2.2}/src/mcp_openstack_ops/tools/set_server_volume.py +0 -0
- {mcp_openstack_ops-3.2.0 → mcp_openstack_ops-3.2.2}/src/mcp_openstack_ops/tools/set_service_logs.py +0 -0
- {mcp_openstack_ops-3.2.0 → mcp_openstack_ops-3.2.2}/src/mcp_openstack_ops/tools/set_services.py +0 -0
- {mcp_openstack_ops-3.2.0 → mcp_openstack_ops-3.2.2}/src/mcp_openstack_ops/tools/set_snapshot.py +0 -0
- {mcp_openstack_ops-3.2.0 → mcp_openstack_ops-3.2.2}/src/mcp_openstack_ops/tools/set_subnets.py +0 -0
- {mcp_openstack_ops-3.2.0 → mcp_openstack_ops-3.2.2}/src/mcp_openstack_ops/tools/set_volume.py +0 -0
- {mcp_openstack_ops-3.2.0 → mcp_openstack_ops-3.2.2}/src/mcp_openstack_ops/tools/set_volume_backups.py +0 -0
- {mcp_openstack_ops-3.2.0 → mcp_openstack_ops-3.2.2}/src/mcp_openstack_ops/tools/set_volume_groups.py +0 -0
- {mcp_openstack_ops-3.2.0 → mcp_openstack_ops-3.2.2}/src/mcp_openstack_ops/tools/set_volume_qos.py +0 -0
- {mcp_openstack_ops-3.2.0 → mcp_openstack_ops-3.2.2}/src/mcp_openstack_ops.egg-info/SOURCES.txt +0 -0
- {mcp_openstack_ops-3.2.0 → mcp_openstack_ops-3.2.2}/src/mcp_openstack_ops.egg-info/dependency_links.txt +0 -0
- {mcp_openstack_ops-3.2.0 → mcp_openstack_ops-3.2.2}/src/mcp_openstack_ops.egg-info/entry_points.txt +0 -0
- {mcp_openstack_ops-3.2.0 → mcp_openstack_ops-3.2.2}/src/mcp_openstack_ops.egg-info/top_level.txt +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: mcp-openstack-ops
|
|
3
|
-
Version: 3.2.
|
|
3
|
+
Version: 3.2.2
|
|
4
4
|
Summary: OpenStack operations automation MCP server
|
|
5
5
|
Author-email: JungJungIn <call518@gmail.com>
|
|
6
6
|
Requires-Python: >=3.12
|
|
@@ -9,7 +9,6 @@ License-File: LICENSE
|
|
|
9
9
|
Requires-Dist: fastmcp>=2.12.3
|
|
10
10
|
Requires-Dist: openstacksdk<=4.7.1,>=4.1.0
|
|
11
11
|
Requires-Dist: python-dotenv>=1.1.1
|
|
12
|
-
Requires-Dist: smithery>=0.2.4
|
|
13
12
|
Provides-Extra: dev
|
|
14
13
|
Requires-Dist: pytest>=7.0.0; extra == "dev"
|
|
15
14
|
Requires-Dist: pytest-asyncio>=0.21.0; extra == "dev"
|
|
@@ -34,27 +33,16 @@ Dynamic: license-file
|
|
|
34
33
|
|
|
35
34
|
## Features
|
|
36
35
|
|
|
37
|
-
- ✅ **
|
|
38
|
-
- ✅ **
|
|
39
|
-
- ✅ **
|
|
40
|
-
- ✅ **
|
|
41
|
-
- ✅ **
|
|
42
|
-
- ✅ **
|
|
43
|
-
- ✅ **
|
|
44
|
-
- ✅
|
|
45
|
-
- ✅
|
|
46
|
-
- ✅
|
|
47
|
-
- ✅ **Server Event Tracking**: Detailed server event history and lifecycle monitoring with comprehensive logging.
|
|
48
|
-
- ✅ **Network Analysis**: Comprehensive network operations with external/private network classification, floating IP management, and port operations within project scope.
|
|
49
|
-
- ✅ **Volume Management**: Comprehensive volume attachment/detachment operations with state analysis and capacity tracking.
|
|
50
|
-
- ✅ **Smart Image Filtering**: Access to public, community, shared, and project-owned images with intelligent visibility filtering that prevents zero-image count issues.
|
|
51
|
-
- ✅ **Enterprise Features**: User management, role assignments, keypair management, floating IP operations, volume snapshots within project boundaries.
|
|
52
|
-
- ✅ **Intelligent Search**: Flexible instance search with partial matching and case-sensitive options.
|
|
53
|
-
- ✅ **Load Balancer Integration**: Complete load balancer management with health monitoring within project scope.
|
|
54
|
-
- ✅ **Connection Optimization**: Global connection caching and automatic retry mechanisms.
|
|
55
|
-
- ✅ **Multi-Project Support**: Deploy multiple MCP servers with different `OS_PROJECT_NAME` values for complete multi-tenant project management with full isolation.
|
|
56
|
-
- ✅ **Docker Support**: Containerized deployment optimized for OpenStack Epoxy environments.
|
|
57
|
-
- ✅ **Flexible Transport**: Support for both `stdio` and `streamable-http` transports with comprehensive logging.
|
|
36
|
+
- ✅ **Project-Scoped Operations**: Every tool enforces the configured `OS_PROJECT_NAME`, validating resource ownership so actions stay inside a single tenant.
|
|
37
|
+
- ✅ **Safety-Gated Writes**: Modify (`set_*`) tooling only registers when `ALLOW_MODIFY_OPERATIONS=true`, keeping default deployments read-only and auditable.
|
|
38
|
+
- ✅ **90+ Purpose-Built Tools**: Broad coverage across compute, networking, storage, images, identity, Heat, and Octavia load balancing tasks—all constrained to the current project.
|
|
39
|
+
- ✅ **Bulk & Filtered Actions**: Instance, volume, network, image, snapshot, and keypair managers accept comma-delimited targets or filter criteria to orchestrate bulk changes intentionally.
|
|
40
|
+
- ✅ **Post-Action Feedback & Async Guidance**: Mutating tools reuse a shared result handler that adds emoji status checks, asynchronous timing notes, and follow-up verification commands.
|
|
41
|
+
- ✅ **Monitoring & Usage Insights**: `get_service_status`, `get_resource_monitoring`, `get_usage_statistics`, and quota tools surface service availability, utilization, and capacity for the active project.
|
|
42
|
+
- ✅ **Unified Instance Queries**: The `get_instance` tool consolidates name, ID, status, and free-form search paths with pagination plus summary/detailed modes.
|
|
43
|
+
- ✅ **Server Insight & Audit Trail**: Dedicated tools expose server events, hypervisor details, availability zones, quotas, and resource ownership to speed diagnostics.
|
|
44
|
+
- ✅ **Load Balancer Management**: Octavia tools cover listeners, pools, members, health monitors, flavors, quotas, and amphora operations with the same safety gates.
|
|
45
|
+
- ✅ **Connection & Deployment Flexibility**: Connection caching, configurable service endpoints, Docker packaging, and both `stdio`/`streamable-http` transports support proxy/bastion and multi-project setups.
|
|
58
46
|
|
|
59
47
|
> ⚠️ **Compatibility Notice**: This MCP server is developed and optimized for **OpenStack Epoxy (2025.1)** as the primary target environment. However, it is compatible with most modern OpenStack releases (Dalmatian, Caracal, Bobcat, etc.) as the majority of APIs remain consistent across versions. Only a few specific API endpoints may require adaptation for full compatibility with older releases.
|
|
60
48
|
>
|
|
@@ -17,27 +17,16 @@
|
|
|
17
17
|
|
|
18
18
|
## Features
|
|
19
19
|
|
|
20
|
-
- ✅ **
|
|
21
|
-
- ✅ **
|
|
22
|
-
- ✅ **
|
|
23
|
-
- ✅ **
|
|
24
|
-
- ✅ **
|
|
25
|
-
- ✅ **
|
|
26
|
-
- ✅ **
|
|
27
|
-
- ✅
|
|
28
|
-
- ✅
|
|
29
|
-
- ✅
|
|
30
|
-
- ✅ **Server Event Tracking**: Detailed server event history and lifecycle monitoring with comprehensive logging.
|
|
31
|
-
- ✅ **Network Analysis**: Comprehensive network operations with external/private network classification, floating IP management, and port operations within project scope.
|
|
32
|
-
- ✅ **Volume Management**: Comprehensive volume attachment/detachment operations with state analysis and capacity tracking.
|
|
33
|
-
- ✅ **Smart Image Filtering**: Access to public, community, shared, and project-owned images with intelligent visibility filtering that prevents zero-image count issues.
|
|
34
|
-
- ✅ **Enterprise Features**: User management, role assignments, keypair management, floating IP operations, volume snapshots within project boundaries.
|
|
35
|
-
- ✅ **Intelligent Search**: Flexible instance search with partial matching and case-sensitive options.
|
|
36
|
-
- ✅ **Load Balancer Integration**: Complete load balancer management with health monitoring within project scope.
|
|
37
|
-
- ✅ **Connection Optimization**: Global connection caching and automatic retry mechanisms.
|
|
38
|
-
- ✅ **Multi-Project Support**: Deploy multiple MCP servers with different `OS_PROJECT_NAME` values for complete multi-tenant project management with full isolation.
|
|
39
|
-
- ✅ **Docker Support**: Containerized deployment optimized for OpenStack Epoxy environments.
|
|
40
|
-
- ✅ **Flexible Transport**: Support for both `stdio` and `streamable-http` transports with comprehensive logging.
|
|
20
|
+
- ✅ **Project-Scoped Operations**: Every tool enforces the configured `OS_PROJECT_NAME`, validating resource ownership so actions stay inside a single tenant.
|
|
21
|
+
- ✅ **Safety-Gated Writes**: Modify (`set_*`) tooling only registers when `ALLOW_MODIFY_OPERATIONS=true`, keeping default deployments read-only and auditable.
|
|
22
|
+
- ✅ **90+ Purpose-Built Tools**: Broad coverage across compute, networking, storage, images, identity, Heat, and Octavia load balancing tasks—all constrained to the current project.
|
|
23
|
+
- ✅ **Bulk & Filtered Actions**: Instance, volume, network, image, snapshot, and keypair managers accept comma-delimited targets or filter criteria to orchestrate bulk changes intentionally.
|
|
24
|
+
- ✅ **Post-Action Feedback & Async Guidance**: Mutating tools reuse a shared result handler that adds emoji status checks, asynchronous timing notes, and follow-up verification commands.
|
|
25
|
+
- ✅ **Monitoring & Usage Insights**: `get_service_status`, `get_resource_monitoring`, `get_usage_statistics`, and quota tools surface service availability, utilization, and capacity for the active project.
|
|
26
|
+
- ✅ **Unified Instance Queries**: The `get_instance` tool consolidates name, ID, status, and free-form search paths with pagination plus summary/detailed modes.
|
|
27
|
+
- ✅ **Server Insight & Audit Trail**: Dedicated tools expose server events, hypervisor details, availability zones, quotas, and resource ownership to speed diagnostics.
|
|
28
|
+
- ✅ **Load Balancer Management**: Octavia tools cover listeners, pools, members, health monitors, flavors, quotas, and amphora operations with the same safety gates.
|
|
29
|
+
- ✅ **Connection & Deployment Flexibility**: Connection caching, configurable service endpoints, Docker packaging, and both `stdio`/`streamable-http` transports support proxy/bastion and multi-project setups.
|
|
41
30
|
|
|
42
31
|
> ⚠️ **Compatibility Notice**: This MCP server is developed and optimized for **OpenStack Epoxy (2025.1)** as the primary target environment. However, it is compatible with most modern OpenStack releases (Dalmatian, Caracal, Bobcat, etc.) as the majority of APIs remain consistent across versions. Only a few specific API endpoints may require adaptation for full compatibility with older releases.
|
|
43
32
|
>
|
|
@@ -1034,4 +1023,4 @@ This project is licensed under the MIT License - see the LICENSE file for detail
|
|
|
1034
1023
|
2. Create a feature branch (`git checkout -b feature/amazing-feature`)
|
|
1035
1024
|
3. Commit your changes (`git commit -m 'Add some amazing feature'`)
|
|
1036
1025
|
4. Push to the branch (`git push origin feature/amazing-feature`)
|
|
1037
|
-
5. Open a Pull Request
|
|
1026
|
+
5. Open a Pull Request
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "mcp-openstack-ops"
|
|
3
|
-
version = "3.2.
|
|
3
|
+
version = "3.2.2"
|
|
4
4
|
description = "OpenStack operations automation MCP server"
|
|
5
5
|
readme = "README.md"
|
|
6
6
|
requires-python = ">=3.12"
|
|
@@ -9,7 +9,6 @@ dependencies = [
|
|
|
9
9
|
"fastmcp>=2.12.3",
|
|
10
10
|
"openstacksdk>=4.1.0,<=4.7.1",
|
|
11
11
|
"python-dotenv>=1.1.1",
|
|
12
|
-
"smithery>=0.2.4",
|
|
13
12
|
]
|
|
14
13
|
|
|
15
14
|
[project.optional-dependencies]
|
|
@@ -30,6 +29,3 @@ where = ["src"]
|
|
|
30
29
|
|
|
31
30
|
[tool.setuptools.package-dir]
|
|
32
31
|
"" = "src"
|
|
33
|
-
|
|
34
|
-
[tool.smithery]
|
|
35
|
-
server = "mcp_openstack_ops.mcp_main:create_server"
|
|
@@ -5,7 +5,6 @@ import sys
|
|
|
5
5
|
from typing import Any, Optional, Dict, List
|
|
6
6
|
from fastmcp import FastMCP
|
|
7
7
|
from fastmcp.server.auth import StaticTokenVerifier
|
|
8
|
-
from smithery.decorators import smithery
|
|
9
8
|
|
|
10
9
|
# Add the current directory to sys.path for imports
|
|
11
10
|
sys.path.append(os.path.dirname(os.path.abspath(__file__)))
|
|
@@ -514,87 +513,6 @@ if __name__ == "__main__":
|
|
|
514
513
|
logger.error(f"Failed to start server: {e}")
|
|
515
514
|
sys.exit(1)
|
|
516
515
|
|
|
517
|
-
|
|
518
|
-
# =============================================================================
|
|
519
|
-
# Additional MCP Tools - Enhanced Functionality
|
|
520
|
-
# =============================================================================
|
|
521
|
-
|
|
522
|
-
# Identity (Keystone) Tools
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
# Compute (Nova) Enhanced Tools
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
# Network (Neutron) Enhanced Tools
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
# Block Storage (Cinder) Enhanced Tools
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
# Image Service (Glance) Enhanced Tools
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
# Heat Stack Tools
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
|
|
560
|
-
# =============================================================================
|
|
561
|
-
# Read-only Tools (Always Available - Extracted from set_* functions)
|
|
562
|
-
# =============================================================================
|
|
563
|
-
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
|
|
567
|
-
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
|
|
584
|
-
|
|
585
|
-
|
|
586
|
-
|
|
587
|
-
|
|
588
|
-
|
|
589
|
-
|
|
590
|
-
|
|
591
|
-
|
|
592
|
-
|
|
593
|
-
|
|
594
|
-
# =============================================================================
|
|
595
|
-
# Main execution
|
|
596
|
-
# =============================================================================
|
|
597
|
-
|
|
598
516
|
if __name__ == "__main__":
|
|
599
517
|
import asyncio
|
|
600
518
|
|
|
@@ -657,111 +575,3 @@ if __name__ == "__main__":
|
|
|
657
575
|
else:
|
|
658
576
|
logger.error(f"Unknown transport type: {args.type}")
|
|
659
577
|
sys.exit(1)
|
|
660
|
-
|
|
661
|
-
|
|
662
|
-
|
|
663
|
-
|
|
664
|
-
|
|
665
|
-
|
|
666
|
-
|
|
667
|
-
|
|
668
|
-
|
|
669
|
-
|
|
670
|
-
|
|
671
|
-
|
|
672
|
-
|
|
673
|
-
|
|
674
|
-
|
|
675
|
-
|
|
676
|
-
|
|
677
|
-
|
|
678
|
-
|
|
679
|
-
|
|
680
|
-
|
|
681
|
-
|
|
682
|
-
|
|
683
|
-
|
|
684
|
-
|
|
685
|
-
|
|
686
|
-
|
|
687
|
-
|
|
688
|
-
|
|
689
|
-
|
|
690
|
-
|
|
691
|
-
|
|
692
|
-
|
|
693
|
-
|
|
694
|
-
|
|
695
|
-
|
|
696
|
-
|
|
697
|
-
|
|
698
|
-
|
|
699
|
-
|
|
700
|
-
# =============================================================================
|
|
701
|
-
# LOAD BALANCER (OCTAVIA) TOOLS
|
|
702
|
-
# =============================================================================
|
|
703
|
-
|
|
704
|
-
|
|
705
|
-
|
|
706
|
-
|
|
707
|
-
|
|
708
|
-
|
|
709
|
-
|
|
710
|
-
|
|
711
|
-
|
|
712
|
-
|
|
713
|
-
|
|
714
|
-
|
|
715
|
-
|
|
716
|
-
|
|
717
|
-
|
|
718
|
-
|
|
719
|
-
|
|
720
|
-
|
|
721
|
-
|
|
722
|
-
|
|
723
|
-
|
|
724
|
-
|
|
725
|
-
|
|
726
|
-
# ===== LOAD BALANCER L7 POLICY TOOLS =====
|
|
727
|
-
|
|
728
|
-
|
|
729
|
-
|
|
730
|
-
|
|
731
|
-
|
|
732
|
-
# ===== LOAD BALANCER AMPHORA TOOLS =====
|
|
733
|
-
|
|
734
|
-
|
|
735
|
-
|
|
736
|
-
|
|
737
|
-
|
|
738
|
-
# ===== LOAD BALANCER ADVANCED INFO TOOLS =====
|
|
739
|
-
|
|
740
|
-
|
|
741
|
-
|
|
742
|
-
|
|
743
|
-
|
|
744
|
-
|
|
745
|
-
|
|
746
|
-
|
|
747
|
-
|
|
748
|
-
# ===== LOAD BALANCER L7 RULE TOOLS =====
|
|
749
|
-
|
|
750
|
-
|
|
751
|
-
|
|
752
|
-
|
|
753
|
-
|
|
754
|
-
# ===== ADVANCED LOADBALANCER MANAGEMENT TOOLS =====
|
|
755
|
-
|
|
756
|
-
|
|
757
|
-
|
|
758
|
-
|
|
759
|
-
|
|
760
|
-
|
|
761
|
-
### Smithery Server Integration ###
|
|
762
|
-
@smithery.server()
|
|
763
|
-
def create_server() -> FastMCP:
|
|
764
|
-
"""Return the configured FastMCP server for Smithery deployments."""
|
|
765
|
-
return mcp
|
|
766
|
-
|
|
767
|
-
# ===== MCP SERVER STARTUP =====
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: mcp-openstack-ops
|
|
3
|
-
Version: 3.2.
|
|
3
|
+
Version: 3.2.2
|
|
4
4
|
Summary: OpenStack operations automation MCP server
|
|
5
5
|
Author-email: JungJungIn <call518@gmail.com>
|
|
6
6
|
Requires-Python: >=3.12
|
|
@@ -9,7 +9,6 @@ License-File: LICENSE
|
|
|
9
9
|
Requires-Dist: fastmcp>=2.12.3
|
|
10
10
|
Requires-Dist: openstacksdk<=4.7.1,>=4.1.0
|
|
11
11
|
Requires-Dist: python-dotenv>=1.1.1
|
|
12
|
-
Requires-Dist: smithery>=0.2.4
|
|
13
12
|
Provides-Extra: dev
|
|
14
13
|
Requires-Dist: pytest>=7.0.0; extra == "dev"
|
|
15
14
|
Requires-Dist: pytest-asyncio>=0.21.0; extra == "dev"
|
|
@@ -34,27 +33,16 @@ Dynamic: license-file
|
|
|
34
33
|
|
|
35
34
|
## Features
|
|
36
35
|
|
|
37
|
-
- ✅ **
|
|
38
|
-
- ✅ **
|
|
39
|
-
- ✅ **
|
|
40
|
-
- ✅ **
|
|
41
|
-
- ✅ **
|
|
42
|
-
- ✅ **
|
|
43
|
-
- ✅ **
|
|
44
|
-
- ✅
|
|
45
|
-
- ✅
|
|
46
|
-
- ✅
|
|
47
|
-
- ✅ **Server Event Tracking**: Detailed server event history and lifecycle monitoring with comprehensive logging.
|
|
48
|
-
- ✅ **Network Analysis**: Comprehensive network operations with external/private network classification, floating IP management, and port operations within project scope.
|
|
49
|
-
- ✅ **Volume Management**: Comprehensive volume attachment/detachment operations with state analysis and capacity tracking.
|
|
50
|
-
- ✅ **Smart Image Filtering**: Access to public, community, shared, and project-owned images with intelligent visibility filtering that prevents zero-image count issues.
|
|
51
|
-
- ✅ **Enterprise Features**: User management, role assignments, keypair management, floating IP operations, volume snapshots within project boundaries.
|
|
52
|
-
- ✅ **Intelligent Search**: Flexible instance search with partial matching and case-sensitive options.
|
|
53
|
-
- ✅ **Load Balancer Integration**: Complete load balancer management with health monitoring within project scope.
|
|
54
|
-
- ✅ **Connection Optimization**: Global connection caching and automatic retry mechanisms.
|
|
55
|
-
- ✅ **Multi-Project Support**: Deploy multiple MCP servers with different `OS_PROJECT_NAME` values for complete multi-tenant project management with full isolation.
|
|
56
|
-
- ✅ **Docker Support**: Containerized deployment optimized for OpenStack Epoxy environments.
|
|
57
|
-
- ✅ **Flexible Transport**: Support for both `stdio` and `streamable-http` transports with comprehensive logging.
|
|
36
|
+
- ✅ **Project-Scoped Operations**: Every tool enforces the configured `OS_PROJECT_NAME`, validating resource ownership so actions stay inside a single tenant.
|
|
37
|
+
- ✅ **Safety-Gated Writes**: Modify (`set_*`) tooling only registers when `ALLOW_MODIFY_OPERATIONS=true`, keeping default deployments read-only and auditable.
|
|
38
|
+
- ✅ **90+ Purpose-Built Tools**: Broad coverage across compute, networking, storage, images, identity, Heat, and Octavia load balancing tasks—all constrained to the current project.
|
|
39
|
+
- ✅ **Bulk & Filtered Actions**: Instance, volume, network, image, snapshot, and keypair managers accept comma-delimited targets or filter criteria to orchestrate bulk changes intentionally.
|
|
40
|
+
- ✅ **Post-Action Feedback & Async Guidance**: Mutating tools reuse a shared result handler that adds emoji status checks, asynchronous timing notes, and follow-up verification commands.
|
|
41
|
+
- ✅ **Monitoring & Usage Insights**: `get_service_status`, `get_resource_monitoring`, `get_usage_statistics`, and quota tools surface service availability, utilization, and capacity for the active project.
|
|
42
|
+
- ✅ **Unified Instance Queries**: The `get_instance` tool consolidates name, ID, status, and free-form search paths with pagination plus summary/detailed modes.
|
|
43
|
+
- ✅ **Server Insight & Audit Trail**: Dedicated tools expose server events, hypervisor details, availability zones, quotas, and resource ownership to speed diagnostics.
|
|
44
|
+
- ✅ **Load Balancer Management**: Octavia tools cover listeners, pools, members, health monitors, flavors, quotas, and amphora operations with the same safety gates.
|
|
45
|
+
- ✅ **Connection & Deployment Flexibility**: Connection caching, configurable service endpoints, Docker packaging, and both `stdio`/`streamable-http` transports support proxy/bastion and multi-project setups.
|
|
58
46
|
|
|
59
47
|
> ⚠️ **Compatibility Notice**: This MCP server is developed and optimized for **OpenStack Epoxy (2025.1)** as the primary target environment. However, it is compatible with most modern OpenStack releases (Dalmatian, Caracal, Bobcat, etc.) as the majority of APIs remain consistent across versions. Only a few specific API endpoints may require adaptation for full compatibility with older releases.
|
|
60
48
|
>
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mcp_openstack_ops-3.2.0 → mcp_openstack_ops-3.2.2}/src/mcp_openstack_ops/services/__init__.py
RENAMED
|
File without changes
|
{mcp_openstack_ops-3.2.0 → mcp_openstack_ops-3.2.2}/src/mcp_openstack_ops/services/compute.py
RENAMED
|
File without changes
|
|
File without changes
|
{mcp_openstack_ops-3.2.0 → mcp_openstack_ops-3.2.2}/src/mcp_openstack_ops/services/identity.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mcp_openstack_ops-3.2.0 → mcp_openstack_ops-3.2.2}/src/mcp_openstack_ops/services/monitoring.py
RENAMED
|
File without changes
|
{mcp_openstack_ops-3.2.0 → mcp_openstack_ops-3.2.2}/src/mcp_openstack_ops/services/network.py
RENAMED
|
File without changes
|
{mcp_openstack_ops-3.2.0 → mcp_openstack_ops-3.2.2}/src/mcp_openstack_ops/services/orchestration.py
RENAMED
|
File without changes
|
{mcp_openstack_ops-3.2.0 → mcp_openstack_ops-3.2.2}/src/mcp_openstack_ops/services/storage.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mcp_openstack_ops-3.2.0 → mcp_openstack_ops-3.2.2}/src/mcp_openstack_ops/tools/get_floating_ips.py
RENAMED
|
File without changes
|
{mcp_openstack_ops-3.2.0 → mcp_openstack_ops-3.2.2}/src/mcp_openstack_ops/tools/get_heat_stacks.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mcp_openstack_ops-3.2.0 → mcp_openstack_ops-3.2.2}/src/mcp_openstack_ops/tools/get_instance.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mcp_openstack_ops-3.2.0 → mcp_openstack_ops-3.2.2}/src/mcp_openstack_ops/tools/get_keypair_list.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mcp_openstack_ops-3.2.0 → mcp_openstack_ops-3.2.2}/src/mcp_openstack_ops/tools/get_quota.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mcp_openstack_ops-3.2.0 → mcp_openstack_ops-3.2.2}/src/mcp_openstack_ops/tools/get_routers.py
RENAMED
|
File without changes
|
|
File without changes
|
{mcp_openstack_ops-3.2.0 → mcp_openstack_ops-3.2.2}/src/mcp_openstack_ops/tools/get_server_events.py
RENAMED
|
File without changes
|
{mcp_openstack_ops-3.2.0 → mcp_openstack_ops-3.2.2}/src/mcp_openstack_ops/tools/get_server_groups.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mcp_openstack_ops-3.2.0 → mcp_openstack_ops-3.2.2}/src/mcp_openstack_ops/tools/get_user_list.py
RENAMED
|
File without changes
|
{mcp_openstack_ops-3.2.0 → mcp_openstack_ops-3.2.2}/src/mcp_openstack_ops/tools/get_volume_list.py
RENAMED
|
File without changes
|
|
File without changes
|
{mcp_openstack_ops-3.2.0 → mcp_openstack_ops-3.2.2}/src/mcp_openstack_ops/tools/get_volume_types.py
RENAMED
|
File without changes
|
{mcp_openstack_ops-3.2.0 → mcp_openstack_ops-3.2.2}/src/mcp_openstack_ops/tools/search_instances.py
RENAMED
|
File without changes
|
{mcp_openstack_ops-3.2.0 → mcp_openstack_ops-3.2.2}/src/mcp_openstack_ops/tools/set_alarms.py
RENAMED
|
File without changes
|
|
File without changes
|
{mcp_openstack_ops-3.2.0 → mcp_openstack_ops-3.2.2}/src/mcp_openstack_ops/tools/set_domains.py
RENAMED
|
File without changes
|
{mcp_openstack_ops-3.2.0 → mcp_openstack_ops-3.2.2}/src/mcp_openstack_ops/tools/set_flavor.py
RENAMED
|
File without changes
|
{mcp_openstack_ops-3.2.0 → mcp_openstack_ops-3.2.2}/src/mcp_openstack_ops/tools/set_floating_ip.py
RENAMED
|
File without changes
|
|
File without changes
|
{mcp_openstack_ops-3.2.0 → mcp_openstack_ops-3.2.2}/src/mcp_openstack_ops/tools/set_heat_stack.py
RENAMED
|
File without changes
|
|
File without changes
|
{mcp_openstack_ops-3.2.0 → mcp_openstack_ops-3.2.2}/src/mcp_openstack_ops/tools/set_image.py
RENAMED
|
File without changes
|
{mcp_openstack_ops-3.2.0 → mcp_openstack_ops-3.2.2}/src/mcp_openstack_ops/tools/set_image_members.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mcp_openstack_ops-3.2.0 → mcp_openstack_ops-3.2.2}/src/mcp_openstack_ops/tools/set_instance.py
RENAMED
|
File without changes
|
{mcp_openstack_ops-3.2.0 → mcp_openstack_ops-3.2.2}/src/mcp_openstack_ops/tools/set_keypair.py
RENAMED
|
File without changes
|
{mcp_openstack_ops-3.2.0 → mcp_openstack_ops-3.2.2}/src/mcp_openstack_ops/tools/set_load_balancer.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mcp_openstack_ops-3.2.0 → mcp_openstack_ops-3.2.2}/src/mcp_openstack_ops/tools/set_metrics.py
RENAMED
|
File without changes
|
|
File without changes
|
{mcp_openstack_ops-3.2.0 → mcp_openstack_ops-3.2.2}/src/mcp_openstack_ops/tools/set_network_ports.py
RENAMED
|
File without changes
|
|
File without changes
|
{mcp_openstack_ops-3.2.0 → mcp_openstack_ops-3.2.2}/src/mcp_openstack_ops/tools/set_networks.py
RENAMED
|
File without changes
|
{mcp_openstack_ops-3.2.0 → mcp_openstack_ops-3.2.2}/src/mcp_openstack_ops/tools/set_project.py
RENAMED
|
File without changes
|
{mcp_openstack_ops-3.2.0 → mcp_openstack_ops-3.2.2}/src/mcp_openstack_ops/tools/set_quota.py
RENAMED
|
File without changes
|
{mcp_openstack_ops-3.2.0 → mcp_openstack_ops-3.2.2}/src/mcp_openstack_ops/tools/set_roles.py
RENAMED
|
File without changes
|
{mcp_openstack_ops-3.2.0 → mcp_openstack_ops-3.2.2}/src/mcp_openstack_ops/tools/set_server_backup.py
RENAMED
|
File without changes
|
{mcp_openstack_ops-3.2.0 → mcp_openstack_ops-3.2.2}/src/mcp_openstack_ops/tools/set_server_dump.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mcp_openstack_ops-3.2.0 → mcp_openstack_ops-3.2.2}/src/mcp_openstack_ops/tools/set_server_group.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mcp_openstack_ops-3.2.0 → mcp_openstack_ops-3.2.2}/src/mcp_openstack_ops/tools/set_server_volume.py
RENAMED
|
File without changes
|
{mcp_openstack_ops-3.2.0 → mcp_openstack_ops-3.2.2}/src/mcp_openstack_ops/tools/set_service_logs.py
RENAMED
|
File without changes
|
{mcp_openstack_ops-3.2.0 → mcp_openstack_ops-3.2.2}/src/mcp_openstack_ops/tools/set_services.py
RENAMED
|
File without changes
|
{mcp_openstack_ops-3.2.0 → mcp_openstack_ops-3.2.2}/src/mcp_openstack_ops/tools/set_snapshot.py
RENAMED
|
File without changes
|
{mcp_openstack_ops-3.2.0 → mcp_openstack_ops-3.2.2}/src/mcp_openstack_ops/tools/set_subnets.py
RENAMED
|
File without changes
|
{mcp_openstack_ops-3.2.0 → mcp_openstack_ops-3.2.2}/src/mcp_openstack_ops/tools/set_volume.py
RENAMED
|
File without changes
|
|
File without changes
|
{mcp_openstack_ops-3.2.0 → mcp_openstack_ops-3.2.2}/src/mcp_openstack_ops/tools/set_volume_groups.py
RENAMED
|
File without changes
|
{mcp_openstack_ops-3.2.0 → mcp_openstack_ops-3.2.2}/src/mcp_openstack_ops/tools/set_volume_qos.py
RENAMED
|
File without changes
|
{mcp_openstack_ops-3.2.0 → mcp_openstack_ops-3.2.2}/src/mcp_openstack_ops.egg-info/SOURCES.txt
RENAMED
|
File without changes
|
|
File without changes
|
{mcp_openstack_ops-3.2.0 → mcp_openstack_ops-3.2.2}/src/mcp_openstack_ops.egg-info/entry_points.txt
RENAMED
|
File without changes
|
{mcp_openstack_ops-3.2.0 → mcp_openstack_ops-3.2.2}/src/mcp_openstack_ops.egg-info/top_level.txt
RENAMED
|
File without changes
|