diff --git a/content/manuals/ai/mcp-catalog-and-toolkit/_index.md b/content/manuals/ai/mcp-catalog-and-toolkit/_index.md index c1ea01b0ce..2e24d223bb 100644 --- a/content/manuals/ai/mcp-catalog-and-toolkit/_index.md +++ b/content/manuals/ai/mcp-catalog-and-toolkit/_index.md @@ -11,6 +11,10 @@ weight: 30 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: Get started + description: Learn how to quickly install and use the MCP Toolkit to set up servers and clients. + icon: explore + link: /ai/mcp-catalog-and-toolkit/get-started/ - title: MCP Catalog description: Learn about the benefits of the MCP Catalog, how you can use it, and how you can contribute icon: hub @@ -23,10 +27,13 @@ grid: {{< summary-bar feature_name="Docker MCP Catalog and Toolkit" >}} -Docker MCP Catalog and Toolkit is a solution for securely building, sharing, and -running MCP tools. +[Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) is +an open protocol that standardizes how applications provide context and +additional functionality to large language models. MCP functions as a +client-server protocol, where the client, for example an application such as [Gordon](/manuals/ai/gordon/_index.md) or Claude Desktop, sends requests, and the server processes those requests to deliver the necessary context to the AI. -It simplifies the developer experience across these areas: +Docker MCP Catalog and Toolkit is a solution for securely building, sharing, and +running MCP tools. It simplifies the developer experience across the following areas: - Discovery: A central catalog with verified, versioned tools. - Credential management: OAuth-based and secure by default. @@ -44,7 +51,7 @@ With Docker Hub and the MCP Toolkit, you can: ## MCP servers -MCP servers are systems that use the [Model Context Protocol](https://www.anthropic.com/news/model-context-protocol) (MCP) to help manage +MCP servers are systems that use the [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) to help manage and run AI or machine learning models more efficiently. MCP allows different parts of a system, like the model, data, and runtime environment, to communicate in a standardized way. You can see them as diff --git a/content/manuals/ai/mcp-catalog-and-toolkit/catalog.md b/content/manuals/ai/mcp-catalog-and-toolkit/catalog.md index da10ceb734..4b552e7b04 100644 --- a/content/manuals/ai/mcp-catalog-and-toolkit/catalog.md +++ b/content/manuals/ai/mcp-catalog-and-toolkit/catalog.md @@ -3,7 +3,7 @@ title: Docker MCP Catalog linkTitle: MCP Catalog description: Learn about the benefits of the MCP Catalog, how you can use it, and how you can contribute keywords: docker hub, mcp, mcp servers, ai agents, catalog, docker -weight: 10 +weight: 20 --- {{< summary-bar feature_name="Docker MCP Catalog" >}} diff --git a/content/manuals/ai/mcp-catalog-and-toolkit/get-started.md b/content/manuals/ai/mcp-catalog-and-toolkit/get-started.md new file mode 100644 index 0000000000..a070dce55e --- /dev/null +++ b/content/manuals/ai/mcp-catalog-and-toolkit/get-started.md @@ -0,0 +1,135 @@ +--- +title: Get started with Docker MCP Toolkit +linkTitle: Get started +description: Learn how to quickly install and use the MCP Toolkit to set up servers and clients. +keywords: Docker MCP Toolkit, MCP server, MCP client, AI agents +weight: 10 +--- + +{{< summary-bar feature_name="Docker MCP Toolkit" >}} + +Docker Model Context Protocol (MCP) Toolkit makes it easy to set up, manage, and run containerized MCP servers, and connect them to AI agents. It provides secure defaults, one-click setup, and support for a growing ecosystem of LLM-based clients. This page shows you how to get started quickly with the Docker MCP Toolkit. + +## Requirements + +Before you begin, make sure you meet the following requirements to get started with Docker MCP Toolkit. + +### Download and install Docker Desktop + +- Install [Docker Desktop version 4.42.0](/manuals/desktop/release-notes.md#4420) and later. +- To try the MCP Toolkit Learning center walkthrough, you must install [Docker Desktop version 4.46.0](/manuals/desktop/release-notes.md#4460) and later. + +### Enable Docker MCP Toolkit + +1. Open the Docker Desktop settings and select **Beta features**. +2. Select **Enable Docker MCP Toolkit**. +3. Select **Apply**. + +There are multiple ways to get started with Docker MCP Toolkit. You can: +- Try the [Learning center](#learning-center) walkthrough in Docker Desktop, available in [Docker Desktop version 4.46.0](/manuals/desktop/release-notes.md#4460) and later. +- Alternatively, follow the step-by-step instructions on this page to use Docker Desktop or the CLI to [Install an MCP server](#install-an-mcp-server), [add a client, and test your setup](#install-an-mcp-client-and-test-your-setup) with example prompts. + +## Learning center + +The **Learning center** in Docker Desktop provides walkthroughs and resources to help you get started with Docker products and features. + +On the **MCP Toolkit** page, Docker Desktop shows the **Get started** walkthrough that guides you through installing an MCP server, connecting a client, and testing your setup. + +## Install an MCP server + +{{< tabs group="release" >}} +{{< tab name="From Docker Desktop">}} + +1. In Docker Desktop, select **MCP Toolkit** and select the **Catalog** tab. +2. Search for the **GitHub Official** server from the catalog and then select the plus icon to add it. +3. In the **GitHub Official** server page, select the **Configuration** tab and select **OAuth**. + + >[!NOTE] + > + > The type of configuration required depends on the server you select. For the GitHub Official server, you must authenticate using OAuth. + + Your browser opens the GitHub authorization page. Follow the on-screen instructions to [authenticate via OAuth](/manuals/ai/mcp-catalog-and-toolkit/toolkit.md#authenticate-via-oauth). + +4. Return to Docker Desktop when the authentication process is complete. +5. Search for the **Playwright** server from the catalog and add it. + +{{< /tab >}} +{{< tab name="From the Docker CLI">}} + +1. Add the GitHub Official MCP server. Run: + + ```console + $ docker mcp server enable github-official + ``` + +2. Authenticate the server by running the following command: + + ```console + $ docker mcp oauth authorize github + ``` + + >[!NOTE] + > + > The type of configuration required depends on the server you select. For the GitHub Official server, you must authenticate using OAuth. + + Your browser opens the GitHub authorization page. Follow the on-screen instructions to [authenticate via OAuth](/manuals/ai/mcp-catalog-and-toolkit/toolkit.md#authenticate-via-oauth). + +3. Add the **Playwright** server. Run: + + ```console + $ docker mcp server enable playwright + ``` +{{< /tab >}} +{{< /tabs >}} + +You’ve now successfully added an MCP server. Next, install an MCP client and test your setup with an example prompt. + + +## Install an MCP client and test your setup + +After you've 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. In the following section, let’s add the Claude Desktop client. + +{{< tabs group="release" >}} +{{< tab name="From Docker Desktop">}} + +1. In Docker Desktop, select **MCP Toolkit** and select the **Clients** tab. +2. Find **Claude Desktop** and select **Connect**. + + If Claude Desktop isn't installed, select **Download** to install it, then select **Connect**. +3. Restart Claude Desktop if it's running, and it can now access all the servers in the MCP Toolkit. +4. Open Claude Desktop and run a test by submitting the following prompt using the Sonnet Opus 4.1 model: + + ```text + Take a screenshot of the header element on docs.docker.com + ``` + Claude prompts you for permissions and shares a screenshot of the header element from the Docker documentation page. + + ![Screenshot showing the header of Docker docs.](./images/claude-desktop-example.png) + + +{{< /tab >}} +{{< tab name="From the Docker CLI">}} + +1. In a terminal window, run the following commands to connect the Claude Desktop client: + + ```console + $ docker mcp client connect claude-desktop --global + ``` +2. Restart Claude Desktop if it's running, and it can now access all the servers in the MCP Toolkit. +3. Open Claude Desktop and run a test by submitting the following prompt using the Sonnet 4 model: + + ```text + Take a screenshot of the header element on docs.docker.com + ``` + Claude prompts you for permissions and shares a screenshot of the header element from the Docker documentation page. + + ![Screenshot showing the header of Docker docs.](./images/claude-desktop-example.png) + +{{< /tab >}} +{{< /tabs >}} + +## Related pages + +- [MCP Toolkit](/manuals/ai/mcp-catalog-and-toolkit/toolkit.md) +- [MCP Catalog](/manuals/ai/mcp-catalog-and-toolkit/catalog.md) +- [Open-source MCP Gateway](/manuals/ai/mcp-gateway/_index.md) diff --git a/content/manuals/ai/mcp-catalog-and-toolkit/hub-mcp.md b/content/manuals/ai/mcp-catalog-and-toolkit/hub-mcp.md index d4efe0933c..f0ae3cc4ee 100644 --- a/content/manuals/ai/mcp-catalog-and-toolkit/hub-mcp.md +++ b/content/manuals/ai/mcp-catalog-and-toolkit/hub-mcp.md @@ -3,7 +3,7 @@ title: Docker Hub MCP server linkTitle: Hub MCP server description: The Docker Hub MCP Server makes Docker Hub image metadata accessible to LLMs for content discovery. keywords: Docker Hub MCP Server, Hub MCP server, Hub MCP -weight: 30 +weight: 40 --- The Docker Hub MCP Server is a Model Context Protocol (MCP) server that diff --git a/content/manuals/ai/mcp-catalog-and-toolkit/images/claude-desktop-example.png b/content/manuals/ai/mcp-catalog-and-toolkit/images/claude-desktop-example.png new file mode 100644 index 0000000000..a68521dee8 Binary files /dev/null and b/content/manuals/ai/mcp-catalog-and-toolkit/images/claude-desktop-example.png differ diff --git a/content/manuals/ai/mcp-catalog-and-toolkit/toolkit.md b/content/manuals/ai/mcp-catalog-and-toolkit/toolkit.md index d2cb17786f..22d8f48595 100644 --- a/content/manuals/ai/mcp-catalog-and-toolkit/toolkit.md +++ b/content/manuals/ai/mcp-catalog-and-toolkit/toolkit.md @@ -3,7 +3,7 @@ title: Docker MCP Toolkit linkTitle: MCP Toolkit description: Use the MCP Toolkit to set up MCP servers and MCP clients. keywords: Docker MCP Toolkit, MCP server, MCP client, AI agents -weight: 20 +weight: 30 aliases: - /desktop/features/gordon/mcp/gordon-mcp-server/ - /ai/gordon/mcp/gordon-mcp-server/ @@ -59,6 +59,10 @@ container as the server or in dedicated containers: {{< /tab >}} {{}} +>[!NOTE] +> +> The Docker MCP Toolkit was originally released as an extension. This extension is now deprecated and should be uninstalled. + ## Security The Docker MCP Toolkit combines passive and active measures to reduce attack @@ -87,42 +91,11 @@ Security at runtime is enforced through resource and access limitations: - Interception of tool requests: Requests to and from tools that contain sensitive information such as secrets are blocked. -## Enable Docker MCP Toolkit - -1. Open the Docker Desktop settings and select **Beta features**. -2. Select **Enable Docker MCP Toolkit**. -3. Select **Apply**. - ->[!NOTE] -> -> This feature started as the MCP Toolkit _extension_. This extension is now deprecated ->and should be uninstalled. - -## 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 Official** MCP server -Imagine you want to enable Ask Gordon to interact with your GitHub account: +Imagine you want to enable [Ask Gordon](/manuals/ai/gordon/_index.md) 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. @@ -137,17 +110,10 @@ Imagine you want to enable Ask Gordon to interact with your GitHub account: Make sure to allow Gordon to interact with GitHub by selecting **Always allow** in Gordon's answer. -## Install an MCP client +> [!TIP] +> By default, the Gordon client is enabled, +> which means Gordon can automatically interact with your MCP servers. -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. -1. 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 @@ -236,7 +202,7 @@ OAuth integration. For now, the MCP Toolkit only supports GitHub OAuth. 1. In the GitHub entry, select **Authorize**. Your browser opens the GitHub authorization page. 1. In the GitHub authorization page, select **Authorize Docker**. Once the authorization is successful, you are automatically redirected to Docker Desktop. -1. Install the **GitHub Official** MCP server, see [Install an MCP server](#install-an-mcp-server). +1. Install the **GitHub Official** MCP server, see [Install an MCP server](/manuals/ai/mcp-catalog-and-toolkit/get-started.md#install-an-mcp-server). The MCP Toolkit now has access to your GitHub account. To revoke access, select **Revoke** in the **OAuth** tab. See an example in [Use the **GitHub Official** MCP server](#example-use-the-github-official-mcp-server). diff --git a/content/manuals/enterprise/security/hardened-desktop/settings-management/configure-json-file.md b/content/manuals/enterprise/security/hardened-desktop/settings-management/configure-json-file.md index 855daf587a..148bfe1f64 100644 --- a/content/manuals/enterprise/security/hardened-desktop/settings-management/configure-json-file.md +++ b/content/manuals/enterprise/security/hardened-desktop/settings-management/configure-json-file.md @@ -109,7 +109,9 @@ The following sample is an `admin-settings.json` file with common enterprise set "https": "", "exclude": [], "windowsDockerdPort": 65000, - "enableKerberosNtlm": false + "enableKerberosNtlm": false, + "pac": "", + "embeddedPac": "" }, "containersProxy": { "locked": true, @@ -118,6 +120,7 @@ The following sample is an `admin-settings.json` file with common enterprise set "https": "", "exclude": [], "pac":"", + "embeddedPac": "", "transparentPorts": "" }, "enhancedContainerIsolation": { @@ -278,6 +281,7 @@ The following tables describe all available settings in the `admin-settings.json | `displayedOnboarding` | | If `value` is set to `true`, the onboarding survey will not be displayed to new users. Setting `value` to `false` has no effect. | Docker Desktop version 4.30 and later | | `desktopTerminalEnabled` | | If `value` is set to `false`, developers cannot use the Docker terminal to interact with the host machine and execute commands directly from Docker Desktop. | | |`exposeDockerAPIOnTCP2375`| Windows only| Exposes the Docker API on a specified port. If `value` is set to true, the Docker API is exposed on port 2375. Note: This is unauthenticated and should only be enabled if protected by suitable firewall rules.| | +| `silentModulesUpdate` | | If `value` is set to `true`, Docker Desktop automatically updates components that don't require a restart. For example, the Docker CLI or Docker Scout components. | Docker Desktop version 4.46 and later. | ### File sharing and emulation @@ -299,14 +303,18 @@ The following tables describe all available settings in the `admin-settings.json |Parameter|OS|Description|Version| |:-------------------------------|---|:-------------------------------|---| |`proxy`| |If `mode` is set to `system` instead of `manual`, Docker Desktop gets the proxy values from the system and ignores and values set for `http`, `https` and `exclude`. Change `mode` to `manual` to manually configure proxy servers. If the proxy port is custom, specify it in the `http` or `https` property, for example `"https": "http://myotherproxy.com:4321"`. The `exclude` property specifies a comma-separated list of hosts and domains to bypass the proxy. | | -|       `windowsDockerdPort`| Windows only | Exposes Docker Desktop's internal proxy locally on this port for the Windows Docker daemon to connect to. If it is set to 0, a random free port is chosen. If the value is greater than 0, use that exact value for the port. The default value is -1 which disables the option. | | -|       `enableKerberosNtlm`| |When set to `true`, Kerberos and NTLM authentication is enabled. Default is `false`. For more information, see the settings documentation. | Docker Desktop version 4.32 and later. | +| `windowsDockerdPort`| Windows only | Exposes Docker Desktop's internal proxy locally on this port for the Windows Docker daemon to connect to. If it is set to 0, a random free port is chosen. If the value is greater than 0, use that exact value for the port. The default value is -1 which disables the option. | | +|`enableKerberosNtlm`| |When set to `true`, Kerberos and NTLM authentication is enabled. Default is `false`. For more information, see the settings documentation. | Docker Desktop version 4.32 and later. | +| `pac` | | Specifies a PAC file URL. For example, `"pac": "http://proxy/proxy.pac"`. | | +| `embeddedPac` | | Specifies an embedded PAC (Proxy Auto-Config) script. For example, `"embeddedPac": "function FindProxyForURL(url, host) { return \"DIRECT\"; }"`. This setting takes precedence over HTTP, HTTPS, Proxy bypass and PAC server URL. | Docker Desktop version 4.46 and later. | ### Container proxy |Parameter|OS|Description|Version| |:-------------------------------|---|:-------------------------------|---| |`containersProxy` | | Creates air-gapped containers. For more information see [Air-Gapped Containers](../air-gapped-containers.md).| Docker Desktop version 4.29 and later. | +| `pac` | | Specifies a PAC file URL. For example, `"pac": "http://containerproxy/proxy.pac"`. | | +| `embeddedPac` | | Specifies an embedded PAC (Proxy Auto-Config) script. For example, `"embeddedPac": "function FindProxyForURL(url, host) { return \"PROXY 192.168.92.1:2003\"; }"`. This setting takes precedence over HTTP, HTTPS, Proxy bypass and PAC server URL. | Docker Desktop version 4.46 and later. | ### Linux VM settings diff --git a/content/manuals/enterprise/security/hardened-desktop/settings-management/settings-reference.md b/content/manuals/enterprise/security/hardened-desktop/settings-management/settings-reference.md index 8377e158f7..7126678e89 100644 --- a/content/manuals/enterprise/security/hardened-desktop/settings-management/settings-reference.md +++ b/content/manuals/enterprise/security/hardened-desktop/settings-management/settings-reference.md @@ -365,6 +365,20 @@ if needed. - **General** settings in [Docker Desktop GUI](/manuals/desktop/settings-and-maintenance/settings.md) - Settings Management: `configurationFileVersion` setting in the [`admin-settings.json` file](/manuals/enterprise/security/hardened-desktop/settings-management/configure-json-file.md) +### Automatically update components + +| Default value | Accepted values | Format | +|---------------|-----------------|----------| +| `true` | `true`, `false` | Boolean | + +- **Description:** Allow Docker Desktop to automatically update components that don't require a restart. +- **OS:** {{< badge color=blue text="All" >}} +- **Use case:** Automatically updates key Docker Desktop components such as Docker Compose, Docker Scout, the Docker CLI. +- **Configure this setting with:** + - **General settings** in [Docker Desktop GUI](/manuals/desktop/settings-and-maintenance/settings.md#software-updates) + - Settings Management: `silentModulesUpdate` setting in the [`admin-settings.json` file](/manuals/enterprise/security/hardened-desktop/settings-management/configure-json-file.md) + - Settings Management: **Automatically update components** setting in the [Admin Console](/manuals/enterprise/security/hardened-desktop/settings-management/configure-admin-console.md) + ## Resources settings ### CPU limit