ChatGPT Subscription Tools
Experimental — available to signed-in production users
The hosted Go Bananas deployment enables this runner for signed-in Go Bananas web-session or OAuth users when the runner is configured. Production sets CODEX_SUBSCRIPTIONS_ENABLED=true and CODEX_SUBSCRIPTIONS_PUBLIC_ACCESS=true, so its empty tenant and user allowlists do not restrict access. Self-hosted deployments remain disabled by default until an operator configures the runner. Ordinary provider-backed MCP generation does not require this runner.
These interfaces use the ChatGPT/Codex subscription connected on the Go Bananas website and require the same Go Bananas user's OAuth identity. Compatibility must still be verified in the target MCP client.
API-key-only clients cannot use a personal subscription. The tools never fall back to configured Gemini or OpenAI provider keys.
get_subscription_status
Checks whether the current OAuth user has a connected owner-scoped subscription runner.
{
"tool": "get_subscription_status",
"arguments": {}
}The response reports available, connected, status, an optional plan type, and providerKeysConfigured (whether the workspace has an active Gemini or OpenAI key for its default model). When connected is false, use generate_image with those keys; the subscription is optional. A ChatGPT Free account reports connected: false with status and reasonCode plan_without_image_generation, since Free has no image generation. It does not expose the runner session ID, ChatGPT email, cookies, or tokens. When every connection slot is taken it reports available: false with reasonCode: "runner_unavailable" and a message saying so. A connection stays connected until the user disconnects it, OpenAI signs it out, or it goes unused for 30 days; then it reports not_connected until the user connects again.
Required OAuth scope: images:read.
generate_with_subscription
Generates exactly one PNG through the connected subscription and saves it directly to the Go Bananas gallery.
{
"tool": "generate_with_subscription",
"arguments": {
"prompt": "A banana airship above a futuristic city",
"aspect_ratio": "16:9"
}
}Supported aspect ratios: square, portrait, landscape, 1:1, 4:5, 5:4, 9:16, and 16:9.
camera_look (optional) picks one of the built-in real-camera looks listed under generate_image. Go Bananas writes its camera sentence before your prompt, its lighting and texture sentences after it and its negative as a closing Avoid: line, and uses its ratio when you send no aspect_ratio. With the look the whole prompt must stay within 8,000 characters. generate_image passes camera_look on when it routes a request to the subscription.
reference_sheet (optional) picks one of the built-in identity plates listed under generate_image. Go Bananas writes its layout sentence before your prompt, its lighting and backdrop sentences after it and its negative as a closing Avoid: line, and uses its ratio when you send no aspect_ratio. This tool takes no reference images, so use it for a face-plate from text; the outfit plate and the three-panel sheet need generate_image with reference_assets. It cannot be combined with camera_look. With the sheet the whole prompt must stay within 8,000 characters. The result names the sheet as referenceSheet. generate_image passes reference_sheet on when it routes a request to the subscription.
Required OAuth scope: images:generate.
The result includes the saved image ID and public URLs, source: "chatgpt_subscription", providerApiUsed: false, and the remaining hourly allowance.
The tool never falls back to provider keys itself. If it fails because the subscription cannot run (disconnected, allowance used up, runner unavailable), call generate_image with generation_lane: "provider" to use the workspace's keys, and say they were used: a plain generate_image would go back to a session that still shows as connected. A ChatGPT Free account is refused with reasonCode: "plan_without_image_generation". If ChatGPT declined the prompt, report it and do not retry.
Setup for an approved account
Sign in at gobananasai.com/login.
Open Codex subscription and connect ChatGPT once.

Authenticate the Go Bananas MCP server with user OAuth in the MCP client.
Call
get_subscription_status.Only when
availableandconnectedare true, callgenerate_with_subscription. Otherwise callgenerate_image, which uses the workspace's own keys.