MCPcopy
hub / github.com/davepoon/buildwithclaude / addDockerMCPServer

Function addDockerMCPServer

packages/bwc-cli/src/commands/add.ts:960–1041  ·  view source on GitHub ↗
(name: string, configManager: ConfigManager, scope: string = 'local')

Source from the content-addressed store, hash-verified

958}
959
960async function addDockerMCPServer(name: string, configManager: ConfigManager, scope: string = 'local'): Promise<void> {
961 const spinner = logger.spinner(`Adding Docker MCP server: ${name}`)
962
963 try {
964 // Check if server exists in catalog
965 const info = await getDockerMCPServerInfo(name)
966
967 if (!info) {
968 spinner.fail(`Server "${name}" not found in Docker MCP catalog`)
969 logger.info('Run "bwc list --mcps" to see available servers')
970 return
971 }
972
973 spinner.stop()
974 logger.info(`\n📦 ${name}`)
975 logger.info(` ${info}`)
976
977 // Check if already installed
978 const installed = await listInstalledDockerMCPServers()
979 if (installed.includes(name)) {
980 // Check if it's already in BWC config
981 const trackedServers = await configManager.getInstalledMCPServers()
982 if (trackedServers.includes(name)) {
983 logger.warn(`Server "${name}" is already installed and tracked in BWC config`)
984 return
985 }
986
987 // Server is installed but not tracked in BWC config
988 logger.warn(`Server "${name}" is already installed in Docker MCP`)
989
990 const { shouldTrack } = await inquirer.prompt([
991 {
992 type: 'confirm',
993 name: 'shouldTrack',
994 message: 'Would you like to add it to your BWC config file for tracking?',
995 default: true
996 }
997 ])
998
999 if (shouldTrack) {
1000 // Create the full MCP server configuration to store
1001 const serverConfig: MCPServerConfig = {
1002 provider: 'docker',
1003 transport: 'stdio',
1004 scope: scope as 'local' | 'user' | 'project',
1005 installedAt: new Date().toISOString(),
1006 registryName: name
1007 }
1008 await configManager.addInstalledMCPServer(name, serverConfig)
1009 spinner.succeed(`Server "${name}" added to BWC config for tracking`)
1010 } else {
1011 logger.info('Server not added to BWC config')
1012 }
1013 return
1014 }
1015
1016 // Enable the server
1017 spinner.start(`Enabling ${name} in Docker MCP Toolkit...`)

Callers 2

createAddCommandFunction · 0.85
interactiveAddDockerMCPFunction · 0.85

Calls 5

getDockerMCPServerInfoFunction · 0.85
enableDockerMCPServerFunction · 0.85
addInstalledMCPServerMethod · 0.80

Tested by

no test coverage detected