MCP Profiles
NoteThis page describes the MCP Toolkit interface in Docker Desktop 4.62 and later. Earlier versions have a different UI. Upgrade to follow these instructions exactly.
Profiles organize your MCP servers into named collections. Without profiles, you'd configure servers separately for every AI application you use. Each time you want to change which servers are available, you'd update Claude Desktop, VS Code, Cursor, and other tools individually. Profiles solve this by centralizing your server configurations.
What profiles do
A profile is a named collection of MCP servers with their configurations and settings. You select servers from the MCP Catalog (the source of available servers) and add them to your profiles (your configured server collections for specific work). Think of the catalog as a library of tools, and profiles as your toolboxes organized for different jobs.
Your "web-dev" profile might include GitHub, Playwright, and database servers. Your "data-analysis" profile might include spreadsheet, API, and visualization servers. Connect different AI clients to different profiles, or switch between profiles as you change tasks.
When you run the MCP Gateway or connect a client without specifying a profile, Docker MCP uses your default profile. If you're upgrading from a previous version of MCP Toolkit, your existing server configurations are already in the default profile.
Profile capabilities
Each profile maintains its own isolated collection of servers and configurations. Your "web-dev" profile might include GitHub, Playwright, and database servers, while your "data-analysis" profile includes spreadsheet, API, and visualization servers. Create as many profiles as you need, each containing only the servers relevant to that context.
You can connect different AI applications to different profiles. When you connect a client, you specify which profile it should use. This means Claude Desktop and VS Code can have access to different server collections if needed.
Profiles can be shared with your team. Push a profile to your registry, and team members can pull it to get the exact same server collection and configuration you use.
Creating and managing profiles
Create a profile
- In Docker Desktop, select MCP Toolkit and select the Profiles tab.
- Select Create profile.
- Enter a name for your profile (e.g., "web-dev").
- Optionally, search and add servers to your profile now, or add them later.
- Optionally, search and add clients to connect to your profile.
- Select Create.
Your new profile appears in the profiles list.
View profile details
Select a profile in the Profiles tab to view its details. The profile view has two tabs:
- Overview: Shows the servers in your profile, secrets configuration, and connected clients. Use the + buttons to add more servers or clients.
- Tools: Lists all available tools from your profile's servers. You can enable or disable individual tools.
Remove a profile
- In the Profiles tab, find the profile you want to remove.
- Select ⋮ next to the profile name, and then Delete.
- Confirm the removal.
CautionRemoving a profile deletes all its server configurations and settings, and updates the client configuration (removes MCP Toolkit). This action can't be undone.
Default profile
When you run the MCP Gateway or use MCP Toolkit without specifying a profile,
Docker MCP uses a profile named default, or an empty configuration if a
default profile does not exist.
If you're upgrading from a previous version of MCP Toolkit, your existing
server configurations automatically migrate to the default profile. You don't
need to manually recreate your setup - everything continues to work as before.
You can always specify a different profile using the --profile flag with the
gateway command:
$ docker mcp gateway run --profile web-dev
Adding servers to profiles
Profiles contain the MCP servers you select from the catalog. Add servers to organize your tools for specific workflows.
Add a server
You can add servers to a profile in two ways.
From the Catalog tab:
- Select the Catalog tab.
- Select the checkbox next to servers you want to add to see which profile to add them to.
- Choose your profile from the drop-down.
From within a profile:
- Select the Profiles tab and select your profile.
- In the Servers section, select the + button.
- Search for and select servers to add.
If a server requires OAuth authentication, you're prompted to authorize it. See OAuth authentication for details.
List servers in a profile
Select a profile in the Profiles tab to see all servers it contains.
Remove a server
- Select the Profiles tab and select your profile.
- In the Servers section, find the server you want to remove.
- Select the delete icon next to the server.
Configuring profiles
Server configuration
Some servers require configuration beyond authentication. Configure server settings within your profile.
- Select the Profiles tab and select your profile.
- In the Servers section, select the configure icon next to the server.
- Adjust the server's configuration settings as needed.
OAuth credentials
OAuth credentials are shared across all profiles. When you authorize access to a service like GitHub or Notion, that authorization is available to any server in any profile that needs it.
This means all profiles use the same OAuth credentials for a given service. If you need to use different accounts for different projects, you'll need to revoke and re-authorize between switching profiles.
See OAuth authentication for details on authorizing servers.
Configuration persistence
Profile configurations persist in your Docker installation. When you restart Docker Desktop or your system, your profiles, servers, and configurations remain intact.
Sharing profiles
Profiles can be shared with your team by pushing them to OCI-compliant registries as artifacts. This is useful for distributing standardized MCP setups across your organization. Credentials are not included in shared profiles for security reasons. Team members configure OAuth separately after pulling.
Push a profile
- Select the profile you want to share in the Profiles tab.
- Select Push to Registry.
- Enter the registry destination (e.g.,
registry.example.com/profiles/web-dev:v1). - Complete authentication if required.
Pull a profile
- Select Pull from Registry in the Profiles tab.
- Enter the registry reference (e.g.,
registry.example.com/profiles/team-standard:latest). - Complete authentication if required.
The profile is downloaded and added to your profiles list. Configure any required OAuth credentials separately.
Team collaboration workflow
A typical workflow for sharing profiles across a team:
- Create and configure a profile with the servers your team needs.
- Test the profile to ensure it works as expected.
- Push the profile to your team's registry with a version tag (e.g.,
registry.example.com/profiles/team-dev:v1). - Share the registry reference with your team.
- Team members pull the profile and configure any required OAuth credentials.
This ensures everyone uses the same server collection and configuration, reducing setup time and inconsistencies.
Using profiles with clients
When you connect an AI client to the MCP Gateway, you specify which profile's servers the client can access.
Run the gateway with a profile
Connect clients to your profile through the Clients section in the MCP Toolkit. You can add clients when creating a profile or add them to existing profiles later.
Configure clients for specific profiles
When setting up a client manually, you can specify which profile the client uses. This lets different clients connect to different profiles.
For example, your Claude Desktop configuration might use:
{
"mcpServers": {
"MCP_DOCKER": {
"command": "docker",
"args": ["mcp", "gateway", "run", "--profile", "claude-work"]
}
}
}While your VS Code configuration uses a different profile:
{
"mcp": {
"servers": {
"MCP_DOCKER": {
"command": "docker",
"args": ["mcp", "gateway", "run", "--profile", "vscode-dev"],
"type": "stdio"
}
}
}
}Switching between profiles
To switch the profile your clients use, update the client configuration to
specify a different --profile value in the gateway command arguments.