diff --git a/assets/css/components.css b/assets/css/components.css index 0398544f06e..108134dd29a 100644 --- a/assets/css/components.css +++ b/assets/css/components.css @@ -95,7 +95,7 @@ } } .button { - @apply mt-1 inline-block rounded-sm bg-blue-500 p-1 px-3 text-blue-50 text-white hover:bg-blue-600 dark:bg-blue-500 hover:dark:bg-blue-400; + @apply my-2 mr-2 inline-block rounded-sm bg-blue-500 p-1 px-3 text-blue-50 text-white hover:bg-blue-600 dark:bg-blue-500 hover:dark:bg-blue-400; } .summary-bar { diff --git a/content/manuals/_index.md b/content/manuals/_index.md index 726d25917c0..ec01e323ee0 100644 --- a/content/manuals/_index.md +++ b/content/manuals/_index.md @@ -31,6 +31,11 @@ params: description: Run containers programmatically in your preferred programming language. icon: /icons/Testcontainers.svg link: /testcontainers/ + - title: MCP Gateway + description: Manage and secure your AI tools with a single gateway. + icon: /icons/toolkit.svg + link: /ai/mcp-gateway/ + ai: - title: Ask Gordon description: Streamline your workflow and get the most out of the Docker ecosystem with your personal AI assistant. diff --git a/content/manuals/ai/mcp-catalog-and-toolkit/toolkit.md b/content/manuals/ai/mcp-catalog-and-toolkit/toolkit.md index d06e7a94667..298ed15794e 100644 --- a/content/manuals/ai/mcp-catalog-and-toolkit/toolkit.md +++ b/content/manuals/ai/mcp-catalog-and-toolkit/toolkit.md @@ -7,7 +7,7 @@ aliases: - /ai/gordon/mcp/gordon-mcp-server/ --- -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. +The Docker MCP Toolkit is a gateway 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. ## Key features @@ -18,7 +18,7 @@ The Docker MCP Toolkit enables seamless setup, management, and execution of cont ## How the MCP toolkit works -MCP introduces two core concepts: MCP clients and MCP servers. +MCP introduces two core concepts: MCP clients and MCP servers. - MCP clients are typically embedded in LLM-based applications, such as the Claude Desktop App. They request resources or actions. @@ -55,7 +55,7 @@ surfaces and ensure safe runtime behavior. ### Passive security -- Image signing and attestation: All MCP server images under `mcp/` in the [catalog](catalog.md) +- 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. @@ -95,7 +95,7 @@ To install an MCP server: When you select a server you can see the following information: - - Tool name and description + - Tool name and description - Partner/publisher - The list of callable tools the server provides. @@ -140,21 +140,21 @@ 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, +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 Official** server. -3. From the **Clients** tab, select **Connect** next to **Claude Desktop**. Restart +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 ``` -5. From the **Clients** tab, select **Connect** next to **Claude Desktop**. Restart +5. 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. 6. Within Claude Desktop, run a test by submitting the following prompt using the Sonnet 3.5 model: @@ -173,7 +173,7 @@ You can interact with all your installed MCP servers in VS Code: {{< tab name="Enable globally">}} 1. Insert the following in your VS Code's User`settings.json`: - + ```json "mcp": { "servers": { @@ -195,11 +195,11 @@ You can interact with all your installed MCP servers in VS Code: 1. In your terminal, navigate to your project's folder. 1. Run: - + ```bash docker mcp client connect vscode ``` - + > [!NOTE] > This command creates a `.vscode/mcp.json` file in the current directory. We > recommend you add it to your `.gitignore` file. @@ -208,7 +208,7 @@ You can interact with all your installed MCP servers in VS Code: {{}} 1. In Visual Studio Code, open a new Chat and select the **Agent** mode: - + ![Copilot mode switching](./images/copilot-mode.png) 1. You can also check the available MCP tools: @@ -224,7 +224,7 @@ You can connect the MCP Toolkit to your development workflow via OAuth integration. For now, the MCP Toolkit only supports GitHub OAuth. 1. On https://github.com/, ensure you are signed in. -1. In Docker Desktop, select **MCP Toolkit** and select the **OAuth** tab. +1. In Docker Desktop, select **MCP Toolkit** and select the **OAuth** tab. 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. @@ -232,3 +232,7 @@ OAuth integration. For now, the MCP Toolkit only supports GitHub OAuth. 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). + +## Related pages + +- [Open-source MCP Gateway](/manuals/ai/mcp-gateway/_index.md) diff --git a/content/manuals/ai/mcp-gateway/_index.md b/content/manuals/ai/mcp-gateway/_index.md new file mode 100644 index 00000000000..36fbac551a5 --- /dev/null +++ b/content/manuals/ai/mcp-gateway/_index.md @@ -0,0 +1,110 @@ +--- +title: MCP Gateway +description: "Docker's MCP Gateway provides secure, centralized, and scalable orchestration of AI tools through containerized MCP servers—empowering developers, operators, and security teams." +keywords: MCP Gateway +params: + sidebar: + group: Open source +--- + +The MCP Gateway is Docker's open-source enterprise-ready solution for orchestrating and +managing [Model Context Protocol (MCP)](https://spec.modelcontextprotocol.io/) servers +securely across development and production environments. +It is designed to help organizations connect MCP servers from the [Docker MCP Catalog](https://hub.docker.com/mcp) to MCP Clients without compromising security, visibility, or control. + +By unifying multiple MCP servers into a single, secure endpoint, the MCP Gateway offers +the following benefits: + +- Secure by default: MCP servers run in isolated Docker containers with restricted + privileges, network access, and resource usage. +- Unified management: One gateway endpoint centralizes configuration, credentials, + and access control for all MCP servers. +- Enterprise observability: Built-in monitoring, logging, and filtering tools ensure + full visibility and governance of AI tool activity. + +## Who is the MCP Gateway designed for? + +The MCP Gateway solves problems encountered by various groups: + +- Developers: Deploy MCP servers locally and in production using Docker Compose, + with built-in support for protocol handling, credential management, and security policies. +- Security teams: Achieve enterprise-grade isolation and visibility into AI tool + behavior and access patterns. +- Operators: Scale effortlessly from local development environments to production + infrastructure with consistent, low-touch operations. + +## Key features + +- Server management: List, inspect, and call MCP tools, resources and prompts from multiple servers +- Container-based servers: Run MCP servers as Docker containers with proper isolation +- Secrets management: Secure handling of API keys and credentials via Docker Desktop +- Dynamic discovery and reloading: Automatic tool, prompt, and resource discovery from running servers +- Monitoring: Built-in logging and call tracing capabilities + +## Install a pre-release version of the MCP Gateway + +If you use Docker Desktop, the MCP Gateway is readily available. Use the +following instructions to test pre-release versions. + +### Prerequisites + +- Docker Desktop with the [MCP Toolkit feature enabled](../mcp-catalog-and-toolkit/toolkit.md#enable-docker-mcp-toolkit). +- Go 1.24+ (for development) + +### Install using a pre-built binary + +You can download the latest binary from the [GitHub releases page](https://github.com/docker/mcp-gateway/releases/latest). + +Rename the relevant binary and copy it to the destination matching your OS: + +| OS | Binary name | Destination folder | +|---------|---------------------|-------------------------------------| +| Linux | `docker-mcp` | `$HOME/.docker/cli-plugins` | +| macOS | `docker-mcp` | `$HOME/.docker/cli-plugins` | +| Windows | `docker-mcp.exe` | `%USERPROFILE%\.docker\cli-plugins` | + +Or copy it into one of these folders for installing it system-wide: + + +{{< tabs group="" >}} +{{< tab name="On Unix environments">}} + + +* `/usr/local/lib/docker/cli-plugins` OR `/usr/local/libexec/docker/cli-plugins` +* `/usr/lib/docker/cli-plugins` OR `/usr/libexec/docker/cli-plugins` + +> [!NOTE] +> You may have to make the binaries executable with `chmod +x`: + +> ```bash +> $ chmod +x ~/.docker/cli-plugins/docker-mcp +> ``` + +{{< /tab >}} +{{< tab name="On Windows">}} + +* `C:\ProgramData\Docker\cli-plugins` +* `C:\Program Files\Docker\cli-plugins` + +{{< /tab >}} +{{}} + +You can now use the `mcp` command: + +```bash +docker mcp --help +``` + +## Use the MCP Gateway + +Run: + +```bash +docker mcp gateway run +``` + +To view all the commands and configuration options, go to the [mcp-gateway repository](https://github.com/docker/mcp-gateway?tab=readme-ov-file#usage). + +## Related pages + +- [Docker MCP toolkit and catalog](/manuals/ai/mcp-catalog-and-toolkit/_index.md)