ChatGPT Custom GPT Integration
Du willst mit ChatGPT auf deine Brains zugreifen. ChatGPT kann kein MCP — aber Custom GPTs mit Actions (OpenAPI 3.1). Jede Instanz exposes eine REST-Variante der Brain-Tools genau dafür.
Voraussetzung: ChatGPT Plus / Team / Enterprise (Custom GPTs sind nicht im Free-Plan). Du brauchst einen GTS-Admin-Token aus deiner Instanz.
Was bietet der Connector
4 Actions die ChatGPT automatisch als Tools rendert:
| Action | HTTP | Funktion |
|---|---|---|
listBrains |
GET /api/chatgpt/brains |
Liste mit Titel zuerst, gefiltert nach Category/Tag |
getBrain |
GET /api/chatgpt/brains/{id} |
Volltext (Frontmatter + Body) |
searchBrains |
GET /api/chatgpt/search?q=… |
Substring über id/title/tags + body |
writeBrain |
POST /api/chatgpt/brains |
Create / Update mit Schema-Validierung + atomarem Git-Commit |
Alle authentisiert mit Bearer-Token — dasselbe Token das du für den Claude-MCP-Zugang (OAuth-Access-Token oder Admin-API-Key) nutzt.
Setup — Schritt für Schritt
1. Token holen
Im GTS-Web: Einstellungen → Remote MCP (Claude.ai) → Neuen Token generieren. Kopieren, Passwort-Manager. (Gleicher Token funktioniert für Claude MCP + ChatGPT Actions parallel.)
2. Custom GPT erstellen
In ChatGPT:
- Sidebar → "Explore GPTs" → oben rechts "Create"
- Tab "Configure"
- Name + Beschreibung nach Geschmack — z.B.:
- Name: „Mein Brain"
- Instructions: „Du hilfst Gustavo mit seinem Ground Truth
Personal Brain. Nutze die Actions um Brains zu lesen, durchsuchen,
erstellen. Leite Antworten mit dem
titleein —idnur zur Referenz in Monospace."
- Scroll runter zu "Actions" → "Create new action"
3. Schema laden
Authentication: Klick auf das Zahnrad → API Key → Auth Type: Bearer. Key einfügen.
Schema: Option 1 — "Import from URL":
https://gu-brain.kuble.com/api/chatgpt/openapi.jsonChatGPT fetcht und parst das Schema automatisch. Deine Instanz-URL passt du an.
Option 2 — Schema manuell kopieren: öffne die URL im Browser, alles markieren, in ChatGPT's Schema-Feld einfügen.
4. Privacy Policy (optional aber nervig)
ChatGPT verlangt für öffentliche GPTs eine Privacy-Policy-URL. Für persönliche Custom GPTs (nicht geshared) kannst du das Feld leer lassen — dann ist der GPT nur für dich.
5. Testen
Im "Test"-Bereich rechts in Create-Dialog → frag „liste meine Brains".
ChatGPT ruft listBrains auf, zeigt Titel + IDs, zitiert beim Öffnen.
Beispiel-Prompts
- „Zeig mir alle Brains in Kategorie
projekt." - „Was steht im Brain
gustavo.kunde.axa?" - „Suche nach ‚swiss ai desk' und fasse die Treffer zusammen."
- „Leg ein neues Projekt-Brain
gustavo.projekt.xyzan, Status active, Titel ‚XYZ-Studie'."
Unterschiede zur MCP-Integration
| Claude MCP | ChatGPT Actions | |
|---|---|---|
| Protokoll | JSON-RPC 2.0 über HTTPS | OpenAPI 3.1 REST |
| Auth | OAuth 2.1 (dynamic) oder Bearer | Bearer |
| Tools | brain_list, brain_read, brain_search, brain_write, brain_capture, brain_history |
listBrains, getBrain, searchBrains, writeBrain |
| Stateful | nein (stateless) | nein |
| Schreibrechte | ja | ja |
Beides nutzt dieselbe Backend-Logik (@gts/core.writeBrain). Ein in
ChatGPT erstelltes Brain ist sofort in Claude und im Web-UI sichtbar.
Security-Modell
- Rollen werden enforct:
viewerkann nur lesen,memberschreibt nur nicht-admin-Brains,adminhat vollen Zugriff. Admin-Kategorie ist via ChatGPT-Connector komplett geblockt (auch für admins — edit admin- Brains im Web-UI). Auch Writes auf synced Business-Mirrors (<slug>.business.*) sind auf Personal-Instanzen geblockt. - OAuth-Scopes werden geprüft: Token braucht
brain.readfür GET undbrain.writefür POST. Legacy-Admin-API-Keys gelten als "full" (beide Scopes). - Admin-Brain-Sichtbarkeit: Nur admin-Rolle oder explizite
allowed_usersin der Brain-Frontmatter sehen admin-Kategorie-Brains in Listen, Suche und Read. Alle anderen Callers bekommen404(nicht403— damit IDs nicht leaken). - Admin-only Felder (
allowed_users,allowed_connections,hourly_rate,budget,rate_card) werden ausextrasfür nicht-admin-Tokens gestript, bevor das Brain geschrieben wird.
Warnung: Bearer-Tokens sind statisch. Teile niemals einen Custom GPT öffentlich, der deinen Token als Action-Auth eingetragen hat — jeder User des GPTs kann dann effektiv mit deinen GTS-Rechten schreiben (begrenzt durch die Rolle oben, aber immer noch deine Daten). Nutze Custom GPTs mit GTS-Tokens nur privat, oder nutze stattdessen den Claude Remote MCP mit pro-User-OAuth.
Einschränkungen
- Keine Capture/History — bewusst weggelassen, kannst du bei Bedarf
ergänzen. Für Inbox: nutze
writeBrainmit Categoryinbox. - ChatGPT Memory != GTS-Brains. Der Connector schreibt in GTS, nicht in ChatGPT's interne Memory.
- Rate-Limits: keine speziellen Limits vom GTS, aber ChatGPT drosselt selbst bei zu vielen Tool-Calls pro Minute.
- Admin-Kategorie: komplett über diesen Connector geblockt (siehe Security-Modell oben).
Troubleshooting
"Unknown error: Schema ungültig"
→ OpenAPI-Fetch hat nicht funktioniert. Direkt im Browser
https://<host>/api/chatgpt/openapi.json öffnen — kommt JSON zurück?
Wenn nicht, Instanz-URL prüfen.
"401 Unauthorized" bei jedem Tool-Call
→ Token falsch eingetippt oder wurde widerrufen. Neuen generieren in
/settings/integrations/mcp.
"WRONG_INSTANCE" beim Schreiben
→ Du hast im id das falsche Präfix. Muss mit <slug>. deiner Instanz
beginnen — z.B. gustavo.projekt.xyz, nicht kuble.projekt.xyz.
Schema validation failed
→ Frontmatter-Pflichtfelder für die Kategorie fehlen. Siehe
SCHEMAS.md. Für source brauchst du type + date,
für projekt customer, etc.