codex-image-context-runtime
Provides image generation and inspection through OpenAI's Image API and Responses API, returning bounded text results, hashes, and references instead of raw media bytes.
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., "@codex-image-context-runtimeGenerate one 1024x1024 storyboard frame and return the Job ID."
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.
Image Context Runtime for Codex
Keep image-heavy Codex workflows responsive, resumable, and context-bounded.
Image Context Runtime for Codex is an experimental open-source Codex plugin backed by a durable local MCP runtime. It runs image generation and inspection as persisted jobs, keeps provider-returned media bytes behind the public MCP boundary, and returns only bounded text results, hashes, relative references, and Job IDs.
Use it when Codex is:
creating short-drama character sheets, location concepts, or storyboards;
producing image assets for websites and slide decks;
organizing image-heavy news, books, screenshots, or research;
generating many visual variations or running repeated visual QA.
Important: This project reduces one source of context pressure. It does not claim that Codex can never slow down, that images use zero tokens, or that explicitly opening an image adds no visual context.
The plugin does not patch or intercept Codex's built-in image features or other image tools. The bounded boundary applies only when Codex uses this plugin's MCP tools and follows its bundled skill.
What it is
User-facing shape: a Codex plugin.
Execution shape: a bundled local MCP server plus a durable image-job runtime.
Codex skill
|
v
bounded MCP tools
|
v
durable local jobs ----> optional OpenAI API
|
+----> configured-workspace image artifacts
|
+----> bounded text handoffs, hashes, refs, and Job IDsThe plugin is the installable workflow. MCP is the tool boundary. The Runtime owns Job state, controls media transfer, and writes generated artifacts only to configured workspace-relative paths.
Related MCP server: Image Foundry
Public v0.1 scope
Text-to-image jobs.
Image inspection jobs.
Durable status and text handoffs.
Idempotent submission.
Restart reconciliation and explicit recovery.
Offline deterministic mock provider.
Optional OpenAI Image API and Responses API provider.
Strict public-result budgets with no MCP image, audio, or resource blocks.
Video generation is intentionally out of scope for v0.1.
Requirements
Node.js 22 or later.
Codex desktop app or Codex CLI with plugin support.
No API key for the default mock provider.
OPENAI_API_KEY only when the OpenAI provider is explicitly enabled.
Install and configure
Clone this repository with GitHub's Code menu, then run the following commands from its root. The configuration helper runs outside Codex, so a local clone is required:
codex plugin marketplace add .
codex plugin add codex-image-context-runtime@codex-image-context-runtimeThe default provider is offline and deterministic, so installing the plugin cannot accidentally spend API credits.
For a first installation, choose one Provider configuration. For the offline mock:
node plugins/codex-image-context-runtime/scripts/configure.mjs --workspace "C:\path\to\your\project" --provider mockOr, for the optional OpenAI Provider, make the key available to the Codex process and configure OpenAI from the start:
$env:OPENAI_API_KEY = "set-this-outside-the-repository"
node plugins/codex-image-context-runtime/scripts/configure.mjs --workspace "C:\path\to\your\project" --provider openaiThe configuration file stores paths and model choices only. It never stores the API key.
The PowerShell environment assignment applies only to that shell and child processes. Launch Codex CLI from that shell, or use your operating system's environment/credential workflow before starting the desktop app. Restart Codex after configuration or credential changes.
To switch an existing mock setup to OpenAI, first stop the active worker, then replace the config and use a new Runtime directory so in-flight state is not mixed:
node plugins/codex-image-context-runtime/scripts/configure.mjs --workspace "C:\path\to\your\project" --provider openai --runtime-dir "C:\path\to\image-runtime-openai" --forceExample prompts
Use Image Context Runtime to generate one 1024x1024 storyboard frame.
Keep the image bytes outside this task and return the Job ID.
Inspect images/frame-001.png for composition, continuity, and obvious text defects.
Return only the bounded inspection handoff.The bundled skill instructs Codex to submit the job, poll by Job ID, and retrieve the compact handoff instead of asking the MCP server to return pixels.
Providers
Mock provider
Default.
Offline and deterministic.
Creates a synthetic PNG for generation jobs.
Returns metadata-oriented inspection text.
Validates transport and persistence behavior, not visual quality.
OpenAI provider
Opt-in only.
Uses gpt-image-2 by default for image generation.
Uses gpt-5.6 by default for image inspection.
Model names can be overridden in configuration.
Media sent to the API is subject to the applicable service terms, pricing, and data controls.
This is an independent open-source project. It is not affiliated with or endorsed by OpenAI.
Privacy boundary
Public MCP results:
never contain provider-returned image bytes;
never contain data URLs or base64 media;
never contain API keys or raw provider responses;
use relative artifact and handoff references;
are capped by a UTF-8 byte budget.
The runtime can still send an image to an explicitly enabled remote provider for inspection. Local runtime ownership is not the same as offline processing.
The local job records persist prompts, inspection questions, relative references, and provider state. Protect the configured Runtime directory as project data.
v0.1 concurrency boundary
One Runtime directory has exactly one active MCP worker. A second process targeting the same directory fails closed with runtime_already_running instead of reconciling or redispatching another live worker's jobs. A dead owner's stale PID lock is recovered on the next start.
If a process is forcibly killed during the millisecond-scale lock-takeover critical section, an empty runtime.lock.guard directory can remain. Verify that no worker is running before removing that guard manually; the Runtime never guesses that an acquisition guard is stale.
For simultaneous Codex tasks, use distinct configuration and Runtime directories. A shared multi-client broker is a later roadmap item; v0.1 does not pretend that process-local coordination is cross-session coordination.
See Architecture, Tool reference, Claims, Benchmark methodology, v0.1 validation receipt, Roadmap, Security, Third-party services, and Contributing.
Synthetic payload benchmark
The included benchmark compares:
a deliberately naive MCP result that inlines synthetic image bytes; and
this runtime's bounded ref/hash/Job-ID result shape.
Run it with:
npm run benchmarkThis is a deterministic serialized-payload proxy. It is not a measurement of Codex tokens, latency, memory usage, or native image handling.
The checked-in v0.1 scenario models 20 jobs with 1 MiB synthetic images:
Transport | Serialized MCP result bytes | Largest result |
Naive inline-image baseline | 27,990,140 | 1,398,617 |
Reference-only candidate | 27,060 | 739 |
That is a 99.903% reduction for this synthetic result-payload comparison only. See the methodology and reproducible JSON report before quoting it.
Development
npm test
npm run benchmark:verify
npm run check:privacyAll default tests are offline and make zero real provider calls.
Status
v0.1 is an experimental public baseline. Review the threat model and data path before enabling a paid provider in a sensitive project.
License
Apache License 2.0.
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 Servers
- Alicense-qualityCmaintenanceMCP server for managing video storyboard tasks, enabling Codex to automatically generate and populate images/videos based on shot descriptions and visual design specs.297MIT
- Flicense-qualityCmaintenanceMCP server for generating and editing images via PackyAPI's gpt-image-2 model, enabling Codex to create and modify images based on prompts.
- Alicense-qualityBmaintenanceAn experimental MCP server for MNCS-native development and evidence control, enabling Codex to manage project authority, candidate lineage, evidence gaps, and evaluator-mode boundaries.Apache 2.0
- AlicenseAqualityBmaintenanceAn MCP server that lets Claude Code delegate durable background tasks, reasoning profiles, thread resumption, and native image generation to your local Codex CLI.101MIT
Related MCP Connectors
A paid remote MCP for OpenAI Codex agent coordination MCP, built to return verdicts, receipts, usage
MCP server for generating rough-draft project plans from natural-language prompts.
MCP server for Flux AI image generation
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/shixinnt/codex-image-context-runtime'
If you have feedback or need assistance with the MCP directory API, please join our Discord server