chatgpt-webui-mcp
Provides tools for interacting with ChatGPT via its web UI, enabling AI agents to send prompts, manage conversations, generate images, and perform long-running tasks like deep research using various GPT models.
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-webui-mcpdeep research on quantum computing"
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.
quick start
install from npm:
npm i -g chatgpt-webui-mcpmanual run:
CHATGPT_SESSION_TOKEN="your_token_here" chatgpt-webui-mcpfrom source:
npm install
npm run build
CHATGPT_SESSION_TOKEN="your_token_here" node dist/index.jsimportant: this uses chatgpt's internal webui api with a session cookie. for personal/local tinkering only - not affiliated with openai.
overview
chatgpt-webui-mcp is a standalone MCP server that drives chatgpt.com via camofox (UI automation).
it is built for long-running tasks (gpt-5.2 pro runs that take 1h+), deep research, and image generation mode.
getting your session token
open https://chatgpt.com and log in
open devtools
application -> cookies ->
https://chatgpt.comcopy the value of
__Secure-next-auth.session-token
configuration
because this server uses stdio or sse, you configure it as a local command (or remote url) and pass the token via env.
mcp client config (claude desktop, opencode, etc)
{
"mcpServers": {
"chatgpt-webui": {
"command": "node",
"args": ["/absolute/path/to/chatgpt-webui-mcp/dist/index.js"],
"timeout": 7200000,
"env": {
"CHATGPT_SESSION_TOKEN_FILE": "/path/to/session-token.txt",
"CHATGPT_BROWSER_BASE_URL": "http://127.0.0.1:9377",
"CHATGPT_WAIT_TIMEOUT_MS": "7200000"
}
}
}
}legacy CHATGPT_CAMOFOX_* env vars are still supported for compatibility.
CHATGPT_TRANSPORT=httpcloak is intentionally unsupported (use camofox).
when model/thinking are omitted, requests default to gpt-5-2 (auto), not pro.
opencode workflow (the natural language style)
if you want to type commands like:
with chatgpt webui on gpt 5.2 pro extended thinking: <prompt>do deepresearch with chatgpt webui on <topic>
use this tool:
tool | what it does |
| parses your sentence into the right call and runs it |
example:
{
"name": "chatgpt_webui_command",
"arguments": {
"command": "with chatgpt webui on gpt 5.2 pro extended thinking: write a 1-page memo about X",
"mode": "auto"
}
}long runs (recommended)
use the unified tools:
tool | description |
| main tool. |
| check/wait for background runs ( |
why: deep research and gpt-5.2 pro can take a long time and may exceed a single client timeout. mode=auto returns a run_id for long jobs.
image generation
set create_image=true to switch chatgpt into image generation mode before sending the prompt.
notes:
image_urlsis best-effort (derived from page links + visited urls) and may be empty depending on how chatgpt renders images in the webui.fallback screenshot output is returned in
image_data_url(notimage_urls) when enabled and size-capped.enable fallback with
CHATGPT_IMAGE_SCREENSHOT_FALLBACK=1.cap fallback size with
CHATGPT_IMAGE_SCREENSHOT_MAX_BYTES(default2097152, 2 MiB).for reliable retrieval, you can also use the conversation_id and open the chatgpt UI.
self-test
# env
CHATGPT_SESSION_TOKEN="your_token_here" npm run self-test
# cli flag
npm run self-test -- --token "your_token_here"
# file
echo "your_token_here" > ~/.config/chatgpt-webui-mcp/session-token.txt
npm run self-test -- --token-file ~/.config/chatgpt-webui-mcp/session-token.txtremote deployment over tailscale (optional)
if you want background runs to survive for a long time, run this server as an always-on SSE service.
copy templates from this repo:
deploy/systemd/chatgpt-webui-mcp.env.exampledeploy/systemd/chatgpt-webui-mcp-sse.shdeploy/systemd/chatgpt-webui-mcp.service
install and enable service (user service):
mkdir -p ~/.config ~/.config/systemd/user ~/.local/bin ~/.local/share/chatgpt-webui-mcp
cp deploy/systemd/chatgpt-webui-mcp.env.example ~/.config/chatgpt-webui-mcp.env
cp deploy/systemd/chatgpt-webui-mcp-sse.sh ~/.local/bin/chatgpt-webui-mcp-sse.sh
cp deploy/systemd/chatgpt-webui-mcp.service ~/.config/systemd/user/chatgpt-webui-mcp.service
chmod 600 ~/.config/chatgpt-webui-mcp.env
chmod 755 ~/.local/bin/chatgpt-webui-mcp-sse.sh
systemctl --user daemon-reload
systemctl --user enable --now chatgpt-webui-mcp.servicepoint opencode (cloud host) to the endpoint:
{
"mcp": {
"chatgpt-webui": {
"type": "remote",
"url": "http://<tailscale-ip>:8791/sse",
"enabled": true,
"timeout": 7200000,
"oauth": false
}
}
}tools
tool | description |
| validate token and return session payload |
| list available models |
| natural-language command wrapper |
| unified prompt tool (wait/background) |
| check/wait for background runs |
| direct wait-style prompt tool (legacy/simple) |
project structure
chatgpt-webui-mcp/
├── deploy/
│ └── systemd/
│ ├── chatgpt-webui-mcp.env.example
│ ├── chatgpt-webui-mcp-sse.sh
│ └── chatgpt-webui-mcp.service
├── src/
│ ├── index.ts # MCP server
│ └── chatgpt-webui-client.ts # WebUI automation client
├── package.json
├── tsconfig.json
├── .env.example
├── .gitignore
├── LICENSE
├── INSTALL.md
└── README.mdlicense
mit
author
This server cannot be installed
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- 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/Microck/chatgpt-webui-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server