Skip to main content
Glama

mcp_openai_image

Generate images using OpenAI's DALL-E API by providing a text prompt, model, size, and quality parameters. Returns the file path for the created image, ensuring users can access and utilize the output effectively.

Instructions

OpenAI DALL-E API를 사용하여 이미지를 생성합니다. 생성된 이미지 파일 경로를 반환하며, 이 경로는 반드시 사용자에게 알려주어야 합니다.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
fileNameNo저장할 파일 이름 (확장자 제외)
modelNo사용할 모델 (예: dall-e-3, dall-e-2)
nNo생성할 이미지 수
promptYes이미지를 생성할 프롬프트
qualityNo이미지 품질 (dall-e-3만 해당)
saveDirNo이미지를 저장할 디렉토리
sizeNo이미지 크기
styleNo이미지 스타일 (dall-e-3만 해당)

Implementation Reference

  • MCP tool handler function that invokes openaiService.generateImage and formats the response as ToolResponse
    async handler(args: any): Promise<ToolResponse> { try { const result = await openaiService.generateImage(args); return { content: [{ type: 'text', text: result }] }; } catch (error) { return { content: [{ type: 'text', text: `OpenAI 이미지 생성 오류: ${error instanceof Error ? error.message : String(error)}` }] }; } }
  • Input schema for mcp_openai_image tool defining parameters such as prompt, model, size, quality, etc.
    inputSchema: { type: 'object', properties: { prompt: { type: 'string', description: '이미지를 생성할 프롬프트' }, model: { type: 'string', description: '사용할 모델 (예: dall-e-3, dall-e-2)' }, n: { type: 'number', description: '생성할 이미지 수', minimum: 1, maximum: 10 }, size: { type: 'string', description: '이미지 크기', enum: ['256x256', '512x512', '1024x1024', '1792x1024', '1024x1792'] }, quality: { type: 'string', description: '이미지 품질 (dall-e-3만 해당)', enum: ['standard', 'hd'] }, style: { type: 'string', description: '이미지 스타일 (dall-e-3만 해당)', enum: ['vivid', 'natural'] }, saveDir: { type: 'string', description: '이미지를 저장할 디렉토리' }, fileName: { type: 'string', description: '저장할 파일 이름 (확장자 제외)' } }, required: ['prompt'] },
  • src/index.ts:25-54 (registration)
    Tool registration in MCP server capabilities, enabling mcp_openai_image
    tools: { mcp_sparql_execute_query: true, mcp_sparql_update: true, mcp_sparql_list_repositories: true, mcp_sparql_list_graphs: true, mcp_sparql_get_resource_info: true, mcp_ollama_run: true, mcp_ollama_show: true, mcp_ollama_pull: true, mcp_ollama_list: true, mcp_ollama_rm: true, mcp_ollama_chat_completion: true, mcp_ollama_status: true, mcp_http_request: true, mcp_openai_chat: true, mcp_openai_image: true, mcp_openai_tts: true, mcp_openai_transcribe: true, mcp_openai_embedding: true, mcp_gemini_generate_text: true, mcp_gemini_chat_completion: true, mcp_gemini_list_models: true, mcp_gemini_generate_images: false, mcp_gemini_generate_image: false, mcp_gemini_generate_videos: false, mcp_gemini_generate_multimodal_content: false, mcp_imagen_generate: false, mcp_gemini_create_image: false, mcp_gemini_edit_image: false },
  • Core implementation of image generation using OpenAI DALL-E API: calls /images/generations endpoint, downloads images from URLs, saves locally and returns file paths.
    async generateImage(args: { prompt: string; model?: string; n?: number; size?: string; quality?: string; style?: string; saveDir?: string; fileName?: string; }): Promise<string> { try { if (!OPENAI_API_KEY) { throw new McpError( ErrorCode.InternalError, 'OPENAI_API_KEY가 설정되지 않았습니다.' ); } const response = await axios.post( `${OPENAI_API_BASE}/images/generations`, { model: args.model || 'dall-e-3', prompt: args.prompt, n: args.n || 1, size: args.size || '1024x1024', quality: args.quality || 'standard', style: args.style || 'vivid', response_format: 'url' }, { headers: { 'Content-Type': 'application/json', 'Authorization': `Bearer ${OPENAI_API_KEY}` } } ); const images = response.data.data; const saveDir = args.saveDir || DEFAULT_SAVE_DIR; await this.ensureDirectoryExists(saveDir); // 이미지 URL을 다운로드하여 파일로 저장 const savedFiles = []; for (let i = 0; i < images.length; i++) { const timestamp = Date.now(); const fileName = args.fileName ? `${args.fileName}_${i}.png` : `dalle_${timestamp}_${i}.png`; const filePath = path.join(saveDir, fileName); const imageResponse = await axios.get(images[i].url, { responseType: 'arraybuffer' }); await writeFileAsync(filePath, Buffer.from(imageResponse.data)); savedFiles.push({ path: filePath, url: images[i].url }); } return JSON.stringify({ generated_images: savedFiles, original_response: response.data }, null, 2); } catch (error) { if (axios.isAxiosError(error)) { const statusCode = error.response?.status; const responseData = error.response?.data; throw new McpError( ErrorCode.InternalError, `OpenAI API 오류 (${statusCode}): ${ typeof responseData === 'object' ? JSON.stringify(responseData, null, 2) : responseData || error.message }` ); } throw new McpError(ErrorCode.InternalError, `이미지 생성 요청 실패: ${formatError(error)}`); } }

Latest Blog Posts

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/bigdata-coss/agent_mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server