@@ -75,76 +75,178 @@ docker mcp --help
7575> ` ` `
7676> This is useful when running in WSL2, containerized environments, or Docker CE where Desktop backend sockets are unavailable.
7777
78- # ## Catalog Management
78+ > [! NOTE]
79+ > ** Enabling Profiles outside Docker Desktop**
80+ >
81+ > Profiles are enabled automatically in Docker Desktop. If you are using the CLI independently (e.g. Docker CE, WSL2, or a containerized environment), enable the profiles feature first:
82+ > ` ` ` bash
83+ > docker mcp feature enable profiles
84+ > ` ` `
85+
86+ # ## Profile Management
7987
80- Manage the catalogs available to the MCP gateway. The [default catalog](https://hub.docker.com/mcp) is available with the name ' docker-mcp' .
88+ Servers are organized into ** profiles** . A profile groups related MCP servers together and can be connected to clients, exported, and shared via OCI registries.
89+
90+ Servers in a profile can reference multiple sources:
91+ - ** Catalog references** : ` catalog://mcp/docker-mcp-catalog/github`
92+ - ** OCI image references** : ` docker://my-server:latest`
93+ - ** MCP Registry references** : ` https://registry.modelcontextprotocol.io/v0/servers/< id> `
94+ - ** Local file references** : ` file://./server.yaml`
8195
8296` ` ` bash
83- # Manage server catalogs
84- docker mcp catalog --help
97+ # Make sure to `docker mcp catalog pull mcp/docker-mcp-catalog` first.
8598
86- # Initialize the default Docker MCP Catalog
87- docker mcp catalog init
99+ # Create a new profile
100+ docker mcp profile create --name dev-tools \
101+ --server catalog://mcp/docker-mcp-catalog/github
88102
89- # List available catalogs
90- docker mcp catalog ls
103+ # Create a profile and connect it to a client
104+ docker mcp profile create --name dev-tools \
105+ --server catalog://mcp/docker-mcp-catalog/github \
106+ --connect cursor
91107
92- # Show all servers in a catalog
93- docker mcp catalog show docker-mcp
108+ # List all profiles
109+ docker mcp profile list
110+
111+ # Show profile details
112+ docker mcp profile show < profile-id>
113+
114+ # Remove a profile
115+ docker mcp profile remove < profile-id>
116+
117+ # Export/import profiles
118+ docker mcp profile export < profile-id> output.yaml
119+ docker mcp profile import input.yaml
120+
121+ # Push/pull profiles to OCI registries
122+ docker mcp profile push < profile-id> < oci-reference>
123+ docker mcp profile pull < oci-reference>
94124```
95125
96- * more about [ the MCP Catalog] ( docs/catalog.md ) .
97- * more about [ importing from the OSS MCP Community Registry] ( docs/catalog.md#importing-from-the-oss-mcp-community-registry ) .
126+ #### Manage servers in a profile
98127
99- ### MCP Gateway Operations
128+ ``` bash
129+ # List servers across all profiles
130+ docker mcp profile server ls
100131
101- Start up an MCP Gateway. This can be used for one client, or to service multiple clients if using either ` sse ` or ` streaming ` transports.
132+ # Filter servers by name or profile
133+ docker mcp profile server ls --filter name=github
134+ docker mcp profile server ls --filter profile=dev-tools
135+
136+ # Add servers to a profile
137+ docker mcp profile server add dev-tools \
138+ --server catalog://mcp/docker-mcp-catalog/notion
139+
140+ # Remove servers from a profile
141+ docker mcp profile server remove dev-tools github slack
142+ ```
143+
144+ #### Configure servers in a profile
102145
103146``` bash
104- # Run the MCP gateway (stdio )
105- docker mcp gateway run
147+ # Set configuration values (<server-name>.<config-key>=<value> )
148+ docker mcp profile config < profile-id > --set github.timeout=30
106149
107- # Run the MCP gateway (streaming)
108- docker mcp gateway run --port 8080 --transport streaming
150+ # Get configuration values (<server-name>.<config-key>)
151+ docker mcp profile config < profile-id> --get github.timeout
152+
153+ # Get all configuration
154+ docker mcp profile config < profile-id> --get-all
155+
156+ # Delete configuration values (<server-name>.<config-key>)
157+ docker mcp profile config < profile-id> --del github.timeout
109158```
110159
111- * more about [ the MCP Gateway] ( docs/mcp-gateway.md )
112- * [ running an unpublished local image] ( docs/self-configured.md )
160+ #### Manage tool allowlists in a profile
161+
162+ ``` bash
163+ # Enable specific tools (dot notation: <server>.<tool>)
164+ docker mcp profile tools < profile-id> --enable github.create_issue --enable github.list_repos
113165
114- ### Server Management
166+ # Disable specific tools
167+ docker mcp profile tools < profile-id> --disable github.search_code
115168
116- Enable and disable the set of MCP servers that will be available for default clients. The MCP gateway can be configured to expose different sets of servers and tools but enabling and disabling servers here impacts the default gateway configuration.
169+ # Enable/disable all tools for a server
170+ docker mcp profile tools < profile-id> --enable-all github
171+ docker mcp profile tools < profile-id> --disable-all github
172+ ```
173+
174+ ### Catalog Management
175+
176+ Manage the OCI-based catalogs available to the MCP gateway. The [ default catalog] ( https://hub.docker.com/mcp ) is the image ` mcp/docker-mcp-catalog ` .
117177
118178``` bash
119- # List enabled servers
120- docker mcp server ls
179+ # List catalogs
180+ docker mcp catalog ls
181+
182+ # Show a catalog
183+ docker mcp catalog show < oci-reference>
184+
185+ # Create a catalog from server references
186+ docker mcp catalog create myorg/catalog:latest --title " My Catalog" \
187+ --server catalog://mcp/docker-mcp-catalog/github \
188+ --server file://./my-server.yaml
189+
190+ # Create a catalog from an existing profile
191+ docker mcp catalog create myorg/catalog:latest --from-profile dev-tools
192+
193+ # Create a catalog from the community registry
194+ docker mcp catalog create myorg/catalog:latest \
195+ --from-community-registry registry.modelcontextprotocol.io
196+
197+ # Push/pull catalogs to OCI registries
198+ docker mcp catalog push < oci-reference>
199+ docker mcp catalog pull < oci-reference>
200+
201+ # Manage servers within a catalog
202+ docker mcp catalog server ls < oci-reference>
203+ docker mcp catalog server add < oci-reference> --server docker://my-server:latest
204+ docker mcp catalog server remove < oci-reference> github
205+ docker mcp catalog server inspect < oci-reference> < server-name>
206+
207+ # Remove a catalog
208+ docker mcp catalog remove < oci-reference>
209+
210+ # Tag a catalog
211+ docker mcp catalog tag < source> :< tag> < target> :< tag>
212+ ```
213+
214+
215+ More about [ importing from the OSS MCP Community Registry] ( docs/catalog.md#importing-from-the-oss-mcp-community-registry ) .
216+
217+ ### MCP Gateway Operations
121218
122- # Enable one or more servers
123- docker mcp server enable < server-name> [server-name...]
219+ Start up an MCP Gateway. This can be used for one client, or to service multiple clients if using either ` sse ` or ` streaming ` transports.
124220
125- # Disable servers
126- docker mcp server disable < server-name> [server-name...]
221+ ``` bash
222+ # Run the MCP gateway (stdio, using the default profile)
223+ docker mcp gateway run
127224
128- # Get detailed information about a server
129- docker mcp server inspect < server-name >
225+ # Run with a specific profile
226+ docker mcp gateway run --profile dev-tools
130227
131- # Reset (disable all servers )
132- docker mcp server reset
228+ # Run the MCP gateway (streaming )
229+ docker mcp gateway run --port 8080 --transport streaming
133230```
134231
135- ### Configuration Management
232+ If no ` --profile ` flag is provided, the gateway uses the ` default ` profile.
233+
234+ * more about [ the MCP Gateway] ( docs/mcp-gateway.md )
235+ * [ running an unpublished local image] ( docs/self-configured.md )
136236
137- Configure any MCP servers that require custom runtime configuration.
237+ ### Client Connection
238+
239+ Connect AI clients to the MCP gateway.
138240
139241``` bash
140- # Read current configuration
141- docker mcp config read
242+ # List client configurations
243+ docker mcp client ls
142244
143- # Write new configuration
144- docker mcp config write ' <yaml-config> '
245+ # Connect a client to a profile
246+ docker mcp client connect < client-name > --profile < profile-id >
145247
146- # Reset configuration to defaults
147- docker mcp config reset
248+ # Disconnect from a client
249+ docker mcp client disconnect < client-name >
148250```
149251
150252### Secrets and OAuth
@@ -158,21 +260,15 @@ docker mcp secret --help
158260# Handle OAuth flows
159261docker mcp oauth --help
160262
161- # Manage access policies
162- docker mcp policy --help
163-
164263# export any desktop secrets needed by either server1 or server2
165264# (temporary requirement to export secrets for docker cloud runs - this command
166- # will no longer be required once Docker Cloud can access secret stores)
265+ # will no longer be required once Docker Cloud can access secret stores)
167266docker mcp secret export server1 server2
168267```
169268
170269### Tool Management
171270
172271``` bash
173- # Show available commands
174- docker mcp --help
175-
176272# Count available tools
177273docker mcp tools count
178274
@@ -187,19 +283,15 @@ docker mcp tools inspect <tool-name>
187283
188284# Call a tool with arguments
189285docker mcp tools call < tool-name> [arguments...]
286+
287+ # Enable/disable tools for a server in a profile
288+ docker mcp profile tools < profile-id> --enable < server> .< tool>
289+ docker mcp profile tools < profile-id> --disable < server> .< tool>
190290```
191291
192292## Configuration
193293
194- The MCP CLI uses several configuration files:
195-
196- - ** ` docker-mcp.yaml ` ** : Server catalog defining available MCP servers
197- - ** ` registry.yaml ` ** : Registry of enabled servers
198- - ** ` config.yaml ` ** : Configuration per server
199- - ** ` tools.yaml ` ** : Enabled tools per server
200-
201- Configuration files are typically stored in ` ~/.docker/mcp/ ` . This is in this directory that Docker Desktop's
202- MCP Toolkit with store its configuration.
294+ Configuration is stored in a local database. Profiles, catalogs, and server configuration are managed through the ` docker mcp profile ` and ` docker mcp catalog ` commands. Feature flags are stored in ` ~/.docker/config.json ` .
203295
204296### Environment Variables
205297
@@ -216,7 +308,7 @@ Example usage:
216308export CLAUDE_CONFIG_DIR=/path/to/custom/config
217309
218310# Connect MCP Gateway to Claude Code
219- docker mcp client connect claude-code --global
311+ docker mcp client connect claude-code --profile dev-tools -- global
220312
221313# Claude Code will now use /path/to/custom/config/.claude.json
222314```
0 commit comments