DRAY · CASE STUDY

How we test Dray's MCP connector in ChatGPT, Claude and Grok

Claude asked for approval three times before its first reply. ChatGPT asked once, and Grok never asked. We found that on 27 September 2026, testing Dray's MCP server in all three web apps from one Tallylamp browser. A person did the sign-ins and approvals. An agent ran the chats.

Tallylamp guides5 min readUpdated
What Dray does, in 43 seconds. It plays from YouTube, and nothing loads from YouTube until you press play.

Why test in the web apps

Dray, which we also make, gives ChatGPT, Claude and Grok one shared memory, so its MCP server has to work inside each of their web apps. An MCP server can pass its own tests and still behave differently inside a chat app. Each app adds connectors its own way and asks for approval at different moments. The model decides when to call a tool, and each model decides differently. You only see that by using the apps, signed in, as a customer would.

Doing it by hand in three apps is slow. Tallylamp lets the agent and the person share one Chrome. The agent drives it through MCP. The person watches from the dashboard and takes control when a step needs them.

One browser, three signed-in apps

  1. Create one persistent browser

    Ours is called dray-ai-pages. Give yours a project and a purpose, so you and the agent come back to the same browser rather than a new one with no logins.

  2. Sign in yourself

    Open chatgpt.com, claude.ai and grok.com in three tabs. Take control and sign in to each. You type the passwords and 2FA codes, so they never go into the agent's prompt.

  3. Hand it back

    When each app shows its signed-in home page, record the signed-in site so the next run can find it. Then choose Return to agent.

Give the apps a server they can reach

The assistant's own servers make the tool calls to your MCP server, over the public internet. They can't reach a server on localhost. Tallylamp's loopback tunnel doesn't help here either, because it only lets the browser reach a private address.

We put the test server behind a Cloudflare quick tunnel for the day, which gave it a public HTTPS address.

Where each part of the test runs
PartWhere it runs
The chat tabsChrome on your Tallylamp server, driven by the agent or by you
Tool calls to your MCP serverThe assistant's servers, over the public internet
Sign-in and approval pagesThe chat tabs, where you take control to use them

Add the connector to each app

Each app keeps custom MCP servers in a different place, and the menus move. Take control for this part. Risk checkboxes and consent pages are for a person to read, and the agent can't act in the browser while you hold control.

What each app asked on first use, 27 September 2026
  • ChatGPT

    1approval prompt

    Added as an MCP app, with Developer mode on and a risk checkbox before Connect. It asked for the first tool that writes. Read-only tools ran without asking.

  • Claude

    3approval prompts

    Added as a custom connector under Customize. Every tool started at Needs approval, including the read-only one.

  • Grok

    0approval prompts

    Added as a custom connector. It never asked.

If you ship a connector, plan for Claude's prompts. Dray's read tool carried the MCP readOnlyHint annotation, and Claude still asked before the first call. After Always allow, it stopped asking.

Let the agent run the chats

Then the agent works through the test plan. It types a prompt in one tab, waits, reads the reply and moves to the next. It uses the same browser tools as on any other page, and you can watch the live view as it goes. Our run had eight scenarios with two or three assistants at a time, and the test server logged 104 tool calls.

What the run showed
QuestionResult
Does a turn survive its tab moving away?Yes, in ChatGPT and Claude. The turn finished on their servers, so the agent could work in another tab. Grok wasn't tested.
Will a tool call that waits get cut off?Dray's link tool can wait for a message. Every model chose a 25-second wait, and none of 36 waits was dropped. Longer waits weren't tested.
Does Enter always send?No. A message starting with / opened Grok's command palette, and Enter did nothing. Claude's slash menu swallowed Enter once in three tries. Clicking the send button worked in both.

Clean up, keep the browser

When the run ended, we removed the connector from all three accounts, deleted the test keys and shut the tunnel. We kept the browser. Its profile holds all three sign-ins, so the next run starts at the test plan instead of three login pages. A site can still end a session, so have the agent check each app is signed in before it starts.

About Dray

Docs behind this guide

Based on Tallylamp's documentation, Dray's help pages and our own notes from the 27 September 2026 run, which are not published.

YOUR NEXT STEP

Put it to work.

Free, MIT-licensed software. You pay for your hosting.

Deploy on Railway