Skip to content

Commit 925d262

Browse files
authored
Merge branch 'docker:main' into patch-1
2 parents c06c204 + 14932d8 commit 925d262

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

57 files changed

+1123
-608
lines changed

content/manuals/_index.md

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -74,10 +74,6 @@ params:
7474
description: Image analysis and policy evaluation.
7575
icon: /icons/Scout.svg
7676
link: /scout/
77-
- title: Docker for GitHub Copilot
78-
description: Integrate Docker's capabilities with GitHub Copilot.
79-
icon: chat
80-
link: /copilot/
8177
- title: Docker Extensions
8278
description: Customize your Docker Desktop workflow.
8379
icon: extension
@@ -146,4 +142,4 @@ subscription management.
146142

147143
Targeted at IT administrators with help on deploying Docker Desktop at scale with configuration guidance on security related features.
148144

149-
{{< grid items=enterprise >}}
145+
{{< grid items=enterprise >}}

content/manuals/admin/organization/manage-products.md

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ product, including how to set up and configure them, see the following manuals:
1616
- [Docker Build Cloud](../../build-cloud/_index.md)
1717
- [Docker Scout](../../scout/_index.md)
1818
- [Testcontainers Cloud](https://testcontainers.com/cloud/docs/#getting-started)
19+
- [Docker Offload](../../offload/_index.md)
1920

2021
## Manage product access for your organization
2122

@@ -98,6 +99,39 @@ To manage access to Testcontainers Cloud:
9899
select **Account**.
99100
1. Select **Settings**, then **Lock access to Testcontainers Cloud**.
100101

102+
{{< /tab >}}
103+
{{< tab name="Docker Offload" >}}
104+
105+
### Manage Docker Offload access
106+
107+
> [!NOTE]
108+
>
109+
> Docker Offload isn't included in the core Docker subscription plans. To make Docker Offload available, you must [sign
110+
> up](https://www.docker.com/products/docker-offload/) and subscribe.
111+
112+
To manage Docker Offload access for your organization, use [Settings
113+
Management](/manuals/enterprise/security/hardened-desktop/settings-management/_index.md):
114+
115+
1. Sign in to [Docker Home](https://app.docker.com/) as an organization owner.
116+
1. Select **Admin Console** > **Desktop Settings Management**.
117+
1. Configure the **Enable Docker Offload** setting to control whether Docker Offload features are available in Docker
118+
Desktop. You can configure this setting in five states:
119+
- **Always enabled**: Docker Offload is always enabled and users cannot disable it. The Offload
120+
toggle is always visible in Docker Desktop header. Recommended for VDI environments where local Docker execution is
121+
not possible.
122+
- **Enabled**: Docker Offload is enabled by default but users can disable it in Docker Desktop
123+
settings. Suitable for hybrid environments.
124+
- **Disabled**: Docker Offload is disabled by default but users can enable it in Docker Desktop
125+
settings.
126+
- **Always disabled**: Docker Offload is disabled and users cannot enable it. The option is
127+
visible but locked. Use when Docker Offload is not approved for organizational use.
128+
- **User defined**: No enforced default. Users choose whether to enable or disable Docker Offload in their
129+
Docker Desktop settings.
130+
1. Select **Save**.
131+
132+
For more details on Settings Management, see the [Settings
133+
reference](/manuals/enterprise/security/hardened-desktop/settings-management/settings-reference.md#enable-docker-offload).
134+
101135
{{< /tab >}}
102136
{{< /tabs >}}
103137

@@ -110,6 +144,8 @@ To view usage for Docker products:
110144
- Docker Build Cloud: View the **Build minutes** page in [Docker Build Cloud](http://app.docker.com/build).
111145
- Docker Scout: View the [**Repository settings** page](https://scout.docker.com/settings/repos) in Docker Scout.
112146
- Testcontainers Cloud: View the [**Billing** page](https://app.testcontainers.cloud/dashboard/billing) in Testcontainers Cloud.
147+
- Docker Offload: View the **Offload** > **Offload overview** page in [Docker Home](https://app.docker.com/). For more details, see
148+
[Docker Offload usage and billing](/offload/usage/).
113149

114150
If your usage or seat count exceeds your subscription amount, you can
115151
[scale your subscription](../../subscription/scale.md) to meet your needs.

content/manuals/ai/mcp-catalog-and-toolkit/_index.md

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,14 +23,18 @@ grid:
2323
description: Learn about the MCP Toolkit to manage MCP servers and clients
2424
icon: /icons/toolkit.svg
2525
link: /ai/mcp-catalog-and-toolkit/toolkit/
26+
- title: Dynamic MCP
27+
description: Discover and add MCP servers on-demand using natural language
28+
icon: search
29+
link: /ai/mcp-catalog-and-toolkit/dynamic-mcp/
2630
- title: MCP Gateway
2731
description: Learn about the underlying technology that powers the MCP Toolkit
2832
icon: developer_board
29-
link: /ai/mcp-catalog-and-toolkit/toolkit/
33+
link: /ai/mcp-catalog-and-toolkit/mcp-gateway/
3034
- title: Docker Hub MCP server
3135
description: Explore about the Docker Hub server for searching images, managing repositories, and more
3236
icon: device_hub
33-
link: /ai/mcp-catalog-and-toolkit/toolkit/
37+
link: /ai/mcp-catalog-and-toolkit/hub-mcp/
3438
---
3539

3640
{{< summary-bar feature_name="Docker MCP Catalog and Toolkit" >}}
Lines changed: 155 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,155 @@
1+
---
2+
title: Dynamic MCP
3+
linkTitle: Dynamic MCP
4+
description: Discover and add MCP servers on-demand using natural language with Dynamic MCP servers
5+
keywords: dynamic mcps, mcp discovery, mcp-find, mcp-add, code-mode, ai agents, model context protocol
6+
weight: 35
7+
params:
8+
sidebar:
9+
badge:
10+
color: green
11+
text: New
12+
---
13+
14+
Dynamic MCP enables AI agents to discover and add MCP servers on-demand during
15+
a conversation, without manual configuration. Instead of pre-configuring every
16+
MCP server before starting your agent session, clients can search the
17+
[MCP Catalog](/manuals/ai/mcp-catalog-and-toolkit/catalog.md) and add servers
18+
as needed.
19+
20+
This capability is enabled automatically when you connect an MCP client to the
21+
[MCP Toolkit](/manuals/ai/mcp-catalog-and-toolkit/toolkit.md). The gateway
22+
provides a set of primordial tools that agents use to discover and manage
23+
servers during runtime.
24+
25+
{{% experimental %}}
26+
27+
Dynamic MCP is an experimental feature in early development. While you're
28+
welcome to try it out and explore its capabilities, you may encounter
29+
unexpected behavior or limitations. Feedback is welcome via at [GitHub
30+
issues](https://github.com/docker/mcp-gateway/issues) for bug reports and
31+
[GitHub discussions](https://github.com/docker/mcp-gateway/discussions) for
32+
general questions and feature requests.
33+
34+
{{% /experimental %}}
35+
36+
## How it works
37+
38+
When you connect a client to the MCP Gateway, the gateway exposes a small set
39+
of management tools alongside any MCP servers you've already enabled. These
40+
management tools let agents interact with the gateway's configuration:
41+
42+
| Tool | Description |
43+
| ---------------- | ------------------------------------------------------------------------ |
44+
| `mcp-find` | Search for MCP servers in the catalog by name or description |
45+
| `mcp-add` | Add a new MCP server to the current session |
46+
| `mcp-config-set` | Configure settings for an MCP server |
47+
| `mcp-remove` | Remove an MCP server from the session |
48+
| `mcp-exec` | Execute a tool by name that exists in the current session |
49+
| `code-mode` | Create a JavaScript-enabled tool that combines multiple MCP server tools |
50+
51+
With these tools available, an agent can search the catalog, add servers,
52+
handle authentication, and use newly added tools directly without requiring a
53+
restart or manual configuration.
54+
55+
Dynamically added servers and tools are associated with your _current session
56+
only_. When you start a new session, previously added servers are not
57+
automatically included.
58+
59+
## Prerequisites
60+
61+
To use Dynamic MCP, you need:
62+
63+
- Docker Desktop version 4.50 or later, with [MCP Toolkit](/manuals/ai/mcp-catalog-and-toolkit/toolkit.md) enabled
64+
- An LLM application that supports MCP (such as Claude Desktop, Visual Studio Code, or Claude Code)
65+
- Your client configured to connect to the MCP Gateway
66+
67+
See [Get started with Docker MCP Toolkit](/manuals/ai/mcp-catalog-and-toolkit/get-started.md)
68+
for setup instructions.
69+
70+
## Usage
71+
72+
Dynamic MCP is enabled automatically when you use the MCP Toolkit. Your
73+
connected clients can now use `mcp-find`, `mcp-add`, and other management tools
74+
during conversations.
75+
76+
To see Dynamic MCP in action, connect your AI client to the Docker MCP Toolkit
77+
and try this prompt:
78+
79+
```plaintext
80+
What MCP servers can I use for working with SQL databases?
81+
```
82+
83+
Given this prompt, your agent will use the `mcp-find` tool provided by MCP
84+
Toolkit to search for SQL-related servers in the [MCP Catalog](./catalog.md).
85+
86+
And to add a server to a session, simply write a prompt and the MCP Toolkit
87+
takes care of installing and running the server:
88+
89+
```plaintext
90+
Add the postgres mcp server
91+
```
92+
93+
## Tool composition with code mode
94+
95+
The `code-mode` tool is available as an experimental capability for creating
96+
custom JavaScript functions that combine multiple MCP server tools. The
97+
intended use case is to enable workflows that coordinate multiple services
98+
in a single operation.
99+
100+
> **Note**
101+
>
102+
> Code mode is in early development and is not yet reliable for general use.
103+
> The documentation intentionally omits usage examples at this time.
104+
>
105+
> The core Dynamic MCP capabilities (`mcp-find`, `mcp-add`, `mcp-config-set`,
106+
> `mcp-remove`) work as documented and are the recommended focus for current
107+
> use.
108+
109+
The architecture works as follows:
110+
111+
1. The agent calls `code-mode` with a list of server names and a tool name
112+
2. The gateway creates a sandbox with access to those servers' tools
113+
3. A new tool is registered in the current session with the specified name
114+
4. The agent calls the newly created tool
115+
5. The code executes in the sandbox with access to the specified tools
116+
6. Results are returned to the agent
117+
118+
The sandbox can only interact with the outside world through MCP tools,
119+
which are already running in isolated containers with restricted privileges.
120+
121+
## Security considerations
122+
123+
Dynamic MCP maintains the same security model as static MCP server
124+
configuration in MCP Toolkit:
125+
126+
- All servers in the MCP Catalog are built, signed, and maintained by Docker
127+
- Servers run in isolated containers with restricted resources
128+
- Code mode runs agent-written JavaScript in an isolated sandbox that can only
129+
interact through MCP tools
130+
- Credentials are managed by the gateway and injected securely into containers
131+
132+
The key difference with dynamic capabilities is that agents can add new tools
133+
during runtime.
134+
135+
## Disabling Dynamic MCP
136+
137+
Dynamic MCP is enabled by default in the MCP Toolkit. If you prefer to use only
138+
statically configured MCP servers, you can disable the dynamic tools feature:
139+
140+
```console
141+
$ docker mcp feature disable dynamic-tools
142+
```
143+
144+
To re-enable the feature later:
145+
146+
```console
147+
$ docker mcp feature enable dynamic-tools
148+
```
149+
150+
After changing this setting, you may need to restart any connected MCP clients.
151+
152+
## Further reading
153+
154+
Check out the [Dynamic MCP servers with Docker](https://docker.com/blog) blog
155+
post for more examples and inspiration on how you can use dynamic tools.

0 commit comments

Comments
 (0)