Docker MCP for Claude Code: Setup and Configuration

Docker MCP for Claude Code is the Desktop toolkit talking to Claude Code as a client. You enable the toolkit. You add a few catalog servers. You connect Claude Code. You verify MCP_DOCKER.
Most posts enable everything in the catalog. This page is setup plus the mistakes that follow.
What is Docker MCP for Claude Code in practice?
A gateway. Claude Code sees one client entry. The gateway routes to the servers you enabled in a profile.
Read what is MCP server for the protocol. Read Claude Code MCP for the client. Read MCP server examples for shapes.
A gateway is not a free pass to the whole catalog. It is plumbing.
Connect, then allow-list is the setup order.
How do I set it up?
Step 1. Desktop
Install a current Docker Desktop. Enable the MCP Toolkit in settings if your build still keeps it behind a flag. Apply.
Step 2. Catalog
Add only the servers the ticket needs. GitHub official. A database on a replica. Not twenty search toys.
Step 3. Connect
In the toolkit Clients tab, connect Claude Code. Or run the current connect command from Docker docs.
Some guides show a project mcp.json that starts docker mcp gateway run. Some show a Claude Code add line for MCP_DOCKER. Use the current Docker page. I will not freeze a flag.
Step 4. Restart and verify
Restart Claude Code. Run claude mcp list or /mcp. Look for a connected gateway line.
Ask a prompt that uses one enabled server. If nothing happens, fix that server. Do not add two more.
Keep PinVari as its own local connector on 127.0.0.1:3402. Do not stuff screen capture through a random catalog image.
What are the common mistakes and the fix?
Mistake: whole catalog on
The model spends turns reading schemas. The fix is the same short allow-list you already trust.
Mistake: capture through a random image
A catalog server that screenshots pixels. The fix is PinVari on localhost for named elements.
Mistake: connect and no restart
Claude Code still has an empty list. The fix is restart, then claude mcp list.
Mistake: write tools on prod
A database server with writes. The fix is a replica or a local dump.
Mistake: login in git
A compose file with a live secret. The fix is Desktop secrets or the environment.
Mistake: gateway as policy
Plumbing is not an allow-list. The fix is the profile you enabled, reviewed on Friday.
Gateway is plumbing. You still pick the jobs.
The pricing block is $39 launch for PinVari. Docker Desktop pricing is theirs. I will not invent it.
Hold ⌥⌘A for the UI miss. Let the gateway handle Hub or a database if the ticket needs it.
If the health line is red, start Desktop and the app you care about. A gateway cannot talk to a closed process.
FAQ
Is Docker MCP for Claude Code required?
No. You can add local stdio servers one by one. The toolkit is for people who want containers and a catalog.
Does the gateway replace PinVari?
No. Named UI capture stays on 127.0.0.1:3402 with the app running.
Can Cursor use the same toolkit?
Docker documents other clients. This page is Claude Code. Check the Clients tab.
Why is MCP_DOCKER the name I see?
That is the gateway entry many setups use. Treat it as plumbing.
What if list shows disconnected?
Start Desktop. Reconnect the client. Restart Claude Code. Then read the health line.
Can I use profiles?
Yes, if your Desktop build has them. One profile per project is calmer than one pile.
Docker MCP for Claude Code is setup.
Enable. Connect. Verify. Allow-list. Stop.
I rerun claude mcp list at the start of a client week. If I see a catalog name I cannot explain, I remove it from the profile.
How do I keep the toolkit small?
Friday adds. Monday does not.
Write the job on the profile. Hub search. Read-only database. Browser flow. That is a lot.
UI tickets still start with ⌥⌘A. The gateway does not get the first tool on a visual miss.
First tool is still the name when the bug is on screen.
Dwell about 0.2 seconds. Three marks get three word buckets. Multi-display marks remember the monitor.
Vague captures come back UNSPECIFIC. Tighten the speak. Do not enable another catalog server.
Ask below about 0.8 confidence.
I will not invent a catalog size. I will not invent a Desktop price.
Write the four steps. Run the health check. Then do the ticket.
What does a clean toolkit week look like?
Monday I open Desktop and I count enabled servers. I remove any name I cannot say in one line.
Tuesday is a UI ticket. Capture first on localhost. Gateway stays idle unless the ticket needs Hub.
Wednesday is a compose question. Then the Hub server earns its keep.
Thursday I check the Clients tab. Claude Code still connected. Health line still green.
Friday I may add one server. I write the job in the kickoff.
I keep a two-column table.
| Job | Path |
|---|---|
| Named UI | PinVari local |
| Hub or catalog | Gateway |
| Issues | GitHub official |
Phones can read that.
If a junior enables ten catalog entries, I revert the profile and we talk seats.
Count the names every Monday.
The toolkit is a drawer. Drawers overflow. Overflow is how sessions stall.
I will update this page when Docker changes the connect step. I will not update it for a catalog logo.
Hold ⌥⌘A. Verify MCP_DOCKER only when the ticket needs it. Then review as a human.
A last note on mixing clients. If you also run Cursor, do not assume the same connect click wrote both configs. Verify each client.
If you also run a local stdio server, do not register it twice, once raw and once through the gateway.
Duplicate tools are how the model picks the worse one.
One path per job is the last rule.
Jam.dev still wins for browser console. CleanShot still crops. Marker.io still marks sites. None of them are the gateway.
Named capture is still the eyes on a Mac UI miss.
I have watched teams spend a week on toolkit flags and zero tickets. Setup is a morning. The ticket is the week.
Enable. Connect. Verify. Allow-list. Capture. Review.
That is Docker MCP for Claude Code. Plumbing plus a name. Human merge at the end.
I also keep a reject list next to the profile. Catalog servers that want writes on prod. Catalog servers that scrape the open web into the prompt. Catalog servers I cannot name.
If a vendor wants off the reject list, they show a first tool result I can review.
Until then they stay off.
Teach the intern the four steps and the localhost capture. If they can connect Claude Code and still start a UI ticket with the hotkey, they are done.
If they want the whole catalog, they can wait.
Docker MCP for Claude Code will keep getting a Clients button. The honest page will keep saying allow-list.
Write it down. Count the names. Do the ticket.
One more working example. I needed a compose file that matched a live Hub image name. I enabled the Hub server. I connected Claude Code. I verified the gateway. I asked for the compose. I reviewed it.
I did not enable a notes server for that ticket. I did not enable a browser server. I did not paste a desktop PNG.
The next ticket was a native toggle. I left the gateway alone. I held the hotkey. I spoke. Claude Code read the named element.
Two tickets. Two paths. One week.
That split is the configuration. People who mash both paths into every session get neither.
Pick the path per ticket.
I will not publish a fake time-to-compose number. I will say the Hub path was a morning of setup and a reviewed file.
Setup is paid once. The allow-list is paid every Monday.
That is enough Docker MCP for Claude Code.
Hold ⌥⌘A on visual work. Use the gateway when the ticket is Hub or a database. Count the names on Monday. That is the setup.
I will not add a twelfth catalog card to make this feel finished. Finished means the health line is green and the allow-list is short.
Start Desktop. Connect Claude Code. Verify the gateway. Leave capture on localhost. Review every file the agent writes.
That paragraph is the configuration. The rest is caution.
If the health line is green and the allow-list is three names, you are done with setup. Go do the ticket.
Short allow-list. Green health line. Named capture on localhost. Human review. That is the whole setup.
Go do the ticket now.
Short list. Green line. Named eyes.
Done.
Hand your agent the exact element
PinVari resolves what you point at into a named, executable instruction — on-device, no keys, your own agent. One click inside PinVari connects Claude Code, Cursor, VS Code or Codex — or paste one CLI line from pinvari.com/connect.
PinVari → Connect → your agent (one click)Get PinVari — $39 →


