container-manager-mcp 1.0.5__tar.gz → 1.0.7__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 (17) hide show
  1. {container_manager_mcp-1.0.5/container_manager_mcp.egg-info → container_manager_mcp-1.0.7}/PKG-INFO +2 -2
  2. {container_manager_mcp-1.0.5 → container_manager_mcp-1.0.7}/README.md +1 -1
  3. {container_manager_mcp-1.0.5 → container_manager_mcp-1.0.7}/container_manager_mcp/container_manager.py +20 -16
  4. {container_manager_mcp-1.0.5 → container_manager_mcp-1.0.7/container_manager_mcp.egg-info}/PKG-INFO +2 -2
  5. {container_manager_mcp-1.0.5 → container_manager_mcp-1.0.7}/pyproject.toml +1 -1
  6. {container_manager_mcp-1.0.5 → container_manager_mcp-1.0.7}/LICENSE +0 -0
  7. {container_manager_mcp-1.0.5 → container_manager_mcp-1.0.7}/MANIFEST.in +0 -0
  8. {container_manager_mcp-1.0.5 → container_manager_mcp-1.0.7}/container_manager_mcp/__init__.py +0 -0
  9. {container_manager_mcp-1.0.5 → container_manager_mcp-1.0.7}/container_manager_mcp/__main__.py +0 -0
  10. {container_manager_mcp-1.0.5 → container_manager_mcp-1.0.7}/container_manager_mcp/container_manager_mcp.py +0 -0
  11. {container_manager_mcp-1.0.5 → container_manager_mcp-1.0.7}/container_manager_mcp.egg-info/SOURCES.txt +0 -0
  12. {container_manager_mcp-1.0.5 → container_manager_mcp-1.0.7}/container_manager_mcp.egg-info/dependency_links.txt +0 -0
  13. {container_manager_mcp-1.0.5 → container_manager_mcp-1.0.7}/container_manager_mcp.egg-info/entry_points.txt +0 -0
  14. {container_manager_mcp-1.0.5 → container_manager_mcp-1.0.7}/container_manager_mcp.egg-info/requires.txt +0 -0
  15. {container_manager_mcp-1.0.5 → container_manager_mcp-1.0.7}/container_manager_mcp.egg-info/top_level.txt +0 -0
  16. {container_manager_mcp-1.0.5 → container_manager_mcp-1.0.7}/requirements.txt +0 -0
  17. {container_manager_mcp-1.0.5 → container_manager_mcp-1.0.7}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: container-manager-mcp
3
- Version: 1.0.5
3
+ Version: 1.0.7
4
4
  Summary: Container Manager manage Docker, Docker Swarm, and Podman containers as an MCP Server
5
5
  Author-email: Audel Rouhi <knucklessg1@gmail.com>
6
6
  License: MIT
@@ -48,7 +48,7 @@ Dynamic: license-file
48
48
  ![PyPI - Wheel](https://img.shields.io/pypi/wheel/container-manager-mcp)
49
49
  ![PyPI - Implementation](https://img.shields.io/pypi/implementation/container-manager-mcp)
50
50
 
51
- *Version: 1.0.5*
51
+ *Version: 1.0.7*
52
52
 
53
53
  Container Manager MCP Server provides a robust interface to manage Docker and Podman containers, networks, volumes, and Docker Swarm services through a FastMCP server, enabling programmatic and remote container management.
54
54
 
@@ -20,7 +20,7 @@
20
20
  ![PyPI - Wheel](https://img.shields.io/pypi/wheel/container-manager-mcp)
21
21
  ![PyPI - Implementation](https://img.shields.io/pypi/implementation/container-manager-mcp)
22
22
 
23
- *Version: 1.0.5*
23
+ *Version: 1.0.7*
24
24
 
25
25
  Container Manager MCP Server provides a robust interface to manage Docker and Podman containers, networks, volumes, and Docker Swarm services through a FastMCP server, enabling programmatic and remote container management.
26
26
 
@@ -510,14 +510,17 @@ class DockerManager(ContainerManagerBase):
510
510
  self.log_action("run_container", params, result)
511
511
  return result
512
512
  attrs = container.attrs
513
- ports = attrs.get("NetworkSettings", {}).get("Ports", {})
514
513
  port_mappings = []
515
- for container_port, host_ports in ports.items():
516
- if host_ports:
517
- for hp in host_ports:
518
- port_mappings.append(
519
- f"{hp.get('HostIp', '0.0.0.0')}:{hp.get('HostPort')}->{container_port}"
520
- )
514
+ if ports: # Check if ports is not None
515
+ network_settings = attrs.get("NetworkSettings", {})
516
+ container_ports = network_settings.get("Ports", {})
517
+ if container_ports: # Check if Ports dictionary is not empty
518
+ for container_port, host_ports in container_ports.items():
519
+ if host_ports: # Check if host_ports is not None or empty
520
+ for hp in host_ports:
521
+ port_mappings.append(
522
+ f"{hp.get('HostIp', '0.0.0.0')}:{hp.get('HostPort')}->{container_port}"
523
+ )
521
524
  created = attrs.get("Created", None)
522
525
  created_str = self._parse_timestamp(created)
523
526
  result = {
@@ -1069,6 +1072,7 @@ class PodmanManager(ContainerManagerBase):
1069
1072
  raise RuntimeError("Podman Machine is not running on Windows system")
1070
1073
  socket_candidates.extend(
1071
1074
  [
1075
+ "tcp://127.0.0.1:8080",
1072
1076
  "unix:///run/podman/podman.sock",
1073
1077
  "npipe:////./pipe/docker_engine",
1074
1078
  "unix:///mnt/wsl/podman-sockets/podman-machine-default/podman-user.sock",
@@ -1086,9 +1090,6 @@ class PodmanManager(ContainerManagerBase):
1086
1090
  ]
1087
1091
  )
1088
1092
  for url in socket_candidates:
1089
- if not os.path.exists(url):
1090
- self.logger.debug(f"Socket {url} does not exist")
1091
- continue
1092
1093
  client = self._try_connect(url)
1093
1094
  if client:
1094
1095
  return url
@@ -1433,12 +1434,15 @@ class PodmanManager(ContainerManagerBase):
1433
1434
  self.log_action("run_container", params, result)
1434
1435
  return result
1435
1436
  attrs = container.attrs
1436
- ports = attrs.get("Ports", [])
1437
- port_mappings = [
1438
- f"{p.get('host_ip', '0.0.0.0')}:{p.get('host_port')}->{p.get('container_port')}/{p.get('protocol', 'tcp')}"
1439
- for p in ports
1440
- if p.get("host_port")
1441
- ]
1437
+ port_mappings = []
1438
+ if ports: # Check if ports is not None
1439
+ container_ports = attrs.get("Ports", [])
1440
+ if container_ports: # Check if Ports list is not empty
1441
+ port_mappings = [
1442
+ f"{p.get('host_ip', '0.0.0.0')}:{p.get('host_port')}->{p.get('container_port')}/{p.get('protocol', 'tcp')}"
1443
+ for p in container_ports
1444
+ if p.get("host_port")
1445
+ ]
1442
1446
  created = attrs.get("Created", None)
1443
1447
  created_str = self._parse_timestamp(created)
1444
1448
  result = {
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: container-manager-mcp
3
- Version: 1.0.5
3
+ Version: 1.0.7
4
4
  Summary: Container Manager manage Docker, Docker Swarm, and Podman containers as an MCP Server
5
5
  Author-email: Audel Rouhi <knucklessg1@gmail.com>
6
6
  License: MIT
@@ -48,7 +48,7 @@ Dynamic: license-file
48
48
  ![PyPI - Wheel](https://img.shields.io/pypi/wheel/container-manager-mcp)
49
49
  ![PyPI - Implementation](https://img.shields.io/pypi/implementation/container-manager-mcp)
50
50
 
51
- *Version: 1.0.5*
51
+ *Version: 1.0.7*
52
52
 
53
53
  Container Manager MCP Server provides a robust interface to manage Docker and Podman containers, networks, volumes, and Docker Swarm services through a FastMCP server, enabling programmatic and remote container management.
54
54
 
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "container-manager-mcp"
7
- version = "1.0.5"
7
+ version = "1.0.7"
8
8
  description = "Container Manager manage Docker, Docker Swarm, and Podman containers as an MCP Server"
9
9
  readme = "README.md"
10
10
  authors = [{ name = "Audel Rouhi", email = "knucklessg1@gmail.com" }]