项目介绍
openai-gpt-image-mcp
<p align="center">
<a href="https://www.npmjs.com/package/@modelcontextprotocol/sdk"><img src="https://img.shields.io/npm/v/@modelcontextprotocol/sdk?label=MCP%20SDK&color=blue" alt="MCP SDK"></a>
<a href="https://www.npmjs.com/package/openai"><img src="https://img.shields.io/npm/v/openai?label=OpenAI%20SDK&color=_blueviolet" alt="OpenAI SDK"></a>
<a href="https://github.com/SureScaleAI/openai-gpt-image-mcp/blob/main/LICENSE"><img src="https://img.shields.io/github/license/SureScaleAI/openai-gpt-image-mcp?color=brightgreen" alt="License"></a>
<a href="https://github.com/SureScaleAI/openai-gpt-image-mcp/stargazers"><img src="https://img.shields.io/github/stars/SureScaleAI/openai-gpt-image-mcp?style=social" alt="GitHub stars"></a>
<a href="https://github.com/SureScaleAI/openai-gpt-image-mcp/actions"><img src="https://img.shields.io/github/actions/workflow/status/SureScaleAI/openai-gpt-image-mcp/main.yml?label=build&logo=github" alt="Build Status"></a>
</p>
一个用于OpenAI的GPT-4o/gpt-image-1图像生成和编辑API的模型上下文协议(MCP)工具服务器。
- 使用OpenAI的最新模型从文本提示生成图像。
- 编辑图像(修复、扩展、合成)并具有高级提示控制。
- 支持:Claude Desktop、Cursor、VSCode、Windsurf以及任何兼容MCP的客户端。
✨ 特性
- create-image: 根据提示生成图像,并提供高级选项(大小、质量、背景等)。
- edit-image: 使用提示和可选的遮罩编辑或扩展图像,支持文件路径和base64输入。
- 文件输出: 直接保存生成的图像到磁盘,或者以base64形式接收。
🚀 安装
git clone https://github.com/SureScaleAI/openai-gpt-image-mcp.git
cd openai-gpt-image-mcp
yarn install
yarn build
🔑 配置
添加到Claude Desktop或VSCode(包括Cursor/Windsurf)配置中:
{
"mcpServers": {
"openai-gpt-image-mcp": {
"command": "node",
"args": ["/absolute/path/to/dist/index.js"],
"env": { "OPENAI_API_KEY": "sk-..." }
}
}
}
也支持Azure部署:
{
"mcpServers": {
"openai-gpt-image-mcp": {
"command": "node",
"args": ["/absolute/path/to/dist/index.js"],
"env": {
"AZURE_OPENAI_API_KEY": "sk-...",
"AZURE_OPENAI_ENDPOINT": "my.endpoint.com",
"OPENAI_API_VERSION": "2024-12-01-preview"
}
}
}
}
也可以提供环境文件:
{
"mcpServers": {
"openai-gpt-image-mcp": {
"command": "node",
"args": ["/absolute/path/to/dist/index.js", "--env-file", "./deployment/.env"]
}
}
}
⚡ 高级用法
- 对于
create-image,设置n以一次生成最多10张图像。
- 对于
edit-image,提供一个遮罩图像(文件路径或base64)来控制编辑应用的位置。
- 提供一个环境文件,使用
--env-file path/to/file/.env
- 查看
src/index.ts获取所有选项。
🧑💻 开发
- TypeScript源码:
src/index.ts
- 构建:
yarn build
- 运行:
node dist/index.js
📝 许可证
MIT
🩺 故障排除
- 确保你的
OPENAI_API_KEY有效且具有图像API访问权限。
- 你需要有一个已验证的OpenAI组织。验证后,图像API访问可能需要15-20分钟才能激活。
- 文件路径必须是绝对路径。
- Unix/macOS/Linux: 以
/开头(例如,/path/to/image.png)
- Windows: 驱动器字母后跟
:(例如,C:/path/to/image.png或C:\path\to\image.png)
- 对于文件输出,请确保目录可写。
- 如果看到有关文件类型的错误,请检查你的图像文件扩展名和格式。
⚠️ 限制及大文件处理
- 1MB负载限制: MCP客户端(包括Claude Desktop)对工具响应有严格的1MB限制。大型图像(尤其是高分辨率或多张图像)如果以base64形式返回,很容易超过这个限制。
- 自动切换到文件输出: 如果总图像大小超过1MB,工具会自动将图像保存到磁盘并返回文件路径,而不是base64。这确保了兼容性并防止出现如
结果超出最大长度1048576的错误。
- 默认文件位置: 如果未指定
file_output路径,图像将被保存到/tmp(或由MCP_HF_WORK_DIR环境变量设置的目录),并带有唯一文件名。
- 环境变量:
MCP_HF_WORK_DIR: 设置此变量以控制大型图像和文件输出的保存位置。示例:export MCP_HF_WORK_DIR=/your/desired/dir
- 最佳实践: 对于大型或生产图像,始终使用文件输出,并确保客户端配置为处理文件路径。
📚 参考资料
🙏 致谢