{"id":2653,"date":"2025-10-27T20:30:03","date_gmt":"2025-10-27T20:30:03","guid":{"rendered":"https:\/\/rssfeedtelegrambot.bnaya.co.il\/index.php\/2025\/10\/27\/how-to-connect-mcp-servers-to-claude-desktop-with-docker-mcp-toolkit\/"},"modified":"2025-10-27T20:30:03","modified_gmt":"2025-10-27T20:30:03","slug":"how-to-connect-mcp-servers-to-claude-desktop-with-docker-mcp-toolkit","status":"publish","type":"post","link":"https:\/\/rssfeedtelegrambot.bnaya.co.il\/index.php\/2025\/10\/27\/how-to-connect-mcp-servers-to-claude-desktop-with-docker-mcp-toolkit\/","title":{"rendered":"How to Connect MCP Servers to Claude Desktop with Docker MCP Toolkit"},"content":{"rendered":"<p>What if you could turn Claude from a conversational assistant into a development partner that actually <em>does<\/em> things\u2014safely, securely, and without touching your local machine?<\/p>\n<p>If you\u2019ve been exploring Claude Desktop and wondering how to connect it with real developer tools, <a href=\"https:\/\/www.docker.com\/products\/mcp-catalog-and-toolkit\/\">Docker MCP Toolkit<\/a> is the missing piece you\u2019ve been looking for.<\/p>\n<p>Here\u2019s the reality: Today\u2019s AI assistants are brilliant at reasoning and explaining concepts. But when it comes to <em>acting<\/em> on that knowledge? They\u2019re stuck. They can\u2019t deploy containers, manage repos, or analyze data without trusted tools to bridge that gap.<\/p>\n<p>That\u2019s where Docker MCP Toolkit comes in.<\/p>\n<p>Think of it this way:<\/p>\n<p><strong>Claude<\/strong> is the reasoning engine\u2014the brain that understands what you want<\/p>\n<p><strong>Claude Desktop<\/strong> is the translator, turning your requests into actionable commands<\/p>\n<p><strong>Docker MCP Toolkit<\/strong> is the hand that safely executes those actions in isolated containers<\/p>\n<p>Together, they transform Claude from something that just talks to something that <em>builds alongside you<\/em>\u2014all through Docker\u2019s trusted, security-hardened workflow.<\/p>\n<p>In this guide, I\u2019ll walk you through setting up Claude Desktop as an MCP client, connecting it to MCP servers running in Docker Desktop, and automating real developer tasks securely and reproducibly.\u00a0<\/p>\n<p><strong>What if you could turn 4 hours of work into 10 minutes?<\/strong> Imagine taking a screenshot of any app UI\u2014a Stripe checkout page, a dashboard component, anything\u2014and watching Claude recreate it as a fully-tested, production-ready React component, complete with Jest tests, GitHub repo, and deployment. That\u2019s exactly what we\u2019ll build together<\/p>\n<h2 class=\"wp-block-heading\">What is Model Context Protocol (MCP)?<\/h2>\n<p>Before we dive into the setup, let\u2019s clarify what MCP actually is.<\/p>\n<div class=\"wp-block-ponyo-image\"><\/div>\n\n<p><a href=\"https:\/\/modelcontextprotocol.io\/\" target=\"_blank\">Model Context Protocol<\/a> (MCP) is the standardized way AI agents like Claude connect to tools, APIs, and services. It\u2019s what lets Claude go beyond conversation and perform real-world actions\u2014like deploying containers, analyzing datasets, or managing GitHub repositories.<\/p>\n<p><strong>In short:<\/strong> MCP is the bridge between Claude\u2019s reasoning and your developer stack. And Docker? Docker provides the guardrails that make it safe.<\/p>\n<h2 class=\"wp-block-heading\">Why use Docker MCP Toolkit with Claude Desktop?<\/h2>\n<p>I\u2019ve been working with AI tools for a while now, and this Docker MCP setup is one of the most impressive things I\u2019ve seen. Docker MCP Toolkit bridges Claude\u2019s intelligence with Docker\u2019s trusted developer workflow.<\/p>\n<p>Docker MCP Toolkit doesn\u2019t just connect Claude to your tools\u2014it creates a <em>secure, containerized environment<\/em> where Claude can work without any risk to your local machine. Every action happens in an isolated container that gets torn down when you\u2019re done. No mess, no security risks, complete reproducibility.<\/p>\n<p>Once connected, Claude Desktop can tap into Docker\u2019s curated <a href=\"https:\/\/hub.docker.com\/mcp\" target=\"_blank\">MCP servers<\/a> to automate developer tasks that used to eat up hours of your day. Here\u2019s what that looks like in practice:<\/p>\n<p><strong>GitHub Integration<\/strong>: Want to create a repo, push some code, or review a pull request? Claude\u2019s got you covered. No more switching between tabs constantly.<\/p>\n<p><strong>Kubernetes Management<\/strong>: If you\u2019re into K8s (and let\u2019s be honest, who isn\u2019t these days?), Claude can deploy pods, manage services, and even handle Helm charts.<\/p>\n<p><strong>Data Analysis<\/strong>: Upload a CSV file and watch Claude analyze it, create visualizations, and give you insights you didn\u2019t even know you needed.<\/p>\n<p><strong>Web Scraping<\/strong>: With Firecrawl integration, Claude can go fetch data from websites and bring it back to you, all formatted and ready to use.<\/p>\n<p>Each of these MCP servers can be enabled directly through the MCP Toolkit in Docker Desktop. The setup is straightforward, the execution is secure, and the results are reproducible every single time.<\/p>\n<h2 class=\"wp-block-heading\"><strong>Setting up Claude Desktop with Docker MCP Toolkit<\/strong><\/h2>\n<h3 class=\"wp-block-heading\">Prerequisites<\/h3>\n<p>Before you begin, make sure you have:<\/p>\n<p>A machine with 8GB RAM minimum, ideally 16GB<\/p>\n<p><a href=\"https:\/\/www.docker.com\/products\/docker-desktop\/\">Install Docker Desktop<\/a><\/p>\n<h4 class=\"wp-block-heading\">Step 1: Install and sign in to Claude Desktop<\/h4>\n<p>Head over to <a href=\"https:\/\/claude.ai\/desktop?ref=ajeetraina.com\" target=\"_blank\">claude.ai\/desktop<\/a> and download <strong>Claude Desktop<\/strong> if you haven\u2019t already. The installation is pretty straightforward \u2013 just follow the prompts. Once it\u2019s installed, sign in with your Anthropic account.<\/p>\n<h4 class=\"wp-block-heading\">Step 2: Enable Docker MCP Toolkit<\/h4>\n<p>Open Docker Desktop and enable the MCP Toolkit from the Settings menu.<\/p>\n<div class=\"wp-block-ponyo-image\"><\/div>\n<h4 class=\"wp-block-heading\">Step 3. Connect Claude Desktop as MCP Client<\/h4>\n<p>Click \u201cMCP Toolkit\u201d in the left sidebar of Docker Desktop and click on \u201cConnect\u201d under Claude Desktop.<\/p>\n<div class=\"wp-block-ponyo-image\"><\/div>\n<h4 class=\"wp-block-heading\">Step 4. Verify the MCP_DOCKER connection\u00a0<\/h4>\n<p>Restart Claude Desktop and verify that the MCP_DOCKER connection appears under the Claude Desktop menu.<\/p>\n<div class=\"wp-block-ponyo-image\"><\/div>\n<h4 class=\"wp-block-heading\">Step 5. View the Claude Configuration<\/h4>\n<p>You can view the Claude configuration file claude_desktop_config.json accessible via Claude &gt; Settings &gt; Developers &gt; Edit Config.<\/p>\n<div class=\"wp-block-ponyo-image\"><\/div>\n<p>Click \u201cEdit Config\u201d and open it via Visual Studio Code or your preferred IDE.<\/p>\n<h3 class=\"wp-block-heading\">How it works<\/h3>\n<p>When you connect Claude Desktop to Docker MCP Toolkit, this configuration gets added to Claude Desktop\u2019s claude_desktop_config.json file:<\/p>\n<div class=\"wp-block-ponyo-image\"><\/div>\n<p>Here\u2019s what each part does:<\/p>\n<p><strong>mcpServers<\/strong>: The parent object that defines all MCP server connections available to Claude Desktop<\/p>\n<p><strong>\u201cMCP_DOCKER\u201d<\/strong>: The name identifier for this connection. This is what you\u2019ll see referenced in Claude Desktop\u2019s settings and logs<\/p>\n<p><strong>\u201ccommand\u201d: \u201cdocker\u201d<\/strong>: Tells Claude Desktop to use the Docker CLI as the execution command<\/p>\n<p><strong>\u201cargs\u201d: [\u201cmcp\u201d, \u201cgateway\u201d, \u201crun\u201d]<\/strong>: The arguments passed to Docker, which translate to running:<\/p>\n<div class=\"wp-block-syntaxhighlighter-code \">\n$ docker mcp gateway run\n<\/div>\n<h3 class=\"wp-block-heading\">What this actually does<\/h3>\n<p>When Claude Desktop needs to access MCP tools, it executes docker mcp gateway run, which:<\/p>\n<p>Starts the Docker MCP Gateway \u2013 This acts as the central router\/bridge<\/p>\n<p>Connects Claude Desktop (MCP client) to all enabled MCP servers in Docker Desktop<\/p>\n<p>Routes tool requests from Claude \u2192 Gateway \u2192 Appropriate MCP Server \u2192 Back to Claude<\/p>\n<p>Runs everything in isolated containers for security and reproducibility<\/p>\n<p>In simple terms:<\/p>\n<p>Think of it like this:<\/p>\n<p>Claude Desktop = Your AI assistant (the client)<\/p>\n<p>Docker MCP Gateway = The switchboard operator (the router)<\/p>\n<p>MCP Servers = The actual tools (GitHub, Firecrawl, Node.js Sandbox, etc.)<\/p>\n<p>This one configuration line is what makes all the magic happen\u2014it\u2019s the handshake that lets Claude safely access and execute all those containerized developer tools.<\/p>\n<p>Where to find this file:<\/p>\n<p><strong>macOS<\/strong>: ~\/Library\/Application Support\/Claude\/claude_desktop_config.json<\/p>\n<p><strong>Windows<\/strong>: %APPDATA%Claudeclaude_desktop_config.json<\/p>\n<div class=\"style-plain wp-block-ponyo-houston\">\n<p><strong>Note:<\/strong> When you click \u201cConnect\u201d in Docker Desktop\u2019s MCP Client settings, this configuration gets added automatically\u2014you don\u2019t need to edit it manually.<\/p>\n<\/div>\n<h2 class=\"wp-block-heading\">Real-World Demo: From Screenshot to Deployed App (With Tests!)<\/h2>\n<p>Now that you\u2019ve connected Claude Desktop to <a href=\"https:\/\/docs.docker.com\/ai\/mcp-catalog-and-toolkit\/toolkit\/\" target=\"_blank\">Docker MCP Toolkit<\/a>, let\u2019s see it in action with a practical example. What if you could take a screenshot of any app, and have Claude recreate it with working code AND full test coverage in minutes?<\/p>\n<h3 class=\"wp-block-heading\">The Problem<\/h3>\n<p>Right now, the typical workflow looks like this:<\/p>\n<p>Designers create mockups<\/p>\n<p>Developers manually rebuild them in code<\/p>\n<p>QA writes and runs tests<\/p>\n<p>Repeat until it works<\/p>\n<p>It\u2019s slow, manual, and riddled with back-and-forth communication gaps.<\/p>\n<h3 class=\"wp-block-heading\">The Solution<\/h3>\n<p>Claude Desktop + <a href=\"https:\/\/docs.docker.com\/ai\/mcp-catalog-and-toolkit\/toolkit\/\" target=\"_blank\">Docker MCP Toolkit<\/a> automates all three steps. You provide a screenshot, and Claude handles the rest\u2014analysis, code generation, testing, debugging, and deployment.<\/p>\n<h3 class=\"wp-block-heading\">What You\u2019ll Build<\/h3>\n<p>A functional React component from a screenshot, complete with:<\/p>\n<p>Jest unit tests\u00a0<\/p>\n<p>A GitHub repo (basic structure)<\/p>\n<p>Configuration files (package.json, <a href=\"http:\/\/babelrc.js\/\" target=\"_blank\">babelrc.js<\/a>, gitignore)<\/p>\n<p>Files ready for download<\/p>\n<div class=\"style-plain wp-block-ponyo-houston\">\n<p>Note: This is a code foundation, not production deployment. Does NOT include: CI\/CD, live deployment, Playwright tests, or a11y validation.<\/p>\n<\/div>\n<h3 class=\"wp-block-heading\">The Demo Setup<\/h3>\n<p>For this demonstration, we\u2019ll use five MCP servers:<\/p>\n<p><a href=\"https:\/\/hub.docker.com\/mcp\/server\/firecrawl\/overview\" target=\"_blank\"><strong>Firecrawl<\/strong><\/a> \u2013 Captures and analyzes screenshots<\/p>\n<p><a href=\"https:\/\/hub.docker.com\/mcp\/server\/node-code-sandbox\/overview\" target=\"_blank\"><strong>Node.js Sandbox<\/strong><\/a> \u2013 Runs tests, installs dependencies, validates code (in isolated containers)<\/p>\n<p><a href=\"https:\/\/hub.docker.com\/mcp\/server\/github-official\/overview\" target=\"_blank\"><strong>GitHub<\/strong><\/a> \u2013 Handles version control and deployment<\/p>\n<p><a href=\"https:\/\/hub.docker.com\/mcp\/server\/sequentialthinking\/overview\" target=\"_blank\"><strong>Sequential Thinking<\/strong><\/a> \u2013 Debugs failing tests and optimizes code<\/p>\n<p><a href=\"https:\/\/hub.docker.com\/mcp\/server\/context7\/overview\" target=\"_blank\"><strong>Context7<\/strong><\/a><strong> <\/strong>\u2013 Provides code documentation for LLMs and AI code editors<\/p>\n<h3 class=\"wp-block-heading\">The Walkthrough (Step-by-Step)<\/h3>\n<div class=\"wp-block-ponyo-table style__default\">\n<p>Phase 1: Screenshot to Component<\/p>\n<p>\u2013 You provide a screenshot, could be a Stripe checkout page, a dashboard card, whatever UI you need.<\/p>\n<p>\u2013 Claude analyzes the layout, identifies components, measures spacing, captures colors, and generates a React\/Next.js component that matches the design.<\/p>\n<p>Phase 2: Generate Test Suite<\/p>\n<p>\u2013 Jest unit tests for component logic (41 tests covering rendering, interactions, filters and state management).<\/p>\n<p>Phase 3: Run &amp; Debug with Node.js Sandbox<\/p>\n<p><strong><em>This is where Docker really shines<\/em><\/strong><\/p>\n<p>\u2013 The Node.js Sandbox MCP spins up an isolated container, installs all dependencies safely, and runs your test suite. <\/p>\n<p>\u2013 Everything happens in a sandboxes environment; nothing touches your local machine.<\/p>\n<p>\u2013 If tests fail? Sequential Thinking kicks in. Claude iterates, fixes the code, spins up a <em>fresh<\/em> container, and runs the tests again. It repeats this loop until everything passes.<\/p>\n<p>Phase 4: Deploy to GitHub<\/p>\n<p>Once tests are green:<\/p>\n<p>\u2013 Claude creates a GitHub repo with proper structure<\/p>\n<p>\u2013 Pushes the code<\/p>\n<\/div>\n<h4 class=\"wp-block-heading\">The Results:\u00a0<\/h4>\n<p><strong>Before:<\/strong> A screenshot of a UI<\/p>\n<p><strong>After:<\/strong> A fully tested, deployed, production-ready component<\/p>\n<p><strong>Time saved:<\/strong> What used to take 4 hours now takes 10 minutes.<\/p>\n<h3 class=\"wp-block-heading\">Why This Matters<\/h3>\n<p><strong>Security First<\/strong><strong><br \/><\/strong> Code runs in isolated containers, not on your machine. No risk of malicious code affecting your system. Every execution has an audit trail.<\/p>\n<p><strong>Reproducibility<\/strong><strong><br \/><\/strong> Same Docker image = same results, every time. Works on your machine, your teammate\u2019s machine, and in CI\/CD. No more \u201cworks on my machine\u201d excuses.<\/p>\n<p><strong>Speed + Safety<\/strong><strong><br \/><\/strong> Test potentially dangerous AI-generated code without fear. Iterate quickly in isolated environments. Roll back instantly if something breaks.<\/p>\n<p><strong>Visibility<\/strong><strong><br \/><\/strong> See exactly what\u2019s running and where. Monitor resource usage in Docker Desktop. Access full logs and debugging capabilities.<\/p>\n<h3 class=\"wp-block-heading\">Configure MCP Servers<\/h3>\n<p>Assuming that Docker MCP Toolkit is already configured with Claude Desktop, follow the below steps to configure and add MCP servers.\u00a0<\/p>\n<p>Click \u201cMCP Toolkit\u201d and select \u201cCatalog\u201d to search for the following MCP servers and add them one by one.<\/p>\n<p>Firecrawl (web scraping, screenshots)<\/p>\n<p>GitHub Official (repo management, PRs, issues, commits)<\/p>\n<p>Sequential Thinking (systematic problem-solving)<\/p>\n<p>Context7 (up-to-date code documentation for LLMs and code editors)<\/p>\n<div class=\"style-plain wp-block-ponyo-houston\">\n<p>Note:\u00a0<\/p>\n<p>The Node.js Sandbox MCP server implements Docker-out-of-Docker (DooD) pattern by mounting \/var\/run\/docker.sock, giving the sandbox container full Docker daemon API access. This allows it to spawn ephemeral sibling containers for code execution \u2013 when Claude requests JavaScript execution, the sandbox container makes Docker API calls to create temporary Node.js containers (node:lts-slim, Playwright, etc.) with resource limits (512MB RAM, 0.75 CPU cores), executes the code in isolation, and auto-removes the container.<\/p>\n<p>The Docker socket mount is a privilege escalation vector (effectively granting root-level host access) but enables dynamic container orchestration without the overhead of true Docker-in-Docker. Files are persisted via volume mount to ~\/Desktop\/sandbox-output, mapped to \/root inside execution containers. This architecture trades security for flexibility \u2013 acceptable for local development but requires Docker Scout vulnerability scanning and careful consideration for production use. Hence, you\u2019ll require a separate entry for <a href=\"http:\/\/node.js\/\" target=\"_blank\">Node.js<\/a> Sandbox MCP server in\u00a0 the Claude configuration file. You\u2019ll see how to configure later in this article.<\/p>\n<\/div>\n<div class=\"wp-block-ponyo-image\"><\/div>\n\n<h4 class=\"wp-block-heading\">Configure Firecrawl MCP Server<\/h4>\n<p>The <a href=\"https:\/\/hub.docker.com\/mcp\/server\/firecrawl\/overview\" target=\"_blank\">Firecrawl MCP server<\/a> gives Claude Desktop the ability to add powerful web scraping and search capabilities. To setup a Firecrawl MCP server, you\u2019ll need Firecrawl API key via <a href=\"https:\/\/www.firecrawl.dev\/app\/api-keys\" target=\"_blank\">https:\/\/www.firecrawl.dev\/app\/api-keys<\/a>. Create a new account if you\u2019re visiting the <a href=\"https:\/\/www.firecrawl.dev\/\" target=\"_blank\">https:\/\/www.firecrawl.dev\/<\/a> portal for the first time. Click \u201cAPI Keys\u2019 on the left sidebar to get the new API keys created.<\/p>\n<div class=\"wp-block-ponyo-image\"><\/div>\n<p><strong>In Docker Desktop:<\/strong><\/p>\n<p>Open <strong>Docker Desktop<\/strong> \u2192 <strong>MCP Toolkit<\/strong> \u2192 <strong>Catalog<\/strong><\/p>\n<p>Search for <strong>\u201cFirecrawl\u201d<\/strong><\/p>\n<p>Find <strong>Firecrawl <\/strong>in the results<\/p>\n<p>Select Configurations<\/p>\n<p>Add Firecrawl API Keys (firecrawl.api_key) that you created earlier<\/p>\n<p>Leave all the other entries blank<\/p>\n<p>Click <strong>Save and Add Server<\/strong><\/p>\n<div class=\"wp-block-ponyo-image\"><\/div>\n<p>The Firecrawl MCP server should now appear under \u201cMy Servers\u201d in Docker MCP Toolkit.<\/p>\n<p><strong>What you get:<\/strong><\/p>\n<p><strong>6+ Firecrawl tools<\/strong> including:<\/p>\n<p>firecrawl_check_crawl_status \u2013 check the status of a crawl job.<\/p>\n<p>firecrawl_crawl \u2013 Starts a crawl job on a website and extracts content from all pages.<\/p>\n<p>firecrawl_map \u2013 Map a website to discover all indexed URLs on the site<\/p>\n<p>firecrawl_extract \u2013 Extract structured information from web pages using LLM capabilties.<\/p>\n<p>firecrawl_scrape -Scrape content from a single URL with advanced options.<\/p>\n<p>firecrawl_search \u2013 Search the web and optionally extract content from search results.<\/p>\n<div class=\"wp-block-ponyo-image\"><\/div>\n\n<h4 class=\"wp-block-heading\">Configure GitHub Official MCP Server<\/h4>\n<p>The <a href=\"https:\/\/hub.docker.com\/mcp\/server\/github-official\/overview\" target=\"_blank\">GitHub MCP<\/a> enables Claude Desktop to create issues, PRs, and manage repositories on your behalf.<\/p>\n<p><strong>Option 1: OAuth Authentication (Recommended \u2013 Easiest)<\/strong><\/p>\n<p>In <strong>MCP Toolkit<\/strong> \u2192 <strong>Catalog<\/strong>, search <strong>\u201cGitHub Official\u201d<\/strong><\/p>\n<p>Click <strong>+ Add<\/strong><\/p>\n<p>Go to the <strong>OAuth<\/strong> tab in Docker Desktop<\/p>\n<p>Find the <strong>GitHub<\/strong> entry<\/p>\n<p>Click <strong>\u201cAuthorize\u201d<\/strong><\/p>\n<p>Your browser opens GitHub\u2019s authorization page<\/p>\n<p>Click <strong>\u201cAuthorize Docker\u201d<\/strong> on GitHub<\/p>\n<p>You\u2019re redirected back to Docker Desktop<\/p>\n<p>Return to <strong>Catalog<\/strong> tab, find <strong>GitHub Official<\/strong><\/p>\n<p>Click <strong>Start Server<\/strong><\/p>\n<div class=\"wp-block-ponyo-image\"><\/div>\n<p><strong>Advantage:<\/strong> No manual token creation. Authorization happens through GitHub\u2019s secure OAuth flow with automatic token refresh.<\/p>\n<p><strong>Option 2: Personal Access Token (For Granular Control)<\/strong><\/p>\n<p>If you prefer manual control or need specific scopes:<\/p>\n<p><strong>Step 1: Create GitHub Personal Access Token<\/strong><\/p>\n<p>Go to <a href=\"https:\/\/github.com\/\" target=\"_blank\"><strong>https:\/\/github.com<\/strong><\/a><strong> <\/strong>\u00a0and sign in<\/p>\n<p>Click your <strong>profile picture<\/strong> \u2192 <strong>Settings<\/strong><\/p>\n<p>Scroll to <strong>\u201cDeveloper settings\u201d<\/strong> in the left sidebar<\/p>\n<p>Click <strong>\u201cPersonal access tokens\u201d<\/strong> \u2192 <strong>\u201cTokens (classic)\u201d<\/strong><\/p>\n<p>Click <strong>\u201cGenerate new token\u201d<\/strong> \u2192 <strong>\u201cGenerate new token (classic)\u201d<\/strong><\/p>\n<p>Name it: <strong>\u201cDocker MCP Browser Testing\u201d<\/strong><\/p>\n<p><strong>Select scopes:<\/strong><\/p>\n<p>repo (Full control of repositories)<\/p>\n<p>workflow (Update GitHub Actions workflows)<\/p>\n<p>Click <strong>\u201cGenerate token\u201d<\/strong><\/p>\n<p><strong>Copy the token immediately<\/strong> (you won\u2019t see it again!)<\/p>\n<p><strong>Step 2: Configure in Docker Desktop<\/strong><\/p>\n<p>In <strong>MCP Toolkit<\/strong> \u2192 <strong>Catalog<\/strong>, find <strong>GitHub Official<\/strong><\/p>\n<p>Click <strong>+ Add<\/strong> (if not already added)<\/p>\n<p>Go to <strong>Configuration<\/strong> tab<\/p>\n<p>Select <strong>\u201cPersonal Access Token\u201d<\/strong> as the authentication method<\/p>\n<p>Paste your token<\/p>\n<p>Click <strong>Start Server<\/strong><\/p>\n<p><strong>Or via CLI:<\/strong><\/p>\n<div class=\"wp-block-syntaxhighlighter-code \">\ndocker mcp secret set GITHUB.PERSONAL_ACCESS_TOKEN=github_pat_YOUR_TOKEN_HERE\n<\/div>\n<h4 class=\"wp-block-heading\">Configure Sequential Thinking MCP Server<\/h4>\n<p>The <a href=\"https:\/\/hub.docker.com\/mcp\/server\/sequentialthinking\/overview\" target=\"_blank\">Sequential Thinking MCP server<\/a> gives Claude Desktop the ability for dynamic and reflective problem-solving through thought sequences. Adding the Sequential Thinking MCP server is straightforward \u2013\u00a0 it doesn\u2019t require any API key. Just search for Sequential Thinking in the Catalog and get it to your MCP server list.<\/p>\n<p><strong>In Docker Desktop:<\/strong><\/p>\n<p>Open <strong>Docker Desktop<\/strong> \u2192 <strong>MCP Toolkit<\/strong> \u2192 <strong>Catalog<\/strong><\/p>\n<p>Search for <strong>\u201cSequential Thinking\u201d<\/strong><\/p>\n<p>Find <strong>Sequential Thinking <\/strong>in the results<\/p>\n<p>Click \u201cAdd MCP Server\u201d to add without any configuration<\/p>\n<p>The Sequential Thinking MCP MCP server should now appear under \u201cMy Servers\u201d in Docker MCP Toolkit.<\/p>\n<p><strong>What you get:<\/strong><\/p>\n<p><strong>A single Sequential Thinking tool that<\/strong> includes:<\/p>\n<p>sequentialthinking \u2013 A detailed tool for dynamic and reflective problem-solving through thoughts. This tool helps analyze problems through a flexible thinking process that can adapt and evolve. Each thought can build on, question, or revise previous insights as understanding deepens.<\/p>\n<div class=\"wp-block-ponyo-image\"><\/div>\n\n<h4 class=\"wp-block-heading\">Configure Node.js Sandbox MCP Server<\/h4>\n<p>The <a href=\"http:\/\/node.js\/\" target=\"_blank\">Node.js<\/a> Sandbox MCP enables Claude Desktop to spin up disposable Docker containers to execute arbitrary JavaScript. To get it added to the Claude Desktop, replace the contents of the Claude Desktop configuration file with the following JSON structure. This configuration tells Claude Desktop to start the <a href=\"http:\/\/node.js\/\" target=\"_blank\">Node.js<\/a> Sandbox with access to specific directories:<\/p>\n<div class=\"wp-block-syntaxhighlighter-code \">\n{<br \/>\n  &#8220;mcpServers&#8221;: {<br \/>\n    &#8220;MCP_DOCKER&#8221;: {<br \/>\n      &#8220;command&#8221;: &#8220;docker&#8221;,<br \/>\n      &#8220;args&#8221;: [&#8220;mcp&#8221;, &#8220;gateway&#8221;, &#8220;run&#8221;]<br \/>\n    },<br \/>\n    &#8220;node-code-sandbox&#8221;: {<br \/>\n      &#8220;command&#8221;: &#8220;docker&#8221;,<br \/>\n      &#8220;args&#8221;: [<br \/>\n        &#8220;run&#8221;,<br \/>\n        &#8220;-i&#8221;,<br \/>\n        &#8220;&#8211;rm&#8221;,<br \/>\n        &#8220;-v&#8221;,<br \/>\n        &#8220;\/var\/run\/docker.sock:\/var\/run\/docker.sock&#8221;,<br \/>\n        &#8220;-v&#8221;,<br \/>\n        &#8220;\/Users\/YOUR_USERNAME\/Desktop\/sandbox-output:\/root&#8221;,<br \/>\n        &#8220;mcp\/node-code-sandbox&#8221;<br \/>\n      ],<br \/>\n      &#8220;env&#8221;: {<br \/>\n        &#8220;FILES_DIR&#8221;: &#8220;\/root&#8221;,<br \/>\n        &#8220;SANDBOX_MEMORY_LIMIT&#8221;: &#8220;512m&#8221;,<br \/>\n        &#8220;SANDBOX_CPU_LIMIT&#8221;: &#8220;0.75&#8221;<br \/>\n      }<br \/>\n    }<br \/>\n  }<br \/>\n}\n<\/div>\n<p>Before you restart your Claude Desktop, make sure that the \/Users\/YOUR_USERNAME\/Desktop\/sandout-output directory exists on your local system and this directory is made available to containers via Docker Desktop &gt; Settings &gt; Resources &gt; File Sharing.<\/p>\n<div class=\"wp-block-ponyo-image\"><\/div>\n\n<p><strong>What you get:<\/strong><\/p>\n<p><strong>7 <\/strong><a href=\"http:\/\/node.js\/\" target=\"_blank\"><strong>Node.js<\/strong><\/a><strong> Sandbox tools<\/strong> including:<\/p>\n<p>get_dependency_types \u2013 Given an array of npm package names (and optional versions), fetch whether each package ships its own TypeScript definitions or has a corresponding @types\/\u2026 package, and return the raw .d.ts text. Useful whenwhen you\u2019re about to run a Node.js script against an unfamiliar dependency and want to inspect what APIs and types it exposes.<\/p>\n<p>run_js- Install npm dependencies and run JavaScript code inside a running sandbox container.<\/p>\n<p>run_js_ephermeral \u2013 Run a JavaScript snippet in a temporary disposable container with optional npm dependencies, then automatically clean up.<\/p>\n<p>sandbox_exe \u2013 Execute one or more shell commands inside a running sandbox container. Requires a sandbox initialized beforehand.<\/p>\n<p>sandbox_initialize \u2013 Start a new isolated Docker container running Node.js. Used to set up a sandbox session for multiple commands and scripts.<\/p>\n<p>sandbox_stop \u2013 Terminate and remove a running sandbox container. Should be called after finishing work in a sandbox initialized with sandbox_initialize.<\/p>\n<p>search_npm_packages \u2013 Search for npm packages by a search term and get their name, description, and a README snippet.<\/p>\n<h4 class=\"wp-block-heading\">Configure Context7 MCP Server<\/h4>\n<p>The <a href=\"https:\/\/hub.docker.com\/mcp\/server\/context7\/overview\" target=\"_blank\">Context7 MCP<\/a> enables Claude Desktop to access the latest and up-to-date code documentation for LLMs and AI code editors. Adding Context7 MCP server is straightforward. It doesn\u2019t require any API key. Just search for Context7 in the Catalog and get it added to the MCP server lists.<\/p>\n<p><strong>In Docker Desktop:<\/strong><\/p>\n<p>Open <strong>Docker Desktop<\/strong> \u2192 <strong>MCP Toolkit<\/strong> \u2192 <strong>Catalog<\/strong><\/p>\n<p>Search for <strong>\u201cContext7\u201d<\/strong><\/p>\n<p>Find <strong>Context7 <\/strong>in the results<\/p>\n<p>Click \u201cAdd MCP Server\u201d to add without any configuration<\/p>\n<div class=\"wp-block-ponyo-image\"><\/div>\n<p>The Context7 MCP server should now appear under \u201cMy Servers\u201d in Docker MCP Toolkit<\/p>\n<p><strong>What you get:<\/strong><\/p>\n<p><strong>2 Context7 tools<\/strong> including:<\/p>\n<p>get-library-docs \u2013 Fetches up-to-date documentation for a library.<\/p>\n<p>resolve-library-id \u2013 Resolves a package\/product name to a Context7-compatible library ID and returns a list of matching libraries.\u00a0<\/p>\n<h3 class=\"wp-block-heading\">Verify the available tools under Claude Desktop<\/h3>\n<p>Once you have added all the MCP servers, click \u201cDisconnect\u201d and \u201cConnect\u201d so as to see the various MCP tools under MCP_DOCKER.<\/p>\n<div class=\"wp-block-ponyo-image\"><\/div>\n<div class=\"wp-block-ponyo-image\"><\/div>\n\n<p>That\u2019s it. It\u2019s time to start interacting with your MCP servers and tools.<\/p>\n\n<h2 class=\"wp-block-heading\">Let\u2019s Test it Out<\/h2>\n<h3 class=\"wp-block-heading\">Prompt 1:<\/h3>\n<div class=\"wp-block-syntaxhighlighter-code \">\nI&#8217;m going to upload a screenshot of a UI component. Please execute this complete workflow using all available MCP tools: \n<p>PHASE 0: STRATEGIC PLANNING Sequential Thinking to: <\/p>\n<p>1. Analyze what type of component this appears to be<br \/>\n2. Determine what research and documentation we&#8217;ll need<br \/>\n3. Plan the component architecture and structure<br \/>\n4. Identify testing requirements and edge cases<br \/>\n5. Create a step-by-step implementation strategy<br \/>\n6. Estimate the number of tests needed for full coverage <\/p>\n<p>PHASE 1: DESIGN RESEARCH <\/p>\n<p>Use Firecrawl to analyze the screenshot and extract:<br \/>\n&#8211; Complete color palette (hex values)<br \/>\n&#8211; All spacing and padding measurements<br \/>\n&#8211; Typography specifications (font family, sizes, weights) &#8211; Layout structure (grid, flexbox patterns)<br \/>\n&#8211; Component boundaries and hierarchy<br \/>\n&#8211; Interactive elements (buttons, inputs, dropdowns) <\/p>\n<p>PHASE 2: DOCUMENTATION RESEARCH <\/p>\n<p>Use Context7 to fetch the latest documentation for:<br \/>\n&#8211; React (latest hooks patterns and best practices)<br \/>\n&#8211; Next.js (if applicable<br \/>\n&#8211; Jest (current testing patterns and matchers)<br \/>\n&#8211; React Testing Library (current query methods and best practices)<br \/>\n&#8211; Lucide React or any icon library needed<br \/>\n&#8211; Any other libraries identified in the planning phase <\/p>\n<p>PHASE 3: CODE GENERATION <\/p>\n<p>Based on the research from Phases 0-2, generate:<br \/>\n1. A React\/Next.js component that:<br \/>\n   &#8211; Uses exact colors and spacing from Firecrawl analysis<br \/>\n   &#8211; Follows current best practices from Context7 docs<br \/>\n   &#8211; Implements the architecture from Sequential Thinking plan<br \/>\n   &#8211; Includes proper TypeScript types<br \/>\n   &#8211; Has clean, readable, production-ready code &#8216;<\/p>\n<p>2. Complete project structure:<br \/>\n&#8211; package.json with correct dependencies<br \/>\n&#8211; babel.config.js for Jest<br \/>\n&#8211; .gitignore<br \/>\n&#8211; README.md with setup instructions <\/p>\n<p>PHASE 4: COMPREHENSIVE TESTING <\/p>\n<p>Generate Jest + React Testing Library tests covering:<br \/>\n&#8211; Component rendering (all variants)<br \/>\n&#8211; User interactions (clicks, inputs, selections)<br \/>\n&#8211; State management and updates<br \/>\n&#8211; Edge cases (empty states, loading, errors)<br \/>\n&#8211; Accessibility (ARIA roles, keyboard navigation)<br \/>\n&#8211; Props validation and defaults <\/p>\n<p>Follow current best practices from Context7 documentation. Aim for the test count estimated in Phase 0. <\/p>\n<p>PHASE 5: VALIDATION &amp; DEBUGGING <\/p>\n<p>Use Node.js Sandbox to:<br \/>\n1. Install all dependencies in isolated container<br \/>\n2. Run the complete test suite<br \/>\n3. Capture all output and results <\/p>\n<p>If ANY tests fail:<br \/>\n&#8211; Use Sequential Thinking to:<br \/>\n   * Analyze the error messages<br \/>\n   * Generate 3 hypotheses for root cause<br \/>\n   * Rank hypotheses by likelihood<br \/>\n   * Test hypothesis 1 with a fix<br \/>\n   * Re-run in Node.js Sandbox<br \/>\n   * If still failing, move to hypothesis #2<br \/>\n   * Continue until all tests pass <\/p>\n<p>If tests need clarification on errors:<br \/>\n  &#8211; Use Context7 to look up specific error messages or API changes <\/p>\n<\/div>\n<p>Ensure that you <a href=\"https:\/\/www.docker.com\/resources\/?tags=docker-mcp\">upload<\/a> the screenshot<\/p>\n<div class=\"wp-block-ponyo-image\"><\/div>\n<p>Here\u2019s how Claude Desktop responds.<\/p>\n<div class=\"wp-block-syntaxhighlighter-code \">\nI&#8217;ll execute this comprehensive workflow step-by-step using all available MCP tools. Let me start by analyzing the uploaded screenshot and planning our approach.<br \/>\nPHASE 0: STRATEGIC PLANNING<br \/>\nLet me use Sequential Thinking to analyze this component and create a comphrenesive implementation strategy.<br \/>\nPerfect! I&#8217;ve completed the strategic planning. Now let&#8217;s move to Phase 1.<br \/>\nPHASE 1: DESIGN RESEARCH\n<p>For Phase 1, I&#8217;ll use Firecrawl to scrape the uploaded image and extract visual specifications. However, Firecrawl is designed for web scraping, not image analysis. I should use the image directly for visual analysis and describe what I see.<br \/>\n..<\/p>\n<p>PHASE 2: DOCUMENTATION RESEARCH<br \/>\nNow let me fetch the latest documentation using Context7:<br \/>\n&#8230;<br \/>\nNow let me fetch React Testing Library documentation:&#8230;<br \/>\nI&#8217;ll use \/websites\/testing-library_com-docs as it has the most code snippets (565) and comprehensive documentation.<br \/>\nPerfect! I have enough documentation. Now let&#8217;s proceed to PHASE 3: CODE GENERATION<br \/>\n&#8230;<br \/>\nPerfect! Now let&#8217;s move to PHASE 6: DEPLOYMENT. Let me create a GitHub repository<br \/>\n..<\/p>\n<p>Now let&#8217;s proceed with PHASE 4: COMPREHENSIVE TESTING. I&#8217;ll create comprehensive test files for all components:<br \/>\n&#8230;<br \/>\nNow I&#8217;ll create comprehensive tests for the resource library component based on the screenshot. Let me generate a complete test suite.<br \/>\n&#8230;<br \/>\nExcellent progress! CSS issue resolved &#8211; 35 of 41 tests now passing! Let me analyze the remaining 6 failures:<\/p>\n<p>BUG IDENTIFIED: Type Filter Mismatch<br \/>\nProblem: Type filter keys don&#8217;t match resource.type values:<br \/>\nFilter keys: &#8216;Infographics&#8217;, &#8216;Videos&#8217;, &#8216;White Papers&#8217; (plural\/different)<br \/>\nResource types: &#8216;Infographic&#8217;, &#8216;Video&#8217;, &#8216;White Paper&#8217; (singular\/different)<br \/>\nFixing the component:<br \/>\nSUCCESS! ALL 41 TESTS PASSING!<br \/>\nTest Suites: 1 passed, 1 total<br \/>\nTests:       41 passed, 41 total<br \/>\nTime:        3.046 s<br \/>\n..<br \/>\nDue to character limits, let me push the updated files more efficiently. Since all tests pass locally, let me commit the fixes&#8230;<\/p>\n<\/div>\n<p>Within minutes, Claude will:\u00a0<\/p>\n<p>Analyze the design\u00a0<\/p>\n<p>Generate the component\u00a0<\/p>\n<p>Write comprehensive tests\u00a0<\/p>\n<p>Run them in an isolated Docker container\u00a0<\/p>\n<p>Debug any failures\u00a0<\/p>\n<p>Push the final code to GitHub with a live repo link<\/p>\n<div class=\"wp-block-ponyo-image\"><\/div>\n\n<div class=\"wp-block-ponyo-image\"><\/div>\n\n<p>Example Result: <a href=\"https:\/\/github.com\/ajeetraina\/resources-browser-component\" target=\"_blank\">https:\/\/github.com\/ajeetraina\/resources-browser-component<\/a><\/p>\n<div class=\"wp-block-ponyo-image\"><\/div>\n<p>You should be able to verify if <a href=\"http:\/\/node.js\/\" target=\"_blank\">Node.js<\/a> Sandbox container is running or not using Docker Dashboard. The logs show the MCP (Model Context Protocol) server successfully initializing inside a Docker container. The container starts a scavenger process that will automatically clean up after 1 hour of inactivity (checking every 60 seconds). It then performs a handshake announcing it supports MCP Protocol 2025-06-18 and server version 1.3.0.<\/p>\n<div class=\"wp-block-ponyo-image\"><\/div>\n\n<p>The server registers 7 tools for JavaScript execution:\u00a0<\/p>\n<p><strong>sandbox_initialize<\/strong> (create persistent containers),\u00a0<\/p>\n<p><strong>sandbox_exec<\/strong> (run shell commands),\u00a0<\/p>\n<p><strong>run_js<\/strong> (run JS in persistent container),\u00a0<\/p>\n<p><strong>run_js_ephemeral<\/strong> (one-shot JS with auto-cleanup),\u00a0<\/p>\n<p><strong>sandbox_stop <\/strong>(cleanup),\u00a0<\/p>\n<p><strong>get_dependency_types<\/strong> (fetch TypeScript definitions), and\u00a0<\/p>\n<p><strong>search_npm_packages<\/strong> (search npm registry).\u00a0<\/p>\n<p>All tools that execute JavaScript require ESModules syntax and use the .\/files directory for file persistence. The server is fully operational and ready to execute code!\u00a0<\/p>\n<h3 class=\"wp-block-heading\">Wrapping Up<\/h3>\n<p>You\u2019ve just witnessed how Docker MCP Toolkit transforms Claude Desktop from a chat assistant into a genuine development partner.<\/p>\n<p>What used to require hours of manual work\u2014analyzing designs, writing code, creating tests, debugging failures, setting up repos\u2014now happens in minutes with a single prompt.<\/p>\n<p>This is the new paradigm for AI-assisted development. You\u2019re not just using AI anymore. You\u2019re <em>collaborating<\/em> with it in a way that\u2019s secure, reproducible, and production-ready.<\/p>\n<p>Ready to try it? <a href=\"https:\/\/hub.docker.com\/open-desktop?url=https:\/\/open.docker.com\/dashboard\/mcp\" target=\"_blank\">Open Docker Desktop<\/a> to get started with MCP Toolkit (<em>requires v4.48 or newer to launch automatically<\/em>).<\/p>\n<h3 class=\"wp-block-heading\">Learn more<\/h3>\n<p>New to Docker? <a href=\"https:\/\/www.docker.com\/products\/docker-desktop\/\">Download Docker Desktop<\/a> today.<\/p>\n<p><a href=\"https:\/\/hub.docker.com\/mcp\" target=\"_blank\">Explore the MCP Catalog<\/a>: Discover containerized, security-hardened MCP servers.<\/p>\n<p><a href=\"https:\/\/hub.docker.com\/open-desktop?url=https:\/\/open.docker.com\/dashboard\/mcp\" target=\"_blank\">Get started with the MCP Toolkit<\/a>: Run MCP servers easily and securely.<\/p>\n<p><a href=\"https:\/\/www.docker.com\/blog\/mcp-horror-stories-the-supply-chain-attack\/\">Read our MCP Horror Stories<\/a> for real-life MCP security cases.<\/p>","protected":false},"excerpt":{"rendered":"<p>What if you could turn Claude from a conversational assistant into a development partner that actually does things\u2014safely, securely, and [&hellip;]<\/p>\n","protected":false},"author":0,"featured_media":0,"comment_status":"","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[4],"tags":[],"class_list":["post-2653","post","type-post","status-publish","format-standard","hentry","category-docker"],"_links":{"self":[{"href":"https:\/\/rssfeedtelegrambot.bnaya.co.il\/index.php\/wp-json\/wp\/v2\/posts\/2653","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/rssfeedtelegrambot.bnaya.co.il\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/rssfeedtelegrambot.bnaya.co.il\/index.php\/wp-json\/wp\/v2\/types\/post"}],"replies":[{"embeddable":true,"href":"https:\/\/rssfeedtelegrambot.bnaya.co.il\/index.php\/wp-json\/wp\/v2\/comments?post=2653"}],"version-history":[{"count":0,"href":"https:\/\/rssfeedtelegrambot.bnaya.co.il\/index.php\/wp-json\/wp\/v2\/posts\/2653\/revisions"}],"wp:attachment":[{"href":"https:\/\/rssfeedtelegrambot.bnaya.co.il\/index.php\/wp-json\/wp\/v2\/media?parent=2653"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/rssfeedtelegrambot.bnaya.co.il\/index.php\/wp-json\/wp\/v2\/categories?post=2653"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/rssfeedtelegrambot.bnaya.co.il\/index.php\/wp-json\/wp\/v2\/tags?post=2653"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}