on main help sign in
docs(mcp/docker): comments
12dfcdfChristian Rocha
internal/config/docker_mcp.go+8
@@ -35,6 +35,8 @@ func IsDockerMCPAvailable() bool {
35 return err == nil
35 return err == nil
36}
36}
37
37
38+// DockerMCPAvailabilityCached returns the cached Docker MCP availability and
39+// whether the cached value is still fresh.
38func DockerMCPAvailabilityCached() (available bool, known bool) {
40func DockerMCPAvailabilityCached() (available bool, known bool) {
39 dockerMCPAvailabilityCache.mu.Lock()
41 dockerMCPAvailabilityCache.mu.Lock()
40 defer dockerMCPAvailabilityCache.mu.Unlock()
42 defer dockerMCPAvailabilityCache.mu.Unlock()
@@ -48,6 +50,7 @@ func DockerMCPAvailabilityCached() (available bool, known bool) {
48 return dockerMCPAvailabilityCache.available, true
50 return dockerMCPAvailabilityCache.available, true
49}
51}
50
52
53+// RefreshDockerMCPAvailability refreshes and caches Docker MCP availability.
51func RefreshDockerMCPAvailability() bool {
54func RefreshDockerMCPAvailability() bool {
52 available := IsDockerMCPAvailable()
55 available := IsDockerMCPAvailable()
53 dockerMCPAvailabilityCache.mu.Lock()
56 dockerMCPAvailabilityCache.mu.Lock()
@@ -67,6 +70,7 @@ func (c *Config) IsDockerMCPEnabled() bool {
67 return exists
70 return exists
68}
71}
69
72
73+// DockerMCPConfig returns the default Docker MCP stdio configuration.
70func DockerMCPConfig() MCPConfig {
74func DockerMCPConfig() MCPConfig {
71 return MCPConfig{
75 return MCPConfig{
72 Type: MCPStdio,
76 Type: MCPStdio,
@@ -76,6 +80,8 @@ func DockerMCPConfig() MCPConfig {
76 }
80 }
77}
81}
78
82
83+// PrepareDockerMCPConfig validates Docker MCP availability and stages the
84+// Docker MCP configuration in memory.
79func (s *ConfigStore) PrepareDockerMCPConfig() (MCPConfig, error) {
85func (s *ConfigStore) PrepareDockerMCPConfig() (MCPConfig, error) {
80 if !IsDockerMCPAvailable() {
86 if !IsDockerMCPAvailable() {
81 return MCPConfig{}, fmt.Errorf("docker mcp is not available, please ensure docker is installed and 'docker mcp version' succeeds")
87 return MCPConfig{}, fmt.Errorf("docker mcp is not available, please ensure docker is installed and 'docker mcp version' succeeds")
@@ -89,6 +95,8 @@ func (s *ConfigStore) PrepareDockerMCPConfig() (MCPConfig, error) {
89 return mcpConfig, nil
95 return mcpConfig, nil
90}
96}
91
97
98+// PersistDockerMCPConfig persists a previously prepared Docker MCP
99+// configuration to the global config file.
92func (s *ConfigStore) PersistDockerMCPConfig(mcpConfig MCPConfig) error {
100func (s *ConfigStore) PersistDockerMCPConfig(mcpConfig MCPConfig) error {
93 if err := s.SetConfigField(ScopeGlobal, "mcp."+DockerMCPName, mcpConfig); err != nil {
101 if err := s.SetConfigField(ScopeGlobal, "mcp."+DockerMCPName, mcpConfig); err != nil {
94 return fmt.Errorf("failed to persist docker mcp configuration: %w", err)
102 return fmt.Errorf("failed to persist docker mcp configuration: %w", err)