Create Image Mcp — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited Create Image Mcp (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
A Model Context Protocol (MCP) server that generates and edits images using OpenAI's GPT Image model (gpt-image-1.5). This server enables Claude Desktop, Claude Code, and other MCP clients to create images from text descriptions and edit existing images.
npm install -g @gpriday/create-image-mcpThe create-image-mcp command will be available globally.
git clone https://github.com/gpriday/create-image-mcp.git
cd create-image-mcp
npm installCreate a .env file in your project root or home directory (~/.env):
OPENAI_API_KEY=your_api_key_hereYou can get an OpenAI API key from OpenAI Platform.
For local development, validate your configuration with:
npm run check-envThe server will automatically load .env from:
.env)~/.env) as fallbackIf installed globally:
create-image-mcpIf running locally:
npm startThe server runs on stdio and communicates via JSON-RPC 2.0.
npm test # Unit tests
npm run test:integration # Integration test with live API
npm run test:all # All tests#### create_image
Generate or edit images using OpenAI GPT Image.
Use when: user says "create an image", "generate a picture", "draw", "make an illustration", "edit an image", "transform a photo", or any visual content creation request.
Parameters:
| Parameter | Required | Type | Default | Description |
|---|---|---|---|---|
prompt | Yes | string | - | Image description or editing instructions (1-32,000 chars) |
output_file | Yes | string | - | File path to save the generated image |
input_images | No | array | - | File paths to input images for editing (supports PNG/JPEG/WebP/GIF, max 20MB each) |
size | No | enum | 1024x1024 | 1024x1024, 1024x1536, 1536x1024, auto |
quality | No | enum | auto | low, medium, high, auto |
background | No | enum | auto | transparent, opaque, auto |
number_of_images | No | integer | 1 | Number of variations (1-4) |
output_mime_type | No | enum | image/png | image/png, image/jpeg, image/webp |
Examples:
Generate a simple image:
{
"name": "create_image",
"arguments": {
"prompt": "A serene mountain landscape at sunset with golden light",
"output_file": "./landscape.png"
}
}Generate with specific settings:
{
"name": "create_image",
"arguments": {
"prompt": "A futuristic city skyline with flying cars, cyberpunk style",
"output_file": "./cyberpunk-city.png",
"size": "1536x1024",
"quality": "high",
"number_of_images": 2
}
}Generate with transparent background:
{
"name": "create_image",
"arguments": {
"prompt": "A minimalist flat vector logo of an owl",
"output_file": "./logo.png",
"background": "transparent"
}
}Edit an existing image:
{
"name": "create_image",
"arguments": {
"prompt": "Change the background to a beach scene",
"input_images": ["./photo.jpg"],
"output_file": "./edited-photo.png"
}
}Style transfer:
{
"name": "create_image",
"arguments": {
"prompt": "Make this image look like a watercolor painting",
"input_images": ["./source.png"],
"output_file": "./watercolor.png"
}
}Response Format:
The tool saves images to disk and returns a text-only response:
Image saved to: ./landscape.png (245.3 KB, image/png)For multiple images, files are numbered:
Image saved to: ./cyberpunk-city_1.png (312.1 KB, image/png)
Image saved to: ./cyberpunk-city_2.png (298.7 KB, image/png)Add this server to your Claude Desktop configuration.
#### macOS Edit ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"create-image": {
"command": "create-image-mcp",
"env": {
"OPENAI_API_KEY": "your_api_key_here"
}
}
}
}#### Windows Edit %APPDATA%\Claude\claude_desktop_config.json:
{
"mcpServers": {
"create-image": {
"command": "create-image-mcp",
"env": {
"OPENAI_API_KEY": "your_api_key_here"
}
}
}
}#### Linux Edit ~/.config/Claude/claude_desktop_config.json:
{
"mcpServers": {
"create-image": {
"command": "create-image-mcp",
"env": {
"OPENAI_API_KEY": "your_api_key_here"
}
}
}
}#### macOS Edit ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"create-image": {
"command": "node",
"args": ["/path/to/create-image-mcp/src/index.js"],
"env": {
"OPENAI_API_KEY": "your_api_key_here"
}
}
}
}#### Windows Edit %APPDATA%\Claude\claude_desktop_config.json:
{
"mcpServers": {
"create-image": {
"command": "node",
"args": ["C:\\path\\to\\create-image-mcp\\src\\index.js"],
"env": {
"OPENAI_API_KEY": "your_api_key_here"
}
}
}
}#### Linux Edit ~/.config/Claude/claude_desktop_config.json:
{
"mcpServers": {
"create-image": {
"command": "node",
"args": ["/path/to/create-image-mcp/src/index.js"],
"env": {
"OPENAI_API_KEY": "your_api_key_here"
}
}
}
}After updating the configuration, restart Claude Desktop.
mcp.json (Recommended)Add an mcp.json file to your project root. This is the simplest approach and works automatically when Claude Code opens the project.
Note: IfOPENAI_API_KEYis already set in your shell environment (e.g. in~/.zshrc,~/.bashrc, or~/.env), you can omit theenvfield entirely.
If installed globally:
{
"mcpServers": {
"create-image": {
"command": "create-image-mcp",
"env": {
"OPENAI_API_KEY": "your_api_key_here"
}
}
}
}If running locally:
{
"mcpServers": {
"create-image": {
"command": "node",
"args": ["/path/to/create-image-mcp/src/index.js"],
"env": {
"OPENAI_API_KEY": "your_api_key_here"
}
}
}
}For current project only:
claude mcp add --scope project create-image -e OPENAI_API_KEY=your_api_key_here -- create-image-mcpFor your user (available in all projects):
claude mcp add --scope user create-image -e OPENAI_API_KEY=your_api_key_here -- create-image-mcpVerify the server is running:
claude mcp listAdd the MCP server using the codex mcp add command or by editing ~/.codex/config.toml.
If installed globally:
codex mcp add create-image --env OPENAI_API_KEY=your_api_key_here -- create-image-mcpIf running locally:
codex mcp add create-image --env OPENAI_API_KEY=your_api_key_here -- node /path/to/create-image-mcp/src/index.jsEdit ~/.codex/config.toml:
[mcp.create-image]
command = "create-image-mcp"
env = ["OPENAI_API_KEY=your_api_key_here"]^) ranges for automatic patch/minor security updatespackage-lock.json is committed for reproducible buildsnpm ci (not npm install) to enforce lockfile versionsnpm run security:audit regularlycreate-image/
├── src/
│ └── index.js # Main MCP server
├── scripts/
│ └── check-env.js # Environment validation
├── test/
│ ├── unit/
│ │ ├── tool-handler.test.js # Unit tests
│ │ └── tool-description.test.js # Schema tests
│ └── test-create-image-mcp.js # Integration tests
├── package.json
├── package-lock.json # Committed for reproducibility
├── .env # API key (git-ignored)
├── .env.example # API key template
├── .gitignore
├── LICENSE
└── README.mdDevelopment:
npm start - Start the MCP server (auto-runs environment validation)npm test - Run unit testsnpm run test:integration - Run integration testsnpm run test:all - Run all testsnpm run dev - Run server with auto-reloadEnvironment & Security:
npm run check-env - Validate environment configurationnpm run security:audit - Check for security vulnerabilitiesnpm run security:fix - Auto-fix security issuesnpm run security:update - Update dependencies and auditThe server provides categorized error handling:
MIT
Contributions welcome! Please open an issue or PR.
For issues or questions:
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.