mcp-openstack-ops 3.5.0__tar.gz → 3.5.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.
Files changed (162) hide show
  1. {mcp_openstack_ops-3.5.0 → mcp_openstack_ops-3.5.2}/.github/workflows/pypi-publish.yml +1 -1
  2. {mcp_openstack_ops-3.5.0 → mcp_openstack_ops-3.5.2}/PKG-INFO +3 -3
  3. {mcp_openstack_ops-3.5.0 → mcp_openstack_ops-3.5.2}/README.md +0 -1
  4. mcp_openstack_ops-3.5.2/pyproject.toml +46 -0
  5. {mcp_openstack_ops-3.5.0 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops.egg-info/PKG-INFO +3 -3
  6. {mcp_openstack_ops-3.5.0 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops.egg-info/SOURCES.txt +2 -0
  7. {mcp_openstack_ops-3.5.0 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops.egg-info/requires.txt +2 -1
  8. mcp_openstack_ops-3.5.2/src/mcp_openstack_ops.egg-info/scm_file_list.json +155 -0
  9. mcp_openstack_ops-3.5.2/src/mcp_openstack_ops.egg-info/scm_version.json +8 -0
  10. {mcp_openstack_ops-3.5.0 → mcp_openstack_ops-3.5.2}/uv.lock +158 -67
  11. mcp_openstack_ops-3.5.0/pyproject.toml +0 -36
  12. {mcp_openstack_ops-3.5.0 → mcp_openstack_ops-3.5.2}/.env.example +0 -0
  13. {mcp_openstack_ops-3.5.0 → mcp_openstack_ops-3.5.2}/.env.test +0 -0
  14. {mcp_openstack_ops-3.5.0 → mcp_openstack_ops-3.5.2}/.github/FUNDING.yml +0 -0
  15. {mcp_openstack_ops-3.5.0 → mcp_openstack_ops-3.5.2}/.github/copilot-instructions.md +0 -0
  16. {mcp_openstack_ops-3.5.0 → mcp_openstack_ops-3.5.2}/.github/dependabot.yml +0 -0
  17. {mcp_openstack_ops-3.5.0 → mcp_openstack_ops-3.5.2}/.gitignore +0 -0
  18. {mcp_openstack_ops-3.5.0 → mcp_openstack_ops-3.5.2}/.gitleaks.toml +0 -0
  19. {mcp_openstack_ops-3.5.0 → mcp_openstack_ops-3.5.2}/.pre-commit-config.yaml +0 -0
  20. {mcp_openstack_ops-3.5.0 → mcp_openstack_ops-3.5.2}/.python-version +0 -0
  21. {mcp_openstack_ops-3.5.0 → mcp_openstack_ops-3.5.2}/Dockerfile.MCP-Server +0 -0
  22. {mcp_openstack_ops-3.5.0 → mcp_openstack_ops-3.5.2}/Dockerfile.MCPO-Proxy +0 -0
  23. {mcp_openstack_ops-3.5.0 → mcp_openstack_ops-3.5.2}/LICENSE +0 -0
  24. {mcp_openstack_ops-3.5.0 → mcp_openstack_ops-3.5.2}/MANIFEST.in +0 -0
  25. {mcp_openstack_ops-3.5.0 → mcp_openstack_ops-3.5.2}/build-mcp-server-docker-image.sh +0 -0
  26. {mcp_openstack_ops-3.5.0 → mcp_openstack_ops-3.5.2}/build-mcpo-server-docker-image.sh +0 -0
  27. {mcp_openstack_ops-3.5.0 → mcp_openstack_ops-3.5.2}/diagnose_openstack.py +0 -0
  28. {mcp_openstack_ops-3.5.0 → mcp_openstack_ops-3.5.2}/docker-compose.yml +0 -0
  29. {mcp_openstack_ops-3.5.0 → mcp_openstack_ops-3.5.2}/img/MCP-Workflow-of-Quickstart-Tutorial.png +0 -0
  30. {mcp_openstack_ops-3.5.0 → mcp_openstack_ops-3.5.2}/img/screenshot-claude-desktop.png +0 -0
  31. {mcp_openstack_ops-3.5.0 → mcp_openstack_ops-3.5.2}/img/screenshot-claude-desktop.png:Zone.Identifier +0 -0
  32. {mcp_openstack_ops-3.5.0 → mcp_openstack_ops-3.5.2}/img/screenshot-example-cluster-status.png +0 -0
  33. {mcp_openstack_ops-3.5.0 → mcp_openstack_ops-3.5.2}/img/screenshot-openstack-dashboard.png +0 -0
  34. {mcp_openstack_ops-3.5.0 → mcp_openstack_ops-3.5.2}/main.py +0 -0
  35. {mcp_openstack_ops-3.5.0 → mcp_openstack_ops-3.5.2}/mcp-config.json.http +0 -0
  36. {mcp_openstack_ops-3.5.0 → mcp_openstack_ops-3.5.2}/mcp-config.json.multi-project +0 -0
  37. {mcp_openstack_ops-3.5.0 → mcp_openstack_ops-3.5.2}/mcp-config.json.stdio +0 -0
  38. {mcp_openstack_ops-3.5.0 → mcp_openstack_ops-3.5.2}/scripts/mcp-server-docker-cmd.sh +0 -0
  39. {mcp_openstack_ops-3.5.0 → mcp_openstack_ops-3.5.2}/scripts/run-mcp-inspector-local.sh +0 -0
  40. {mcp_openstack_ops-3.5.0 → mcp_openstack_ops-3.5.2}/scripts/run-mcp-inspector-pypi.sh +0 -0
  41. {mcp_openstack_ops-3.5.0 → mcp_openstack_ops-3.5.2}/setup.cfg +0 -0
  42. {mcp_openstack_ops-3.5.0 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/__init__.py +0 -0
  43. {mcp_openstack_ops-3.5.0 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/__main__.py +0 -0
  44. {mcp_openstack_ops-3.5.0 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/connection.py +0 -0
  45. {mcp_openstack_ops-3.5.0 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/functions.py +0 -0
  46. {mcp_openstack_ops-3.5.0 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/mcp_main.py +0 -0
  47. {mcp_openstack_ops-3.5.0 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/prompt_template.md +0 -0
  48. {mcp_openstack_ops-3.5.0 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/services/__init__.py +0 -0
  49. {mcp_openstack_ops-3.5.0 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/services/compute.py +0 -0
  50. {mcp_openstack_ops-3.5.0 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/services/core.py +0 -0
  51. {mcp_openstack_ops-3.5.0 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/services/identity.py +0 -0
  52. {mcp_openstack_ops-3.5.0 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/services/image.py +0 -0
  53. {mcp_openstack_ops-3.5.0 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/services/load_balancer/__init__.py +0 -0
  54. {mcp_openstack_ops-3.5.0 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/services/load_balancer/amphorae.py +0 -0
  55. {mcp_openstack_ops-3.5.0 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/services/load_balancer/core.py +0 -0
  56. {mcp_openstack_ops-3.5.0 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/services/load_balancer/health_monitors.py +0 -0
  57. {mcp_openstack_ops-3.5.0 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/services/load_balancer/l7_policies.py +0 -0
  58. {mcp_openstack_ops-3.5.0 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/services/load_balancer/listeners.py +0 -0
  59. {mcp_openstack_ops-3.5.0 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/services/load_balancer/management.py +0 -0
  60. {mcp_openstack_ops-3.5.0 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/services/load_balancer/pools.py +0 -0
  61. {mcp_openstack_ops-3.5.0 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/services/monitoring.py +0 -0
  62. {mcp_openstack_ops-3.5.0 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/services/network.py +0 -0
  63. {mcp_openstack_ops-3.5.0 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/services/orchestration.py +0 -0
  64. {mcp_openstack_ops-3.5.0 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/services/storage.py +0 -0
  65. {mcp_openstack_ops-3.5.0 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/tools/__init__.py +0 -0
  66. {mcp_openstack_ops-3.5.0 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/tools/get_availability_zones.py +0 -0
  67. {mcp_openstack_ops-3.5.0 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/tools/get_floating_ip_pools.py +0 -0
  68. {mcp_openstack_ops-3.5.0 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/tools/get_floating_ips.py +0 -0
  69. {mcp_openstack_ops-3.5.0 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/tools/get_heat_stacks.py +0 -0
  70. {mcp_openstack_ops-3.5.0 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/tools/get_hypervisor_details.py +0 -0
  71. {mcp_openstack_ops-3.5.0 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/tools/get_image_detail_list.py +0 -0
  72. {mcp_openstack_ops-3.5.0 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/tools/get_instance.py +0 -0
  73. {mcp_openstack_ops-3.5.0 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/tools/get_instance_by_name.py +0 -0
  74. {mcp_openstack_ops-3.5.0 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/tools/get_instance_details.py +0 -0
  75. {mcp_openstack_ops-3.5.0 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/tools/get_instances_by_status.py +0 -0
  76. {mcp_openstack_ops-3.5.0 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/tools/get_keypair_list.py +0 -0
  77. {mcp_openstack_ops-3.5.0 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/tools/get_load_balancer_amphorae.py +0 -0
  78. {mcp_openstack_ops-3.5.0 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/tools/get_load_balancer_availability_zones.py +0 -0
  79. {mcp_openstack_ops-3.5.0 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/tools/get_load_balancer_details.py +0 -0
  80. {mcp_openstack_ops-3.5.0 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/tools/get_load_balancer_flavors.py +0 -0
  81. {mcp_openstack_ops-3.5.0 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/tools/get_load_balancer_health_monitors.py +0 -0
  82. {mcp_openstack_ops-3.5.0 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/tools/get_load_balancer_l7_policies.py +0 -0
  83. {mcp_openstack_ops-3.5.0 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/tools/get_load_balancer_l7_rules.py +0 -0
  84. {mcp_openstack_ops-3.5.0 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/tools/get_load_balancer_list.py +0 -0
  85. {mcp_openstack_ops-3.5.0 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/tools/get_load_balancer_listeners.py +0 -0
  86. {mcp_openstack_ops-3.5.0 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/tools/get_load_balancer_pool_members.py +0 -0
  87. {mcp_openstack_ops-3.5.0 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/tools/get_load_balancer_pools.py +0 -0
  88. {mcp_openstack_ops-3.5.0 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/tools/get_load_balancer_providers.py +0 -0
  89. {mcp_openstack_ops-3.5.0 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/tools/get_load_balancer_quotas.py +0 -0
  90. {mcp_openstack_ops-3.5.0 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/tools/get_network_details.py +0 -0
  91. {mcp_openstack_ops-3.5.0 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/tools/get_project_details.py +0 -0
  92. {mcp_openstack_ops-3.5.0 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/tools/get_quota.py +0 -0
  93. {mcp_openstack_ops-3.5.0 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/tools/get_resource_monitoring.py +0 -0
  94. {mcp_openstack_ops-3.5.0 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/tools/get_role_assignments.py +0 -0
  95. {mcp_openstack_ops-3.5.0 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/tools/get_routers.py +0 -0
  96. {mcp_openstack_ops-3.5.0 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/tools/get_security_groups.py +0 -0
  97. {mcp_openstack_ops-3.5.0 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/tools/get_server_events.py +0 -0
  98. {mcp_openstack_ops-3.5.0 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/tools/get_server_groups.py +0 -0
  99. {mcp_openstack_ops-3.5.0 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/tools/get_server_volumes.py +0 -0
  100. {mcp_openstack_ops-3.5.0 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/tools/get_service_status.py +0 -0
  101. {mcp_openstack_ops-3.5.0 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/tools/get_usage_statistics.py +0 -0
  102. {mcp_openstack_ops-3.5.0 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/tools/get_user_list.py +0 -0
  103. {mcp_openstack_ops-3.5.0 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/tools/get_volume_list.py +0 -0
  104. {mcp_openstack_ops-3.5.0 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/tools/get_volume_snapshots.py +0 -0
  105. {mcp_openstack_ops-3.5.0 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/tools/get_volume_types.py +0 -0
  106. {mcp_openstack_ops-3.5.0 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/tools/search_instances.py +0 -0
  107. {mcp_openstack_ops-3.5.0 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/tools/set_alarms.py +0 -0
  108. {mcp_openstack_ops-3.5.0 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/tools/set_compute_agents.py +0 -0
  109. {mcp_openstack_ops-3.5.0 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/tools/set_domains.py +0 -0
  110. {mcp_openstack_ops-3.5.0 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/tools/set_flavor.py +0 -0
  111. {mcp_openstack_ops-3.5.0 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/tools/set_floating_ip.py +0 -0
  112. {mcp_openstack_ops-3.5.0 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/tools/set_floating_ip_port_forwarding.py +0 -0
  113. {mcp_openstack_ops-3.5.0 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/tools/set_heat_stack.py +0 -0
  114. {mcp_openstack_ops-3.5.0 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/tools/set_identity_groups.py +0 -0
  115. {mcp_openstack_ops-3.5.0 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/tools/set_image.py +0 -0
  116. {mcp_openstack_ops-3.5.0 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/tools/set_image_members.py +0 -0
  117. {mcp_openstack_ops-3.5.0 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/tools/set_image_metadata.py +0 -0
  118. {mcp_openstack_ops-3.5.0 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/tools/set_image_visibility.py +0 -0
  119. {mcp_openstack_ops-3.5.0 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/tools/set_instance.py +0 -0
  120. {mcp_openstack_ops-3.5.0 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/tools/set_keypair.py +0 -0
  121. {mcp_openstack_ops-3.5.0 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/tools/set_load_balancer.py +0 -0
  122. {mcp_openstack_ops-3.5.0 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/tools/set_load_balancer_amphora.py +0 -0
  123. {mcp_openstack_ops-3.5.0 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/tools/set_load_balancer_availability_zone.py +0 -0
  124. {mcp_openstack_ops-3.5.0 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/tools/set_load_balancer_flavor.py +0 -0
  125. {mcp_openstack_ops-3.5.0 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/tools/set_load_balancer_health_monitor.py +0 -0
  126. {mcp_openstack_ops-3.5.0 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/tools/set_load_balancer_l7_policy.py +0 -0
  127. {mcp_openstack_ops-3.5.0 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/tools/set_load_balancer_l7_rule.py +0 -0
  128. {mcp_openstack_ops-3.5.0 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/tools/set_load_balancer_listener.py +0 -0
  129. {mcp_openstack_ops-3.5.0 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/tools/set_load_balancer_pool.py +0 -0
  130. {mcp_openstack_ops-3.5.0 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/tools/set_load_balancer_pool_member.py +0 -0
  131. {mcp_openstack_ops-3.5.0 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/tools/set_load_balancer_quota.py +0 -0
  132. {mcp_openstack_ops-3.5.0 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/tools/set_metrics.py +0 -0
  133. {mcp_openstack_ops-3.5.0 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/tools/set_network_agents.py +0 -0
  134. {mcp_openstack_ops-3.5.0 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/tools/set_network_ports.py +0 -0
  135. {mcp_openstack_ops-3.5.0 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/tools/set_network_qos_policies.py +0 -0
  136. {mcp_openstack_ops-3.5.0 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/tools/set_networks.py +0 -0
  137. {mcp_openstack_ops-3.5.0 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/tools/set_project.py +0 -0
  138. {mcp_openstack_ops-3.5.0 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/tools/set_quota.py +0 -0
  139. {mcp_openstack_ops-3.5.0 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/tools/set_roles.py +0 -0
  140. {mcp_openstack_ops-3.5.0 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/tools/set_server_backup.py +0 -0
  141. {mcp_openstack_ops-3.5.0 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/tools/set_server_dump.py +0 -0
  142. {mcp_openstack_ops-3.5.0 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/tools/set_server_fixed_ip.py +0 -0
  143. {mcp_openstack_ops-3.5.0 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/tools/set_server_floating_ip.py +0 -0
  144. {mcp_openstack_ops-3.5.0 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/tools/set_server_group.py +0 -0
  145. {mcp_openstack_ops-3.5.0 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/tools/set_server_migration.py +0 -0
  146. {mcp_openstack_ops-3.5.0 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/tools/set_server_network.py +0 -0
  147. {mcp_openstack_ops-3.5.0 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/tools/set_server_properties.py +0 -0
  148. {mcp_openstack_ops-3.5.0 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/tools/set_server_security_group.py +0 -0
  149. {mcp_openstack_ops-3.5.0 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/tools/set_server_volume.py +0 -0
  150. {mcp_openstack_ops-3.5.0 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/tools/set_service_logs.py +0 -0
  151. {mcp_openstack_ops-3.5.0 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/tools/set_services.py +0 -0
  152. {mcp_openstack_ops-3.5.0 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/tools/set_snapshot.py +0 -0
  153. {mcp_openstack_ops-3.5.0 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/tools/set_subnets.py +0 -0
  154. {mcp_openstack_ops-3.5.0 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/tools/set_volume.py +0 -0
  155. {mcp_openstack_ops-3.5.0 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/tools/set_volume_backups.py +0 -0
  156. {mcp_openstack_ops-3.5.0 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/tools/set_volume_groups.py +0 -0
  157. {mcp_openstack_ops-3.5.0 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/tools/set_volume_qos.py +0 -0
  158. {mcp_openstack_ops-3.5.0 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops.egg-info/dependency_links.txt +0 -0
  159. {mcp_openstack_ops-3.5.0 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops.egg-info/entry_points.txt +0 -0
  160. {mcp_openstack_ops-3.5.0 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops.egg-info/top_level.txt +0 -0
  161. {mcp_openstack_ops-3.5.0 → mcp_openstack_ops-3.5.2}/test_compatibility.sh +0 -0
  162. {mcp_openstack_ops-3.5.0 → mcp_openstack_ops-3.5.2}/test_project_isolation.py +0 -0
@@ -15,7 +15,7 @@ jobs:
15
15
  build:
16
16
  runs-on: ubuntu-latest
17
17
  steps:
18
- - uses: actions/checkout@v6
18
+ - uses: actions/checkout@v7
19
19
  with:
20
20
  persist-credentials: false
21
21
  fetch-depth: 0
@@ -1,15 +1,16 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mcp-openstack-ops
3
- Version: 3.5.0
3
+ Version: 3.5.2
4
4
  Summary: OpenStack operations automation MCP server
5
5
  Author-email: JungJungIn <call518@gmail.com>
6
6
  Requires-Python: >=3.12
7
7
  Description-Content-Type: text/markdown
8
8
  License-File: LICENSE
9
9
  Requires-Dist: fastmcp>=2.12.3
10
- Requires-Dist: openstacksdk<=4.11.0,>=4.1.0
10
+ Requires-Dist: openstacksdk<=4.17.0,>=4.1.0
11
11
  Requires-Dist: python-dotenv>=1.1.1
12
12
  Requires-Dist: setuptools-scm>=10.0.5
13
+ Requires-Dist: pre-commit>=4.6.0
13
14
  Provides-Extra: dev
14
15
  Requires-Dist: pytest>=7.0.0; extra == "dev"
15
16
  Requires-Dist: pytest-asyncio>=0.21.0; extra == "dev"
@@ -22,7 +23,6 @@ Dynamic: license-file
22
23
  [![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](https://opensource.org/licenses/MIT)
23
24
  ![Python](https://img.shields.io/badge/Python-3776AB?style=flat&logo=python&logoColor=white)
24
25
  ![Docker Pulls](https://img.shields.io/docker/pulls/call518/mcp-server-openstack-ops)
25
- [![smithery badge](https://smithery.ai/badge/@call518/mcp-openstack-ops)](https://smithery.ai/server/@call518/mcp-openstack-ops)
26
26
  [![BuyMeACoffee](https://raw.githubusercontent.com/pachadotdev/buymeacoffee-badges/main/bmc-donate-yellow.svg)](https://www.buymeacoffee.com/call518)
27
27
 
28
28
  [![Deploy to PyPI with tag](https://github.com/call518/MCP-OpenStack-Ops/actions/workflows/pypi-publish.yml/badge.svg)](https://github.com/call518/MCP-OpenStack-Ops/actions/workflows/pypi-publish.yml)
@@ -5,7 +5,6 @@
5
5
  [![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](https://opensource.org/licenses/MIT)
6
6
  ![Python](https://img.shields.io/badge/Python-3776AB?style=flat&logo=python&logoColor=white)
7
7
  ![Docker Pulls](https://img.shields.io/docker/pulls/call518/mcp-server-openstack-ops)
8
- [![smithery badge](https://smithery.ai/badge/@call518/mcp-openstack-ops)](https://smithery.ai/server/@call518/mcp-openstack-ops)
9
8
  [![BuyMeACoffee](https://raw.githubusercontent.com/pachadotdev/buymeacoffee-badges/main/bmc-donate-yellow.svg)](https://www.buymeacoffee.com/call518)
10
9
 
11
10
  [![Deploy to PyPI with tag](https://github.com/call518/MCP-OpenStack-Ops/actions/workflows/pypi-publish.yml/badge.svg)](https://github.com/call518/MCP-OpenStack-Ops/actions/workflows/pypi-publish.yml)
@@ -0,0 +1,46 @@
1
+ [project]
2
+ name = "mcp-openstack-ops"
3
+ dynamic = ["version"]
4
+ description = "OpenStack operations automation MCP server"
5
+ readme = "README.md"
6
+ requires-python = ">=3.12"
7
+ authors = [{ name = "JungJungIn", email = "call518@gmail.com" }]
8
+ dependencies = [
9
+ "fastmcp>=2.12.3",
10
+ "openstacksdk>=4.1.0,<=4.17.0",
11
+ "python-dotenv>=1.1.1",
12
+ "setuptools-scm>=10.0.5",
13
+ "pre-commit>=4.6.0",
14
+ ]
15
+
16
+ [project.optional-dependencies]
17
+ dev = [
18
+ "pytest>=7.0.0",
19
+ "pytest-asyncio>=0.21.0"
20
+ ]
21
+
22
+ [project.scripts]
23
+ mcp-openstack-ops = "mcp_openstack_ops.mcp_main:main"
24
+
25
+ [build-system]
26
+ requires = ["setuptools>=61.0", "wheel", "setuptools-scm"]
27
+ build-backend = "setuptools.build_meta"
28
+
29
+ [tool.setuptools_scm]
30
+ ### version_scheme options:
31
+ ### uncommented: raises LookupError (uses fallback_version) when not on a tag
32
+ ### commented-out (default guess-next-dev): auto-generates e.g. 1.0.1.dev2+gabcdef for commits after a tag
33
+ # version_scheme = "no-guess-dev"
34
+ ### local_scheme options:
35
+ ### node-and-date (default) e.g. 1.0.1.dev2+gabcdef.d20260430
36
+ ### node-and-timestamp e.g. 1.0.1.dev2+gabcdef.1746000000
37
+ ### dirty-tag e.g. 1.0.1.dev2+dirty (only when working tree is dirty)
38
+ ### no-local-version e.g. 1.0.1.dev2 (omits local part entirely; only this option allows non-tagged commits to be uploaded to PyPI)
39
+ local_scheme = "node-and-date"
40
+ fallback_version = "0.0.0"
41
+
42
+ [tool.setuptools.packages.find]
43
+ where = ["src"]
44
+
45
+ [tool.setuptools.package-dir]
46
+ "" = "src"
@@ -1,15 +1,16 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mcp-openstack-ops
3
- Version: 3.5.0
3
+ Version: 3.5.2
4
4
  Summary: OpenStack operations automation MCP server
5
5
  Author-email: JungJungIn <call518@gmail.com>
6
6
  Requires-Python: >=3.12
7
7
  Description-Content-Type: text/markdown
8
8
  License-File: LICENSE
9
9
  Requires-Dist: fastmcp>=2.12.3
10
- Requires-Dist: openstacksdk<=4.11.0,>=4.1.0
10
+ Requires-Dist: openstacksdk<=4.17.0,>=4.1.0
11
11
  Requires-Dist: python-dotenv>=1.1.1
12
12
  Requires-Dist: setuptools-scm>=10.0.5
13
+ Requires-Dist: pre-commit>=4.6.0
13
14
  Provides-Extra: dev
14
15
  Requires-Dist: pytest>=7.0.0; extra == "dev"
15
16
  Requires-Dist: pytest-asyncio>=0.21.0; extra == "dev"
@@ -22,7 +23,6 @@ Dynamic: license-file
22
23
  [![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](https://opensource.org/licenses/MIT)
23
24
  ![Python](https://img.shields.io/badge/Python-3776AB?style=flat&logo=python&logoColor=white)
24
25
  ![Docker Pulls](https://img.shields.io/docker/pulls/call518/mcp-server-openstack-ops)
25
- [![smithery badge](https://smithery.ai/badge/@call518/mcp-openstack-ops)](https://smithery.ai/server/@call518/mcp-openstack-ops)
26
26
  [![BuyMeACoffee](https://raw.githubusercontent.com/pachadotdev/buymeacoffee-badges/main/bmc-donate-yellow.svg)](https://www.buymeacoffee.com/call518)
27
27
 
28
28
  [![Deploy to PyPI with tag](https://github.com/call518/MCP-OpenStack-Ops/actions/workflows/pypi-publish.yml/badge.svg)](https://github.com/call518/MCP-OpenStack-Ops/actions/workflows/pypi-publish.yml)
@@ -44,6 +44,8 @@ src/mcp_openstack_ops.egg-info/SOURCES.txt
44
44
  src/mcp_openstack_ops.egg-info/dependency_links.txt
45
45
  src/mcp_openstack_ops.egg-info/entry_points.txt
46
46
  src/mcp_openstack_ops.egg-info/requires.txt
47
+ src/mcp_openstack_ops.egg-info/scm_file_list.json
48
+ src/mcp_openstack_ops.egg-info/scm_version.json
47
49
  src/mcp_openstack_ops.egg-info/top_level.txt
48
50
  src/mcp_openstack_ops/services/__init__.py
49
51
  src/mcp_openstack_ops/services/compute.py
@@ -1,7 +1,8 @@
1
1
  fastmcp>=2.12.3
2
- openstacksdk<=4.11.0,>=4.1.0
2
+ openstacksdk<=4.17.0,>=4.1.0
3
3
  python-dotenv>=1.1.1
4
4
  setuptools-scm>=10.0.5
5
+ pre-commit>=4.6.0
5
6
 
6
7
  [dev]
7
8
  pytest>=7.0.0
@@ -0,0 +1,155 @@
1
+ {
2
+ "files": [
3
+ ".pre-commit-config.yaml",
4
+ ".env.test",
5
+ "README.md",
6
+ "uv.lock",
7
+ "Dockerfile.MCPO-Proxy",
8
+ ".python-version",
9
+ "LICENSE",
10
+ "Dockerfile.MCP-Server",
11
+ "mcp-config.json.stdio",
12
+ "pyproject.toml",
13
+ "mcp-config.json.http",
14
+ "test_project_isolation.py",
15
+ "build-mcp-server-docker-image.sh",
16
+ "test_compatibility.sh",
17
+ "diagnose_openstack.py",
18
+ "mcp-config.json.multi-project",
19
+ "MANIFEST.in",
20
+ ".env.example",
21
+ "main.py",
22
+ ".gitleaks.toml",
23
+ ".gitignore",
24
+ "docker-compose.yml",
25
+ "build-mcpo-server-docker-image.sh",
26
+ "scripts/run-mcp-inspector-local.sh",
27
+ "scripts/run-mcp-inspector-pypi.sh",
28
+ "scripts/mcp-server-docker-cmd.sh",
29
+ "src/mcp_openstack_ops/__init__.py",
30
+ "src/mcp_openstack_ops/functions.py",
31
+ "src/mcp_openstack_ops/prompt_template.md",
32
+ "src/mcp_openstack_ops/connection.py",
33
+ "src/mcp_openstack_ops/mcp_main.py",
34
+ "src/mcp_openstack_ops/__main__.py",
35
+ "src/mcp_openstack_ops/services/monitoring.py",
36
+ "src/mcp_openstack_ops/services/network.py",
37
+ "src/mcp_openstack_ops/services/core.py",
38
+ "src/mcp_openstack_ops/services/__init__.py",
39
+ "src/mcp_openstack_ops/services/image.py",
40
+ "src/mcp_openstack_ops/services/compute.py",
41
+ "src/mcp_openstack_ops/services/storage.py",
42
+ "src/mcp_openstack_ops/services/orchestration.py",
43
+ "src/mcp_openstack_ops/services/identity.py",
44
+ "src/mcp_openstack_ops/services/load_balancer/core.py",
45
+ "src/mcp_openstack_ops/services/load_balancer/__init__.py",
46
+ "src/mcp_openstack_ops/services/load_balancer/management.py",
47
+ "src/mcp_openstack_ops/services/load_balancer/l7_policies.py",
48
+ "src/mcp_openstack_ops/services/load_balancer/listeners.py",
49
+ "src/mcp_openstack_ops/services/load_balancer/amphorae.py",
50
+ "src/mcp_openstack_ops/services/load_balancer/health_monitors.py",
51
+ "src/mcp_openstack_ops/services/load_balancer/pools.py",
52
+ "src/mcp_openstack_ops/tools/get_instance.py",
53
+ "src/mcp_openstack_ops/tools/get_floating_ips.py",
54
+ "src/mcp_openstack_ops/tools/get_load_balancer_l7_policies.py",
55
+ "src/mcp_openstack_ops/tools/set_service_logs.py",
56
+ "src/mcp_openstack_ops/tools/set_load_balancer_pool.py",
57
+ "src/mcp_openstack_ops/tools/set_server_group.py",
58
+ "src/mcp_openstack_ops/tools/set_network_qos_policies.py",
59
+ "src/mcp_openstack_ops/tools/set_quota.py",
60
+ "src/mcp_openstack_ops/tools/get_usage_statistics.py",
61
+ "src/mcp_openstack_ops/tools/set_network_agents.py",
62
+ "src/mcp_openstack_ops/tools/get_service_status.py",
63
+ "src/mcp_openstack_ops/tools/set_metrics.py",
64
+ "src/mcp_openstack_ops/tools/set_services.py",
65
+ "src/mcp_openstack_ops/tools/set_networks.py",
66
+ "src/mcp_openstack_ops/tools/__init__.py",
67
+ "src/mcp_openstack_ops/tools/search_instances.py",
68
+ "src/mcp_openstack_ops/tools/set_image_visibility.py",
69
+ "src/mcp_openstack_ops/tools/set_volume_qos.py",
70
+ "src/mcp_openstack_ops/tools/get_availability_zones.py",
71
+ "src/mcp_openstack_ops/tools/get_keypair_list.py",
72
+ "src/mcp_openstack_ops/tools/get_load_balancer_amphorae.py",
73
+ "src/mcp_openstack_ops/tools/get_load_balancer_listeners.py",
74
+ "src/mcp_openstack_ops/tools/set_server_security_group.py",
75
+ "src/mcp_openstack_ops/tools/set_heat_stack.py",
76
+ "src/mcp_openstack_ops/tools/set_roles.py",
77
+ "src/mcp_openstack_ops/tools/set_load_balancer_l7_policy.py",
78
+ "src/mcp_openstack_ops/tools/set_image_metadata.py",
79
+ "src/mcp_openstack_ops/tools/get_routers.py",
80
+ "src/mcp_openstack_ops/tools/set_load_balancer.py",
81
+ "src/mcp_openstack_ops/tools/set_server_dump.py",
82
+ "src/mcp_openstack_ops/tools/set_server_properties.py",
83
+ "src/mcp_openstack_ops/tools/set_image_members.py",
84
+ "src/mcp_openstack_ops/tools/set_load_balancer_listener.py",
85
+ "src/mcp_openstack_ops/tools/set_snapshot.py",
86
+ "src/mcp_openstack_ops/tools/set_compute_agents.py",
87
+ "src/mcp_openstack_ops/tools/set_volume_groups.py",
88
+ "src/mcp_openstack_ops/tools/get_image_detail_list.py",
89
+ "src/mcp_openstack_ops/tools/get_role_assignments.py",
90
+ "src/mcp_openstack_ops/tools/set_server_fixed_ip.py",
91
+ "src/mcp_openstack_ops/tools/get_hypervisor_details.py",
92
+ "src/mcp_openstack_ops/tools/get_volume_list.py",
93
+ "src/mcp_openstack_ops/tools/get_heat_stacks.py",
94
+ "src/mcp_openstack_ops/tools/set_server_migration.py",
95
+ "src/mcp_openstack_ops/tools/get_instances_by_status.py",
96
+ "src/mcp_openstack_ops/tools/get_load_balancer_pool_members.py",
97
+ "src/mcp_openstack_ops/tools/set_volume.py",
98
+ "src/mcp_openstack_ops/tools/set_floating_ip.py",
99
+ "src/mcp_openstack_ops/tools/set_volume_backups.py",
100
+ "src/mcp_openstack_ops/tools/get_quota.py",
101
+ "src/mcp_openstack_ops/tools/set_alarms.py",
102
+ "src/mcp_openstack_ops/tools/set_load_balancer_flavor.py",
103
+ "src/mcp_openstack_ops/tools/set_load_balancer_health_monitor.py",
104
+ "src/mcp_openstack_ops/tools/get_resource_monitoring.py",
105
+ "src/mcp_openstack_ops/tools/get_user_list.py",
106
+ "src/mcp_openstack_ops/tools/set_floating_ip_port_forwarding.py",
107
+ "src/mcp_openstack_ops/tools/get_load_balancer_availability_zones.py",
108
+ "src/mcp_openstack_ops/tools/set_image.py",
109
+ "src/mcp_openstack_ops/tools/get_security_groups.py",
110
+ "src/mcp_openstack_ops/tools/get_load_balancer_quotas.py",
111
+ "src/mcp_openstack_ops/tools/set_server_network.py",
112
+ "src/mcp_openstack_ops/tools/get_load_balancer_l7_rules.py",
113
+ "src/mcp_openstack_ops/tools/set_load_balancer_pool_member.py",
114
+ "src/mcp_openstack_ops/tools/set_load_balancer_availability_zone.py",
115
+ "src/mcp_openstack_ops/tools/set_server_volume.py",
116
+ "src/mcp_openstack_ops/tools/set_keypair.py",
117
+ "src/mcp_openstack_ops/tools/get_load_balancer_health_monitors.py",
118
+ "src/mcp_openstack_ops/tools/get_load_balancer_providers.py",
119
+ "src/mcp_openstack_ops/tools/get_server_volumes.py",
120
+ "src/mcp_openstack_ops/tools/set_project.py",
121
+ "src/mcp_openstack_ops/tools/get_server_events.py",
122
+ "src/mcp_openstack_ops/tools/set_domains.py",
123
+ "src/mcp_openstack_ops/tools/set_load_balancer_amphora.py",
124
+ "src/mcp_openstack_ops/tools/get_volume_types.py",
125
+ "src/mcp_openstack_ops/tools/set_instance.py",
126
+ "src/mcp_openstack_ops/tools/get_instance_details.py",
127
+ "src/mcp_openstack_ops/tools/get_load_balancer_pools.py",
128
+ "src/mcp_openstack_ops/tools/get_load_balancer_flavors.py",
129
+ "src/mcp_openstack_ops/tools/set_identity_groups.py",
130
+ "src/mcp_openstack_ops/tools/set_flavor.py",
131
+ "src/mcp_openstack_ops/tools/set_subnets.py",
132
+ "src/mcp_openstack_ops/tools/set_server_floating_ip.py",
133
+ "src/mcp_openstack_ops/tools/set_load_balancer_l7_rule.py",
134
+ "src/mcp_openstack_ops/tools/set_network_ports.py",
135
+ "src/mcp_openstack_ops/tools/get_instance_by_name.py",
136
+ "src/mcp_openstack_ops/tools/get_project_details.py",
137
+ "src/mcp_openstack_ops/tools/set_server_backup.py",
138
+ "src/mcp_openstack_ops/tools/get_network_details.py",
139
+ "src/mcp_openstack_ops/tools/get_load_balancer_list.py",
140
+ "src/mcp_openstack_ops/tools/set_load_balancer_quota.py",
141
+ "src/mcp_openstack_ops/tools/get_load_balancer_details.py",
142
+ "src/mcp_openstack_ops/tools/get_floating_ip_pools.py",
143
+ "src/mcp_openstack_ops/tools/get_volume_snapshots.py",
144
+ "src/mcp_openstack_ops/tools/get_server_groups.py",
145
+ "img/screenshot-example-cluster-status.png",
146
+ "img/screenshot-openstack-dashboard.png",
147
+ "img/MCP-Workflow-of-Quickstart-Tutorial.png",
148
+ "img/screenshot-claude-desktop.png",
149
+ "img/screenshot-claude-desktop.png:Zone.Identifier",
150
+ ".github/copilot-instructions.md",
151
+ ".github/dependabot.yml",
152
+ ".github/FUNDING.yml",
153
+ ".github/workflows/pypi-publish.yml"
154
+ ]
155
+ }
@@ -0,0 +1,8 @@
1
+ {
2
+ "tag": "3.5.2",
3
+ "distance": 0,
4
+ "node": "g3f82bedc589a5c86a28e178e8b85f02234924a4e",
5
+ "dirty": false,
6
+ "branch": "HEAD",
7
+ "node_date": "2026-07-04"
8
+ }