项目简介
这是一个基于 Model Context Protocol (MCP) 构建的服务器,旨在为支持 MCP 的大型语言模型 (LLM) 客户端(如 Cline、Claude Desktop 等)提供图片生成能力。它利用 OpenAI 的 DALL-E 模型根据文本描述创建图像,并将生成的图片保存到指定项目的公共目录。
主要功能点
- 使用 OpenAI (DALL-E 2, DALL-E 3, gpt-image-1) API 生成高质量图片。
- 支持指定图片尺寸、质量和使用的 OpenAI 模型。
- 可根据项目特定的品牌签名调整生成图片的风格。
- 将生成的图片文件保存到 LLM 客户端指定的项目路径中。
- 提供详细的工具使用文档(在代码注释中),指导 LLM 如何有效调用。
安装步骤
- 确保已安装 Node.js (推荐 v18+) 和 npm。
- 从 GitHub 克隆此仓库到您的本地机器。
git clone https://github.com/dfeirstein/image-creator-mcp.git image-mcp-server cd image-mcp-server - 在仓库根目录运行 'npm ci' 安装依赖。
npm ci - 运行 'npm run build' 编译 TypeScript 代码。
npm run build - 获取您的 OpenAI API Key (格式通常为 'sk-...')。您可以在 platform.openai.com/api-keys 创建。
服务器配置
MCP 服务器需要通过 MCP 客户端来启动和管理。您需要在客户端的 MCP 配置 JSON 文件中添加一个条目来定义此服务器。MCP 客户端通过配置中的 'command' 和 'args' 来启动服务器进程,并通过 'transportType' 指定的协议(此服务器默认使用 'stdio')进行通信。
以下是一个示例配置结构,请添加到您的 MCP 客户端设置文件(例如 'cline_mcp_settings.json' 或 'claude_desktop_config.json')中的 '"mcpServers": { ... }' 对象内:
// 在客户端设置文件中的 "mcpServers": { ... } 对象内添加 "image-mcp-server": { // MCP 服务器进程的启动命令 "command": "node", // 传递给命令的参数,此处是服务器构建后的入口文件路径 // IMPORTANT: 使用您克隆仓库后 dist/index.js 文件的绝对路径 "args": [ "/your/absolute/path/to/image-creator-mcp/dist/index.js" ], // 服务器进程的工作目录 // IMPORTANT: 使用您克隆仓库的绝对路径 "cwd": "/your/absolute/path/to/image-creator-mcp", // 传递给服务器进程的环境变量 "env": { // IMPORTANT: 替换为您的实际 OpenAI API Key "OPENAI_API_KEY": "sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" }, // --- 标准 MCP 配置 --- "disabled": false, // 设置为 true 可禁用此服务器 "autoApprove": [], // 列出自动批准调用的工具名称 (例如:["create_image"]) "transportType": "stdio", // 服务器与客户端的通信方式,此服务器使用 stdio "timeout": 60 // 请求超时时间(秒,可选) } // 如果这不是列表中的第一个服务器配置,请确保前面有逗号。
请将 '"command"' 和 '"cwd"' 中的占位符 '/your/absolute/path/to/image-creator-mcp' 替换为您实际克隆仓库的绝对路径,并将 '"env"' 中的 'OPENAI_API_KEY' 替换为您的真实 OpenAI API Key。
保存客户端设置文件后,支持 MCP 的客户端通常会自动检测更改并连接到此服务器。
基本使用方法
配置完成后,支持 MCP 的 LLM 客户端应能自动发现并连接到此服务器。LLM 可以通过调用服务器提供的 'create_image' 工具来生成图片。调用时,LLM 需要在工具参数中提供详细的图片 'prompt' (描述)、希望保存的 'filename' (文件名,包含扩展名如 '.png')、'targetProjectDir' (目标项目目录的绝对路径) 以及可选的 'size'、'quality'、'model'、'outputPath' (目标目录下的子目录) 等参数。
服务器成功生成图片后,会将图片保存到 'targetProjectDir' 下的 'public' 目录(如果提供了 'outputPath',则保存到 'public/outputPath' 子目录中),并返回一个包含图片相对于 'public' 目录的 'path'、'bytes' 大小等信息的 JSON 对象给 LLM。LLM 可以解析此响应来获取保存的文件路径信息。
信息
分类
AI与计算