Dev.to AI 🤖 Ai 👁 0 📖 3 min read

Ground ChatGPT in Live Amazon Data: MCP Connectivity Check + a 3-Prompt Verification

ChatGPT has been an MCP client since DevDay 2025. The interesting failure mode isn't the protocol — it's the plan tier: Developer Mode (where custom connectors live) is a paid-plan feature, so Free/Go users following the

Ground ChatGPT in Live Amazon Data: MCP Connectivity Check + a 3-Prompt Verification

ChatGPT has been an MCP client since DevDay 2025. The interesting failure mode isn't the protocol — it's the plan tier: Developer Mode (where custom connectors live) is a paid-plan feature, so Free/Go users following the setup guide find no toggle. That's the gate, not a bug. This post gives you a runnable connectivity check against a real MCP endpoint plus a 3-prompt protocol to verify grounding actually works once connected.

ChatGPT and Amazon data

The setup (5 minutes, no code)

  1. ChatGPT → profile → Settings → Apps & Connectors → Advanced Settings → toggle Developer Mode on.
  2. Create a connector: Name Pangolinfo Amazon Data, URL https://mcp.pangolinfo.com/mcp, Authentication Token — paste your API key there.
  3. The 20 tools register automatically. Free tier: 60 credits/month, recurring.

Key hygiene: use a long-lived key (short-lived keys expire and silently break the connection), one key per environment, and never paste the key into chat text or git. The Token field is its only destination.

Runnable check 1: does the endpoint answer?

Before wiring anything into ChatGPT, confirm the endpoint and key are good. MCP uses Streamable HTTP (text/event-stream); this script handles the SSE envelope and session init. Written from the public MCP protocol; not executed with a live key here — run it yourself.

#!/usr/bin/env python3
"""Pre-flight check for an MCP endpoint before connecting ChatGPT."""
import json
import urllib.request

ENDPOINT = "https://mcp.pangolinfo.com/mcp"
API_KEY = "PASTE_YOUR_KEY_HERE"

def mcp_post(payload, session_id=None):
    req = urllib.request.Request(
        ENDPOINT, data=json.dumps(payload).encode(),
        headers={"Content-Type": "application/json",
                 "Accept": "application/json, text/event-stream",
                 "Authorization": f"Bearer {API_KEY}"},
        method="POST")
    if session_id:
        req.add_header("mcp-session-id", session_id)
    with urllib.request.urlopen(req, timeout=60) as resp:
        body = resp.read().decode()
        sid = resp.headers.get("mcp-session-id", session_id)
    lines = [l[5:].strip() for l in body.splitlines() if l.startswith("data:")]
    return sid, (lines[-1] if lines else body)

sid, _ = mcp_post({"jsonrpc": "2.0", "id": 1, "method": "initialize",
                   "params": {"protocolVersion": "2025-03-26",
                              "capabilities": {},
                              "clientInfo": {"name": "precheck", "version": "1.0"}}})
print("session:", bool(sid))

_, out = mcp_post({"jsonrpc": "2.0", "id": 2, "method": "tools/list",
                   "params": {}}, session_id=sid)
tools = json.loads(out)["result"]["tools"]
print("tools:", len(tools), [t["name"] for t in tools[:5]])

_, out = mcp_post({"jsonrpc": "2.0", "id": 3, "method": "tools/call",
                   "params": {"name": "search_amazon",
                              "arguments": {"keyword": "wireless earbuds",
                                            "site": "amz_us", "page": 1}}},
                  session_id=sid)
print("search hit AirPods Pro 3:", "B0FQFB8FMG" in out)

Expected: a session id, 20 tools, and the search returning the AirPods Pro 3 ASIN. 401 → check the key and the single space after Bearer.

Runnable check 2: the 3-prompt grounding test

Once the connector is live in ChatGPT, run these in order:

  1. "Search Amazon US for wireless earbuds and give me the ASIN of the Apple AirPods Pro 3."
  2. "Pull the critical reviews for that ASIN, sorted by most helpful."
  3. "What are the main complaint themes? Give me counts, not just themes."

Reference values from a 2026-10-12 endpoint run (11 credits total): 4,269 reviews, 1,392 critical (1–2 star), newest review two days old. Top themes by helpfulness: weak low-frequency noise cancellation, units failing after ~3 months, iPhone pairing difficulty, iPad 7 incompatibility, battery/Find My issues.

Pass criteria: numbers, dates, verified-purchase markers. Fail mode: plausible themes with no counts — that's the model's memory, not the tools. Ask it which tool it called.

Troubleshooting

No Developer Mode toggle. Paid plan required (Plus/Pro/Business/Enterprise/Edu). On workspace plans an admin may have disabled it.

Connector created but calls fail. Long-lived key? Bearer + exactly one space? Short-lived keys die silently.

Script prints raw SSE. Only lines starting with data: are JSON; take the last one. The script above already handles this.

Answers feel right but carry no numbers. Ungrounded. The control test: ask a disconnected client the same question and compare — the difference is the entire point of this post.

Honest limits

Connector calls are session-bound: nothing runs between chats, so this is a research setup, not overnight monitoring. The setup procedure is compiled from multiple 2026 connector guides (consistent across sources) but wasn't executed inside a ChatGPT client end to end here — Developer Mode is beta and the UI moves, so verify menu paths against current docs. Search ≈ 1 credit/page, reviews ≈ 5 credits/page; the 60/month free tier covers the full verification several times over.

📰 Read the original article on Dev.to AI

Originally published by Dev.to AI. Aggregated on AIWithGhost for educational purposes — full credit and traffic to the original publisher.