chatgpt-web
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@chatgpt-webSummarize ~/work/meeting.txt in ChatGPT and save the reply to ~/work/summary.md"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
chatgpt-web
Drive your own logged-in ChatGPT web session from an AI agent: an MCP stdio server
(mcp_chatgpt_* tools) and a cgweb CLI built on the same core. It attaches over CDP to a Chromium
that is already running with your profile, so there is no password handling, no headless login and
no scraping of a second account. Built for Hermes Agent on a Linux server; works with any MCP host.
What it gives the agent:
one fixed ChatGPT Project (found by name, created if missing, URL cached)
new_chat/list_chats/open_chat— new or existing conversation, handle = conversation URLsendwith file attachments (transcripts, images),waitthat polls long Pro replies in ≤15-minute slices,get_reply/save_reply(extracts the biggest ```markdown block to a file),stop,close_chatmodel selection by URL slug + picker label with verification (
CHATGPT_MODEL_SLUG/LABEL)clear error codes (
SESSION_LOST,RATE_LIMIT,UPLOAD_UNAVAILABLE, …) returned as tool results
Requirements
A Chromium/Chrome started with
--remote-debugging-port=9222 --remote-allow-origins=*and a profile that is logged in to chatgpt.com (on a server: Xvfb + noVNC for the one-time login).Python ≥ 3.11.
pip install -e .installsplaywright(noplaywright installneeded — we only connect over CDP) and themcpSDK.
Related MCP server: parley
Install (server, as the agent's user)
cd ~/work && git clone https://github.com/FirstWari/chatgpt-web && cd chatgpt-web
uv venv .venv && uv pip install -e .
.venv/bin/cgweb doctor # session, models, project, file inputHermes (~/.hermes/config.yaml):
mcp_servers:
chatgpt:
command: /home/hermes/work/chatgpt-web/.venv/bin/python
args: ["-m", "chatgpt_web.mcp_server"]
env:
CHATGPT_PROJECT: "Ders Notları"
CHATGPT_MODEL_LABEL: "Pro" # substring expected in the model picker; empty = don't touch the model
CHATGPT_MODEL_SLUG: "" # optional ?model= slug
CHATGPT_WORK_DIR: "/home/hermes/work/lore-engine/results" # data-only: never the tool/venv/cookie root
timeout: 900
connect_timeout: 60Then copy SKILL.md (and prompts/) to ~/.hermes/skills/research/chatgpt-web/ and restart the gateway.
Claude Desktop / Claude Code / Codex use the same command/args/env shape in their own config files.
Environment variables
Var | Default | Meaning |
|
| CDP endpoint |
|
| Project name in the sidebar |
| empty | Model to select; |
|
| Only files under here may be attached ( |
|
| lock, |
|
| Reply must be unchanged this long (and show a Copy button) to count as finished |
|
| Upper bound for one |
CLI
cgweb status | doctor | list-chats [--query X]
cgweb new-chat # -> {"chat": "tab:...", ...}
cgweb send tab:... --text "Merhaba" --file ~/work/x.txt --wait 300
cgweb wait https://chatgpt.com/c/<id> --timeout 900
cgweb save-reply https://chatgpt.com/c/<id> ~/work/out/notes.md
cgweb check ~/work/out/notes.md # words per "### BÖLÜM n"Design notes
Stateless per call: each tool connects, acts, disconnects. Chromium keeps the tabs, so the handle (
tab:<targetId>before the first message, the/c/<uuid>URL after) survives across processes.A file lock serialises browser operations (MCP server and CLI can coexist).
Completion heuristic: no stop button, no "Thinking" indicator, text hash stable for
STABLE_SEC, Copy button present; "Continue generating" is clicked automatically; one automatic Regenerate on "Something went wrong".All selectors live in
chatgpt_web/selectors.pywith ordered fallbacks.ChatGPT's terms treat UI automation as a grey area; this tool uses your own account, one conversation at a time, with human-like pacing. Use at your own risk.
Stealth measures (measured, 2026-09)
Engine: Patchright over
connect_over_cdp— noRuntime.enable/Console.enable, so Brotector and rebrowser-bot-detector stay clean (plain Playwright is flaggedruntime.enabledwithin 300 ms).Input:
humanize.py— cubic Bezier paths with minimum-jerk timing, Fitts-law durations (MacKenzie 1991 constants), tremor, occasional overshoot; log-normal key hold/flight; typed ≤400 chars, pasted above. Clicks passisTrusted; the interactive Turnstile demo is solved by a humanized click.Browser environment (server side, not in this repo): headful Chromium on Xvfb 1920×1080, WebGL via ANGLE/SwiftShader (
--use-gl=angle --use-angle=swiftshader --enable-unsafe-swiftshader), 200+ font families,WebRtcIPHandling=disable_non_proxied_udppolicy (no real-IP leak next to the proxy), no viewport override (inner ≤ outer), consistent Linux UA/platform.Network:
tools/warp-rotate— safe WARP egress rotation (sharednet.lock, cooldown, daily cap, geo health check against Google'slocation=unsupportedgate);chatgpt-webrotates once automatically when a Cloudflare challenge does not clear.Measurement tools:
tools/fpcheck_all.sh(Brotector, rebrowser, browserscan, CreepJS, Turnstile in raw/playwright/patchright modes),tools/turnstile_test.py,tools/dom_dump.py.
Tests
pytest covers the text layer (fence extraction, section stats). Browser behaviour is checked with
cgweb doctor and a real conversation.
License
MIT
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
No tool schema history has been recorded yet.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Stealth web automation for AI agents. Login, signup, navigate, screenshot.
Stealth web automation for AI agents. Login, signup, navigate, screenshot.
Live browser debugging for AI assistants — DOM, console, network via MCP.
Provides cloud browser automation capabilities using Stagehand and Browserbase, enabling LLMs to i…
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables AI coding assistants to control and inspect a live Chrome browser for automation, debugging, performance analysis, network monitoring, and DOM interaction through Chrome DevTools Protocol.3,288,165Apache 2.0
- AlicenseNot gradedqualityBmaintenanceEnables token-efficient browser automation for AI chats like ChatGPT, Gemini, and Claude, allowing reading responses, sending messages, waiting for streaming replies, and bridging conversations between tabs via Chrome DevTools Protocol.3MIT
- AlicenseAqualityBmaintenanceEnables AI agents to drive your real, logged-in Chrome browser with existing sessions and cookies, bypassing CAPTCHA and anti-bot measures, with support for multi-session and human-in-the-loop workflows.4036MIT
- AlicenseNot gradedqualityBmaintenanceEnables AI agents to control your existing Chrome browser via MCP, using your logged-in sessions for automation on authenticated sites. Provides high-level browser tools plus raw CDP and Chrome API access.MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/FirstWari/chatgpt-web'
If you have feedback or need assistance with the MCP directory API, please join our Discord server