{"_id":"@aiondadotcom/mcp-openai-image","_rev":"6-b4d36776b6b3e15c20169825433e255c","name":"@aiondadotcom/mcp-openai-image","dist-tags":{"latest":"1.0.8"},"versions":{"1.0.0":{"name":"@aiondadotcom/mcp-openai-image","version":"1.0.0","keywords":["mcp","openai","image-generation","dalle"],"author":"","license":"MIT","_id":"@aiondadotcom/mcp-openai-image@1.0.0","maintainers":[{"name":"stephanferraro","email":"stephan.ferraro@aionda.com"}],"bin":{"mcp-openai-image":"build/index.js"},"dist":{"shasum":"fa94914070f71cc1d241e9a917ec4a28c4b94463","tarball":"https://registry.npmjs.org/@aiondadotcom/mcp-openai-image/-/mcp-openai-image-1.0.0.tgz","fileCount":31,"integrity":"sha512-ccX0lyXm6oyLCGmzBflLS+lDBMOKMW2uCPM30+6cAxOW3m/kYeasIBs1v5Kr1Ss+Z9p4D+zOCFO6rQlUNPj6Hw==","signatures":[{"sig":"MEQCIEjSN2ysNsO9q1Cx1BvREIq/0IOTCCg+JgtoqNMT0JWLAiAOmbnGasbS4LBd4GnzR0UhXxi5tm1OMJnYWG45NRlWKQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1280796},"main":"build/index.js","type":"module","gitHead":"103e0932968bed91c6fc9ed761d2bd2ce45920dd","scripts":{"dev":"tsx src/index.ts","test":"jest","build":"tsc","start":"node build/index.js","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"stephanferraro","email":"stephan.ferraro@aionda.com"},"_npmVersion":"10.9.2","description":"MCP server for OpenAI image generation with STDIO transport","directories":{},"_nodeVersion":"22.16.0","dependencies":{"zod":"^3.22.0","openai":"^4.67.0","@modelcontextprotocol/sdk":"^0.5.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","jest":"^29.5.0","ts-jest":"^29.1.0","typescript":"^5.0.0","@types/jest":"^29.5.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-openai-image_1.0.0_1752584478690_0.41845534625061886","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@aiondadotcom/mcp-openai-image","version":"1.0.2","keywords":["mcp","openai","image-generation","dalle"],"author":"","license":"MIT","_id":"@aiondadotcom/mcp-openai-image@1.0.2","maintainers":[{"name":"stephanferraro","email":"stephan.ferraro@aionda.com"}],"bin":{"mcp-openai-image":"build/index.js"},"dist":{"shasum":"173306712d27092b51db2e77edb2bcfb971115a5","tarball":"https://registry.npmjs.org/@aiondadotcom/mcp-openai-image/-/mcp-openai-image-1.0.2.tgz","fileCount":32,"integrity":"sha512-53r27r5RxKSn6+MLMv1Yg24ey5COkHKjdoLly47TFNepAQ8YnQTB6WdcitlPpXN0v6scqB53H3E9OPr7A34g3A==","signatures":[{"sig":"MEUCIFvuvg1KGgZKH9kQMAsCqILnEgPOcB32iCLbEEi3aTDoAiEA8JcLAQa1+Ay16ngjbdhtuuIjgBqC5I7/aScUh29Fa/I=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1280492},"main":"build/index.js","type":"module","gitHead":"ea634b36522f792ab83d52feeb3bfc2f39466455","scripts":{"dev":"tsx src/index.ts","test":"jest","build":"tsc","start":"node build/index.js","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"stephanferraro","email":"stephan.ferraro@aionda.com"},"_npmVersion":"10.9.2","description":"MCP server for OpenAI image generation with STDIO transport","directories":{},"_nodeVersion":"22.16.0","dependencies":{"zod":"^3.22.0","openai":"^4.67.0","@modelcontextprotocol/sdk":"^0.5.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","jest":"^29.5.0","ts-jest":"^29.1.0","typescript":"^5.0.0","@types/jest":"^29.5.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-openai-image_1.0.2_1752587909424_0.8027976374949988","host":"s3://npm-registry-packages-npm-production"}},"1.0.5":{"name":"@aiondadotcom/mcp-openai-image","version":"1.0.5","keywords":["mcp","openai","image-generation","dalle"],"author":"","license":"MIT","_id":"@aiondadotcom/mcp-openai-image@1.0.5","maintainers":[{"name":"stephanferraro","email":"stephan.ferraro@aionda.com"}],"bin":{"mcp-openai-image":"build/index.js"},"dist":{"shasum":"643db1570c8a6daf1bcb44f6ff675a1ad9e15d5f","tarball":"https://registry.npmjs.org/@aiondadotcom/mcp-openai-image/-/mcp-openai-image-1.0.5.tgz","fileCount":32,"integrity":"sha512-7SUHg7A/6twU+mXj4sqSTs24jGeGKVxL8D1xlvlY3IswfR30XH++XwKNwLS7iWBV2IdaBgpw7TtygSUsB88VRQ==","signatures":[{"sig":"MEYCIQC/t+EAEUHOLtoa81fMmgyD7loIjRMSNdLnXrMhI6GamwIhAK5hH4cnA6w1FR1QlxCa51QL1VGqP+xeDEaaPSelgQMm","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1280633},"main":"build/index.js","type":"module","gitHead":"df40052896901b4112453fed09fe7f8faf82b241","scripts":{"dev":"tsx src/index.ts","test":"jest","build":"tsc","start":"node build/index.js","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"stephanferraro","email":"stephan.ferraro@aionda.com"},"_npmVersion":"10.9.2","description":"MCP server for OpenAI image generation with STDIO transport","directories":{},"_nodeVersion":"22.16.0","dependencies":{"zod":"^3.22.0","openai":"^4.67.0","@modelcontextprotocol/sdk":"^0.5.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","jest":"^29.5.0","ts-jest":"^29.1.0","typescript":"^5.0.0","@types/jest":"^29.5.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-openai-image_1.0.5_1752593284246_0.29698488989075345","host":"s3://npm-registry-packages-npm-production"}},"1.0.6":{"name":"@aiondadotcom/mcp-openai-image","version":"1.0.6","keywords":["mcp","openai","image-generation","dalle"],"author":"","license":"MIT","_id":"@aiondadotcom/mcp-openai-image@1.0.6","maintainers":[{"name":"stephanferraro","email":"stephan.ferraro@aionda.com"}],"bin":{"mcp-openai-image":"build/index.js"},"dist":{"shasum":"b8112c16f9950382d67a57fecc6de659024e7e24","tarball":"https://registry.npmjs.org/@aiondadotcom/mcp-openai-image/-/mcp-openai-image-1.0.6.tgz","fileCount":38,"integrity":"sha512-JvbAwGsKv8yZWoZC5cT2ekLG5oNYsZQI7EDbLoAFCtGCjcIDJ6XWb0F4pmudzkF3GS2rvzrHEuXXhN8zfWsFsw==","signatures":[{"sig":"MEUCICoi6ZbyXmTGEB6WQTwa++SpI7vw0E5HyJjaufUKgWF5AiEA2Zlxg7794V5pzIQ3d+dmU1xTvRr4apmqtK8UODqXnCc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1266544},"main":"build/index.js","type":"module","gitHead":"9d0f636a4c36db976710d3f72df656fb5e5913b1","scripts":{"dev":"tsx src/index.ts","test":"jest","build":"tsc","start":"node build/index.js","test:ci":"jest --config jest.config.ci.cjs","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"stephanferraro","email":"stephan.ferraro@aionda.com"},"_npmVersion":"10.9.2","description":"MCP server for OpenAI image generation with STDIO transport","directories":{},"_nodeVersion":"22.16.0","dependencies":{"zod":"^3.22.0","openai":"^4.67.0","@modelcontextprotocol/sdk":"^0.5.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","jest":"^29.5.0","ts-jest":"^29.1.0","typescript":"^5.0.0","@types/jest":"^29.5.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-openai-image_1.0.6_1752654870116_0.739539850915993","host":"s3://npm-registry-packages-npm-production"}},"1.0.7":{"name":"@aiondadotcom/mcp-openai-image","version":"1.0.7","keywords":["mcp","openai","image-generation","dalle"],"author":"","license":"MIT","_id":"@aiondadotcom/mcp-openai-image@1.0.7","maintainers":[{"name":"stephanferraro","email":"stephan.ferraro@aionda.com"}],"bin":{"mcp-openai-image":"build/index.js"},"dist":{"shasum":"4a3f26f94f2ace860055d4ecf0cdc3f85d9edf09","tarball":"https://registry.npmjs.org/@aiondadotcom/mcp-openai-image/-/mcp-openai-image-1.0.7.tgz","fileCount":38,"integrity":"sha512-yOqVFSfAGU1VQMTATwOe4JndvEtDrhxSUZtU+/OUI02NJaI1OZVKq592iW1WK92ZiJvJ/z+EMRE6Z764veyiOw==","signatures":[{"sig":"MEQCIAEK4h2F6g2JwhgQRBWOG0IQOTX9tzeVhmVEHui99z2hAiAXOOxKd68oIJcLrMzCK4AtP3CtDn7CC3D8EuFh4sh8jA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1260917},"main":"build/index.js","type":"module","gitHead":"fca7045da041f5d1d70e8f78a116d80435b28931","scripts":{"dev":"tsx src/index.ts","test":"jest","build":"tsc","start":"node build/index.js","test:ci":"jest --config jest.config.ci.cjs","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"stephanferraro","email":"stephan.ferraro@aionda.com"},"_npmVersion":"10.9.2","description":"MCP server for OpenAI image generation with STDIO transport","directories":{},"_nodeVersion":"22.16.0","dependencies":{"zod":"^3.22.0","openai":"^4.67.0","@modelcontextprotocol/sdk":"^0.5.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","jest":"^29.5.0","ts-jest":"^29.1.0","typescript":"^5.0.0","@types/jest":"^29.5.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-openai-image_1.0.7_1752655028968_0.8384983687315444","host":"s3://npm-registry-packages-npm-production"}},"1.0.8":{"name":"@aiondadotcom/mcp-openai-image","version":"1.0.8","description":"MCP server for OpenAI image generation with STDIO transport","main":"build/index.js","bin":{"mcp-openai-image":"build/index.js"},"type":"module","scripts":{"build":"tsc","start":"node build/index.js","dev":"tsx src/index.ts","test":"jest","test:ci":"jest --config jest.config.ci.cjs","test:watch":"jest --watch","test:coverage":"jest --coverage"},"keywords":["mcp","openai","image-generation","dalle"],"author":"","license":"MIT","publishConfig":{"access":"public"},"dependencies":{"@modelcontextprotocol/sdk":"^0.5.0","openai":"^4.67.0","zod":"^3.22.0"},"devDependencies":{"@types/node":"^20.0.0","@types/jest":"^29.5.0","jest":"^29.5.0","ts-jest":"^29.1.0","typescript":"^5.0.0","tsx":"^4.0.0"},"_id":"@aiondadotcom/mcp-openai-image@1.0.8","gitHead":"8c581fa61ecb94cac3be27cf1e069031fb598a24","_nodeVersion":"22.16.0","_npmVersion":"10.9.2","dist":{"integrity":"sha512-PEevyFgivMqeNjQfDkytaiCaZHJVZnjLbJ1+c1V3ZAVLN8AtybtoLnJkxx+4+gIWB5jjOmy/PBPff9ovBmpsRg==","shasum":"dc349c6e5a0df3752188f11ffd07115e0b85f6c2","tarball":"https://registry.npmjs.org/@aiondadotcom/mcp-openai-image/-/mcp-openai-image-1.0.8.tgz","fileCount":38,"unpackedSize":1260739,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIGuc59h1tiTiYatVBANWuogLSuZ9katXFeRLW6Y205uBAiEA4l57iYKSnQXFEl/uc3yFY3m/MxDR4FQTUnbn6fTRjF0="}]},"_npmUser":{"name":"stephanferraro","email":"stephan.ferraro@aionda.com"},"directories":{},"maintainers":[{"name":"stephanferraro","email":"stephan.ferraro@aionda.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/mcp-openai-image_1.0.8_1752656034960_0.20579914538158683"},"_hasShrinkwrap":false}},"time":{"created":"2025-07-15T13:01:18.604Z","modified":"2025-07-16T08:53:55.380Z","1.0.0":"2025-07-15T13:01:18.880Z","1.0.2":"2025-07-15T13:58:29.609Z","1.0.5":"2025-07-15T15:28:04.502Z","1.0.6":"2025-07-16T08:34:30.356Z","1.0.7":"2025-07-16T08:37:09.289Z","1.0.8":"2025-07-16T08:53:55.188Z"},"license":"MIT","keywords":["mcp","openai","image-generation","dalle"],"description":"MCP server for OpenAI image generation with STDIO transport","maintainers":[{"name":"stephanferraro","email":"stephan.ferraro@aionda.com"}],"readme":"# MCP OpenAI Image Generation Server\n\n[![Tests](https://github.com/AiondaDotCom/mcp-openai-image/actions/workflows/test.yml/badge.svg)](https://github.com/AiondaDotCom/mcp-openai-image/actions/workflows/test.yml)\n[![npm version](https://badge.fury.io/js/@aiondadotcom%2Fmcp-openai-image.svg)](https://badge.fury.io/js/@aiondadotcom%2Fmcp-openai-image)\n\n<div align=\"center\">\n  <img src=\"logo.png\" alt=\"MCP OpenAI Image Server Logo\" width=\"200\" height=\"200\">\n</div>\n\nA Model Context Protocol (MCP) server that integrates with OpenAI's image generation API to create, edit, and stream images. Images are automatically saved to the Desktop for easy access by AI applications.\n\n> **Note**: This logo was generated by the MCP OpenAI Image Server itself, demonstrating the server's image generation capabilities.\n\n## Features\n\n- **Image Generation**: Create images using OpenAI's GPT-Image-1 model\n- **Multi-turn Editing**: Edit existing images using conversation history\n- **Streaming Support**: Real-time partial image generation\n- **Desktop Integration**: Automatic saving to `~/Desktop`\n- **Internal Configuration**: Secure API key management\n- **STDIO Transport**: Runs over standard input/output\n\n## Installation\n\n```bash\nnpm install\nnpm run build\n```\n\n## Usage\n\n### Development\n```bash\nnpm run dev\n```\n\n### Production\n```bash\nnpm run build\nnpm start\n```\n\n## Configuration\n\nThe server manages its own configuration internally. On first use, configure your OpenAI API key:\n\n```json\n{\n  \"name\": \"configure-server\",\n  \"arguments\": {\n    \"apiKey\": \"sk-your-openai-api-key\",\n    \"organization\": \"optional-org-id\",\n    \"model\": \"gpt-4.1-mini\"\n  }\n}\n```\n\n## Available Tools\n\n### 1. generate-image\nGenerate images using OpenAI's image generation API.\n\n**Parameters:**\n- `prompt` (required): Image description\n- `size`: Image dimensions (1024x1024, 1024x1536, 1536x1024)\n- `quality`: Image quality (standard, hd)\n- `format`: Output format (png, jpeg, webp)\n- `background`: Background setting (transparent, opaque, auto)\n- `compression`: Compression level for JPEG/WebP (0-100)\n\n### 2. configure-server\nConfigure OpenAI API settings and credentials.\n\n**Parameters:**\n- `apiKey` (required): OpenAI API key\n- `organization`: OpenAI organization ID\n- `model`: Model to use (gpt-4.1-mini, gpt-4.1, gpt-4o, gpt-4o-mini)\n\n### 3. edit-image\nEdit existing images using previous response ID.\n\n**Parameters:**\n- `editPrompt` (required): Edit instructions\n- `previousResponseId`: Previous response ID for multi-turn editing\n- `imageId`: Specific image ID to edit\n\n### 4. stream-image\nGenerate images with streaming for faster feedback.\n\n**Parameters:**\n- `prompt` (required): Image description\n- `partialImages`: Number of partial images (1-3)\n- `size`: Image dimensions\n\n### 5. get-config-status\nCheck current configuration status.\n\n### 6. list-supported-models\nList all supported OpenAI models for image generation.\n\n## File Management\n\n- Images are saved to `~/Desktop` with unique filenames\n- Metadata is stored in JSON sidecar files\n- Automatic cleanup of old images (keeps last 50)\n- Naming convention: `openai-image-{timestamp}-{randomId}.{extension}`\n\n## Error Handling\n\nThe server provides comprehensive error handling with:\n- Configuration validation\n- API key verification\n- Network error recovery\n- File system error handling\n- Helpful error messages and suggestions\n\n## Security\n\n- API keys are stored securely in internal configuration\n- No logging of sensitive information\n- Validation of all inputs\n- Secure file system operations\n\n## Development\n\n### Project Structure\n```\nsrc/\n├── index.ts            # Main entry point\n├── server.ts           # MCP server implementation\n├── config-manager.ts   # Configuration management\n├── image-generator.ts  # OpenAI API integration\n├── file-manager.ts     # Desktop file operations\n└── types.ts           # TypeScript definitions\n```\n\n### Building\n```bash\nnpm run build\n```\n\n### Testing\n```bash\nnpm test\n```\n\n## Requirements\n\n- Node.js 18+\n- OpenAI API key\n- Write permissions to Desktop\n- Network access to OpenAI API\n\n## Important Notice\n\n**⚠️ BILLING WARNING ⚠️**\n\nOpenAI bills for all successful API requests, even if technical issues with this MCP server prevent the delivery of usable results. This means you may be charged by OpenAI even when the MCP server fails to generate or save images properly due to bugs, configuration issues, or other technical problems. We do not guarantee or take responsibility for any costs that may be incurred through the use of this MCP server. Use at your own risk.\n\nPlease monitor your OpenAI API usage and billing to avoid unexpected charges.\n\n## License\n\nMIT","readmeFilename":"README.md"}