Skip to content

Commit 24fd4b9

Browse files
committed
Add back in registry options
1 parent 9de788a commit 24fd4b9

3 files changed

Lines changed: 49 additions & 17 deletions

File tree

cmd/docker-mcp/commands/catalog_next.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ func createCatalogNextCommand() *cobra.Command {
6161
}
6262

6363
flags := cmd.Flags()
64-
flags.StringArrayVar(&opts.Servers, "server", []string{}, "Server to include specified with a URI: docker:// (Docker Image reference), catalog:// (Catalog reference), or file:// (Local file path). Can be specified multiple times.")
64+
flags.StringArrayVar(&opts.Servers, "server", []string{}, "Server to include specified with a URI: https:// (MCP Registry reference) or docker:// (Docker Image reference) or catalog:// (Catalog reference) or file:// (Local file path). Can be specified multiple times.")
6565
flags.StringVar(&opts.FromWorkingSet, "from-profile", "", "Profile ID to create the catalog from")
6666
flags.StringVar(&opts.FromLegacyCatalog, "from-legacy-catalog", "", "Legacy catalog URL to create the catalog from")
6767
flags.StringVar(&opts.Title, "title", "", "Title of the catalog")

cmd/docker-mcp/commands/workingset.go

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -140,6 +140,7 @@ func createWorkingSetCommand(cfg *client.Config) *cobra.Command {
140140
Long: `Create a new profile that groups multiple MCP servers together.
141141
A profile allows you to organize and manage related servers as a single unit.
142142
Profiles are decoupled from catalogs. Servers can be:
143+
- MCP Registry references (e.g. http://registry.modelcontextprotocol.io/v0/servers/312e45a4-2216-4b21-b9a8-0f1a51425073)
143144
- OCI image references with docker:// prefix (e.g., "docker://my-server:latest"). Images must be self-describing.
144145
- Catalog references with catalog:// prefix (e.g., "catalog://mcp/docker-mcp-catalog/github+obsidian").
145146
- Local file references with file:// prefix (e.g., "file://./server.yaml").`,
@@ -149,6 +150,9 @@ Profiles are decoupled from catalogs. Servers can be:
149150
# Create a profile with multiple servers (OCI references)
150151
docker mcp profile create --name my-profile --server docker://my-server:latest --server docker://my-other-server:latest
151152
153+
# Create a profile with MCP Registry references
154+
docker mcp profile create --name my-profile --server http://registry.modelcontextprotocol.io/v0/servers/71de5a2a-6cfb-4250-a196-f93080ecc860
155+
152156
# Connect to clients upon creation
153157
docker mcp profile create --name dev-tools --connect cursor`,
154158
Args: cobra.NoArgs,
@@ -166,7 +170,7 @@ Profiles are decoupled from catalogs. Servers can be:
166170
flags := cmd.Flags()
167171
flags.StringVar(&opts.Name, "name", "", "Name of the profile (required)")
168172
flags.StringVar(&opts.ID, "id", "", "ID of the profile (defaults to a slugified version of the name)")
169-
flags.StringArrayVar(&opts.Servers, "server", []string{}, "Server to include specified with a URI: docker:// (Docker Image reference), catalog:// (Catalog reference), or file:// (Local file path). Can be specified multiple times.")
173+
flags.StringArrayVar(&opts.Servers, "server", []string{}, "Server to include specified with a URI: https:// (MCP Registry reference) or docker:// (Docker Image reference) or catalog:// (Catalog reference) or file:// (Local file path). Can be specified multiple times.")
170174
flags.StringArrayVar(&opts.Connect, "connect", []string{}, fmt.Sprintf("Clients to connect to: mcp-client (can be specified multiple times). Supported clients: %s", client.GetSupportedMCPClients(*cfg)))
171175
_ = cmd.MarkFlagRequired("name")
172176

@@ -388,6 +392,9 @@ func addServerCommand() *cobra.Command {
388392
# Add servers with OCI references
389393
docker mcp profile server add my-profile --server docker://my-server:latest
390394
395+
# Add servers with MCP Registry references
396+
docker mcp profile server add my-profile --server http://registry.modelcontextprotocol.io/v0/servers/71de5a2a-6cfb-4250-a196-f93080ecc860
397+
391398
# Mix server references
392399
docker mcp profile server add dev-tools --server catalog://mcp/docker-mcp-catalog/github+obsidian --server docker://my-server:latest`,
393400
Args: cobra.ExactArgs(1),
@@ -403,7 +410,7 @@ func addServerCommand() *cobra.Command {
403410
}
404411

405412
flags := cmd.Flags()
406-
flags.StringArrayVar(&servers, "server", []string{}, "Server to include specified with a URI: docker:// (Docker Image reference), catalog:// (Catalog reference), or file:// (Local file path). Can be specified multiple times.")
413+
flags.StringArrayVar(&servers, "server", []string{}, "Server to include specified with a URI: https:// (MCP Registry reference) or docker:// (Docker Image reference) or catalog:// (Catalog reference) or file:// (Local file path). Can be specified multiple times.")
407414

408415
return cmd
409416
}

docs/profiles.md

Lines changed: 39 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ A profile is a named collection of MCP servers that can be:
1010
- Used to quickly switch between different server configurations
1111

1212
Profiles are decoupled from catalogs, meaning the servers in a profile can come from:
13+
- **MCP Registry references**: HTTP(S) URLs pointing to servers in the Model Context Protocol registry
1314
- **OCI image references**: Docker images with the `docker://` prefix
1415
- **Catalog references**: Servers from existing catalogs with the `catalog://` prefix
1516
- **Local file references**: Server definitions from local YAML or JSON files with the `file://` prefix (see [Server Entry Specification](./server-entry-spec.md) for file format details)
@@ -51,10 +52,16 @@ docker mcp profile create --name dev-tools \
5152
docker mcp profile create --name catalog-servers \
5253
--server catalog://mcp/docker-mcp-catalog/github+slack
5354

54-
# Mix catalog and OCI references
55+
# Create with MCP Registry references
56+
docker mcp profile create --name registry-servers \
57+
--server https://registry.modelcontextprotocol.io/v0/servers/71de5a2a-6cfb-4250-a196-f93080ecc860
58+
59+
# Mix different methods of specifying servers
5560
docker mcp profile create --name mixed \
56-
--server catalog://mcp/docker-mcp-catalog/github \
61+
--server catalog://mcp/docker-mcp-catalog/dockerhub \
62+
--server https://registry.modelcontextprotocol.io/v0/servers/71de5a2a-6cfb-4250-a196-f93080ecc860 \
5763
--server docker://my-server:latest
64+
--server file://./my-server.yaml
5865

5966
# Create with servers from local files
6067
docker mcp profile create --name local-servers \
@@ -70,10 +77,11 @@ docker mcp profile create --name "My Servers" --id my-servers \
7077
- `--name` is required and serves as the human-readable name
7178
- `--id` is optional; if not provided, it's generated from the name (lowercase, alphanumeric with hyphens)
7279
- `--server` can be specified multiple times to add multiple servers
73-
- Server references must use one of these prefixes:
74-
- `docker://` for OCI images
75-
- `catalog://` for catalog references
76-
- `file://` for local YAML or JSON server definition files
80+
- Server references must be either:
81+
- `docker://` prefix for OCI images
82+
- `http://` or `https://` URLs for MCP Registry references
83+
- `catalog://` prefix for catalog references
84+
- `file://` prefix for local YAML or JSON server definition files
7785

7886
### Adding Servers to a Profile
7987

@@ -89,6 +97,15 @@ docker mcp profile server add dev-tools \
8997
docker mcp profile server add dev-tools \
9098
--server catalog://mcp/docker-mcp-catalog/github+slack
9199

100+
# Add servers with MCP Registry references
101+
docker mcp profile server add dev-tools \
102+
--server https://registry.modelcontextprotocol.io/v0/servers/71de5a2a-6cfb-4250-a196-f93080ecc860
103+
104+
# Mix MCP Registry references and OCI references
105+
docker mcp profile server add dev-tools \
106+
--server https://registry.modelcontextprotocol.io/v0/servers/71de5a2a-6cfb-4250-a196-f93080ecc860 \
107+
--server docker://my-server:latest
108+
92109
# Add servers from local files
93110
docker mcp profile server add dev-tools \
94111
--server file://./my-server.yaml \
@@ -122,9 +139,9 @@ See the [Server Entry Specification](./server-entry-spec.md) for complete file f
122139
- Server references must start with:
123140
- `catalog://` for catalog references. This takes the form of `catalog://<catalog-oci-refence>/<server-1>+<server-2>`
124141
- `docker://` for OCI images
142+
- `http://` or `https://` for MCP Registry URLs
125143
- `file://` for local YAML or JSON server definition files (see [Server Entry Specification](./server-entry-spec.md))
126144
- Catalog servers are referenced by their name within the catalog
127-
- File references should point to either a single server definition or a legacy catalog file with a `registry` map
128145

129146
**Notes:**
130147
- You can add multiple servers in a single command
@@ -493,6 +510,8 @@ name: My Profile
493510
servers:
494511
- type: image
495512
image: mcp/github:latest
513+
- type: registry
514+
source: https://registry.modelcontextprotocol.io/v0/servers/71de5a2a-6cfb-4250-a196-f93080ecc860
496515
config:
497516
key: value
498517
secrets: default
@@ -514,7 +533,11 @@ secrets:
514533
"servers": [
515534
{
516535
"type": "image",
517-
"image": "mcp/github:latest",
536+
"image": "mcp/github:latest"
537+
},
538+
{
539+
"type": "registry",
540+
"source": "https://registry.modelcontextprotocol.io/v0/servers/71de5a2a-6cfb-4250-a196-f93080ecc860",
518541
"config": {
519542
"key": "value"
520543
},
@@ -536,8 +559,9 @@ secrets:
536559
- **id**: Unique identifier for the profile
537560
- **name**: Human-readable name
538561
- **servers**: Array of server definitions
539-
- **type**: Currently only `image` is supported
540-
- **image**: Docker image reference
562+
- **type**: Either `image` or `registry`
563+
- **image**: (For type `image`) Docker image reference
564+
- **source**: (For type `registry`) MCP Registry URL
541565
- **config**: Optional configuration key-value pairs
542566
- **secrets**: Optional reference to a secrets configuration
543567
- **tools**: Optional list of specific tools to enable from this server
@@ -764,10 +788,11 @@ Error: unknown command "profile" for "docker mcp"
764788
Error: invalid server value: myserver
765789
```
766790

767-
**Solution**: Ensure server references use one of these prefixes:
768-
- `docker://` for images
769-
- `catalog://` for catalog references
770-
- `file://` for local server definition files
791+
**Solution**: Ensure server references use either:
792+
- `docker://` prefix for images
793+
- `http://` or `https://` for registry URLs
794+
- `catalog://` prefix for catalog references
795+
- `file://` prefix for local server definition files
771796

772797
### Conflicting Flags
773798

0 commit comments

Comments
 (0)