@@ -34,30 +34,44 @@ func (c *Config) IsDockerMCPEnabled() bool {
3434 return exists
3535}
3636
37−// EnableDockerMCP adds Docker MCP configuration and persists it.
38−func (s *ConfigStore) EnableDockerMCP() error {
39− if !IsDockerMCPAvailable() {
40− return fmt.Errorf("docker mcp is not available, please ensure docker is installed and 'docker mcp version' succeeds")
41− }
42−
43− mcpConfig := MCPConfig{
37+func DockerMCPConfig() MCPConfig {
38+ return MCPConfig{
4439 Type: MCPStdio,
4540 Command: "docker",
4641 Args: []string{"mcp", "gateway", "run"},
4742 Disabled: false,
4843 }
44+}
45+
46+func (s *ConfigStore) PrepareDockerMCPConfig() (MCPConfig, error) {
47+ if !IsDockerMCPAvailable() {
48+ return MCPConfig{}, fmt.Errorf("docker mcp is not available, please ensure docker is installed and 'docker mcp version' succeeds")
49+ }
4950
50− // Add to in-memory config.
51+ mcpConfig := DockerMCPConfig()
5152 if s.config.MCP == nil {
5253 s.config.MCP = make(map[string]MCPConfig)
5354 }
5455 s.config.MCP[DockerMCPName] = mcpConfig
56+ return mcpConfig, nil
57+}
5558
56− // Persist to config file.
59+func (s *ConfigStore) PersistDockerMCPConfig(mcpConfig MCPConfig) error {
5760 if err := s.SetConfigField(ScopeGlobal, "mcp."+DockerMCPName, mcpConfig); err != nil {
5861 return fmt.Errorf("failed to persist docker mcp configuration: %w", err)
5962 }
63+ return nil
64+}
6065
66+// EnableDockerMCP adds Docker MCP configuration and persists it.
67+func (s *ConfigStore) EnableDockerMCP() error {
68+ mcpConfig, err := s.PrepareDockerMCPConfig()
69+ if err != nil {
70+ return err
71+ }
72+ if err := s.PersistDockerMCPConfig(mcpConfig); err != nil {
73+ return err
74+ }
6175 return nil
6276}
6377