{"id":3033,"date":"2025-12-12T13:58:07","date_gmt":"2025-12-12T13:58:07","guid":{"rendered":"https:\/\/rssfeedtelegrambot.bnaya.co.il\/index.php\/2025\/12\/12\/how-to-add-mcp-servers-to-chatgpt-with-docker-mcp-toolkit\/"},"modified":"2025-12-12T13:58:07","modified_gmt":"2025-12-12T13:58:07","slug":"how-to-add-mcp-servers-to-chatgpt-with-docker-mcp-toolkit","status":"publish","type":"post","link":"https:\/\/rssfeedtelegrambot.bnaya.co.il\/index.php\/2025\/12\/12\/how-to-add-mcp-servers-to-chatgpt-with-docker-mcp-toolkit\/","title":{"rendered":"How to Add MCP Servers to ChatGPT with Docker MCP Toolkit"},"content":{"rendered":"<p>ChatGPT is great at answering questions and generating code. But here\u2019s what it can\u2019t do: execute that code, query your actual database, create a GitHub repo with your project, or scrape live data from websites. It\u2019s like having a brilliant advisor who can only talk, never act.<\/p>\n<p><a href=\"https:\/\/www.docker.com\/products\/mcp-catalog-and-toolkit\/\">Docker MCP Toolkit<\/a> changes this completely.\u00a0<\/p>\n<p>Here\u2019s what that looks like in practice: You ask ChatGPT to check MacBook Air prices across Amazon, Walmart, and Best Buy. If competitor prices are lower than yours, it doesn\u2019t just tell you, it acts: automatically adjusting your Stripe product price to stay competitive, logging the repricing decision to SQLite, and pushing the audit trail to GitHub. All through natural conversation. No manual coding. No copy-pasting scripts. Real execution.<\/p>\n<p>\u201cBut wait,\u201d you might say, \u201cChatGPT already has a shopping research feature.\u201d True. But ChatGPT\u2019s native shopping can only lookup prices. Only MCP can execute: creating payment links, generating invoices, storing data in your database, and pushing to your GitHub. That\u2019s the difference between an advisor and an actor.<\/p>\n<p>By the end of this guide, you\u2019ll build exactly this: a Competitive Repricing Agent that checks competitor prices on demand, compares them to yours, and automatically adjusts your Stripe product prices when competitors are undercutting you.<\/p>\n<p><strong>Here\u2019s how the pieces fit together:<\/strong><\/p>\n<ul class=\"wp-block-list\">\n<li><strong>ChatGPT<\/strong> provides the intelligence: understanding your requests and determining what needs to happen<\/li>\n<li><strong>Docker MCP Gateway<\/strong> acts as the secure bridge: routing requests to the right tools<\/li>\n<li><strong>MCP Servers<\/strong> are the hands: executing actual tasks in isolated Docker containers<\/li>\n<\/ul>\n<p>The result? ChatGPT can query your SQL database, manage GitHub repositories, scrape websites, process payments, run tests, and more\u2014all while Docker\u2019s security model keeps everything contained and safe.<\/p>\n<p>In this guide, you\u2019ll learn how to add seven MCP servers to ChatGPT by connecting to Docker MCP Toolkit. We\u2019ll use a handful of <a href=\"https:\/\/www.docker.com\/blog\/top-mcp-servers-2025\/\">must-have MCP servers<\/a>: Firecrawl for web scraping, SQLite for data persistence, GitHub for version control, Stripe for payment processing, Node.js Sandbox for calculations, Sequential Thinking for complex reasoning, and Context7 for documentation. Then, you\u2019ll build the Competitive Repricing Agent shown above, all through conversation.<\/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<p><a href=\"https:\/\/modelcontextprotocol.io\/docs\/getting-started\/intro\" rel=\"nofollow noopener\" target=\"_blank\">Model Context Protocol (MCP)<\/a> is the standardized way AI agents like ChatGPT and <a href=\"https:\/\/www.docker.com\/blog\/connect-mcp-servers-to-claude-desktop-with-mcp-toolkit\/\">Claude<\/a> connect to tools, APIs, and services. It\u2019s what lets ChatGPT go beyond conversation and perform real-world actions like querying databases, deploying containers, analyzing datasets, or managing GitHub repositories.<\/p>\n<p>In short: MCP is the bridge between ChatGPT\u2019s reasoning and your developer stack. And Docker? Docker provides the guardrails that make it safe.<\/p>\n<h2 class=\"wp-block-heading\"><strong>Why Use Docker MCP Toolkit with ChatGPT?<\/strong><\/h2>\n<p>I\u2019ve been working with AI tools for a while now, and this Docker MCP integration stands out for one reason: it actually makes ChatGPT productive.<\/p>\n<p>Most AI integrations feel like toys: impressive demos that break in production. Docker MCP Toolkit is different. It creates a secure, containerized environment where ChatGPT can execute real tasks without touching your local machine or production systems.<\/p>\n<p>Every action happens in an isolated container. Every MCP server runs in its own security boundary. When you\u2019re done, containers are destroyed. No residue, no security debt, complete reproducibility across your entire team.<\/p>\n<h2 class=\"wp-block-heading\"><strong>What ChatGPT Can and Can\u2019t Do Without MCP<\/strong><\/h2>\n<p>Let\u2019s be clear about what changes when you add MCP.<\/p>\n<h3 class=\"wp-block-heading\"><strong>Without MCP<\/strong><\/h3>\n<p>You ask ChatGPT to build a system to regularly scrape product prices and store them in a database. ChatGPT responds with Python code, maybe 50 lines using BeautifulSoup and SQLite. Then you must copy the code, install dependencies, create the database schema, run the script manually, and set up a scheduler if you want it to run regularly.<\/p>\n<p>Yes, ChatGPT remembers your conversation and can store memories about you. But those memories live on OpenAI\u2019s servers\u2014not in a database you control.<\/p>\n<h3 class=\"wp-block-heading\"><strong>With MCP<\/strong><\/h3>\n<p>You ask ChatGPT the same thing. Within seconds, it calls Firecrawl MCP to actually scrape the website. It calls SQLite MCP to create a database on your machine and store the data. It calls GitHub MCP to save a report to your repository. The entire workflow executes in under a minute.<\/p>\n<p>Real data gets stored in a real database on your infrastructure. Real commits appear in your GitHub repository. Close ChatGPT, come back tomorrow, and ask \u201cShow me the price trends.\u201d ChatGPT queries your SQLite database and returns results instantly because the data lives in a database you own and control, not in ChatGPT\u2019s conversation memory.<\/p>\n<p>The data persists in your systems, ready to query anytime; no manual script execution required.<\/p>\n<h3 class=\"wp-block-heading\"><strong>Why This Is Different from ChatGPT\u2019s Native Shopping<\/strong><\/h3>\n<p>ChatGPT recently released a <a href=\"https:\/\/openai.com\/index\/chatgpt-shopping-research\/\" rel=\"nofollow noopener\" target=\"_blank\">shopping research feature<\/a> that can track prices and make recommendations. Here\u2019s what it can and cannot do:<\/p>\n<p>What ChatGPT Shopping Research can do:<\/p>\n<ul class=\"wp-block-list\">\n<li>Track prices across retailers<\/li>\n<li>Remember price history in conversation memory<\/li>\n<li>Provide comparisons and recommendations<\/li>\n<\/ul>\n<p>What ChatGPT Shopping Research cannot do:<\/p>\n<ul class=\"wp-block-list\">\n<li>Automatically update your product prices in Stripe<\/li>\n<li>Execute repricing logic based on competitor changes<\/li>\n<li>Store pricing data in your database (not OpenAI\u2019s servers)<\/li>\n<li>Push audit trails to your GitHub repository<\/li>\n<li>Create automated competitive response workflows<\/li>\n<\/ul>\n<p>With Docker MCP Toolkit, ChatGPT becomes a competitive pricing execution system. When you ask it to check prices and competitors are undercutting you, it doesn\u2019t just inform you, it acts: updating your Stripe prices to match or beat competitors, logging decisions to your database, and pushing audit records to GitHub. The data lives in your infrastructure, not OpenAI\u2019s servers.<\/p>\n<h2 class=\"wp-block-heading\"><strong>Setting Up ChatGPT with Docker MCP Toolkit<\/strong><\/h2>\n<h3 class=\"wp-block-heading\"><strong>Prerequisites<\/strong><\/h3>\n<p>Before you begin, ensure you have:<\/p>\n<ul class=\"wp-block-list\">\n<li>A machine with 8 GB RAM minimal, ideally 16GB<\/li>\n<li><a href=\"https:\/\/www.docker.com\/products\/docker-desktop\/\">Install Docker Desktop<\/a><\/li>\n<li>A ChatGPT Plus, Pro, Business, or Enterprise Account<\/li>\n<li>ngrok account (free tier works) \u2013 For exposing the Gateway publicly<\/li>\n<\/ul>\n<h3 class=\"wp-block-heading\">Step 1. Enable ChatGPT developer mode<\/h3>\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/chatgpt.com\/\" rel=\"nofollow noopener\" target=\"_blank\">Head over to ChatGPT<\/a> and create a new account.\u00a0<\/li>\n<li>Click on your profile icon at the top left corner of the ChatGPT page and select \u201cSettings\u201d. Select \u201cApps and Connectors\u201d and scroll down to the end of the page to select \u201cAdvanced Settings.\u201d<\/li>\n<\/ul>\n<div class=\"wp-block-ponyo-image\">\n                <img data-opt-id=520884993  fetchpriority=\"high\" decoding=\"async\" width=\"669\" height=\"593\" src=\"https:\/\/www.docker.com\/app\/uploads\/2025\/12\/image1.png\" class=\"fade-in attachment-full size-full\" alt=\"image1\" title=\"- image1\" \/>\n        <\/div>\n\n<p><code>Settings<\/code> \u2192 <code>Apps &amp; Connectors<\/code> \u2192 <code>Advanced<\/code> \u2192 <code>Developer Mode (ON)<\/code><\/p>\n<div class=\"wp-block-ponyo-image\">\n                <img data-opt-id=695564832  fetchpriority=\"high\" decoding=\"async\" width=\"672\" height=\"507\" src=\"https:\/\/www.docker.com\/app\/uploads\/2025\/12\/image10.png\" class=\"fade-in attachment-full size-full\" alt=\"image10\" title=\"- image10\" \/>\n        <\/div>\n\n<p><a href=\"https:\/\/platform.openai.com\/docs\/guides\/developer-mode\" rel=\"nofollow noopener\" target=\"_blank\">ChatGPT Developer Mode<\/a> provides full Model Context Protocol (MCP) client support for all tools, both read and write operations. This feature was announced in the <strong>first week of September 2025<\/strong>, marking a significant milestone in AI-developer integration. ChatGPT can perform write actions\u2014creating repositories, updating databases, modifying files\u2014all with proper confirmation modals for safety.<\/p>\n<p><strong>Key capabilities:<\/strong><\/p>\n<ul class=\"wp-block-list\">\n<li>Full read\/write MCP tool support<\/li>\n<li>Custom connector creation<\/li>\n<li>OAuth and authentication support<\/li>\n<li>Explicit confirmations for write operations<\/li>\n<li>Available on Plus, Pro, Business, Enterprise, and Edu plans<\/li>\n<\/ul>\n<h3 class=\"wp-block-heading\">Step 2. Create MCP Gateway<\/h3>\n<p>This creates and starts the MCP Gateway container that ChatGPT will connect to.<\/p>\n<div class=\"wp-block-syntaxhighlighter-code \">\n<pre class=\"brush: bash; gutter: false; title: ; notranslate\">\ndocker mcp server init --template=chatgpt-app-basic test-chatgpt-app\n\nSuccessfully initialized MCP server project in test-chatgpt-app (template: chatgpt-app-basic)\nNext steps:\n  cd test-chatgpt-app\n  docker build -t test-chatgpt-app:latest .\n\n<\/pre>\n<\/div>\n<h3 class=\"wp-block-heading\">Step 3. List out all the project files<\/h3>\n<div class=\"wp-block-syntaxhighlighter-code \">\n<pre class=\"brush: bash; gutter: false; title: ; notranslate\">\nls -la\ntotal 64\ndrwxr-xr-x@   9 ajeetsraina  staff   288 16 Nov 16:53 .\ndrwxr-x---+ 311 ajeetsraina  staff  9952 16 Nov 16:54 ..\n-rw-r--r--@   1 ajeetsraina  staff   165 16 Nov 16:53 catalog.yaml\n-rw-r--r--@   1 ajeetsraina  staff   371 16 Nov 16:53 compose.yaml\n-rw-r--r--@   1 ajeetsraina  staff   480 16 Nov 16:53 Dockerfile\n-rw-r--r--@   1 ajeetsraina  staff    88 16 Nov 16:53 go.mod\n-rw-r--r--@   1 ajeetsraina  staff  2576 16 Nov 16:53 main.go\n-rw-r--r--@   1 ajeetsraina  staff  2254 16 Nov 16:53 README.md\n-rw-r--r--@   1 ajeetsraina  staff  6234 16 Nov 16:53 ui.html\n\n<\/pre>\n<\/div>\n<h3 class=\"wp-block-heading\">Step 4. Examine the Compose file<\/h3>\n<div class=\"wp-block-syntaxhighlighter-code \">\n<pre class=\"brush: bash; gutter: false; title: ; notranslate\">\nservices:\n  gateway:\n    image: docker\/mcp-gateway                # Official Docker MCP Gateway image\n    command:\n      - --servers=test-chatgpt-app           # Name of the MCP server to expose\n      - --catalog=\/mcp\/catalog.yaml          # Path to server catalog configuration\n      - --transport=streaming                # Use streaming transport for real-time responses\n      - --port=8811                           # Port the gateway listens on\n    environment:\n      - DOCKER_MCP_IN_CONTAINER=1            # Tells gateway it's running inside a container\n    volumes:\n      - \/var\/run\/docker.sock:\/var\/run\/docker.sock  # Allows gateway to spawn sibling containers\n      - .\/catalog.yaml:\/mcp\/catalog.yaml           # Mount local catalog into container\n    ports:\n      - \"8811:8811\"                           # Expose gateway port to host\n\n\n<\/pre>\n<\/div>\n<h3 class=\"wp-block-heading\">Step 5. Bringing up the compose services<\/h3>\n<div class=\"wp-block-syntaxhighlighter-code \">\n<pre class=\"brush: bash; gutter: false; title: ; notranslate\">\ndocker compose up -d\n[+] Running 2\/2\n \u2714 Network test-chatgpt-app_default      Created                                            0.0s\n \u2714 Container test-chatgpt-app-gateway-1  Started  \n\n<\/pre>\n<\/div>\n<div class=\"wp-block-syntaxhighlighter-code \">\n<pre class=\"brush: bash; gutter: false; title: ; notranslate\">\ndocker ps | grep test-chatgpt-app\neb22b958e09c   docker\/mcp-gateway   \"\/docker-mcp gateway\u2026\"   21 seconds ago   Up 20 seconds   0.0.0.0:8811-&gt;8811\/tcp, [::]:8811-&gt;8811\/tcp   test-chatgpt-app-gateway-1\n\n<\/pre>\n<\/div>\n<h3 class=\"wp-block-heading\">Step 6. Verify the MCP session<\/h3>\n<div class=\"wp-block-syntaxhighlighter-code \">\n<pre class=\"brush: bash; gutter: false; title: ; notranslate\">\ncurl http:\/\/localhost:8811\/mcp\nGET requires an active session\n<\/pre>\n<\/div>\n<h3 class=\"wp-block-heading\">Step 7. Expose with Ngrok<\/h3>\n<p><a href=\"https:\/\/ngrok.com\/download\/mac-os\" rel=\"nofollow noopener\" target=\"_blank\">Install ngrok<\/a> and expose your local gateway. You will need to sign up for an ngrok account to obtain an auth token.<\/p>\n<div class=\"wp-block-syntaxhighlighter-code \">\n<pre class=\"brush: bash; gutter: false; title: ; notranslate\">\nbrew install ngrok\nngrok config add-authtoken &lt;your_token_id&gt;\nngrok http 8811\n<\/pre>\n<\/div>\n<p>Note the public URL (like <code>https:\/\/91288b24dc98.ngrok-free.app<\/code>). Keep this terminal open.<\/p>\n<h3 class=\"wp-block-heading\">Step 8. Connect ChatGPT<\/h3>\n<p>In ChatGPT, go to <code>Settings<\/code> \u2192 <code>Apps &amp; Connectors<\/code> \u2192 <code>Create<\/code>.<\/p>\n<div class=\"wp-block-ponyo-image\">\n                <img data-opt-id=2102805293  data-opt-src=\"https:\/\/www.docker.com\/app\/uploads\/2025\/12\/image11.png\"  decoding=\"async\" width=\"1236\" height=\"1084\" src=\"data:image/svg+xml,%3Csvg%20viewBox%3D%220%200%20100%%20100%%22%20width%3D%22100%%22%20height%3D%22100%%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Crect%20width%3D%22100%%22%20height%3D%22100%%22%20fill%3D%22transparent%22%2F%3E%3C%2Fsvg%3E\" class=\"fade-in attachment-full size-full\" alt=\"image11\" title=\"- image11\" \/>\n        <\/div>\n\n<h3 class=\"wp-block-heading\">Step 9. Create connector:<\/h3>\n<p><code>Settings<\/code> \u2192 <code>Apps &amp; Connectors<\/code> \u2192 <code>Create<\/code><\/p>\n<div class=\"wp-block-syntaxhighlighter-code \">\n<pre class=\"brush: plain; gutter: false; title: ; notranslate\">\n- Name: Test MCP Server\n- Description: Testing Docker MCP Toolkit integration\n- Connector URL: https:\/\/[YOUR_NGROK_URL]\/mcp\n- Authentication: None\n- Click \"Create\"\n\n<\/pre>\n<\/div>\n<p>Test it by asking ChatGPT to call the greet tool. If it responds, your connection works. Here\u2019s how it looks:<\/p>\n<div class=\"wp-block-ponyo-image\">\n                <img data-opt-id=287981233  data-opt-src=\"https:\/\/www.docker.com\/app\/uploads\/2025\/12\/image7.png\"  decoding=\"async\" width=\"1572\" height=\"1238\" src=\"data:image/svg+xml,%3Csvg%20viewBox%3D%220%200%20100%%20100%%22%20width%3D%22100%%22%20height%3D%22100%%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Crect%20width%3D%22100%%22%20height%3D%22100%%22%20fill%3D%22transparent%22%2F%3E%3C%2Fsvg%3E\" class=\"fade-in attachment-full size-full\" alt=\"image7\" title=\"- image7\" \/>\n        <\/div>\n<div class=\"wp-block-ponyo-image\">\n                <img data-opt-id=187979379  data-opt-src=\"https:\/\/www.docker.com\/app\/uploads\/2025\/12\/image6.png\"  decoding=\"async\" width=\"1586\" height=\"1138\" src=\"data:image/svg+xml,%3Csvg%20viewBox%3D%220%200%20100%%20100%%22%20width%3D%22100%%22%20height%3D%22100%%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Crect%20width%3D%22100%%22%20height%3D%22100%%22%20fill%3D%22transparent%22%2F%3E%3C%2Fsvg%3E\" class=\"fade-in attachment-full size-full\" alt=\"image6\" title=\"- image6\" \/>\n        <\/div>\n\n<h2 class=\"wp-block-heading\">Real-World Demo: Competitive Repricing Agent<\/h2>\n<p>Now that you\u2019ve connected ChatGPT to Docker MCP Toolkit, let\u2019s build something that showcases what <strong>only<\/strong> MCP can do\u2014something ChatGPT\u2019s native shopping feature cannot replicate.<\/p>\n<p>We\u2019ll create a Competitive Repricing Agent that checks competitor prices on demand, and when competitors are undercutting you, automatically adjusts your Stripe product prices to stay competitive, logs the repricing decision to SQLite, and pushes audit records to GitHub.<\/p>\n<p><strong>Time to build<\/strong>: 15 minutes\u00a0\u00a0<\/p>\n<p><strong>Monthly cost:<\/strong> Free Stripe (test mode) + $1.50-$15 (Firecrawl API)<\/p>\n<p><strong>Infrastructure:<\/strong> $0 (SQLite is free)<\/p>\n<h3 class=\"wp-block-heading\">The Challenge<\/h3>\n<p>E-commerce businesses face a constant dilemma:<\/p>\n<ul class=\"wp-block-list\">\n<li>Manual price checking across multiple retailers is time-consuming and error-prone<\/li>\n<li>Comparing competitor prices and calculating optimal repricing requires multiple tools<\/li>\n<li>Executing price changes across your payment infrastructure requires context-switching<\/li>\n<li>Historical trend data is scattered across spreadsheets<\/li>\n<li>Strategic insights require manual analysis and interpretation<\/li>\n<\/ul>\n<p>Result: Missed opportunities, delayed reactions, and losing sales to competitors with better prices.<\/p>\n<h3 class=\"wp-block-heading\">The Solution: On-Demand Competitive Repricing Agent<\/h3>\n<p>Docker MCP Toolkit transforms ChatGPT from an advisor into an autonomous agent that can actually execute. The architecture routes your requests through a secure MCP Gateway that orchestrates specialized tools: Firecrawl scrapes live prices, Stripe creates payment links and invoices, SQLite stores data on your infrastructure, and GitHub maintains your audit trail. Each tool runs in an isolated Docker container: secure, reproducible, and under your control.<\/p>\n<h4 class=\"wp-block-heading\">The 7 MCP Servers We\u2019ll Use<\/h4>\n\n<div class=\"wp-block-ponyo-table style__default\">\n<table class=\"responsive-table\">\n<tbody class=\"wp-block-ponyo-table-body\">\n<tr class=\"wp-block-ponyo-table-header\">\n<th class=\"wp-block-ponyo-cell\" data-responsive-table-heading=\"Server\">\n<p><span>Server<\/span><\/p>\n<\/th>\n<th class=\"wp-block-ponyo-cell\" data-responsive-table-heading=\"Purpose\">\n<p><span>Purpose<\/span><\/p>\n<\/th>\n<th class=\"wp-block-ponyo-cell\" data-responsive-table-heading=\"Why It Matters\">\n<p><span>Why It Matters<\/span><\/p>\n<\/th>\n<\/tr>\n<tr class=\"wp-block-ponyo-table-row\">\n<td class=\"wp-block-ponyo-cell\">\n<p><span>Firecrawl<\/span><\/p>\n<\/td>\n<td class=\"wp-block-ponyo-cell\">\n<p><span>Web scraping<\/span><\/p>\n<\/td>\n<td class=\"wp-block-ponyo-cell\">\n<p><span>Extracts live prices from any website<\/span><\/p>\n<\/td>\n<\/tr>\n<tr class=\"wp-block-ponyo-table-row\">\n<td class=\"wp-block-ponyo-cell\">\n<p><span>SQLite<\/span><\/p>\n<\/td>\n<td class=\"wp-block-ponyo-cell\">\n<p><span>Data persistence<\/span><\/p>\n<\/td>\n<td class=\"wp-block-ponyo-cell\">\n<p><span>Stores 30+ days of price history<\/span><\/p>\n<\/td>\n<\/tr>\n<tr class=\"wp-block-ponyo-table-row\">\n<td class=\"wp-block-ponyo-cell\">\n<p>Stripe<\/p>\n<\/td>\n<td class=\"wp-block-ponyo-cell\">\n<p>Payment management<\/p>\n<\/td>\n<td class=\"wp-block-ponyo-cell\">\n<p>Updates your product prices to match or beat competitors<\/p>\n<\/td>\n<\/tr>\n<tr class=\"wp-block-ponyo-table-row\">\n<td class=\"wp-block-ponyo-cell\">\n<p><span>GitHub<\/span><\/p>\n<\/td>\n<td class=\"wp-block-ponyo-cell\">\n<p><span>Version control<\/span><\/p>\n<\/td>\n<td class=\"wp-block-ponyo-cell\">\n<p><span>Audit trail for all reports<\/span><\/p>\n<\/td>\n<\/tr>\n<tr class=\"wp-block-ponyo-table-row\">\n<td class=\"wp-block-ponyo-cell\">\n<p><span>Sequential Thinking<\/span><\/p>\n<\/td>\n<td class=\"wp-block-ponyo-cell\">\n<p><span>Complex reasoning<\/span><\/p>\n<\/td>\n<td class=\"wp-block-ponyo-cell\">\n<p><span>Multi-step strategic analysis<\/span><\/p>\n<\/td>\n<\/tr>\n<tr class=\"wp-block-ponyo-table-row\">\n<td class=\"wp-block-ponyo-cell\">\n<p><span>Context7<\/span><\/p>\n<\/td>\n<td class=\"wp-block-ponyo-cell\">\n<p><span>Documentation<\/span><\/p>\n<\/td>\n<td class=\"wp-block-ponyo-cell\">\n<p><span>Up-to-date library docs for code generation<\/span><\/p>\n<\/td>\n<\/tr>\n<tr class=\"wp-block-ponyo-table-row\">\n<td class=\"wp-block-ponyo-cell\">\n<p><span>Node.js Sandbox<\/span><\/p>\n<\/td>\n<td class=\"wp-block-ponyo-cell\">\n<p><span>Calculations<\/span><\/p>\n<\/td>\n<td class=\"wp-block-ponyo-cell\">\n<p><span>Statistical analysis in isolated containers<\/span><\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<h2 class=\"wp-block-heading\"><strong>The Complete MCP Workflow (Executes in under 3 minutes)<\/strong><\/h2>\n<div class=\"wp-block-ponyo-image\">\n                <img data-opt-id=1521896537  data-opt-src=\"https:\/\/www.docker.com\/app\/uploads\/2025\/12\/image10-1.png\"  decoding=\"async\" width=\"996\" height=\"1462\" src=\"data:image/svg+xml,%3Csvg%20viewBox%3D%220%200%20100%%20100%%22%20width%3D%22100%%22%20height%3D%22100%%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Crect%20width%3D%22100%%22%20height%3D%22100%%22%20fill%3D%22transparent%22%2F%3E%3C%2Fsvg%3E\" class=\"fade-in attachment-full size-full\" alt=\"image10 1\" title=\"- image10 1\" \/>\n        <\/div>\n<p>Step 1. Scrape and Store (30 seconds)<\/p>\n<ul class=\"wp-block-list\">\n<li>Agent scrapes live prices from Amazon, Walmart, and Best Buy\u00a0<\/li>\n<li>Compares against your current Stripe product price<\/li>\n<\/ul>\n<p>Step 2: Compare Against Your Price (15 seconds)\u00a0<\/p>\n<ul class=\"wp-block-list\">\n<li>Best Buy drops to $509.99\u2014undercutting your $549.99<\/li>\n<li>Agent calculates optimal repricing strategy<\/li>\n<li>Determines new competitive price point<\/li>\n<\/ul>\n<p>Step 3: Execute Repricing (30 seconds)<\/p>\n<ul class=\"wp-block-list\">\n<li>Updates your Stripe product with the new competitive price<\/li>\n<li>Logs repricing decision to SQLite with full audit trail<\/li>\n<li>Pushes pricing change report to GitHub<\/li>\n<\/ul>\n<p>Step 4: Stay Competitive (instant)<\/p>\n<ul class=\"wp-block-list\">\n<li>Your product now priced competitively<\/li>\n<li>Complete audit trail in your systems<\/li>\n<li>Historical data ready for trend analysis<\/li>\n<\/ul>\n<h3 class=\"wp-block-heading\">The Demo Setup: Enable Docker MCP Toolkit<\/h3>\n<p>Open Docker Desktop and enable the MCP Toolkit from the Settings menu.<\/p>\n<p><strong>To enable:<\/strong><\/p>\n<ol class=\"wp-block-list\">\n<li>Open Docker Desktop<\/li>\n<li>Go to <strong>Settings<\/strong> \u2192 <strong>Beta Features<\/strong><\/li>\n<li>Toggle <strong>Docker MCP Toolkit<\/strong> ON<\/li>\n<li>Click <strong>Apply<\/strong><\/li>\n<\/ol>\n<div class=\"wp-block-ponyo-image\">\n                <img data-opt-id=1251025857  data-opt-src=\"https:\/\/www.docker.com\/app\/uploads\/2025\/12\/image8.png\"  decoding=\"async\" width=\"1999\" height=\"1031\" src=\"data:image/svg+xml,%3Csvg%20viewBox%3D%220%200%20100%%20100%%22%20width%3D%22100%%22%20height%3D%22100%%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Crect%20width%3D%22100%%22%20height%3D%22100%%22%20fill%3D%22transparent%22%2F%3E%3C%2Fsvg%3E\" class=\"fade-in attachment-full size-full\" alt=\"image8\" title=\"- image8\" \/>\n        <\/div>\n\n<p>Click MCP Toolkit in the Docker Desktop sidebar, then select Catalog to explore available servers.<\/p>\n<p>For this demonstration, we\u2019ll use seven MCP servers:<\/p>\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/hub.docker.com\/mcp\/server\/sqlite-mcp-server\/overview\" rel=\"nofollow noopener\" target=\"_blank\"><strong>SQLite<\/strong><\/a><strong> \u2013 <\/strong>RDBMS with advanced analytics, text and vector search, geospatial capabilities, and intelligent workflow automation<\/li>\n<li><a href=\"https:\/\/hub.docker.com\/mcp\/server\/stripe\/overview\" rel=\"nofollow noopener\" target=\"_blank\"><strong>Stripe<\/strong><\/a> \u2013\u00a0 Updates your product prices to match or beat competitors for automated repricing workflows<\/li>\n<li><a href=\"https:\/\/hub.docker.com\/mcp\/server\/github-official\/overview\" rel=\"nofollow noopener\" target=\"_blank\"><strong>GitHub<\/strong><\/a> \u2013 Handles version control and deployment<\/li>\n<li><a href=\"https:\/\/hub.docker.com\/mcp\/server\/firecrawl\/overview\" rel=\"nofollow noopener\" target=\"_blank\"><strong>Firecrawl<\/strong><\/a> \u2013 Web scraping and content extraction<\/li>\n<li><a href=\"https:\/\/hub.docker.com\/mcp\/server\/node-code-sandbox\/overview\" rel=\"nofollow noopener\" target=\"_blank\"><strong>Node.js Sandbox<\/strong><\/a> \u2013 Runs tests, installs dependencies, validates code (in isolated containers)<\/li>\n<li><a href=\"https:\/\/hub.docker.com\/mcp\/server\/sequentialthinking\/overview\" rel=\"nofollow noopener\" target=\"_blank\"><strong>Sequential Thinking<\/strong><\/a> \u2013 Debugs failing tests and optimizes code<\/li>\n<li><a href=\"https:\/\/hub.docker.com\/mcp\/server\/context7\/overview\" rel=\"nofollow noopener\" target=\"_blank\"><strong>Context7<\/strong><\/a><strong> <\/strong>\u2013 Provides code documentation for LLMs and AI code editors<\/li>\n<\/ul>\n<p>Let\u2019s configure each one step by step.<\/p>\n<h3 class=\"wp-block-heading\">1. Configure SQLite MCP Server<\/h3>\n<p>The SQLite MCP Server requires no external database setup. It manages database creation and queries through its 25 built-in tools.<\/p>\n<p>To setup the SQLite MCP Server, follow these steps:<\/p>\n<ol class=\"wp-block-list\">\n<li>Open Docker Desktop \u2192 access MCP Toolkit \u2192 Catalog<\/li>\n<li>Search \u201cSQLite\u201d<\/li>\n<li>Click + Add<\/li>\n<li>No configuration needed, just click <strong>Start MCP Server<\/strong><\/li>\n<\/ol>\n<div class=\"wp-block-syntaxhighlighter-code \">\n<pre class=\"brush: bash; gutter: false; title: ; notranslate\">\ndocker mcp server ls\n# Should show sqlite-mcp-server as enabled\n\n<\/pre>\n<\/div>\n<p>That\u2019s it. ChatGPT can now create databases, tables, and run queries through conversation.<\/p>\n<h3 class=\"wp-block-heading\">2. Configure Stripe MCP Server<\/h3>\n<p>The Stripe MCP server gives ChatGPT full access to payment infrastructure\u2014listing products, managing prices, and updating your catalog to stay competitive.<\/p>\n<h3 class=\"wp-block-heading\"><strong>Get Stripe API Key<\/strong><\/h3>\n<ol class=\"wp-block-list\">\n<li>Go to<a href=\"https:\/\/dashboard.stripe.com\/\" rel=\"nofollow noopener\" target=\"_blank\"> dashboard.stripe.com<\/a><\/li>\n<li>Navigate to <strong>Developers \u2192 API Keys<\/strong><\/li>\n<li>Copy your Secret Key:\n<ul class=\"wp-block-list\">\n<li>Use <code>sk_test_...<\/code> for sandbox\/testing<\/li>\n<li>Use <code>sk_live_...<\/code> for production<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<h3 class=\"wp-block-heading\"><strong>Configure in Docker Desktop<\/strong><\/h3>\n<ol class=\"wp-block-list\">\n<li>Open Docker Desktop \u2192 MCP Toolkit \u2192 Catalog<\/li>\n<li>Search for <strong>\u201cStripe\u201d<\/strong><\/li>\n<li>Click <strong>+ Add<\/strong><\/li>\n<li>Go to the <strong>Configuration<\/strong> tab<\/li>\n<li>Add your API key:\n<ul class=\"wp-block-list\">\n<li>Field: <code>stripe.api_key<\/code><\/li>\n<li>Value: Your Stripe secret key<\/li>\n<\/ul>\n<\/li>\n<li>Click <strong>Save<\/strong> and <strong>Start Server<\/strong><\/li>\n<\/ol>\n<p>Or via CLI:<\/p>\n<div class=\"wp-block-syntaxhighlighter-code \">\n<pre class=\"brush: bash; gutter: false; title: ; notranslate\">\ndocker mcp secret set STRIPE.API_KEY=\"sk_test_your_key_here\"\ndocker mcp server enable stripe\n<\/pre>\n<\/div>\n<h3 class=\"wp-block-heading\">3. Configure GitHub Official MCP Server<\/h3>\n<p>The GitHub MCP server lets ChatGPT create repositories, manage issues, review pull requests, and more.<\/p>\n<h4 class=\"wp-block-heading\"><strong>Option 1: OAuth Authentication (Recommended)<\/strong><\/h4>\n<p>OAuth is the easiest and most secure method:<\/p>\n<ol class=\"wp-block-list\">\n<li>In <strong>MCP Toolkit<\/strong> \u2192 <strong>Catalog<\/strong>, search <strong>\u201cGitHub Official\u201d<\/strong><\/li>\n<li>Click <strong>+ Add<\/strong><\/li>\n<li>Go to the <strong>OAuth<\/strong> tab in Docker Desktop<\/li>\n<li>Find the <strong>GitHub<\/strong> entry<\/li>\n<li>Click <strong>\u201cAuthorize\u201d<\/strong><\/li>\n<li>Your browser opens GitHub\u2019s authorization page<\/li>\n<li>Click <strong>\u201cAuthorize Docker\u201d<\/strong> on GitHub<\/li>\n<li>You\u2019re redirected back to Docker Desktop<\/li>\n<li>Return to the <strong>Catalog<\/strong> tab, find <strong>GitHub Official<\/strong><\/li>\n<li>Click <strong>Start Server<\/strong><\/li>\n<\/ol>\n<p><strong>Advantage:<\/strong> No manual token creation. Authorization happens through GitHub\u2019s secure OAuth flow with automatic token refresh.<\/p>\n<h4 class=\"wp-block-heading\"><strong>Option 2: Personal Access Token<\/strong><\/h4>\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<ol class=\"wp-block-list\">\n<li>Go to<a href=\"https:\/\/github.com\/\" rel=\"nofollow noopener\" target=\"_blank\"> https:\/\/github.com<\/a> and sign in<\/li>\n<li>Click your profile picture \u2192 <strong>Settings<\/strong><\/li>\n<li>Scroll to <strong>\u201cDeveloper settings\u201d<\/strong> in the left sidebar<\/li>\n<li>Click <strong>\u201cPersonal access tokens\u201d<\/strong> \u2192 <strong>\u201cTokens (classic)\u201d<\/strong><\/li>\n<li>Click <strong>\u201cGenerate new token\u201d<\/strong> \u2192 <strong>\u201cGenerate new token (classic)\u201d<\/strong><\/li>\n<li>Name it: <strong>\u201cDocker MCP ChatGPT\u201d<\/strong><\/li>\n<li>Select scopes:\n<ul class=\"wp-block-list\">\n<li><code>repo<\/code> (Full control of repositories)<\/li>\n<li><code>workflow<\/code> (Update GitHub Actions workflows)<\/li>\n<li><code>read:org<\/code> (Read organization data)<\/li>\n<\/ul>\n<\/li>\n<li>Click <strong>\u201cGenerate token\u201d<\/strong><\/li>\n<li><strong>Copy the token immediately<\/strong> (you won\u2019t see it again!)<\/li>\n<\/ol>\n<p><strong>Step 2: Configure in Docker Desktop<\/strong><\/p>\n<p>In MCP Toolkit \u2192 Catalog, find <strong>GitHub Official<\/strong>:<\/p>\n<ol class=\"wp-block-list\">\n<li>Click <strong>+ Add<\/strong> (if not already added)<\/li>\n<li>Go to the <strong>Configuration<\/strong> tab<\/li>\n<li>Select <strong>\u201cPersonal Access Token\u201d<\/strong> as the authentication method<\/li>\n<li>Paste your token<\/li>\n<li>Click <strong>Start Server<\/strong><\/li>\n<\/ol>\n<p><strong>Or via CLI:<\/strong><\/p>\n<div class=\"wp-block-syntaxhighlighter-code \">\n<pre class=\"brush: bash; gutter: false; title: ; notranslate\">\ndocker mcp secret set GITHUB.PERSONAL_ACCESS_TOKEN=\"github_pat_YOUR_TOKEN_HERE\"\n\n<\/pre>\n<\/div>\n<h4 class=\"wp-block-heading\"><strong>Verify GitHub Connection<\/strong><\/h4>\n<div class=\"wp-block-syntaxhighlighter-code \">\n<pre class=\"brush: bash; gutter: false; title: ; notranslate\">\ndocker mcp server ls\n\n# Should show github as enabled\n\n<\/pre>\n<\/div>\n<h3 class=\"wp-block-heading\">4. Configure Firecrawl MCP Server<\/h3>\n<p>The Firecrawl MCP server gives ChatGPT powerful web scraping and search capabilities.<\/p>\n<h4 class=\"wp-block-heading\"><strong>Get Firecrawl API Key<\/strong><\/h4>\n<ol class=\"wp-block-list\">\n<li>Go to<a href=\"https:\/\/www.firecrawl.dev\/\" rel=\"nofollow noopener\" target=\"_blank\"> https:\/\/www.firecrawl.dev<\/a><\/li>\n<li>Create an account (or sign in)<\/li>\n<li>Navigate to <strong>API Keys<\/strong> in the sidebar<\/li>\n<li>Click <strong>\u201cCreate New API Key\u201d<\/strong><\/li>\n<li><strong>Copy the API key<\/strong><\/li>\n<\/ol>\n<div class=\"wp-block-ponyo-image\">\n                <img data-opt-id=913295066  data-opt-src=\"https:\/\/www.docker.com\/app\/uploads\/2025\/12\/image13.png\"  decoding=\"async\" width=\"1220\" height=\"539\" src=\"data:image/svg+xml,%3Csvg%20viewBox%3D%220%200%20100%%20100%%22%20width%3D%22100%%22%20height%3D%22100%%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Crect%20width%3D%22100%%22%20height%3D%22100%%22%20fill%3D%22transparent%22%2F%3E%3C%2Fsvg%3E\" class=\"fade-in attachment-full size-full\" alt=\"image13\" title=\"- image13\" \/>\n        <\/div>\n<h4 class=\"wp-block-heading\"><strong>Configure in Docker Desktop<\/strong><\/h4>\n<ol class=\"wp-block-list\">\n<li>Open <strong>Docker Desktop<\/strong> \u2192 <strong>MCP Toolkit<\/strong> \u2192 <strong>Catalog<\/strong><\/li>\n<li>Search for <strong>\u201cFirecrawl\u201d<\/strong><\/li>\n<li>Find <strong>Firecrawl<\/strong> in the results<\/li>\n<li>Click <strong>+ Add<\/strong><\/li>\n<li>Go to the <strong>Configuration<\/strong> tab<\/li>\n<li>Add your API key:\n<ul class=\"wp-block-list\">\n<li>Field: <code>firecrawl.api_key<\/code><\/li>\n<li>Value: Your Firecrawl API key<\/li>\n<\/ul>\n<\/li>\n<li>Leave all other entries blank<\/li>\n<li>Click <strong>Save and Add Server<\/strong><\/li>\n<\/ol>\n<p><strong>Or via CLI:<\/strong><\/p>\n<div class=\"wp-block-syntaxhighlighter-code \">\n<pre class=\"brush: bash; gutter: false; title: ; notranslate\">\ndocker mcp secret set FIRECRAWL.API_KEY=\"fc-your-api-key-here\"\ndocker mcp server enable firecrawl\n<\/pre>\n<\/div>\n<h4 class=\"wp-block-heading\"><strong>What You Get<\/strong><\/h4>\n<p>6+ Firecrawl tools, including:<\/p>\n<ul class=\"wp-block-list\">\n<li><code>firecrawl_scrape<\/code> \u2013 Scrape content from a single URL<\/li>\n<li><code>firecrawl_crawl<\/code> \u2013 Crawl entire websites and extract content<\/li>\n<li><code>firecrawl_map<\/code> \u2013 Discover all indexed URLs on a site<\/li>\n<li><code>firecrawl_search<\/code> \u2013 Search the web and extract content<\/li>\n<li><code>firecrawl_extract<\/code> \u2013 Extract structured data using LLM capabilities<\/li>\n<li><code>firecrawl_check_crawl_status<\/code> \u2013 Check crawl job status<\/li>\n<\/ul>\n<h3 class=\"wp-block-heading\">5. Configure Node.js Sandbox MCP Server<\/h3>\n<p>The Node.js Sandbox enables ChatGPT to execute JavaScript in isolated Docker containers.<\/p>\n<div class=\"style-plain wp-block-ponyo-houston\">\n<p><strong>Note:<\/strong> This server requires special configuration because it uses Docker-out-of-Docker (DooD) to spawn containers.<\/p>\n<\/div>\n<h4 class=\"wp-block-heading\"><strong>Understanding the Architecture<\/strong><\/h4>\n<p>The Node.js Sandbox implements the <strong>Docker-out-of-Docker (DooD)<\/strong> pattern by mounting <code>\/var\/run\/docker.sock<\/code>. This gives the sandbox container access to the Docker daemon, allowing it to spawn ephemeral sibling containers for code execution.<\/p>\n<p>When ChatGPT requests JavaScript execution:<\/p>\n<ol class=\"wp-block-list\">\n<li>Sandbox container makes Docker API calls<\/li>\n<li>Creates temporary Node.js containers (with resource limits)<\/li>\n<li>Executes code in complete isolation<\/li>\n<li>Returns results<\/li>\n<li>Auto-removes the container<\/li>\n<\/ol>\n<div class=\"style-plain wp-block-ponyo-houston\">\n<p><strong>Security Note:<\/strong> Docker socket access is a privilege escalation vector (effectively granting root-level host access). This is acceptable for local development but requires careful consideration for production use.<\/p>\n<\/div>\n<h4 class=\"wp-block-heading\"><strong>Add Via Docker Desktop<\/strong><\/h4>\n<ol class=\"wp-block-list\">\n<li><strong>MCP Toolkit<\/strong> \u2192 <strong>Catalog<\/strong><\/li>\n<li>Search <strong>\u201cNode.js Sandbox\u201d<\/strong><\/li>\n<li>Click <strong>+ Add<\/strong><\/li>\n<\/ol>\n<p><strong>Unfortunately, the Node.js Sandbox requires manual configuration<\/strong> that can\u2019t be done entirely through the Docker Desktop UI. We\u2019ll need to configure ChatGPT\u2019s connector settings directly.<\/p>\n<h4 class=\"wp-block-heading\"><strong>Prepare Output Directory<\/strong><\/h4>\n<p>Create a directory for sandbox output:<\/p>\n<div class=\"wp-block-syntaxhighlighter-code \">\n<pre class=\"brush: bash; gutter: false; title: ; notranslate\">\n# macOS\/Linux\nmkdir -p ~\/Desktop\/sandbox-output\n\n# Windows\nmkdir %USERPROFILE%Desktopsandbox-output\n<\/pre>\n<\/div>\n<h4 class=\"wp-block-heading\"><strong>Configure Docker File Sharing<\/strong><\/h4>\n<p>Ensure this directory is accessible to Docker:<\/p>\n<ol class=\"wp-block-list\">\n<li><strong>Docker Desktop<\/strong> \u2192 <strong>Settings<\/strong> \u2192 <strong>Resources<\/strong> \u2192 <strong>File Sharing<\/strong><\/li>\n<li>Add <code>~\/Desktop\/sandbox-output<\/code> (or your Windows equivalent)<\/li>\n<li>Click <strong>Apply &amp; Restart<\/strong><\/li>\n<\/ol>\n<h3 class=\"wp-block-heading\">6. Configure Sequential Thinking MCP Server<\/h3>\n<p>The Sequential Thinking MCP server gives ChatGPT 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<ol class=\"wp-block-list\">\n<li>Open <strong>Docker Desktop<\/strong> \u2192 <strong>MCP Toolkit<\/strong> \u2192 <strong>Catalog<\/strong><\/li>\n<li>Search for <strong>\u201cSequential Thinking\u201d<\/strong><\/li>\n<li>Find <strong>Sequential Thinking <\/strong>in the results<\/li>\n<li>Click \u201cAdd MCP Server\u201d to add without any configuration<\/li>\n<\/ol>\n<p>The Sequential Thinking MCP server should now appear under \u201cMy Servers\u201d in Docker MCP Toolkit.<\/p>\n<p><strong>What you get:<\/strong><\/p>\n<ul class=\"wp-block-list\">\n<li><strong>A single Sequential Thinking tool that<\/strong> includes:\n<ul class=\"wp-block-list\">\n<li><code>sequentialthinking<\/code> \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.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<div class=\"wp-block-ponyo-image\">\n                <img data-opt-id=1784240470  data-opt-src=\"https:\/\/www.docker.com\/app\/uploads\/2025\/12\/image2.png\"  decoding=\"async\" width=\"1999\" height=\"938\" src=\"data:image/svg+xml,%3Csvg%20viewBox%3D%220%200%20100%%20100%%22%20width%3D%22100%%22%20height%3D%22100%%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Crect%20width%3D%22100%%22%20height%3D%22100%%22%20fill%3D%22transparent%22%2F%3E%3C%2Fsvg%3E\" class=\"fade-in attachment-full size-full\" alt=\"image2\" title=\"- image2\" \/>\n        <\/div>\n\n<h3 class=\"wp-block-heading\">7. Configure Context7 MCP Server<\/h3>\n<p>The Context7 MCP enables ChatGPT to access the latest and up-to-date code documentation for LLMs and AI code editors. Adding the 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<ol class=\"wp-block-list\">\n<li>Open <strong>Docker Desktop<\/strong> \u2192 <strong>MCP Toolkit<\/strong> \u2192 <strong>Catalog<\/strong><\/li>\n<li>Search for <strong>\u201cContext7\u201d<\/strong><\/li>\n<li>Find <strong>Context7 <\/strong>in the results<\/li>\n<li>Click \u201cAdd MCP Server\u201d to add without any configuration<\/li>\n<\/ol>\n<div class=\"wp-block-ponyo-image\">\n                <img data-opt-id=661645324  data-opt-src=\"https:\/\/www.docker.com\/app\/uploads\/2025\/12\/image3.png\"  decoding=\"async\" width=\"1999\" height=\"980\" src=\"data:image/svg+xml,%3Csvg%20viewBox%3D%220%200%20100%%20100%%22%20width%3D%22100%%22%20height%3D%22100%%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Crect%20width%3D%22100%%22%20height%3D%22100%%22%20fill%3D%22transparent%22%2F%3E%3C%2Fsvg%3E\" class=\"fade-in attachment-full size-full\" alt=\"image3\" title=\"- image3\" \/>\n        <\/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<ul class=\"wp-block-list\">\n<li><strong>2 Context7 tools<\/strong> including:\n<ul class=\"wp-block-list\">\n<li><code>get-library-docs<\/code> \u2013 Fetches up-to-date documentation for a library.<\/li>\n<li><code>resolve-library-id<\/code> \u2013 Resolves a package\/product name to a Context7-compatible library ID and returns a list of matching libraries.\u00a0<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>Verify if all the MCP servers are available and running.<\/p>\n<div class=\"wp-block-syntaxhighlighter-code \">\n<pre class=\"brush: bash; gutter: false; title: ; notranslate\">\ndocker mcp server ls\n\nMCP Servers (7 enabled)\n\nNAME                   OAUTH        SECRETS      CONFIG       DESCRIPTION\n------------------------------------------------------------------------------------------------\ncontext7               -            -            -            Context7 MCP Server -- Up-to-da...\nfetch                  -            -            -            Fetches a URL from the internet...\nfirecrawl              -            \u2713 done       partial    Official Firecrawl MCP Server...\ngithub-official        \u2713 done       \u2713 done       -            Official GitHub MCP Server, by ...\nnode-code-sandbox      -            -            -            A Node.js\u2013based Model Context P...\nsequentialthinking     -            -            -            Dynamic and reflective problem-...\nsqlite-mcp-server      -            -            -            The SQLite MCP Server transform...\nstripe                 -            \u2713 done       -            Interact with Stripe services o...\n\nTip: To use these servers, connect to a client (IE: claude\/cursor) with docker mcp client connect &lt;client-name&gt;\n\n<\/pre>\n<\/div>\n<h3 class=\"wp-block-heading\">Configuring ChatGPT App and Connector<\/h3>\n<p>Use the following compose file in order to let ChatGPT discover all the tools under Docker MCP Catalog:<\/p>\n<div class=\"wp-block-syntaxhighlighter-code \">\n<pre class=\"brush: bash; gutter: false; title: ; notranslate\">\nservices:\n  gateway:\n    image: docker\/mcp-gateway\n    command:\n      - --catalog=\/root\/.docker\/mcp\/catalogs\/docker-mcp.yaml\n      - --servers=context7,firecrawl,github-official,node-code-sandbox,sequentialthinking,sqlite-mcp-server,stripe\n      - --transport=streaming\n      - --port=8811\n    environment:\n      - DOCKER_MCP_IN_CONTAINER=1\n    volumes:\n      - \/var\/run\/docker.sock:\/var\/run\/docker.sock\n      - ~\/.docker\/mcp:\/root\/.docker\/mcp:ro\n    ports:\n      - \"8811:8811\"\n\n<\/pre>\n<\/div>\n<p>By now, you should be able to view all the MCP tools under ChatGPT Developer Mode.<\/p>\n<div class=\"wp-block-ponyo-image\">\n                <img data-opt-id=929257469  data-opt-src=\"https:\/\/www.docker.com\/app\/uploads\/2025\/12\/Chatgpt-MCP-image.png\"  decoding=\"async\" width=\"1001\" height=\"839\" src=\"data:image/svg+xml,%3Csvg%20viewBox%3D%220%200%20100%%20100%%22%20width%3D%22100%%22%20height%3D%22100%%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Crect%20width%3D%22100%%22%20height%3D%22100%%22%20fill%3D%22transparent%22%2F%3E%3C%2Fsvg%3E\" class=\"fade-in attachment-full size-full\" alt=\"Chatgpt MCP image\" title=\"- Chatgpt MCP image\" \/>\n        <\/div>\n<h2 class=\"wp-block-heading\">Let\u2019s Test it Out<\/h2>\n<p>Now we give ChatGPT its intelligence. Copy this system prompt and paste it into your ChatGPT conversation:<\/p>\n<div class=\"wp-block-syntaxhighlighter-code \">\n<pre class=\"brush: bash; gutter: false; title: ; notranslate\">\nYou are a Competitive Repricing Agent that monitors competitor prices, automatically adjusts your Stripe product prices, and provides strategic recommendations using 7 MCP servers: Firecrawl (web scraping), SQLite (database), Stripe (price management), GitHub (reports), Node.js Sandbox (calculations), Context7 (documentation), and Sequential Thinking (complex reasoning).\n\nDATABASE SCHEMA\n\nProducts table: id (primary key), sku (unique), name, category, brand, stripe_product_id, stripe_price_id, current_price, created_at\nPrice_history table: id (primary key), product_id, competitor, price, original_price, discount_percent, in_stock, url, scraped_at\nPrice_alerts table: id (primary key), product_id, competitor, alert_type, old_price, new_price, change_percent, created_at\nRepricing_log table: id, product_name, competitor_triggered, competitor_price, old_stripe_price, new_stripe_price, repricing_strategy, stripe_price_id, triggered_at, status\n\nIndexes: idx_price_history_product on (product_id, scraped_at DESC), idx_price_history_competitor on (competitor)\n\nWORKFLOW\n\nOn-demand check: Scrape (Firecrawl) \u2192 Store (SQLite) \u2192 Analyze (Node.js) \u2192 Report (GitHub)\nCompetitive repricing: Scrape (Firecrawl) \u2192 Compare to your price \u2192 Update (Stripe) \u2192 Log (SQLite) \u2192 Report (GitHub)\n\nSTRIPE REPRICING WORKFLOW\n\nWhen competitor price drops below your current price:\n1. list_products - Find your existing Stripe product\n2. list_prices - Get current price for the product\n3. create_price - Create new price to match\/beat competitor (prices are immutable in Stripe)\n4. update_product - Set the new price as default\n5. Log the repricing decision to SQLite\n\nPrice strategies:\n- \"match\": Set price equal to lowest competitor\n- \"undercut\": Set price 1-2% below lowest competitor\n- \"margin_floor\": Never go below your minimum margin threshold\n\nUse Context7 when: Writing scripts with new libraries, creating visualizations, building custom scrapers, or needing latest API docs\n\nUse Sequential Thinking when: Making complex pricing strategy decisions, planning repricing rules, investigating market anomalies, or creating strategic recommendations requiring deep analysis\n\nEXTRACTION SCHEMAS\n\nAmazon: title, price, list_price, rating, reviews, availability\nWalmart: name, current_price, was_price, availability  \nBest Buy: product_name, sale_price, regular_price, availability\n\nRESPONSE FORMAT\n\nPrice Monitoring: Products scraped, competitors covered, your price vs competitors\nRepricing Triggers: Which competitor triggered, price difference, strategy applied\nPrice Updated: New Stripe price ID, old vs new price, margin impact\nAudit Trail: GitHub commit SHA, SQLite log entry, timestamp\n\nTOOL ORCHESTRATION PATTERNS\n\nSimple price check: Firecrawl \u2192 SQLite \u2192 Response\nTrend analysis: SQLite \u2192 Node.js \u2192 Response\nStrategy analysis: SQLite \u2192 Sequential Thinking \u2192 Response\nCompetitive repricing: Firecrawl \u2192 Compare \u2192 Stripe \u2192 SQLite \u2192 GitHub\nCustom tool development: Context7 \u2192 Node.js \u2192 GitHub\nFull intelligence report: Firecrawl \u2192 SQLite \u2192 Node.js \u2192 Sequential Thinking \u2192 GitHub\n\nKEY USAGE PATTERNS\n\nUse Stripe for: Listing products, listing prices, creating new prices, updating product default prices\n\nUse Sequential Thinking for: Pricing strategy decisions (match, undercut, or hold), market anomaly investigations (why did competitor prices spike), multi-factor repricing recommendations\n\nUse Context7 for: Getting documentation before coding, learning new libraries on-the-fly, ensuring code uses latest API conventions\n\nUse Node.js for: Statistical calculations (moving averages, standard deviation, volatility), chart generation, margin calculations\n\nBEST PRACTICES\n\nSpace web scraping requests 2 seconds apart to respect rate limits\nCalculate price difference as (your_price - competitor_price)\nTrigger repricing when competitor drops below your current price\nLog all repricing decisions to SQLite with Stripe IDs for audit trail\nPush pricing reports to GitHub for compliance\nAlways use Context7 before writing code with unfamiliar libraries\nRespect margin floors\u2014never reprice below minimum acceptable margin\n\nCOMMAND RECOGNITION PATTERNS\n\n\"Check X prices and stay competitive\" \u2192 Full repricing pipeline: scrape \u2192 compare \u2192 if competitor lower: Stripe update + SQLite + GitHub\n\"Match competitor price for X\" \u2192 Stripe: list_products \u2192 list_prices \u2192 create_price (matching)\n\"Undercut competitors on X\" \u2192 Stripe: create_price (1-2% below lowest)\n\"Show price history\" \u2192 SQLite query \u2192 format results\n\"Analyze pricing strategy for X\" \u2192 Sequential Thinking analysis\n\"Why did competitor prices change\" \u2192 Query data \u2192 Sequential Thinking investigation\n\nCORE PRINCIPLE\n\nWhen competitors change prices, don't just report\u2014ACT. Update your Stripe prices to stay competitive, log decisions to SQLite, push audit records to GitHub. Transform competitor intelligence into automated repricing. All data stays on YOUR infrastructure.\n\n\n\n<\/pre>\n<\/div>\n<p>Here\u2019s the prompt:<\/p>\n<div class=\"wp-block-syntaxhighlighter-code \">\n<pre class=\"brush: bash; gutter: false; title: ; notranslate\">\nSet up a competitive repricing agent:\n1. I sell MacBook Air M3 on my store - current Stripe price is $549.99\n2. Monitor competitor prices on Amazon, Walmart, Best Buy\n3. When ANY competitor drops below my price:\n   - Automatically update my Stripe product price to match or beat them\n   - Use \"undercut\" strategy (price 1% below lowest competitor)\n   - Log the repricing decision to SQLite\n   - Push pricing change report to GitHub\n\nCheck prices now and reprice if needed.\n\n<\/pre>\n<\/div>\n<p>Here\u2019s how ChatGPT responds \u2013 orchestrating all 7 MCP servers in a single workflow:<\/p>\n<h4 class=\"wp-block-heading\">Competitive Repricing Agent \u2013 Execution Complete<\/h4>\n<p>Within 3 minutes, ChatGPT orchestrated all 7 MCP servers to analyse the market and automatically reprice your product.<\/p>\n<p><strong>Repricing Triggered and Executed:<\/strong><\/p>\n<div class=\"wp-block-ponyo-table style__default\">\n<table class=\"responsive-table\">\n<tbody class=\"wp-block-ponyo-table-body\">\n<tr class=\"wp-block-ponyo-table-header\">\n<th class=\"wp-block-ponyo-cell\" data-responsive-table-heading=\"Metrics\">\n<p>Metrics<\/p>\n<\/th>\n<th class=\"wp-block-ponyo-cell\" data-responsive-table-heading=\"Before\">\n<p>Before<\/p>\n<\/th>\n<th class=\"wp-block-ponyo-cell\" data-responsive-table-heading=\"After\">\n<p>After<\/p>\n<\/th>\n<\/tr>\n<tr class=\"wp-block-ponyo-table-row\">\n<td class=\"wp-block-ponyo-cell\">\n<p>Your Price<\/p>\n<\/td>\n<td class=\"wp-block-ponyo-cell\">\n<p>$549.99<\/p>\n<\/td>\n<td class=\"wp-block-ponyo-cell\">\n<p>$504.99<\/p>\n<\/td>\n<\/tr>\n<tr class=\"wp-block-ponyo-table-row\">\n<td class=\"wp-block-ponyo-cell\">\n<p>Price Change<\/p>\n<\/td>\n<td class=\"wp-block-ponyo-cell\">\n<p>\u2013<\/p>\n<\/td>\n<td class=\"wp-block-ponyo-cell\">\n<p>-$45.00 (-8.2%)<\/p>\n<\/td>\n<\/tr>\n<tr class=\"wp-block-ponyo-table-row\">\n<td class=\"wp-block-ponyo-cell\">\n<p>Market Position<\/p>\n<\/td>\n<td class=\"wp-block-ponyo-cell\">\n<p>3rd (behind Best Buy)<\/p>\n<\/td>\n<td class=\"wp-block-ponyo-cell\">\n<p>#1 Lowest<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<p><strong>Competitor Price Scan Results:<\/strong><\/p>\n<div class=\"wp-block-ponyo-table style__default\">\n<table class=\"responsive-table\">\n<tbody class=\"wp-block-ponyo-table-body\">\n<tr class=\"wp-block-ponyo-table-header\">\n<th class=\"wp-block-ponyo-cell\" data-responsive-table-heading=\"Retailer\">\n<p>Retailer<\/p>\n<\/th>\n<th class=\"wp-block-ponyo-cell\" data-responsive-table-heading=\"Price\">\n<p>Price<\/p>\n<\/th>\n<th class=\"wp-block-ponyo-cell\" data-responsive-table-heading=\"Vs. Your New Price\">\n<p>Vs. Your New Price<\/p>\n<\/th>\n<\/tr>\n<tr class=\"wp-block-ponyo-table-row\">\n<td class=\"wp-block-ponyo-cell\">\n<p>Your Store<\/p>\n<\/td>\n<td class=\"wp-block-ponyo-cell\">\n<p>$504.99<\/p>\n<\/td>\n<td class=\"wp-block-ponyo-cell\">\n<p><strong>Market Leader<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr class=\"wp-block-ponyo-table-row\">\n<td class=\"wp-block-ponyo-cell\">\n<p>Best Buy<\/p>\n<\/td>\n<td class=\"wp-block-ponyo-cell\">\n<p>$509.99<\/p>\n<\/td>\n<td class=\"wp-block-ponyo-cell\">\n<p>+$5.00 (you beat by 1%)<\/p>\n<\/td>\n<\/tr>\n<tr class=\"wp-block-ponyo-table-row\">\n<td class=\"wp-block-ponyo-cell\">\n<p>Walmart<\/p>\n<\/td>\n<td class=\"wp-block-ponyo-cell\">\n<p>$669.00<\/p>\n<\/td>\n<td class=\"wp-block-ponyo-cell\">\n<p>+$164.01 higher<\/p>\n<\/td>\n<\/tr>\n<tr class=\"wp-block-ponyo-table-row\">\n<td class=\"wp-block-ponyo-cell\">\n<p>Amazon<\/p>\n<\/td>\n<td class=\"wp-block-ponyo-cell\">\n<p>$699.00<\/p>\n<\/td>\n<td class=\"wp-block-ponyo-cell\">\n<p>+$194.01 higher<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<p>What the Agent did (6 Steps):<\/p>\n<ol class=\"wp-block-list\">\n<li>Installed SQLite3 and created database schema with 4 tables<\/li>\n<li>Created Stripe product (prod_TZaK0ARRJ5OJJ8) with initial $549.99 price\u00a0<\/li>\n<li>Scraped live competitor prices via Firecrawl from Amazon, Best Buy, and Walmart\u00a0<\/li>\n<li>Analysed pricing strategy with Sequential Thinking \u2014 detected Best Buy at $509.99 below your price<\/li>\n<li>Executed repricing \u2014 created new Stripe price at $504.99 (price_1ScRCVI9l1vmUkzn0hTnrLmW)<\/li>\n<li>Pushed audit report to GitHub (commit `64a488aa`)<\/li>\n<\/ol>\n<p>All data stored on your infrastructure \u2013 not OpenAI\u2019s servers.\u00a0<\/p>\n<p>To check prices again, simply ask ChatGPT to \u2018check MacBook Air M3 competitor prices\u2019\u2014it will scrape, compare, and reprice automatically. Run this check daily, weekly, or whenever you want competitive intelligence<\/p>\n<h4 class=\"wp-block-heading\"><strong>Explore the Full Demo<\/strong><\/h4>\n<p>View the complete repricing report and audit trail on GitHub:<a href=\"https:\/\/github.com\/ajeetraina\/competitive-intelligence-agent-mcp\" rel=\"nofollow noopener\" target=\"_blank\"> <\/a><a href=\"https:\/\/github.com\/ajeetraina\/competitive-repricing-agent-mcp\" rel=\"nofollow noopener\" target=\"_blank\">https:\/\/github.com\/ajeetraina\/competitive-repricing-agent-mcp<\/a><\/p>\n<div class=\"style-plain wp-block-ponyo-houston\">\n<p>Want true automation? This demo shows on-demand repricing triggered by conversation. For fully automated periodic checks, you could build a simple scheduler that calls the OpenAI API every few hours to trigger the same workflow\u2014turning this into a hands-free competitive intelligence system.Default houston Paragraph Text<\/p>\n<\/div>\n<h2 class=\"wp-block-heading\"><strong>Wrapping Up<\/strong><\/h2>\n<p>You\u2019ve just connected ChatGPT to Docker MCP Toolkit and configured multiple MCP servers. What used to require context-switching between multiple tools, manual query writing, and hours of debugging now happens through natural conversation, safely executed in Docker containers.<\/p>\n<p>This is the new paradigm for AI-assisted development. ChatGPT isn\u2019t just answering questions anymore. It\u2019s querying your databases, managing your repositories, scraping data, and executing code\u2014all while Docker ensures everything stays secure and contained.<\/p>\n<p><strong>Ready to try it?<\/strong> <a href=\"https:\/\/hub.docker.com\/open-desktop?url=https:\/\/open.docker.com\/dashboard\/mcp\" rel=\"nofollow noopener\" target=\"_blank\">Open Docker Desktop<\/a> and explore the MCP Catalog. Start with SQLite, add GitHub, experiment with Firecrawl. Each server unlocks new capabilities.<\/p>\n<p>The future of development isn\u2019t writing every line of code yourself. It\u2019s having an AI partner that can execute tasks across your entire stack securely, reproducibly, and at the speed of thought.<\/p>\n<h3 class=\"wp-block-heading\"><strong>Learn More<\/strong><\/h3>\n<ul class=\"wp-block-list\">\n<li><strong>New to Docker?<\/strong><a href=\"https:\/\/www.docker.com\/products\/docker-desktop\"> Download Docker Desktop<\/a><\/li>\n<li><strong>Explore the MCP Catalog:<\/strong> <a href=\"https:\/\/hub.docker.com\/mcp\" rel=\"nofollow noopener\" target=\"_blank\">Discover containerized, security-hardened MCP servers<\/a><\/li>\n<li><strong>Get Started with MCP Toolkit:<\/strong><a href=\"https:\/\/docs.docker.com\/ai\/mcp-catalog-and-toolkit\/\" rel=\"nofollow noopener\" target=\"_blank\"> Official Documentation<\/a><\/li>\n<\/ul>","protected":false},"excerpt":{"rendered":"<p>ChatGPT is great at answering questions and generating code. But here\u2019s what it can\u2019t do: execute that code, query your [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":3034,"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-3033","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-docker"],"_links":{"self":[{"href":"https:\/\/rssfeedtelegrambot.bnaya.co.il\/index.php\/wp-json\/wp\/v2\/posts\/3033","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"}],"author":[{"embeddable":true,"href":"https:\/\/rssfeedtelegrambot.bnaya.co.il\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/rssfeedtelegrambot.bnaya.co.il\/index.php\/wp-json\/wp\/v2\/comments?post=3033"}],"version-history":[{"count":0,"href":"https:\/\/rssfeedtelegrambot.bnaya.co.il\/index.php\/wp-json\/wp\/v2\/posts\/3033\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/rssfeedtelegrambot.bnaya.co.il\/index.php\/wp-json\/wp\/v2\/media\/3034"}],"wp:attachment":[{"href":"https:\/\/rssfeedtelegrambot.bnaya.co.il\/index.php\/wp-json\/wp\/v2\/media?parent=3033"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/rssfeedtelegrambot.bnaya.co.il\/index.php\/wp-json\/wp\/v2\/categories?post=3033"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/rssfeedtelegrambot.bnaya.co.il\/index.php\/wp-json\/wp\/v2\/tags?post=3033"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}