chatgpt-web-mcp
Automates a logged-in ChatGPT web session to generate, edit, refine, and create variations of images, including managing image jobs, conversations, profiles, and style presets.
This server does not currently have a deployable release on Glama. Follow the repository's setup instructions to install and configure it for your MCP client, including any required credentials and local dependencies.
chatgpt-web-mcp
ChatGPT hesabınla görsel üreten, düzenleyen ve aynı sohbet içinde yineleyen bir MCP sunucusu. OpenAI API'si yerine giriş yapılmış ChatGPT web oturumunu Playwright ile sürer. Streamable HTTP ve stdio konuşur, Docker imajıyla gelir ve Obot MCP Gateway üzerinde konteyner olarak çalışacak şekilde hazırlanmıştır.
Bu proje OpenAI'ın resmî bir entegrasyonu değildir. ChatGPT web arayüzünü otomatikleştirmekOpenAI Kullanım Koşulları ile çelişebilir ve hesabın kısıtlanmasına yol açabilir. ChatGPT sayfası değiştiğinde seçiciler bozulabilir. Hesabını nasıl kullandığın senin sorumluluğundadır.
Neler yapabilir
Araç | Ne yapar |
| Metinden görsel üretir. En-boy oranı, stil hazır ayarı, görselde birebir yazılacak metin, kaçınılacaklar, şeffaf arka plan, referans görseller, birden fazla görsel ve var olan sohbete devam desteklenir. |
| Yüklenen görseli talimatla düzenler. İlk görsel düzenlenir, diğerleri referans olur. |
| Görseli üreten ChatGPT sohbetinin içinde yineleme yapar ("gökyüzünü turuncu yap"). Ardışık düzenlemelerde en tutarlı yol budur. |
| Bir görselin farklı versiyonlarını üretir. |
| Uzun süren işleri arka planda izler, bekler ya da iptal eder. |
| Görsel kütüphanesini yönetir. Her görsel istemi ve sohbetiyle saklanır. |
| Sunucunun görsel ürettiği ChatGPT sohbetlerini listeler. |
| Tutarlı karakter ve stil profilleri. Referans görsel id'leri her istekte otomatik yüklenir. |
| Hazır stiller: photorealistic, cinematic, product-shot, logo, icon, anime, pixel-art ve diğerleri. |
| ChatGPT girişinin çalışıp çalışmadığını söyler, istenirse ekran görüntüsü döndürür. |
| Kuyruk, depolama ve limit özeti. |
Ayrıca her görsel image://<id> MCP kaynağı olarak okunabilir. image_brief istemi kaba bir fikri ayrıntılı bir görsel istemine çevirir.
Sonuç biçimi: Araçlar görseli satır içi (image içeriği), resource_link ve JSON özet olarak döndürür. PUBLIC_BASE_URL tanımlıysa imzalı ve süreli bir indirme bağlantısı da eklenir.
Uzun işler: Bir görsel genelde 30 ile 120 saniye sürer. Araç SYNC_WAIT_SECONDS kadar bekler ve bu sırada MCP ilerleme bildirimleri gönderir. İş daha uzun sürerse bir job_id döner. İstemci sonucu get_job ile alır. wait: false ile iş hemen arka plana atılır.
Related MCP server: OpenAI GPT-Image MCP Server
Nasıl çalışır
MCP istemcisi ── Streamable HTTP (/mcp) ya da stdio ──► chatgpt-web-mcp
│ iş kuyruğu (tek sıra)
▼
Chromium (Xvfb üzerinde, Playwright)
│ oturum çerezlerin
▼
chatgpt.com
│
görsel kimlik doğrulamalı fetch ile indirilir ──► /data/outputs + kütüphaneSunucu istemi ChatGPT'nin giriş kutusuna yazar, gönderir ve asistanın cevabındaki yeni görselleri bekler. ChatGPT işlerken gösterdiği bulanık ön izlemeyi atlar, durdur düğmesi kaybolup görsel sabitlenince indirir. Asistan görsel yerine metinle cevap verirse (içerik reddi, kullanım limiti, soru) bunu CONTENT_REFUSED, RATE_LIMITED ya da NO_IMAGE_RETURNED hatasına çevirir ve sohbet kimliğini döndürür.
Hızlı başlangıç
1. ChatGPT oturumunu dışa aktar
Kendi bilgisayarında (Chrome kurulu olmalı):
git clone https://github.com/UmutKDev/chatgpt-web-mcp.git
cd chatgpt-web-mcp
npm install
npm run export-sessionAçılan ayrı bir tarayıcı profilinde ChatGPT'ye giriş yap. Giriş kutusu görününce betik chatgpt-session.json dosyasını yazar ve ekrana tek satırlık bir base64 değer basar. Bu değer CHATGPT_SESSION_STATE olarak kullanılır. Bir şifre gibi sakla ve repoya koyma.
Daha kısa bir yol olarak tarayıcının geliştirici araçlarından __Secure-next-auth.session-token çerezinin değerini CHATGPT_SESSION_TOKEN olarak verebilirsin. Tam oturum (Cloudflare çerezleri dahil) daha az doğrulama ekranına takılır.
2. Docker ile çalıştır
docker run --rm -p 8099:8099 --shm-size=1g \
-e CHATGPT_SESSION_STATE="$(base64 -w0 chatgpt-session.json)" \
-e MCP_AUTH_TOKEN=degistir \
-v chatgpt-data:/data \
ghcr.io/umutkdev/chatgpt-web-mcp:latestya da docker compose up -d (değerleri .env dosyasından okur).
3. MCP istemcisine bağla
HTTP (Claude Code örneği):
claude mcp add --transport http chatgpt-image http://localhost:8099/mcp \
--header "Authorization: Bearer degistir"stdio (yerel, Docker olmadan):
{
"mcpServers": {
"chatgpt-image": {
"command": "npx",
"args": ["-y", "github:UmutKDev/chatgpt-web-mcp", "--stdio"],
"env": { "CHATGPT_SESSION_STATE": "/mutlak/yol/chatgpt-session.json", "HEADLESS": "false" }
}
}
}Obot'a yayına alma
Obot, üretim için konteyner çalışma zamanını önerir. Konteynerin Streamable HTTP sunması, kataloğa da imaj, port ve yolun yazılması gerekir. Bu repo bunların hepsini hazır getirir.
İmajı yayımla.
main'e her push ve herv*etiketi.github/workflows/docker.ymlileghcr.io/umutkdev/chatgpt-web-mcpimajını amd64 ve arm64 için üretir. GHCR paketini Obot'un çekebilmesi için public yap ya da Obot'a registry erişimi ver. Üretimde imajı digest ile sabitle.Katalog girdisini ekle. İki yol var:
GitOps: Obot'ta MCP Servers → Catalog sources altına bu reponun URL'sini ekle. Katalog dosyası
obot/chatgpt-web-image.yamliçinde. Kök dizindeki.obotcatalogsyalnız bu klasörü okutur.Arayüzden: Add MCP Server → Hosted Server → Containerized seç. Image
ghcr.io/umutkdev/chatgpt-web-mcp:0.1.0, Port8099, Path/mcpgir.CHATGPT_SESSION_STATEveCHATGPT_SESSION_TOKENalanlarını Sensitive olarak tanımla.
Kullanıcı türü. Girdi
serverUserType: singleUserolarak gelir. Her kullanıcı kendi konteynerini ve kendi ChatGPT oturumunu alır. Böylece kuyruklar ve hesap limitleri birbirine karışmaz. Tek bir paylaşılan hesap istiyorsan girdiyimultiUseryap ve oturumu sunucu düzeyinde ver.vMCP'ye ekle. Girdiyi bir vMCP'ye eklerken oturum alanları için Provided at connection seç. Her kullanıcı bağlanırken kendi değerini girer.
Kaynaklar. Chromium için en az 1 GiB bellek gerekir. Katalog girdisi 500m CPU ve 1 GiB bellek ister, 2 CPU ve 3 GiB bellekle sınırlar.
Obot konteyneri yeniden başlatırsa /data silinebilir. Oturum yine env değerinden açılır. Ancak kütüphanedeki görseller ve profiller kaybolur. Kalıcı olmaları gerekiyorsa bağımsız Kubernetes kurulumunu (deploy/kubernetes) PVC ile kullan ve Obot'a remote sunucu olarak ekle.
Yapılandırma
Değişken | Varsayılan | Açıklama |
|
| |
|
| |
|
| Yenilenen çerezleri |
| Geçici bağlam yerine kalıcı bir Chromium profili kullanır. | |
| Tarayıcı başlatmak yerine var olan bir Chrome'a bağlanır. Uzak adresler için | |
|
| Yeni sohbetlerin açılacağı adres, örneğin bir ChatGPT Project ya da GPT. |
|
|
|
|
| HTTP dinleme ayarları. |
| Tanımlıysa | |
| İmzalı | |
|
| Docker imajı Xvfb ile görünür modda çalışır. Görünmez mod daha sık doğrulamaya takılır. |
| Tarayıcı vekil sunucusu. | |
|
| Tarayıcı parmak izi. Hesabının bölgesine yakın değerler seç. |
| Belirli bir Chrome ya da Chromium kullanır. | |
|
| Tek bir görsel için en uzun bekleme. |
|
| Araç çağrısının sonucu beklediği süre. Sonra |
|
|
|
|
| Aynı anda çalışan sekme sayısı (en fazla 4). |
|
| Bekleyen iş sınırı. |
|
| Girdi görsel sınırları. |
|
| https görsel adreslerini indirir. Özel ağ adresleri her zaman engellenir. |
| Yerel dosya girdilerine izin verilen klasörler. Boşsa yerel dosya okunmaz. | |
|
|
|
| 4 MiB | Satır içi döndürülen görsellerin toplam boyut sınırı. |
|
| Kütüphane temizliği. |
| ChatGPT arayüzü değiştiğinde seçicileri yeniden yazmadan günceller. Anahtarlar için | |
|
| Hata anında ekran görüntüsü saklar ( |
|
| Loglar stderr'e JSON olarak yazılır. Çerez ve token alanları maskelenir. |
Sorun giderme
Hata kodu | Anlamı ve çözümü |
| Oturum yok ya da süresi dolmuş. |
| ChatGPT "insan mısın" doğrulaması gösterdi. Tam oturumu kullan, |
| Planının görsel limiti doldu. ChatGPT'nin verdiği süreyi bekle. |
| İçerik politikası reddi. İstemi yeniden yaz. |
| ChatGPT metinle cevap verdi, örneğin bir soru sordu. Mesajı oku ve |
| Görsel süresinde gelmedi. Görsel yine de sohbette belirebilir. |
| İstem yazıldı ama ChatGPT gönderimi almadı. Sunucu üç farklı yolla dener. Yine olmazsa |
| Giriş kutusu bulunamadı. |
Geliştirme
npm install
npx playwright-core install chromium # testler için
npm run typecheck
npm test # birim testleri + sahte ChatGPT sayfasına karşı uçtan uca testler
npm run mock # sahte ChatGPT'yi 8787'de elle denemek içinUçtan uca testler test/mock/server.ts içindeki sahte ChatGPT sayfasına karşı çalışır. Bu sayfa giriş kutusunu, gönder ve durdur düğmelerini, dosya yüklemeyi, bulanık ön izlemeyi, /c/<id> sohbet adreslerini ve çerezle korunan görsel indirmeyi taklit eder. Gerçek chatgpt.com'a karşı otomatik test yoktur, çünkü hesap ve kota gerektirir.
Güvenlik
Tarayıcı yalnız
https://chatgpt.comadresine yönlendirilir. Test dışında başka bir adres reddedilir.Oturum çerezleri loglara ve araç çıktılarına yazılmaz. Kalıcı oturum dosyası
0600izinle saklanır.URL girdileri özel ve yerel ağ adreslerine gidemez. Yerel dosyalar yalnız
ALLOWED_INPUT_DIRSiçinden okunur ve sembolik bağlantılar çözülerek kontrol edilir.İndirme bağlantıları HMAC ile imzalanır ve 7 gün sonra geçersiz olur.
Konteyner root olmayan
nodekullanıcısıyla çalışır. İmajda yalnız Chromium, Xvfb ve az sayıda font var.
Esinlenilen projeler
Tasarım; leixyou/chatgpt-web-image-mcp, lownamlee/gpt-image-2-mcp, nothariharan/image-gen, Borys520/gpt-image-2-mcp ve strato-space/media-gen-mcp projelerinin incelenmesiyle şekillendi. Karşılaştırma için docs/research.md dosyasına bak.
Lisans
MIT
This server cannot be deployed
Maintenance
Related MCP Connectors
Generate images with your own ChatGPT subscription (Plus, Pro or Team), without spending API credits
LLM chat, text tools, image generation, editing, batch image jobs, and asynchronous video generation
Generate and edit images, create videos, quote credit costs, and retrieve private results.
Generate, edit and upscale images with references, batch jobs, cost previews and original downloads.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables conversational image generation, editing, and refinement through OpenAI models with session memory for iterative creative workflows.47 PyPI1MIT
- AlicenseAqualityDmaintenanceEnables image generation and editing using OpenAI's GPT Image API (gpt-image-1, 1.5, 2) with support for multi-image generation, history management, and batch processing.12224 npm1MIT
- AlicenseNot gradedqualityBmaintenanceEnables image generation and editing via ChatGPT web without API keys, saving images locally with conversation-aware editing.11 npm2MIT
- FlicenseAqualityDmaintenanceEnables agents to generate images through the GPT Image Playground via a browser extension, supporting task submission, status tracking, and downloading generated images with reference image support.31-