Give ChatGPT on the web control of your browser

Settings → Security and login → Developer mode → Plugins → Create app. A remote MCP URL, so it works where a local server cannot. Requires a paid plan — see the caveat below.

Click path walked end to end and verified: August 2026

Verified on a paid plan. Verified end to end on ChatGPT with the direct per-user connector URL, on a PAID plan. On a free account Settings → Security and login → Developer mode → Plugins → Create app silently no-ops, so no app is created and the URL can never be entered. That is a plan gate, not a Vibe fault — it no-ops with No Auth too.

In short

ChatGPT supports custom apps backed by a remote MCP server. Turn on Developer mode under Settings → Security and login, then go to Plugins → Create app and paste your Vibe connector URL, https://relay.api.vibebrowser.app/mcp/ followed by the routing UUID from the extension. ChatGPT can then navigate, click, type, scroll, screenshot, and read your real Chrome, including pages behind a login, with no local MCP server running. This is the direct per-user URL, and it is the path we verified end to end here — on a paid plan.

The problem

  • The ChatGPT desktop app can run a local MCP server; ChatGPT on the web cannot read local config or spawn a process, so it has no route to your browser.
  • The built-in browsing tool fetches public pages as an anonymous visitor — anything behind your account is invisible to it.
  • That leaves the most useful half of the web (your dashboards, tickets, admin panels) permanently out of reach.

What Vibe MCP changes

  • A connector is a URL, so ChatGPT on the web can reach your browser without anything running locally besides the extension.
  • Setup is one paste: no client id, no secret, no consent screen — the connector URL is the whole configuration.
  • The Vibe relay forwards to the Chrome you are already signed into — same tabs, same cookies, same sessions.
  • Enable it per conversation, so a chat only touches your browser when you say so.

Set it up in 4 steps

  1. 1Install the Vibe extension in Chrome

    Add Vibe AI Browser from the Chrome Web Store (Chrome, Brave, Edge, or any Chromium browser). This is the piece that lets an agent drive the browser you are already logged into — no second browser profile, no re-authentication.

  2. 2Turn on Developer mode under Settings → Security and login

    In ChatGPT on the web, open Settings → Security and login and switch Developer mode ON. This is the step people miss: the create-an-app surface does not appear anywhere until Developer mode is enabled, and it lives under Security and login rather than under Connectors.

  3. 3Plugins → Create app, then paste your connector URL

    Copy your connector URL from the Vibe icon → Settings → "Enable external AI agent control" → Remote (internet) → Agent connection URL; it is https://relay.api.vibebrowser.app/mcp/ followed by your routing UUID. Still in ChatGPT Settings, go to Plugins and click Create app, give it a name, and paste that URL into the MCP server URL field. Then enable the app for a conversation before asking ChatGPT to open a page. That URL is a credential — redact it before sharing a screenshot. Read the plan caveat below before you start.

    Vibe extension → Settings → Agent connection URLurl
    https://relay.api.vibebrowser.app/mcp/<your-routing-uuid>
  4. 4Known limitation on a free ChatGPT account

    On a FREE ChatGPT account, clicking Create app no-ops — no app is created and no error is shown — so there is nowhere to paste the URL at all. Connectors and custom apps are a paid-plan feature and the developer-mode surface moves between releases. If Create app does nothing for you, that is the plan gate, not a Vibe fault: either upgrade, or use the ChatGPT desktop app path, which runs the local MCP server with no relay at all.

Your relay URL / extension UUID grants live control of your browser session. Treat it like a password: never commit it or paste it into a shared chat.

Your connector URL is a password. Treat it like one.

The /mcp/<your-routing-uuid> URL above is a bearer capability for your real, logged-in browser. There is no second factor: anyone who holds it can open your tabs, read the pages you are signed into, and act as you. Nothing else is needed to use it.

  • Never paste it into a shared chat, a ticket, a README, a screenshot, or a support thread. Redact the UUID before sharing anything.
  • Never commit it to a repo or write it into a config file that gets committed. Keep it out of shell history and CI logs.
  • If it leaks — or you are unsure — open the Vibe extension settings and regenerate the connection URL. The old UUID stops routing immediately, and you re-paste the new URL into the connector.
  • Turn "Enable external AI agent control" off when you are not using it. With it off, the URL routes nowhere.

What “connected” looks like

  • The app appears in the Plugins list with its name, and opening it shows the discovered actions rather than an error.
  • In a conversation, the app is selectable from the tools/apps menu and can be toggled on for that chat.
  • On the first real request, ChatGPT shows a sequence of tool calls — expect several, including Navigate page — and your own browser visibly navigates while it works. Six tool calls for a simple lookup is normal, not a fault.

Verify it actually works

Do not trust a green checkmark. Run this prompt in a conversation with the connector enabled and check the answer yourself.

Ask ChatGPT connectorsbash
Go to duckduckgo.com and find out when the first GPT model was released.

Expected answer: 2018

Pick this over "open google.com" because a wrong answer is unmistakable: the assistant cannot satisfy it from memory-free small talk, and you can watch the tab actually navigate. If the answer comes back as 2018 and you saw your browser move, the connector is wired end to end. If the assistant answers 2018 without your browser doing anything, it answered from its own knowledge — ask it again and require it to cite the page it opened.

Troubleshooting

SymptomLikely causeFix
The client rejects the URL with a 401, or tool calls fail with 401 Unauthorized.The routing UUID in the URL is wrong, mistyped, truncated, or was regenerated in the extension after you pasted it — so the relay has nothing to route to.Re-copy the Agent connection URL from the Vibe extension settings and re-paste the whole URL, keeping the /mcp/ path segment and the full UUID intact.
The connector saved fine and tools are listed, but every tool call errors or hangs.Nothing is on the other end of the relay: the browser with the Vibe extension is closed, or external agent control is switched off, or the mode is set to Local instead of Remote (internet).Open the browser that has the Vibe extension, click the Vibe icon → Settings, confirm "Enable external AI agent control" is on and the mode is Remote (internet). Then retry the prompt.
No tools show up at all after saving the connector.The URL points at the plain relay root rather than your routing path, so there is no session to enumerate tools for.The URL must be https://relay.api.vibebrowser.app/mcp/<your-routing-uuid> with your UUID as the last path segment — remove the connector, re-add it with the full URL, and reload the page.
The assistant answers the question but your browser never moved.It answered from its own knowledge instead of calling a tool. This is a prompt problem, not a connection problem.Re-ask and require evidence: "Use your browser tools to open duckduckgo.com, then tell me which page you read." If it still refuses, check the connector is toggled on for that specific conversation.

Tools ChatGPT connectors gets

ToolDescription
navigate_to_urlNavigate to any URL
go_back / go_forwardBrowser history navigation
clickClick elements on the page
type / fillEnter text into inputs
scrollScroll the page
take_screenshotCapture screenshots
get_page_contentExtract page text or HTML
get_tabs / create_new_tab / switch_to_tab / close_tabTab management
keyboard_shortcutPress keyboard combinations
web_searchSearch the web

How it compares

FeatureVibe MCPPlaywright MCPBrowserMCP
Multi-agent supportYesNoNo
Uses your browser profileYesNoNo
Logged-in sessionsYesNoNo
No separate browserYesNoNo
Local & privateYesYesPartial
Content-script basedYesNoNo

ChatGPT connectors browser control — FAQ

Can ChatGPT on the web control my browser?
Yes, through a custom app pointed at a remote MCP server. ChatGPT web cannot read local Codex config or run a local process, so the local STDIO path does not apply there — the Vibe relay URL does.
Where is developer mode in ChatGPT?
Settings → Security and login. Not under Connectors, which is where most guides send you. Switch Developer mode on there, and the Plugins → Create app surface becomes available.
Do I need to verify a domain or set anything else up?
No domain verification, no allowlist request, and no consent screen: you paste the connector URL and that is the whole setup. The only gate is the ChatGPT plan — on a free account Create app no-ops, so the URL field never appears.
Create app does nothing when I click it — what is wrong?
You are almost certainly on a free plan. On a free ChatGPT account the Create app button silently no-ops: no app appears and no error is shown. Connectors and custom apps are a paid-plan feature. Either upgrade, or use the ChatGPT desktop app with the local MCP server.
Should I use this or the ChatGPT desktop app integration?
Prefer the desktop app if you are on it: that path is local STDIO, so page content never leaves your machine. Use the connector when you are in ChatGPT on the web, where a local server is not an option.
Does this work with Codex CLI?
Yes, and with Codex Desktop. Codex can spawn the local MCP server, and it can also point at the direct connector URL with codex mcp add vibe --url https://relay.api.vibebrowser.app/mcp/<your-routing-uuid>. See the Codex CLI page.
Do I still need to install anything?
Only the Vibe Chrome extension. On the remote-connector path there is no npx command and no local MCP server — the hosted assistant talks to the Vibe relay over HTTPS, and the relay forwards to your extension.
What exactly do I paste into the connector?
One URL: https://relay.api.vibebrowser.app/mcp/ followed by your routing UUID, which you copy from the Vibe extension → Settings → Agent connection URL. There is no consent screen, no client id, no secret field and no scopes to approve — the URL is the whole configuration.
Why does this use a URL path when the /mcp docs use an X-Remote-Session header?
Because of what the client can send, not because they are different products. A full MCP client (Claude Code, Cursor, VS Code, Codex, OpenCode, Copilot CLI) lets you set request headers, so it can point at https://relay.api.vibebrowser.app/mcp and pass the routing UUID as an X-Remote-Session header — which keeps the credential out of URLs, proxy logs and browser history. A hosted connector UI (Claude on the web, ChatGPT apps) gives you one text field and no header editor, so the only place the UUID can ride is the URL path: https://relay.api.vibebrowser.app/mcp/<your-routing-uuid>. Same relay, same browser, same tools. If your client can send headers, prefer the header form.
I set this up earlier with a consent screen — what do I do now?
Remove the old connector and add it again with the direct URL. In Claude: Settings → Connectors, delete the Vibe entry, then Add → Add custom connector and paste https://relay.api.vibebrowser.app/mcp/ followed by your routing UUID. In ChatGPT: Settings → Security and login → Developer mode → Plugins, delete the old app, then Create app with the same URL. Editing the URL in place is unreliable because clients cache what they discovered the first time. Once re-added, no approval step appears — the connector just starts listing tools.
Is the UUID in the connector URL a secret?
Yes. That UUID is the credential that routes an agent to your browser — anyone who has it can drive your logged-in session. Treat the URL like a password: never post it in a shared chat, screenshot, README, or issue. If it leaks, regenerate it in the Vibe extension settings and the old UUID stops routing immediately.
How do I revoke access?
Two ways, either is enough. Remove the Vibe connector inside the assistant. Or open the Vibe extension → Settings and turn "Enable external AI agent control" off, which cuts every client off from this browser at once. To invalidate the URL itself, regenerate the connection URL in the extension.
What can an assistant do once it is connected?
Everything the extension exposes: list and switch tabs, read page text and HTML, take screenshots and accessibility snapshots, navigate, click, type and fill forms, scroll, use keyboard shortcuts, and open or close tabs — inside the sessions you are already logged into. Connect it only to an assistant you trust with those sessions.
What is the difference between this and the local MCP server?
The local path (npx @vibebrowser/mcp) runs on your machine and suits desktop clients that can spawn a process — Claude Desktop, Cursor, VS Code, Codex CLI. The remote path suits hosted assistants that only accept a URL. Both end up driving the same Chrome tab through the same extension.
Does my page content go through your servers on this path?
Yes — unlike the local STDIO path, tool calls and their results traverse the Vibe relay, because the assistant is running in the vendor cloud and cannot reach your machine directly. If you need page content to never leave your machine, use the local MCP server with a desktop client instead.

Works with your other agents too

The same MCP server powers every client. Multiple agents can drive the same browser at once.

Ready to connect ChatGPT connectors?

Connecting an agent to your logged-in browser has real privacy consequences. Read what is transmitted, logged and retained in the Privacy Policy.