MCP: MCP Toolkit in Docker Desktop (#22673)

Docs for the new GUI for the MCP Toolkit.


https://deploy-preview-22673--docsdocker.netlify.app/ai/mcp-catalog-and-toolkit/
This commit is contained in:
Arthur 2025-06-04 15:49:58 +02:00 committed by GitHub
parent a1f46e6192
commit fce604bc19
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
13 changed files with 140 additions and 164 deletions

View File

Before

Width:  |  Height:  |  Size: 4.8 KiB

After

Width:  |  Height:  |  Size: 4.8 KiB

View File

@ -42,7 +42,7 @@ params:
link: /model-runner/
- title: MCP Catalog and Toolkit
description: Augment your AI workflow with MCP servers.
icon: /assets/icons/toolbox.svg
icon: /icons/toolkit.svg
link: /ai/mcp-catalog-and-toolkit/
products:
- title: Docker Desktop

View File

@ -11,10 +11,6 @@ grid:
description: Configure MCP tools on a per-project basis.
icon: manufacturing
link: /ai/gordon/mcp/yaml
- title: MCP Server
description: Use Gordon as an MCP server
icon: dns
link: /ai/gordon/mcp/gordon-mcp-server/
aliases:
- /desktop/features/gordon/mcp/
---
@ -33,4 +29,4 @@ external APIs, etc.
Gordon, along with other MCP clients like Claude Desktop or Cursor, can interact
with MCP servers running as containers.
{{< grid >}}
{{< grid >}}

View File

@ -1,45 +0,0 @@
---
title: Gordon as an MCP server
description: How to use Gordon as an MCP server
keywords: ai, mcp, gordon
aliases:
- /desktop/features/gordon/mcp/gordon-mcp-server/
---
In addition to functioning as an MCP client, Gordon can also act as an MCP
server. This means that all the tools configured in the toolbox section of
Gordon can be exposed to another MCP client like Claude Desktop, Cursor and
others.
To use Gordons built-in tools in other MCP clients, configure your client of
choice to use the `docker ai mcpserver` command. This allows Gordon to serve its
built-in tools via the MCP protocol for various clients.
For example, to enable Gordons tools in Claude Desktop, add the following
configuration to the Claude configuration file:
```json
{
"mcpServers": {
"gordon": {
"command": "docker",
"args": ["ai", "mcpserver"]
}
}
}
```
This setup ensures that Claude Desktop can communicate with Gordon as an MCP
server, leveraging its built-in tools. You can follow the [Claude Desktop
documentation](https://modelcontextprotocol.io/quickstart/user) to explore
further.
### Tool permissions and security
These tools operate with the same permissions as the user running the
application.
Any potentially destructive tool call, changing files, deleting images or
stopping containers will ask for your confirmation before proceeding.
![Gordon page with the delete confirmation question](../images/delete.webp)

View File

@ -5,10 +5,10 @@ params:
sidebar:
group: AI
badge:
color: green
text: New
color: blue
text: Beta
weight: 30
description: Learn about Docker's MCP catalog on Docker Hub and how to use it with the MCP Toolkit extension
description: Learn about Docker's MCP catalog on Docker Hub
keywords: Docker, ai, mcp servers, ai agents, extension, docker desktop, llm, docker hub
grid:
- title: MCP Catalog
@ -16,8 +16,8 @@ grid:
icon: hub
link: /ai/mcp-catalog-and-toolkit/catalog/
- title: MCP Toolkit
description: Learn about how to use the MCP Toolkit extension on Docker Desktop
icon: manufacturing
description: Learn about the MCP toolkit to manage MCP servers and clients
icon: /icons/toolkit.svg
link: /ai/mcp-catalog-and-toolkit/toolkit/
---
@ -25,19 +25,28 @@ The Model Context Protocol (MCP) is a modern standard that transforms AI agents
As agents move into production, MCP solves common integration challenges — interoperability, reliability, and security — by providing a consistent, decoupled, and scalable interface between agents and tools. Just as containers redefined software deployment, MCP is reshaping how AI systems interact with the world.
> **Example**
>
> In simple terms, an MCP server is a way for an LLM to interact with an external system.
>
> For example:
> If you ask a model to create a meeting, it needs to communicate with your calendar app to do that.
> An MCP server for your calendar app provides _tools_ that perform atomic actions, such as:
> "getting the details of a meeting" or "creating a new meeting".
## What is Docker MCP Catalog and Toolkit?
Docker MCP Catalog and Toolkit is a comprehensive solution for securely building, sharing, and running MCP tools. It simplifies the developer experience across four key areas:
Docker MCP Catalog and Toolkit is a comprehensive solution for securely building, sharing, and running MCP tools. It simplifies the developer experience across these key areas:
- Discovery: A central catalog with verified, versioned tools
- Credential Management: OAuth-based and secure by default
- Execution: Tools run in isolated, containerized environments
- Portability: Use MCP tools across Claude, Cursor, VS Code, and more — no code changes needed
With Docker Hub and the Docker Desktop extension, you can:
With Docker Hub and the MCP Toolkit, you can:
- Launch MCP servers in seconds
- Add tools via CLI or GUI
- Rely on Dockers pull-based infrastructure for trusted delivery
- Rely on Docker's pull-based infrastructure for trusted delivery
{{< grid >}}

View File

@ -4,30 +4,32 @@ description: Learn about the benefits of the MCP Catalog, how you can use it, an
keywords: docker hub, mcp, mcp servers, ai agents, calatog, docker
---
The [Docker MCP Catalog](https://hub.docker.com/catalogs/mcp) is a centralized, trusted registry for discovering, sharing, and running MCP-compatible tools. Seamlessly integrated into Docker Hub, it offers verified, versioned, and curated MCP servers packaged as Docker images.
The [Docker MCP Catalog](https://hub.docker.com/catalogs/mcp) is a centralized, trusted registry for discovering, sharing, and running MCP-compatible tools. Seamlessly integrated into Docker Hub, it offers verified, versioned, and curated MCP servers packaged as Docker images. The catalog is also available in Docker Desktop.
The catalog also solves common MCP server challenges:
The catalog solves common MCP server challenges:
- Environment conflicts: Tools often need specific runtimes that may clash with existing setups.
- Lack of isolation: Traditional setups risk exposing the host system.
- Setup complexity: Manual installation and configuration result in slow adoption.
- Inconsistency across platforms: Tools may behave unpredictably on different OSes.
With Docker, each MCP server runs as a self-contained container so it is portable, isolated, and consistent. You can launch tools instantly using Docker CLI or Docker Desktop, without worrying about dependencies or compatibility.
With Docker, each MCP server runs as a self-contained container so it is
portable, isolated, and consistent. You can launch tools instantly using Docker
CLI or Docker Desktop, without worrying about dependencies or compatibility.
## Key features
- Over 100 verified MCP servers in one place
- Publisher verification and versioned releases
- Pull-based distribution using Dockers infrastructure
- Pull-based distribution using Docker's infrastructure
- Tools provided by partners such as New Relic, Stripe, Grafana, and more
## How it works
Each tool in the MCP Catalog is packaged as a Docker image with metadata. Developers can:
Each tool in the MCP Catalog is packaged as a Docker image with metadata:
- Discover tools via Docker Hub under the mcp/ namespace.
- Connect tools to their preferred agents with simple configuration through the [MCP Toolkit](toolkit.md)
- Discover tools via Docker Hub under the `mcp/` namespace.
- Connect tools to their preferred agents with simple configuration through the [MCP Toolkit](toolkit.md).
- Pull and run tools using Docker Desktop or the CLI.
Each catalog entry provides:
@ -36,59 +38,10 @@ Each catalog entry provides:
- Version history
- Example configuration for agent integration
## Example: How to use an MCP server from Docker Hub
## Use an MCP server from the catalog
The following example uses the Puppeteer MCP server to take a screenshot of a website and invert the colors using Claude Desktop.
{{< tabs >}}
{{< tab name="Using the MCP Toolkit (Recommended)" >}}
1. Make sure you have [installed the Docker Desktop Docker MCP Toolkit extension](toolkit.md).
2. From the extension, search for the Puppeteer MCP server in the **MCP Servers** tab, and toggle it on to enable.
3. From the **MCP Clients** tab, select the **Connect** button for Claude Desktop.
4. Within Claude Desktop, submit the following prompt using the Sonnet 3.5 model:
```text
Take a screenshot of docs.docker.com and then invert the colors
```
{{< /tab >}}
{{< tab name="Manually set it up" >}}
1. Update the `claude_desktop_config.json` file to include the following configuration:
```json
{
"mcpServers": {
"puppeteer": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"DOCKER_CONTAINER",
"mcp/puppeteer"
],
"env": {
"DOCKER_CONTAINER": "true"
}
}
}
}
```
2. Restart Claude Desktop to apply the changed config file.
3. Submit the following prompt using the Sonnet 3.5 model:
```text
Take a screenshot of docs.docker.com and then invert the colors
```
Once you've given your consent to use the new tools, Claude spins up the Puppeteer MCP server inside a container, navigates to the target URL, captures and modify the page, and returns the screenshot.
{{< /tab >}}
{{< /tabs >}}
To use an MCP server from the catalog, see [MCP toolkit](toolkit.md).
## Contribute an MCP server to the catalog
If you would like to add you MCP server to the Docker MCP Catalog, fill out the Docker [MCP submission form](https://www.docker.com/products/mcp-catalog-and-toolkit/#get_updates).
To add an MCP server to the Docker MCP catalog, fill out the Docker [MCP submission form](https://www.docker.com/products/mcp-catalog-and-toolkit/#get_updates).

View File

@ -1,53 +1,125 @@
---
title: MCP Toolkit
description:
keywords:
description: Use the MCP Toolkit to set up MCP servers and MCP clients.
keywords: Docker MCP Toolkit, MCP server, MCP client, AI agents
aliases:
- /desktop/features/gordon/mcp/gordon-mcp-server/
- /ai/gordon/mcp/gordon-mcp-server/
---
The Docker MCP Toolkit is a Docker Desktop extension local that enables seamless setup, management, and execution of containerized MCP servers and their connections to AI agents. It removes the friction from tool usage by offering secure defaults, one-click setup, and support for a growing ecosystem of LLM-based clients. It is the fastest path from MCP tool discovery to local execution.
The Docker MCP Toolkit enables seamless setup, management, and execution of containerized MCP servers and their connections to AI agents. It removes the friction from tool usage by offering secure defaults, one-click setup, and support for a growing ecosystem of LLM-based clients. It is the fastest path from MCP tool discovery to local execution.
## Key features
- Cross-LLM compatibility: Works out of the box with Claude Desktop, Cursor, Continue.dev, and [Gordon](/manuals/ai/gordon/_index.md).
- Integrated tool discovery: Browse and launch MCP servers that are available in the Docker MCP Catalog, directly from Docker Desktop.
- No manual setup: Skip dependency management, runtime setup, and manual server configuration.
- Cross-LLM compatibility: Instantly works with Claude Desktop, Cursor, Continue.dev, and [Gordon](/manuals/ai/gordon/_index.md).
- Integrated tool discovery: Browse and launch MCP servers from the Docker MCP Catalog directly in Docker Desktop.
- Zero manual setup: No dependency management, runtime configuration, or server setup required.
- Functions as both an MCP server aggregator and a gateway for clients to access installed MCP servers.
## How it works
![Visualisation of the MCP toolkit](/assets/images/mcp_servers.png)
The **MCP Servers** tab lists all available servers from the Docker MCP Catalog. Each entry includes:
## Security
- Tool name and description
- Partner/publisher
- Number of callable tools and what they are
The Docker MCP Toolkit combines passive and active measures to reduce attack
surfaces and ensure safe runtime behavior.
To enable an MCP server, simply use the toggle switch to toggle it on.
### Passive security
> [!NOTE]
>
> Some MCP servers requires secrets or tokens to be configured before it can be enabled. Instructions on how to do this can be found on each MCP servers' repository.
- Image signing and attestation: All MCP server images under `mcp/` in the [catalog](catalog.md)
are built by Docker and digitally
signed to verify their source and integrity. Each image includes a Software
Bill of Materials (SBOM) for full transparency.
The **MCP Clients** tab lets you connect your enabled MCP servers to supported agents. Connection is as simple as selecting **Connect**, so you can switch between LLM providers without altering your MCP server integrations or security configurations.
### Active security
## Installation
Security at runtime is enforced through resource and access limitations:
To install the Docker MCP Toolkit extension:
- CPU allocation: MCP tools are run in their own container. They are
restricted to 1 CPU, limiting the impact of potential misuse of computing
resources.
1. In the Docker Desktop Dashboard, select the **Extensions** view, and then select **Manage**.
2. Select the **Browse** tab and search for **Docker MCP Toolkit**.
3. On the **Docker MCP Toolkit** result, select install.
- Memory allocation: Containers for MCP tools are limited to 2 GB.
The extension then appears under the **My extensions** tab.
- Filesystem access: By default, MCP Servers have no access to the host filesystem.
The user explicitly selects the servers that will be granted file mounts.
### Example
- Interception of tool requests: Requests to and from tools that contain sensitive
information such as secrets are blocked.
The following example assumes you have already installed and set up Claude Desktop.
## Enable Docker MCP Toolkit
1. In the Docker MCP Toolkit extension, search for the Puppeteer MCP server in the **MCP Servers** tab, and toggle it on to enable.
2. From the **MCP Clients** tab, select the **Connect** button for Claude Desktop.
3. Within Claude Desktop, submit the following prompt using the Sonnet 3.5 model:
1. Open the Docker Desktop settings and select **Beta features**.
2. Select **Enable Docker MCP Toolkit**.
3. Select **Apply & restart**.
>[!NOTE]
>If you have the MCP Toolkit _extension_ installed, you can uninstall it.
## Install an MCP server
To install an MCP server:
1. In Docker Desktop, select **MCP Toolkit** and select the **Catalog** tab.
When you select a server you can see the following
information:
- Tool name and description
- Partner/publisher
- The list of callable tools the server provides.
2. Find the MCP server of your choice and select the **Plus** icon.
3. Optional: Some servers require extra configuration. To configure them, select
the **Config** tab and follow the instructions available on the repository of the provider of the MCP server.
> [!TIP]
> By default, the Gordon [client](#install-an-mcp-client) is enabled,
> which means Gordon can automatically interact with your MCP servers.
To learn more about the MCP server catalog, see [Catalog](catalog.md).
### Example: Use the GitHub MCP server
Imagine you want to enable Ask Gordon to interact with your GitHub account:
1. From the **MCP Toolkit** menu, select the **Catalog** tab and find
the **GitHub Official** server and add it.
2. In the server's **Config** tab, insert your token generated from
your [GitHub account](https://github.com/settings/personal-access-tokens).
3. In the **Clients** tab, ensure Gordon is connected.
4. From the **Ask Gordon** menu, you can now send requests related to your
GitHub account, in accordance to the tools provided by the GitHub MCP server. To test it, ask Gordon:
```text
What's my GitHub handle?
```
Make sure to allow Gordon to interact with GitHub by selecting **Always allow** in Gordon's answer.
## Install an MCP client
When you have installed MCP servers, you can add clients to the MCP Toolkit. These clients
can interact with the installed MCP servers, turning the MCP Toolkit into a gateway.
To install a client:
1. In Docker Desktop, select **MCP Toolkit** and select the **Clients** tab.
2. Find the client of your choice and select **Connect**.
Your client can now interact with the MCP Toolkit.
### Example: Use Claude Desktop as a client
Imagine you have Claude Desktop installed, and you want to use the GitHub MCP server,
and the Puppeteer MCP server, you do not have to install the servers in Claude Desktop.
You can simply install these 2 MCP servers in the MCP Toolkit,
and add Claude Desktop as a client:
1. From the **MCP Toolkit** menu, select the **Catalog** tab and find the **Puppeteer** server and add it.
2. Repeat for the **GitHub** server.
3. From the **Clients** tab, select **Connect** next to **Claude Desktop**. Restart
Claude Desktop if it's running, and it can now access all the servers in the MCP Toolkit.
4. Within Claude Desktop, run a test by submitting the following prompt using the Sonnet 3.5 model:
```text
Take a screenshot of docs.docker.com and then invert the colors
```
Once you've given your consent to use the new tools, Claude spins up the Puppeteer MCP server inside a container, navigates to the target URL, captures and modify the page, and returns the screenshot.

View File

@ -312,11 +312,12 @@ For more information, see [Networking](/manuals/desktop/features/networking.md#n
### Features in development
|Parameter|OS|Description|Version|
|:-------------------------------|---|:-------------------------------|---|
| `allowExperimentalFeatures`| | If `value` is set to `false`, experimental features are disabled.| |
| `allowBetaFeatures`| | If `value` is set to `false`, beta features are disabled.| |
| `enableDockerAI` | | If `value` is set to `false`, Docker AI (Ask Gordon) features are disabled. | |
| Parameter | OS | Description | Version |
|:----------------------------|----|:--------------------------------------------------------------------------------------------------------------------------------------------------------------|---------|
| `allowExperimentalFeatures` | | If `value` is set to `true`, experimental features are enabled. | |
| `allowBetaFeatures` | | If `value` is set to `true`, beta features are enabled. | |
| `enableDockerAI` | | If `allowBetaFeatures` is true, setting `enableDockerAI` to `true` enables [Docker AI (Ask Gordon)](/manuals/ai/gordon/_index.md). | |
| `enableDockerMCPToolkit` | | If `allowBetaFeatures` is true, setting `enableDockerMCPToolkit` to `true` enables the [MCP toolkit feature](/manuals/ai/mcp-catalog-and-toolkit/toolkit.md). | |
### Enhanced Container Isolation

View File

@ -79,7 +79,6 @@
"Mac-with-Apple-silicon",
"Mac-with-Intel-chip",
"Manually-create-assets",
"Manually-set-it-up",
"NetworkManager",
"Node",
"Non-compliant",
@ -115,7 +114,6 @@
"Use-OpenAI",
"Using-the-CLI",
"Using-the-GUI",
"Using-the-MCP-Toolkit-Recommended",
"VS-Code",
"Vue",
"WSL-2-backend-Arm-Early-Access",

View File

@ -38,7 +38,7 @@
x-show="zoom"
@click="zoom = false"
x-transition.opacity.duration.250ms
class="fixed inset-0 z-20 flex items-center justify-center bg-black/70 p-6"
class="fixed inset-0 z-20 flex items-center justify-center bg-black/100 p-6"
>
<button class="icon-svg fixed top-6 right-8 z-30 text-white">
{{ partialCached "icon" "close" "close" }}

View File

@ -2,9 +2,5 @@
{{- with resources.Get $path }}
{{ .Content | safeHTML }}
{{- else }}
{{- if in $path "toolbox.svg" }}
{{/* Temporary empty branch */}}
{{- else }}
{{- errorf "The 'svg' partial was unable to find %s" $path }}
{{- end }}
{{- errorf "The 'svg' partial was unable to find %s" $path }}
{{- end }}

View File

@ -1,4 +0,0 @@
<svg width="20" height="18" viewBox="0 0 20 18" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M2.99664 3.86884C2.66197 3.67455 2.54731 3.24425 2.74052 2.90773L4.05323 0.621471C4.21089 0.346882 4.0471 0 3.73178 0C1.67077 0 0 1.68003 0 3.75244C0 5.05867 0.663747 6.20902 1.6706 6.88106C1.88987 7.02742 2.04082 7.26509 2.04082 7.52974V9.5242C0.836426 10.08 0 11.3034 0 12.7231V14.4821C0 16.425 1.56635 18 3.49854 18H16.5015C18.4336 18 20 16.425 20 14.4821V12.7231C20 10.9058 18.6296 9.41033 16.8712 9.22462L16.8697 7.05588C16.8695 6.8004 16.6571 6.57979 16.4032 6.57139L14.0554 6.49368C13.7979 6.48516 13.5893 6.68826 13.5895 6.94731L13.591 9.20521H5.42274V7.52974C5.42274 7.26509 5.57368 7.02742 5.79296 6.88106C6.79981 6.20902 7.46356 5.05867 7.46356 3.75244C7.46356 3.25607 7.36771 2.78221 7.19361 2.34856C7.00782 1.88575 6.40534 1.91906 6.15717 2.35129L5.06339 4.25626C4.87017 4.59278 4.44224 4.70808 4.10757 4.51379L2.99664 3.86884ZM10.4811 11.9316C10.2708 11.5089 9.67085 11.5089 9.46062 11.9316C9.3182 12.2181 9.24699 12.3613 9.15186 12.4854C9.06744 12.5955 8.96927 12.6942 8.85975 12.7791C8.73635 12.8747 8.59394 12.9463 8.30914 13.0895C7.88869 13.3009 7.88863 13.9043 8.30908 14.1157C8.59392 14.2589 8.73634 14.3305 8.85975 14.4261C8.96927 14.511 9.06744 14.6097 9.15186 14.7199C9.24699 14.8439 9.3182 14.9872 9.46062 15.2736C9.67084 15.6964 10.2708 15.6964 10.4811 15.2736C10.6235 14.9872 10.6947 14.8439 10.7898 14.7199C10.8742 14.6097 10.9724 14.511 11.0819 14.4261C11.2054 14.3305 11.3478 14.2589 11.6326 14.1157C12.053 13.9043 12.0531 13.3009 11.6326 13.0896C11.3478 12.9464 11.2053 12.8747 11.0819 12.7791C10.9724 12.6942 10.8742 12.5955 10.7898 12.4854C10.6947 12.3613 10.6235 12.218 10.4811 11.9316Z" fill="#6C7E9D"/>
<path d="M12.747 0.352806L15.8774 0.456415C16.1444 0.465255 16.2902 0.695161 16.4238 0.905985L16.4239 0.906077C16.4485 0.944879 16.4727 0.983033 16.4971 1.01904C16.5507 0.977799 16.6076 0.92709 16.6675 0.873745C16.8635 0.699266 17.0911 0.496583 17.3353 0.504665L19.0077 0.560025C19.16 0.565066 19.3028 0.644639 19.3901 0.773154L19.9123 1.54198C19.967 1.62255 19.9964 1.71727 19.9965 1.81333L19.9978 3.8175C19.9979 3.91356 19.9686 4.00634 19.914 4.08329L19.3928 4.81758C19.3057 4.94033 19.163 5.01045 19.0107 5.00541L17.3383 4.95006C17.1676 4.94441 17.0435 4.83815 16.9194 4.73184L16.9194 4.73178C16.9023 4.71718 16.8853 4.70258 16.8681 4.68823L16.8685 5.17965C16.8686 5.4387 16.66 5.6418 16.4025 5.63328L14.0548 5.55557C13.737 5.54505 13.5884 5.26822 13.5882 4.98596L13.0193 4.23731L12.3888 4.69243C12.3082 4.75066 12.21 4.78032 12.1092 4.77699L9.61909 4.69457C9.2538 4.68248 9.02826 4.25157 9.23069 3.95249C9.37539 3.70808 9.51264 3.45635 9.65041 3.20368C9.88151 2.77982 10.1141 2.35328 10.3856 1.95429C10.6584 1.55352 10.9829 1.15384 11.3624 0.854847C11.7439 0.554318 12.2081 0.334968 12.747 0.352806Z" fill="#6C7E9D"/>
</svg>

Before

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 49 KiB