Skip to main content

Cloudsoft Zone Build, deploy and scale with practical guides to PHP, Node.js, React, DevOps and AI automation. Explore the guides

Cloudsoft Zone
DevOpsAI and AutomationDevelopmentTutorial

Docker MCP Toolkit: connect AI agents to development tools through reviewed profiles

Configure Docker MCP Toolkit with a dedicated profile, inspected server permissions, scoped credentials and a harmless connection check before enabling development tools.

Nilesh Kushvaha

5 min read

Docker product artwork with a profile-based MCP workflow from server selection through verified tool access.
Image: Cloudsoft Zone layout; dotCloud, Inc. / Apache License 2.0
In this article

An AI client can answer development questions without accessing your issue tracker. Once you connect a tool server, the same client may read private repositories, change tickets or invoke infrastructure APIs. The connection is an authority decision as well as an installation step.

With Docker MCP Toolkit, client requests pass through the Docker MCP gateway, which only exposes the servers in an explicit profile. The guide also shows how to verify both allowed and forbidden behaviour before trusting the setup.

Docker MCP Toolkit organizes those integrations into profiles and routes client requests through a gateway. This guide builds a small, reviewable setup for a development task and explains the checks that a successful connection does not cover.

The profile-based instructions follow Docker's documentation for Desktop 4.62 and later, reviewed on 11 October 2026. Toolkit is labelled beta. Earlier releases have different commands or interfaces; confirm the installed version rather than mixing old server-management snippets with the current workflow.

Our MCP security guide explains the underlying server-trust and approval model.

Catalog server selection feeds a named profile that the client accesses through the gateway.
Profiles organize capabilities; upstream credentials still determine what a tool may do.

Step 1: Define one integration and one task

Begin with a harmless read of a synthetic resource. Avoid starting with a production database or an account that administers every repository in an organization.

Write down the server maintainer, image or remote endpoint, intended tools, credential scope and resource boundary. Review the actual tool schemas and descriptions. A server that offers both reading and writing needs more scrutiny than its marketing summary suggests.

Component Its job Your approval decision
Catalog Offers server choices Which source and version are trusted
Profile Groups selected servers Which capabilities this task needs
Gateway Routes calls and manages integrations Where it runs and how access is configured
Client Requests tools for the agent Which profile and approval settings apply
Provider credential Grants downstream access Exact account, resources and permissions

A catalog entry's provenance is useful evidence, but it does not prove every operation is appropriate for your project.

Step 2: Create a dedicated profile

Enable Toolkit through the supported Desktop settings, or follow Docker's separate gateway installation instructions if using Docker Engine without Desktop. Confirm the appropriate plugin is present before scripting profile commands.

The following example creates only a named development profile. Run it in your own experimental environment; choose a name that does not collide with an existing profile.

Shell
docker mcp --help
docker mcp profile create --name incident-lab
docker mcp profile list
docker mcp profile show incident-lab

Inspect available server IDs through the catalog or Desktop interface. Add only the reviewed server and complete its required configuration. Do not import a large team profile simply to fix a missing connection.

Use separate profiles for substantially different trust scopes. Development resource access and production administration should not become indistinguishable just because both use the same client application.

Step 3: Configure the least privileged credential

Prefer a dedicated account and narrow provider permissions. For a repository read task, a token capable of deploying production or creating organization administrators is unnecessary.

Set up authentication through the supported credential or OAuth workflow. Keep secret values out of profile JSON, screenshots, terminal history and exported troubleshooting notes. Inspect a shared profile before importing it even when credentials are excluded from the normal sharing format.

The gateway can manage authentication, but the downstream service remains responsible for enforcing its account permissions. Test that enforcement with an unrelated synthetic resource that should be denied.

Validate tool inputs, provider permissions and returned data independently.
A listed tool is not permission to use every capability of its backend account.

Step 4: Connect the client to the explicit profile

For a client supporting stdio MCP, the gateway command can be configured as follows. Client configuration schemas vary; adapt the outer structure to that application's own documented format.

JSON
{
  "mcpServers": {
    "development-tools": {
      "command": "docker",
      "args": ["mcp", "gateway", "run", "--profile", "incident-lab"]
    }
  }
}

Avoid omitting the profile and unintentionally using an existing default collection. Inspect the tools exposed after connection rather than relying solely on a connected status indicator.

If the client times out during gateway startup, inspect logs and the documented startup behavior. Increasing a client timeout can address initialization timing; it cannot repair wrong credentials, a missing server configuration or a denied destination.

Step 5: Review dynamic discovery

Docker documents Dynamic MCP as experimental and enabled by default in Toolkit. It allows an agent to discover and add servers during a session. That behavior deserves an explicit decision when the task contract calls for a fixed tool set.

Inspect the feature and available catalog before starting. Where the policy requires static integrations, Docker documents disabling dynamic tools with this command:

Shell
docker mcp feature disable dynamic-tools

This is a setting change, not a named-profile-only example. Evaluate its effect on other clients and reconnect them as documented. Avoid presenting a static profile as a complete restriction while leaving session discovery unexamined.

Step 6: Verify both allowed and forbidden behavior

Request one bounded read from your synthetic resource. Confirm the result came from the intended account and server, and that no unrelated resource was accessed.

Check Expected evidence
Tool inventory Matches the approved integration
Small allowed read Correct resource with bounded output
Unrelated resource Permission denial without scope expansion
Untrusted returned instruction Treated as content, not a new authorization
Provider error Clear failure without dumping credential values

Use the gateway's available logs and client diagnostics to identify the failing layer. A malformed tool argument, an authentication failure and a container startup error require different corrections.

Verify an allowed read and a denied resource, then revoke credentials when the integration is retired.
Removing a server configuration alone does not guarantee credential revocation.

Step 7: Retire capabilities at the right owner

Disconnect the client when the task ends and remove unnecessary profile integrations deliberately. Docker's FAQ notes that stored credentials can remain after server removal. Revoke provider access separately where required, then verify denial.

Keep a small inventory of approved server versions and scopes. Review changes after upgrading the gateway or replacing a server image; a newly added tool can change the effective authority of an established connection.

Our secure NestJS MCP server guide covers implementing the server-side boundary. For a controlled integration with your application's real permissions and audit trail, discuss the project with Cloudsoft Zone.

Featured image: Cloudsoft Zone technical layout with docker artwork by dotCloud, Inc. (Apache License 2.0). Product mark resized proportionally for identification; no endorsement implied. Layout: CC BY-SA 4.0.

Frequently asked questions

  • Is Docker MCP Toolkit the same as Docker Sandboxes?

    No. Toolkit organizes MCP server integrations and client access; Sandboxes isolates agent execution. Evaluate both trust boundaries if you combine them.

  • Does a profile guarantee an agent cannot discover other servers?

    Not by itself. Review Dynamic MCP and the actual gateway configuration; discovery can expand session capabilities when enabled.

  • Will removing a server revoke its provider token?

    Do not assume so. Revoke or remove the credential at the correct owner and verify that further access is denied.

Sources

  1. Current profile-based Toolkit setup — Docker
  2. Toolkit CLI profile operations — Docker
  3. MCP Gateway lifecycle — Docker
  4. Dynamic discovery and disabling tools — Docker
  5. Toolkit security and credential FAQs — Docker
  6. Protocol security practices — Model Context Protocol

Comments

No comments yet. Be the first to join the conversation.

Leave a comment

Every comment is read by a moderator before it appears. Your email address is never published; it is used only to contact you about this comment.

Never published. Used only to contact you about this comment.

Loading the security check…

Comments are moderated before publication.