OpenAI Image MCP
by hi275
README.md
# OpenAI Image MCP
Tiny remote MCP server for OpenAI image generation, designed to be easy to deploy on Render.
## What this is
This project exposes a remote MCP endpoint at `/mcp` with one main tool:
- `generate_image`: generate one or more images from a prompt using OpenAI.
- `server_info`: simple read-only check of the configured model and whether the API key is present.
It reads `OPENAI_API_KEY` from Render environment variables.
## Important model note
This project defaults to:
- `OPENAI_IMAGE_MODEL=gpt-image-1`
That is a **likely safe default, not a guaranteed final recommendation**. OpenAI image model names can change over time. If you already know the exact model you want, set `OPENAI_IMAGE_MODEL` on Render to that value instead.
## Files
- `server.js` - the remote MCP server
- `package.json` - Node package config
- `render.yaml` - optional Render blueprint
- `Procfile` - simple process declaration
- `.gitignore`
- `README.md`
## Tool interface
### `generate_image`
Inputs:
- `prompt` (required, string)
- `size` (optional): `1024x1024`, `1536x1024`, `1024x1536`, `auto`
- `quality` (optional): `auto`, `low`, `medium`, `high`
- `background` (optional): `auto`, `opaque`, `transparent`
- `output_format` (optional): `png`, `webp`, `jpeg`
- `moderation` (optional): `auto`, `low`
- `n` (optional, 1-4)
- `user` (optional string)
Output:
- a text summary
- one inline MCP image item per generated image when OpenAI returns base64 data
- a short JSON text block per image with metadata like `revised_prompt`
## Deploy on Render
### Option A: easiest manual deploy
1. Put this folder in a GitHub repo.
2. Log into Render.
3. Create a **New Web Service**.
4. Connect the GitHub repo.
5. Use these settings:
- Runtime: **Node**
- Build Command: `npm install`
- Start Command: `npm start`
6. Add environment variable:
- `OPENAI_API_KEY` = your OpenAI API key
7. Optional environment variable:
- `OPENAI_IMAGE_MODEL` = `gpt-image-1`
8. Deploy.
9. After deploy, note your service URL, for example:
- `https://your-app-name.onrender.com/mcp`
### Option B: Render Blueprint
If you prefer, commit `render.yaml` and create the service from that blueprint. You will still need to set `OPENAI_API_KEY` manually because secrets should not live in the repo.
## Quick checks after deploy
Open these in a browser:
- `https://your-app-name.onrender.com/`
- `https://your-app-name.onrender.com/health`
`/health` should return JSON and show `hasOpenAIKey: true` after you add the environment variable.
## How Sand should add this remote MCP
After Render is live, Sand should add the remote MCP server URL:
- MCP URL: `https://your-app-name.onrender.com/mcp`
If Sand asks for a remote MCP endpoint, use the `/mcp` URL exactly.
## Local run (optional)
```bash
npm install
OPENAI_API_KEY=your_key_here npm start
```
Then the MCP endpoint is:
- `http://localhost:3000/mcp`
## Notes and limitations
- This is intentionally tiny and simple.
- It does not store files or prompts.
- It returns inline image content from OpenAI base64 output.
- Transparent backgrounds only work on some image models and formats.
- Larger `n` values can increase cost quickly.
- If OpenAI changes supported model names or parameter rules, update `OPENAI_IMAGE_MODEL` or the tool schema accordingly.
This server cannot be deployed
Maintenance
ActivityStale
ResponsivenessNo issues