diff --git a/assets/icons/toolbox.svg b/assets/icons/toolkit.svg similarity index 100% rename from assets/icons/toolbox.svg rename to assets/icons/toolkit.svg diff --git a/content/manuals/_index.md b/content/manuals/_index.md index 16007f912b4b..f90b12bc4887 100644 --- a/content/manuals/_index.md +++ b/content/manuals/_index.md @@ -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 diff --git a/content/manuals/ai/gordon/mcp/_index.md b/content/manuals/ai/gordon/mcp/_index.md index af49c24ed450..ebbf14f51c62 100644 --- a/content/manuals/ai/gordon/mcp/_index.md +++ b/content/manuals/ai/gordon/mcp/_index.md @@ -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 >}} \ No newline at end of file +{{< grid >}} diff --git a/content/manuals/ai/gordon/mcp/gordon-mcp-server.md b/content/manuals/ai/gordon/mcp/gordon-mcp-server.md deleted file mode 100644 index 4b0577abb384..000000000000 --- a/content/manuals/ai/gordon/mcp/gordon-mcp-server.md +++ /dev/null @@ -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 Gordon’s 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 Gordon’s 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) diff --git a/content/manuals/ai/mcp-catalog-and-toolkit/_index.md b/content/manuals/ai/mcp-catalog-and-toolkit/_index.md index ef550dacb32f..c91713b27fc5 100644 --- a/content/manuals/ai/mcp-catalog-and-toolkit/_index.md +++ b/content/manuals/ai/mcp-catalog-and-toolkit/_index.md @@ -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 Docker’s pull-based infrastructure for trusted delivery +- Rely on Docker's pull-based infrastructure for trusted delivery {{< grid >}} diff --git a/content/manuals/ai/mcp-catalog-and-toolkit/catalog.md b/content/manuals/ai/mcp-catalog-and-toolkit/catalog.md index 388f3925d707..96d3b6fb233d 100644 --- a/content/manuals/ai/mcp-catalog-and-toolkit/catalog.md +++ b/content/manuals/ai/mcp-catalog-and-toolkit/catalog.md @@ -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 Docker’s 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). \ No newline at end of file +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). diff --git a/content/manuals/ai/mcp-catalog-and-toolkit/toolkit.md b/content/manuals/ai/mcp-catalog-and-toolkit/toolkit.md index 5fbc0208f45b..0fcb34ee3a33 100644 --- a/content/manuals/ai/mcp-catalog-and-toolkit/toolkit.md +++ b/content/manuals/ai/mcp-catalog-and-toolkit/toolkit.md @@ -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 - Take a screenshot of docs.docker.com and then invert the colors + What's my GitHub handle? ``` -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. + 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 + ``` diff --git a/content/manuals/security/for-admins/hardened-desktop/settings-management/configure-json-file.md b/content/manuals/security/for-admins/hardened-desktop/settings-management/configure-json-file.md index 28758eca5db1..447e3c0e4749 100644 --- a/content/manuals/security/for-admins/hardened-desktop/settings-management/configure-json-file.md +++ b/content/manuals/security/for-admins/hardened-desktop/settings-management/configure-json-file.md @@ -303,11 +303,12 @@ quit and reopened. ### 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 diff --git a/hugo_stats.json b/hugo_stats.json index aa5f14ad77d1..7df8789c1c62 100644 --- a/hugo_stats.json +++ b/hugo_stats.json @@ -78,7 +78,6 @@ "Mac-with-Apple-silicon", "Mac-with-Intel-chip", "Manually-create-assets", - "Manually-set-it-up", "NetworkManager", "Node", "Non-compliant", @@ -112,7 +111,6 @@ "Use-OpenAI", "Using-the-CLI", "Using-the-GUI", - "Using-the-MCP-Toolkit-Recommended", "VS-Code", "Vue", "WSL-2-backend-Arm-Early-Access", diff --git a/layouts/_default/_markup/render-image.html b/layouts/_default/_markup/render-image.html index d915d3a8082a..92b76d42c9e0 100644 --- a/layouts/_default/_markup/render-image.html +++ b/layouts/_default/_markup/render-image.html @@ -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" >