Name | mcp-imgutils JSON |
Version |
5.2.0
JSON |
| download |
home_page | None |
Summary | MCP服务:将本地图片和网络图片发送给LLM |
upload_time | 2025-08-10 18:41:04 |
maintainer | None |
docs_url | None |
author | None |
requires_python | >=3.11 |
license | None |
keywords |
|
VCS |
|
bugtrack_url |
|
requirements |
No requirements were recorded.
|
Travis-CI |
No Travis.
|
coveralls test coverage |
No coveralls.
|
# MCP图片工具服务
这是一个基于Model Context Protocol (MCP)的全方位图片工具服务,提供图片分析和AI图片生成功能。
## 功能特性
### 📊 图片分析功能
- **🖼️ 图片查看与分析**: 将本地图片和网络图片转换为LLM可分析的格式
- **🌐 URL图片支持**: 直接支持HTTP/HTTPS图片URL,无需下载到本地
- **📊 完整图片信息**: 获取分辨率、大小、格式、颜色模式等技术参数
- **📷 EXIF元数据提取**: 提取拍摄参数、设备信息、GPS数据等完整EXIF信息
- **🔄 智能格式处理**: 自动处理各种图片格式和大小调整
- **🔒 安全验证**: URL格式验证、Content-Type检查、超时控制
- **🧹 自动清理**: 临时文件自动管理,无磁盘泄漏
- **📝 专业术语支持**: 保持英文EXIF键名,便于LLM理解专业摄影术语
### 🎨 AI图片生成功能
- **🚀 多模型支持**: 支持 BFL FLUX 和 OpenAI DALL-E 系列模型
- **BFL FLUX**: flux-pro-1.1, flux-pro-1.1-ultra, flux-pro, flux-dev
- **OpenAI DALL-E**: dall-e-3, dall-e-2
- **📐 智能尺寸**: 预设尺寸和自定义尺寸,自动调整到最佳参数
- **⚡ 高质量生成**: 业界领先的文本生成图片质量
- **📁 本地保存**: 图片自动下载到本地目录,避免大文件传输问题
- **🛡️ 完整错误处理**: API限制、网络错误、参数验证等全面处理
- **🔄 智能工作流**: 生成后可直接使用view_image工具查看分析
- **🎯 灵活配置**: 支持临时路径覆盖,满足不同使用场景
## 安装
确保已安装必要的依赖:
```bash
uv install
# 或者
pip install -e .
```
## 使用方法
### Claude Desktop配置
这是一个MCP服务器,需要通过Claude Desktop配置使用。
**配置文件位置**:
- **macOS**: `~/Library/Application Support/Claude/claude_desktop_config.json`
- **Windows**: `%APPDATA%\Claude\claude_desktop_config.json`
**配置内容**:
在Claude Desktop的配置文件中添加以下配置:
```json
{
"mcpServers": {
"mcp-imgutils": {
"command": "uvx",
"args": ["mcp-imgutils"],
"env": {
"BFL_API_KEY": "your-bfl-api-key-here",
"OPENAI_API_KEY": "your-openai-api-key-here"
}
}
}
}
```
### 🔑 API密钥配置
#### BFL (Black Forest Labs) API密钥
要使用 BFL FLUX 模型生成图片,需要配置 BFL API密钥:
1. **获取API密钥**: 访问 [BFL API Portal](https://api.bfl.ai/) 注册并获取API密钥
2. **配置方式**:
- **方式1 (推荐)**: 在Claude Desktop配置中添加环境变量(如上所示)
- **方式2**: 设置系统环境变量 `export BFL_API_KEY=your-api-key`
#### OpenAI API密钥
要使用 OpenAI DALL-E 模型生成图片,需要配置 OpenAI API密钥:
1. **获取API密钥**: 访问 [OpenAI API Portal](https://platform.openai.com/api-keys) 注册并获取API密钥
2. **配置方式**:
- **方式1 (推荐)**: 在Claude Desktop配置中添加环境变量(如上所示)
- **方式2**: 设置系统环境变量 `export OPENAI_API_KEY=your-api-key`
#### 图片保存目录配置(可选)
默认情况下,生成的图片保存到:
**BFL FLUX 模型**:
- **Windows/macOS**: `~/Pictures/BFL_Generated/`
- **Linux**: `~/Pictures/BFL_Generated/` 或 `~/BFL_Generated/`
**OpenAI DALL-E 模型**:
- **Windows/macOS**: `~/Pictures/OpenAI_Generated/`
- **Linux**: `~/Pictures/OpenAI_Generated/` 或 `~/OpenAI_Generated/`
自定义保存目录:
```json
{
"mcpServers": {
"mcp-imgutils": {
"command": "uvx",
"args": ["mcp-imgutils"],
"env": {
"BFL_API_KEY": "your-bfl-api-key-here",
"OPENAI_API_KEY": "your-openai-api-key-here",
"BFL_IMAGE_SAVE_DIR": "~/MyImages/BFL_Generated",
"OPENAI_IMAGE_SAVE_DIR": "~/MyImages/OpenAI_Generated"
}
}
}
}
```
**注意**:
- 必须使用绝对路径,不能使用相对路径
- 配置完成后需要重启Claude Desktop
- 没有API密钥时,图片生成功能将不可用,但图片分析功能正常工作
## 工具使用示例
一旦服务运行起来,你可以在Claude中使用以下工具:
### 📊 view_image - 图片查看与分析
查看并分析本地图片或网络图片,获取完整的图片信息和EXIF元数据。
### 🎨 generate_image_bfl - AI图片生成
使用BFL FLUX模型生成高质量图片。
**view_image参数:**
- `image_path` - 图片文件的完整路径或HTTP/HTTPS URL
- `max_file_size` (可选) - 允许的最大文件大小(字节,默认5MB,仅适用于本地文件)
**generate_image_bfl参数:**
- `prompt` (必需) - 图片描述文本
- ⚠️ **语言支持**: BFL FLUX模型主要支持英文提示词,建议使用英文以获得最佳效果
- `model` (可选) - FLUX模型选择:
- `flux-dev` (默认) - 开发版本,免费使用
- `flux-pro` - 专业版本,更高质量
- `flux-pro-1.1` - 最新专业版本
- `flux-pro-1.1-ultra` - 超高质量版本
- `preset_size` (可选) - 预设尺寸,如:
- `desktop_fhd` - 桌面壁纸 Full HD
- `mobile_portrait` - 手机竖屏
- `instagram_square` - Instagram正方形
- `default` - 默认尺寸 (1920x1080 Full HD)
- `width`, `height` (可选) - 自定义尺寸(如果不使用preset_size)
**💡 智能默认**: 不指定尺寸时使用1920x1080 (Full HD),适合现代屏幕。
**🎯 用户友好**: 用户可描述用途(如"桌面壁纸"、"手机壁纸"),LLM自动选择最佳设置。
**支持的图片来源:**
- **本地文件**: `/Users/john/Photos/sunset.jpg`
- **网络图片**: `https://example.com/image.jpg`
- **各种域名**: 支持任何可访问的HTTP/HTTPS图片URL
**返回内容:**
1. **详细的图片信息文本**,包括:
- 文件名、路径、大小
- 图片格式、分辨率、颜色模式
- 总像素数等技术参数
2. **EXIF元数据**(如果有),包括:
- 拍摄设备信息(Make, Model, Software)
- 拍摄参数(ExposureTime, FNumber, ISOSpeedRatings, FocalLength)
- 拍摄时间(DateTime, DateTimeOriginal)
- 技术参数(ColorSpace, Flash, MeteringMode)
- 所有其他可用的EXIF字段
3. **图片的视觉内容**,供LLM进行图像分析
### 使用示例
配置完成后,在Claude Desktop中:
#### 📊 本地图片分析
```text
用户: 请分析这张照片 /Users/john/Photos/sunset.jpg
Claude: [调用 view_image 工具]
```
#### 🌐 网络图片分析
```text
用户: 请分析这张网络图片 https://example.com/photo.jpg
Claude: [调用 view_image 工具]
```
#### 🎨 AI图片生成
```text
用户: 请用BFL生成一张中国女孩的图片
Claude: [调用 generate_image_bfl 工具]
✅ 图片生成成功!
📁 本地路径: ~/Pictures/BFL_Generated/20250803_131535_flux-dev_1024x768_Chinese_girl_abc123.jpg
[自动调用 view_image 工具显示生成的图片]
```
#### 🎯 指定模型和尺寸生成
```text
用户: 用flux-pro模型生成一张1280x720的科幻城市图片
Claude: [调用 generate_image_bfl 工具,参数:
- prompt: "科幻城市"
- model: "flux-pro"
- width: 1280
- height: 720]
```
#### 📐 使用预设尺寸
```text
用户: 生成一张适合Instagram的正方形图片,内容是可爱的小猫
Claude: [调用 generate_image_bfl 工具,参数:
- prompt: "可爱的小猫"
- preset_size: "instagram_square"]
✅ 图片生成成功!
📁 本地路径: ~/Pictures/BFL_Generated/20250803_131535_flux-dev_1024x1024_cute_cat_abc123.jpg
[自动调用 view_image 工具显示生成的图片]
```
### 🎨 generate_image_openai - OpenAI DALL-E 图片生成
使用 OpenAI DALL-E 模型生成高质量图片。
**generate_image_openai参数:**
- `prompt` (必需) - 图片描述文本
- ✅ **语言支持**: DALL-E 支持中文和英文提示词
- `model` (可选) - DALL-E 模型选择:
- `dall-e-3` (默认) - 最新版本,更高质量和更好的提示词理解
- `dall-e-2` - 经典版本,支持多张图片生成
- `preset_size` (可选) - 预设尺寸,如:
- `default` - 默认尺寸 (1024x1024)
- `square` - 正方形 (1024x1024)
- `landscape` - 横向 (1792x1024)
- `portrait` - 纵向 (1024x1792)
- `size` (可选) - 自定义尺寸(如果不使用preset_size)
- DALL-E 3: `1024x1024`, `1792x1024`, `1024x1792`
- DALL-E 2: `256x256`, `512x512`, `1024x1024`
- `quality` (可选) - 图片质量(仅 DALL-E 3):
- `standard` (默认) - 标准质量,更快更便宜
- `hd` - 高清质量,更慢更贵
- `style` (可选) - 图片风格(仅 DALL-E 3):
- `vivid` (默认) - 生动风格,色彩鲜艳
- `natural` - 自然风格,更真实
- `n` (可选) - 生成图片数量:
- DALL-E 3: 固定为 1
- DALL-E 2: 1-10 张
- `download_path` (可选) - 临时指定下载路径
#### OpenAI DALL-E 使用示例
##### 🎨 基本图片生成
```text
用户: 请用OpenAI生成一张中国女孩的图片
Claude: [调用 generate_image_openai 工具]
✅ 图片生成成功!
📁 本地路径: ~/Pictures/OpenAI_Generated/20250803_131535_dall-e-3_1024x1024_Chinese_girl_abc123.jpg
[自动调用 view_image 工具显示生成的图片]
```
##### 🎯 指定模型和质量
```text
用户: 用dall-e-3高清模式生成一张科幻城市图片
Claude: [调用 generate_image_openai 工具,参数:
- prompt: "科幻城市"
- model: "dall-e-3"
- quality: "hd"
- preset_size: "landscape"]
```
##### 📐 使用预设尺寸和风格
```text
用户: 生成一张自然风格的正方形图片,内容是可爱的小猫
Claude: [调用 generate_image_openai 工具,参数:
- prompt: "可爱的小猫"
- preset_size: "square"
- style: "natural"]
✅ 图片生成成功!
📁 本地路径: ~/Pictures/OpenAI_Generated/20250803_131535_dall-e-3_1024x1024_cute_cat_abc123.jpg
[自动调用 view_image 工具显示生成的图片]
```
#### 网络图片分析
```text
用户: 请分析这张网络图片 https://img.youtube.com/vi/iv-5mZ_9CPY/maxresdefault.jpg
Claude: [调用 view_image 工具]
返回结果:
图片详细信息:
文件名: URL: https://img.youtube.com/vi/iv-5mZ_9CPY/maxresdefault.jpg
文件路径: /tmp/tmp9rizrzqv.jpg
文件大小: 290,434 字节 (283.63 KB, 0.28 MB)
图片格式: JPEG
分辨率: 1280 x 720
颜色模式: RGB
总像素数: 921,600
[同时显示图片内容供分析]
```
## 🌐 URL图片支持
### 支持的URL类型
- **HTTP/HTTPS协议**: `http://` 和 `https://` 开头的URL
- **各种域名**: 支持任何可公开访问的图片URL
- **常见图片网站**:
- YouTube缩略图: `https://img.youtube.com/vi/VIDEO_ID/maxresdefault.jpg`
- 社交媒体图片: Twitter、Instagram、Facebook等
- 图片托管服务: Imgur、Flickr、Google Photos等
- CDN图片: 各种内容分发网络的图片
### 安全特性
- **协议限制**: 仅允许HTTP和HTTPS协议,拒绝其他协议
- **Content-Type验证**: 确保URL返回的是图片内容
- **超时控制**: 30秒下载超时,避免长时间等待
- **自动重定向**: 支持最多5次重定向跟踪
- **临时文件管理**: 下载的图片存储在系统临时目录,处理完自动清理
### 使用注意事项
- **网络连接**: 需要稳定的网络连接访问外部URL
- **访问权限**: 某些网站可能有防爬虫机制,可能无法访问
- **文件大小**: URL图片不受本地文件大小限制,遵循MCP协议处理
- **隐私考虑**: 访问URL时会暴露您的IP地址给目标服务器
## 支持的图片格式
- JPEG (.jpg, .jpeg)
- PNG (.png)
- GIF (.gif)
- BMP (.bmp)
- WebP (.webp)
### 图片处理
- 默认最大文件大小限制为5MB
- 所有非JPEG格式的图片会被转换为JPEG以减小大小
- 对于包含透明通道的图片(如PNG),会在转换时添加白色背景
- 使用优化的JPEG压缩算法减小输出文件大小
### 错误处理
服务包含全面的错误处理机制:
**本地文件错误:**
- 图片路径验证(文件是否存在)
- 文件大小检查
- 图片格式验证
- 文件权限检查
**网络图片错误:**
- URL格式验证
- 网络连接错误(超时、DNS失败等)
- HTTP状态错误(404、403、500等)
- Content-Type验证(确保是图片内容)
- 下载失败处理
**通用错误:**
- 异常捕获和友好错误消息
- 临时文件清理(即使出错也会清理)
## EXIF元数据支持
该服务提供完整的EXIF元数据提取功能:
### 支持的EXIF信息类型
- **设备信息**: 相机品牌、型号、软件版本
- **拍摄参数**: 曝光时间、光圈值、ISO感光度、焦距
- **拍摄时间**: 拍摄时间、数字化时间、原始时间
- **技术参数**: 色彩空间、闪光灯设置、测光模式、曝光程序
- **图片属性**: EXIF图片尺寸、方向信息
- **GPS信息**: 地理位置数据(如果有)
- **其他元数据**: 所有可用的EXIF标签
### EXIF数据处理特性
- **智能类型处理**: 自动处理字节数据、分数值、浮点数等不同数据类型
- **英文键名**: 保持原始EXIF标签名,便于LLM理解专业术语
- **优雅降级**: 没有EXIF数据的图片不会显示空白部分
- **完整提取**: 提取所有可用的EXIF字段,不预设限制
## 扩展性
该服务设计为可扩展的,未来可以添加更多功能:
- **更多图片格式**: 支持RAW格式、HEIC等
- **图片预处理**: 裁剪、缩放、旋转等操作
- **高级分析**: 颜色分布、直方图、对象检测
- **批量处理**: 同时处理多个图片文件或URL
- **AI增强**: 图片质量评估、场景识别等
- **缓存机制**: URL图片智能缓存,提高重复访问性能
- **代理支持**: 支持HTTP代理访问受限网络中的图片
- **认证支持**: 支持需要认证的私有图片URL
## 注意事项
### 文件路径
- 图片路径必须是完整的绝对路径
- 支持跨平台路径格式(Windows、macOS、Linux)
### 隐私与安全
- 服务不会修改原始图片文件
- 图片数据不会被永久存储,仅在处理过程中临时使用
- EXIF数据可能包含敏感信息(如GPS位置),请注意隐私保护
### 性能考虑
- 默认最大文件大小限制为5MB,可通过参数调整
- 大型图片会自动进行质量优化以减小传输大小
- EXIF提取对性能影响很小,适合实时使用
### 兼容性
- 支持所有主流图片格式的EXIF数据
- 某些格式(如PNG、GIF)可能不包含EXIF信息
- AI生成的图片通常不包含传统的拍摄参数EXIF数据
Raw data
{
"_id": null,
"home_page": null,
"name": "mcp-imgutils",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.11",
"maintainer_email": null,
"keywords": null,
"author": null,
"author_email": null,
"download_url": "https://files.pythonhosted.org/packages/80/af/b2caea3a10363d2c5499377b11b6351599f7a5edf0e5149a61d87a583768/mcp_imgutils-5.2.0.tar.gz",
"platform": null,
"description": "# MCP\u56fe\u7247\u5de5\u5177\u670d\u52a1\n\n\u8fd9\u662f\u4e00\u4e2a\u57fa\u4e8eModel Context Protocol (MCP)\u7684\u5168\u65b9\u4f4d\u56fe\u7247\u5de5\u5177\u670d\u52a1\uff0c\u63d0\u4f9b\u56fe\u7247\u5206\u6790\u548cAI\u56fe\u7247\u751f\u6210\u529f\u80fd\u3002\n\n## \u529f\u80fd\u7279\u6027\n\n### \ud83d\udcca \u56fe\u7247\u5206\u6790\u529f\u80fd\n- **\ud83d\uddbc\ufe0f \u56fe\u7247\u67e5\u770b\u4e0e\u5206\u6790**: \u5c06\u672c\u5730\u56fe\u7247\u548c\u7f51\u7edc\u56fe\u7247\u8f6c\u6362\u4e3aLLM\u53ef\u5206\u6790\u7684\u683c\u5f0f\n- **\ud83c\udf10 URL\u56fe\u7247\u652f\u6301**: \u76f4\u63a5\u652f\u6301HTTP/HTTPS\u56fe\u7247URL\uff0c\u65e0\u9700\u4e0b\u8f7d\u5230\u672c\u5730\n- **\ud83d\udcca \u5b8c\u6574\u56fe\u7247\u4fe1\u606f**: \u83b7\u53d6\u5206\u8fa8\u7387\u3001\u5927\u5c0f\u3001\u683c\u5f0f\u3001\u989c\u8272\u6a21\u5f0f\u7b49\u6280\u672f\u53c2\u6570\n- **\ud83d\udcf7 EXIF\u5143\u6570\u636e\u63d0\u53d6**: \u63d0\u53d6\u62cd\u6444\u53c2\u6570\u3001\u8bbe\u5907\u4fe1\u606f\u3001GPS\u6570\u636e\u7b49\u5b8c\u6574EXIF\u4fe1\u606f\n- **\ud83d\udd04 \u667a\u80fd\u683c\u5f0f\u5904\u7406**: \u81ea\u52a8\u5904\u7406\u5404\u79cd\u56fe\u7247\u683c\u5f0f\u548c\u5927\u5c0f\u8c03\u6574\n- **\ud83d\udd12 \u5b89\u5168\u9a8c\u8bc1**: URL\u683c\u5f0f\u9a8c\u8bc1\u3001Content-Type\u68c0\u67e5\u3001\u8d85\u65f6\u63a7\u5236\n- **\ud83e\uddf9 \u81ea\u52a8\u6e05\u7406**: \u4e34\u65f6\u6587\u4ef6\u81ea\u52a8\u7ba1\u7406\uff0c\u65e0\u78c1\u76d8\u6cc4\u6f0f\n- **\ud83d\udcdd \u4e13\u4e1a\u672f\u8bed\u652f\u6301**: \u4fdd\u6301\u82f1\u6587EXIF\u952e\u540d\uff0c\u4fbf\u4e8eLLM\u7406\u89e3\u4e13\u4e1a\u6444\u5f71\u672f\u8bed\n\n### \ud83c\udfa8 AI\u56fe\u7247\u751f\u6210\u529f\u80fd\n- **\ud83d\ude80 \u591a\u6a21\u578b\u652f\u6301**: \u652f\u6301 BFL FLUX \u548c OpenAI DALL-E \u7cfb\u5217\u6a21\u578b\n - **BFL FLUX**: flux-pro-1.1, flux-pro-1.1-ultra, flux-pro, flux-dev\n - **OpenAI DALL-E**: dall-e-3, dall-e-2\n- **\ud83d\udcd0 \u667a\u80fd\u5c3a\u5bf8**: \u9884\u8bbe\u5c3a\u5bf8\u548c\u81ea\u5b9a\u4e49\u5c3a\u5bf8\uff0c\u81ea\u52a8\u8c03\u6574\u5230\u6700\u4f73\u53c2\u6570\n- **\u26a1 \u9ad8\u8d28\u91cf\u751f\u6210**: \u4e1a\u754c\u9886\u5148\u7684\u6587\u672c\u751f\u6210\u56fe\u7247\u8d28\u91cf\n- **\ud83d\udcc1 \u672c\u5730\u4fdd\u5b58**: \u56fe\u7247\u81ea\u52a8\u4e0b\u8f7d\u5230\u672c\u5730\u76ee\u5f55\uff0c\u907f\u514d\u5927\u6587\u4ef6\u4f20\u8f93\u95ee\u9898\n- **\ud83d\udee1\ufe0f \u5b8c\u6574\u9519\u8bef\u5904\u7406**: API\u9650\u5236\u3001\u7f51\u7edc\u9519\u8bef\u3001\u53c2\u6570\u9a8c\u8bc1\u7b49\u5168\u9762\u5904\u7406\n- **\ud83d\udd04 \u667a\u80fd\u5de5\u4f5c\u6d41**: \u751f\u6210\u540e\u53ef\u76f4\u63a5\u4f7f\u7528view_image\u5de5\u5177\u67e5\u770b\u5206\u6790\n- **\ud83c\udfaf \u7075\u6d3b\u914d\u7f6e**: \u652f\u6301\u4e34\u65f6\u8def\u5f84\u8986\u76d6\uff0c\u6ee1\u8db3\u4e0d\u540c\u4f7f\u7528\u573a\u666f\n\n## \u5b89\u88c5\n\n\u786e\u4fdd\u5df2\u5b89\u88c5\u5fc5\u8981\u7684\u4f9d\u8d56\uff1a\n\n```bash\nuv install\n# \u6216\u8005\npip install -e .\n```\n\n## \u4f7f\u7528\u65b9\u6cd5\n\n### Claude Desktop\u914d\u7f6e\n\n\u8fd9\u662f\u4e00\u4e2aMCP\u670d\u52a1\u5668\uff0c\u9700\u8981\u901a\u8fc7Claude Desktop\u914d\u7f6e\u4f7f\u7528\u3002\n\n**\u914d\u7f6e\u6587\u4ef6\u4f4d\u7f6e**:\n\n- **macOS**: `~/Library/Application Support/Claude/claude_desktop_config.json`\n- **Windows**: `%APPDATA%\\Claude\\claude_desktop_config.json`\n\n**\u914d\u7f6e\u5185\u5bb9**:\n\n\u5728Claude Desktop\u7684\u914d\u7f6e\u6587\u4ef6\u4e2d\u6dfb\u52a0\u4ee5\u4e0b\u914d\u7f6e\uff1a\n\n```json\n{\n \"mcpServers\": {\n \"mcp-imgutils\": {\n \"command\": \"uvx\",\n \"args\": [\"mcp-imgutils\"],\n \"env\": {\n \"BFL_API_KEY\": \"your-bfl-api-key-here\",\n \"OPENAI_API_KEY\": \"your-openai-api-key-here\"\n }\n }\n }\n}\n```\n\n### \ud83d\udd11 API\u5bc6\u94a5\u914d\u7f6e\n\n#### BFL (Black Forest Labs) API\u5bc6\u94a5\n\n\u8981\u4f7f\u7528 BFL FLUX \u6a21\u578b\u751f\u6210\u56fe\u7247\uff0c\u9700\u8981\u914d\u7f6e BFL API\u5bc6\u94a5\uff1a\n\n1. **\u83b7\u53d6API\u5bc6\u94a5**: \u8bbf\u95ee [BFL API Portal](https://api.bfl.ai/) \u6ce8\u518c\u5e76\u83b7\u53d6API\u5bc6\u94a5\n2. **\u914d\u7f6e\u65b9\u5f0f**:\n - **\u65b9\u5f0f1 (\u63a8\u8350)**: \u5728Claude Desktop\u914d\u7f6e\u4e2d\u6dfb\u52a0\u73af\u5883\u53d8\u91cf\uff08\u5982\u4e0a\u6240\u793a\uff09\n - **\u65b9\u5f0f2**: \u8bbe\u7f6e\u7cfb\u7edf\u73af\u5883\u53d8\u91cf `export BFL_API_KEY=your-api-key`\n\n#### OpenAI API\u5bc6\u94a5\n\n\u8981\u4f7f\u7528 OpenAI DALL-E \u6a21\u578b\u751f\u6210\u56fe\u7247\uff0c\u9700\u8981\u914d\u7f6e OpenAI API\u5bc6\u94a5\uff1a\n\n1. **\u83b7\u53d6API\u5bc6\u94a5**: \u8bbf\u95ee [OpenAI API Portal](https://platform.openai.com/api-keys) \u6ce8\u518c\u5e76\u83b7\u53d6API\u5bc6\u94a5\n2. **\u914d\u7f6e\u65b9\u5f0f**:\n - **\u65b9\u5f0f1 (\u63a8\u8350)**: \u5728Claude Desktop\u914d\u7f6e\u4e2d\u6dfb\u52a0\u73af\u5883\u53d8\u91cf\uff08\u5982\u4e0a\u6240\u793a\uff09\n - **\u65b9\u5f0f2**: \u8bbe\u7f6e\u7cfb\u7edf\u73af\u5883\u53d8\u91cf `export OPENAI_API_KEY=your-api-key`\n\n#### \u56fe\u7247\u4fdd\u5b58\u76ee\u5f55\u914d\u7f6e\uff08\u53ef\u9009\uff09\n\n\u9ed8\u8ba4\u60c5\u51b5\u4e0b\uff0c\u751f\u6210\u7684\u56fe\u7247\u4fdd\u5b58\u5230\uff1a\n\n**BFL FLUX \u6a21\u578b**:\n- **Windows/macOS**: `~/Pictures/BFL_Generated/`\n- **Linux**: `~/Pictures/BFL_Generated/` \u6216 `~/BFL_Generated/`\n\n**OpenAI DALL-E \u6a21\u578b**:\n- **Windows/macOS**: `~/Pictures/OpenAI_Generated/`\n- **Linux**: `~/Pictures/OpenAI_Generated/` \u6216 `~/OpenAI_Generated/`\n\n\u81ea\u5b9a\u4e49\u4fdd\u5b58\u76ee\u5f55\uff1a\n\n```json\n{\n \"mcpServers\": {\n \"mcp-imgutils\": {\n \"command\": \"uvx\",\n \"args\": [\"mcp-imgutils\"],\n \"env\": {\n \"BFL_API_KEY\": \"your-bfl-api-key-here\",\n \"OPENAI_API_KEY\": \"your-openai-api-key-here\",\n \"BFL_IMAGE_SAVE_DIR\": \"~/MyImages/BFL_Generated\",\n \"OPENAI_IMAGE_SAVE_DIR\": \"~/MyImages/OpenAI_Generated\"\n }\n }\n }\n}\n```\n\n**\u6ce8\u610f**:\n\n- \u5fc5\u987b\u4f7f\u7528\u7edd\u5bf9\u8def\u5f84\uff0c\u4e0d\u80fd\u4f7f\u7528\u76f8\u5bf9\u8def\u5f84\n- \u914d\u7f6e\u5b8c\u6210\u540e\u9700\u8981\u91cd\u542fClaude Desktop\n- \u6ca1\u6709API\u5bc6\u94a5\u65f6\uff0c\u56fe\u7247\u751f\u6210\u529f\u80fd\u5c06\u4e0d\u53ef\u7528\uff0c\u4f46\u56fe\u7247\u5206\u6790\u529f\u80fd\u6b63\u5e38\u5de5\u4f5c\n\n## \u5de5\u5177\u4f7f\u7528\u793a\u4f8b\n\n\u4e00\u65e6\u670d\u52a1\u8fd0\u884c\u8d77\u6765\uff0c\u4f60\u53ef\u4ee5\u5728Claude\u4e2d\u4f7f\u7528\u4ee5\u4e0b\u5de5\u5177\uff1a\n\n### \ud83d\udcca view_image - \u56fe\u7247\u67e5\u770b\u4e0e\u5206\u6790\n\n\u67e5\u770b\u5e76\u5206\u6790\u672c\u5730\u56fe\u7247\u6216\u7f51\u7edc\u56fe\u7247\uff0c\u83b7\u53d6\u5b8c\u6574\u7684\u56fe\u7247\u4fe1\u606f\u548cEXIF\u5143\u6570\u636e\u3002\n\n### \ud83c\udfa8 generate_image_bfl - AI\u56fe\u7247\u751f\u6210\n\n\u4f7f\u7528BFL FLUX\u6a21\u578b\u751f\u6210\u9ad8\u8d28\u91cf\u56fe\u7247\u3002\n\n**view_image\u53c2\u6570:**\n\n- `image_path` - \u56fe\u7247\u6587\u4ef6\u7684\u5b8c\u6574\u8def\u5f84\u6216HTTP/HTTPS URL\n- `max_file_size` (\u53ef\u9009) - \u5141\u8bb8\u7684\u6700\u5927\u6587\u4ef6\u5927\u5c0f\uff08\u5b57\u8282\uff0c\u9ed8\u8ba45MB\uff0c\u4ec5\u9002\u7528\u4e8e\u672c\u5730\u6587\u4ef6\uff09\n\n**generate_image_bfl\u53c2\u6570:**\n\n- `prompt` (\u5fc5\u9700) - \u56fe\u7247\u63cf\u8ff0\u6587\u672c\n - \u26a0\ufe0f **\u8bed\u8a00\u652f\u6301**: BFL FLUX\u6a21\u578b\u4e3b\u8981\u652f\u6301\u82f1\u6587\u63d0\u793a\u8bcd\uff0c\u5efa\u8bae\u4f7f\u7528\u82f1\u6587\u4ee5\u83b7\u5f97\u6700\u4f73\u6548\u679c\n- `model` (\u53ef\u9009) - FLUX\u6a21\u578b\u9009\u62e9\uff1a\n - `flux-dev` (\u9ed8\u8ba4) - \u5f00\u53d1\u7248\u672c\uff0c\u514d\u8d39\u4f7f\u7528\n - `flux-pro` - \u4e13\u4e1a\u7248\u672c\uff0c\u66f4\u9ad8\u8d28\u91cf\n - `flux-pro-1.1` - \u6700\u65b0\u4e13\u4e1a\u7248\u672c\n - `flux-pro-1.1-ultra` - \u8d85\u9ad8\u8d28\u91cf\u7248\u672c\n- `preset_size` (\u53ef\u9009) - \u9884\u8bbe\u5c3a\u5bf8\uff0c\u5982\uff1a\n - `desktop_fhd` - \u684c\u9762\u58c1\u7eb8 Full HD\n - `mobile_portrait` - \u624b\u673a\u7ad6\u5c4f\n - `instagram_square` - Instagram\u6b63\u65b9\u5f62\n - `default` - \u9ed8\u8ba4\u5c3a\u5bf8 (1920x1080 Full HD)\n- `width`, `height` (\u53ef\u9009) - \u81ea\u5b9a\u4e49\u5c3a\u5bf8\uff08\u5982\u679c\u4e0d\u4f7f\u7528preset_size\uff09\n\n**\ud83d\udca1 \u667a\u80fd\u9ed8\u8ba4**: \u4e0d\u6307\u5b9a\u5c3a\u5bf8\u65f6\u4f7f\u75281920x1080 (Full HD)\uff0c\u9002\u5408\u73b0\u4ee3\u5c4f\u5e55\u3002\n**\ud83c\udfaf \u7528\u6237\u53cb\u597d**: \u7528\u6237\u53ef\u63cf\u8ff0\u7528\u9014\uff08\u5982\"\u684c\u9762\u58c1\u7eb8\"\u3001\"\u624b\u673a\u58c1\u7eb8\"\uff09\uff0cLLM\u81ea\u52a8\u9009\u62e9\u6700\u4f73\u8bbe\u7f6e\u3002\n\n**\u652f\u6301\u7684\u56fe\u7247\u6765\u6e90:**\n\n- **\u672c\u5730\u6587\u4ef6**: `/Users/john/Photos/sunset.jpg`\n- **\u7f51\u7edc\u56fe\u7247**: `https://example.com/image.jpg`\n- **\u5404\u79cd\u57df\u540d**: \u652f\u6301\u4efb\u4f55\u53ef\u8bbf\u95ee\u7684HTTP/HTTPS\u56fe\u7247URL\n\n**\u8fd4\u56de\u5185\u5bb9:**\n\n1. **\u8be6\u7ec6\u7684\u56fe\u7247\u4fe1\u606f\u6587\u672c**\uff0c\u5305\u62ec\uff1a\n - \u6587\u4ef6\u540d\u3001\u8def\u5f84\u3001\u5927\u5c0f\n - \u56fe\u7247\u683c\u5f0f\u3001\u5206\u8fa8\u7387\u3001\u989c\u8272\u6a21\u5f0f\n - \u603b\u50cf\u7d20\u6570\u7b49\u6280\u672f\u53c2\u6570\n\n2. **EXIF\u5143\u6570\u636e**\uff08\u5982\u679c\u6709\uff09\uff0c\u5305\u62ec\uff1a\n - \u62cd\u6444\u8bbe\u5907\u4fe1\u606f\uff08Make, Model, Software\uff09\n - \u62cd\u6444\u53c2\u6570\uff08ExposureTime, FNumber, ISOSpeedRatings, FocalLength\uff09\n - \u62cd\u6444\u65f6\u95f4\uff08DateTime, DateTimeOriginal\uff09\n - \u6280\u672f\u53c2\u6570\uff08ColorSpace, Flash, MeteringMode\uff09\n - \u6240\u6709\u5176\u4ed6\u53ef\u7528\u7684EXIF\u5b57\u6bb5\n\n3. **\u56fe\u7247\u7684\u89c6\u89c9\u5185\u5bb9**\uff0c\u4f9bLLM\u8fdb\u884c\u56fe\u50cf\u5206\u6790\n\n### \u4f7f\u7528\u793a\u4f8b\n\n\u914d\u7f6e\u5b8c\u6210\u540e\uff0c\u5728Claude Desktop\u4e2d\uff1a\n\n#### \ud83d\udcca \u672c\u5730\u56fe\u7247\u5206\u6790\n\n```text\n\u7528\u6237: \u8bf7\u5206\u6790\u8fd9\u5f20\u7167\u7247 /Users/john/Photos/sunset.jpg\n\nClaude: [\u8c03\u7528 view_image \u5de5\u5177]\n```\n\n#### \ud83c\udf10 \u7f51\u7edc\u56fe\u7247\u5206\u6790\n\n```text\n\u7528\u6237: \u8bf7\u5206\u6790\u8fd9\u5f20\u7f51\u7edc\u56fe\u7247 https://example.com/photo.jpg\n\nClaude: [\u8c03\u7528 view_image \u5de5\u5177]\n```\n\n#### \ud83c\udfa8 AI\u56fe\u7247\u751f\u6210\n\n```text\n\u7528\u6237: \u8bf7\u7528BFL\u751f\u6210\u4e00\u5f20\u4e2d\u56fd\u5973\u5b69\u7684\u56fe\u7247\n\nClaude: [\u8c03\u7528 generate_image_bfl \u5de5\u5177]\n \u2705 \u56fe\u7247\u751f\u6210\u6210\u529f\uff01\n \ud83d\udcc1 \u672c\u5730\u8def\u5f84: ~/Pictures/BFL_Generated/20250803_131535_flux-dev_1024x768_Chinese_girl_abc123.jpg\n\n [\u81ea\u52a8\u8c03\u7528 view_image \u5de5\u5177\u663e\u793a\u751f\u6210\u7684\u56fe\u7247]\n```\n\n#### \ud83c\udfaf \u6307\u5b9a\u6a21\u578b\u548c\u5c3a\u5bf8\u751f\u6210\n\n```text\n\u7528\u6237: \u7528flux-pro\u6a21\u578b\u751f\u6210\u4e00\u5f201280x720\u7684\u79d1\u5e7b\u57ce\u5e02\u56fe\u7247\n\nClaude: [\u8c03\u7528 generate_image_bfl \u5de5\u5177\uff0c\u53c2\u6570\uff1a\n- prompt: \"\u79d1\u5e7b\u57ce\u5e02\"\n- model: \"flux-pro\"\n- width: 1280\n- height: 720]\n```\n\n#### \ud83d\udcd0 \u4f7f\u7528\u9884\u8bbe\u5c3a\u5bf8\n\n```text\n\u7528\u6237: \u751f\u6210\u4e00\u5f20\u9002\u5408Instagram\u7684\u6b63\u65b9\u5f62\u56fe\u7247\uff0c\u5185\u5bb9\u662f\u53ef\u7231\u7684\u5c0f\u732b\n\nClaude: [\u8c03\u7528 generate_image_bfl \u5de5\u5177\uff0c\u53c2\u6570\uff1a\n- prompt: \"\u53ef\u7231\u7684\u5c0f\u732b\"\n- preset_size: \"instagram_square\"]\n \u2705 \u56fe\u7247\u751f\u6210\u6210\u529f\uff01\n \ud83d\udcc1 \u672c\u5730\u8def\u5f84: ~/Pictures/BFL_Generated/20250803_131535_flux-dev_1024x1024_cute_cat_abc123.jpg\n\n [\u81ea\u52a8\u8c03\u7528 view_image \u5de5\u5177\u663e\u793a\u751f\u6210\u7684\u56fe\u7247]\n```\n\n### \ud83c\udfa8 generate_image_openai - OpenAI DALL-E \u56fe\u7247\u751f\u6210\n\n\u4f7f\u7528 OpenAI DALL-E \u6a21\u578b\u751f\u6210\u9ad8\u8d28\u91cf\u56fe\u7247\u3002\n\n**generate_image_openai\u53c2\u6570:**\n\n- `prompt` (\u5fc5\u9700) - \u56fe\u7247\u63cf\u8ff0\u6587\u672c\n - \u2705 **\u8bed\u8a00\u652f\u6301**: DALL-E \u652f\u6301\u4e2d\u6587\u548c\u82f1\u6587\u63d0\u793a\u8bcd\n- `model` (\u53ef\u9009) - DALL-E \u6a21\u578b\u9009\u62e9\uff1a\n - `dall-e-3` (\u9ed8\u8ba4) - \u6700\u65b0\u7248\u672c\uff0c\u66f4\u9ad8\u8d28\u91cf\u548c\u66f4\u597d\u7684\u63d0\u793a\u8bcd\u7406\u89e3\n - `dall-e-2` - \u7ecf\u5178\u7248\u672c\uff0c\u652f\u6301\u591a\u5f20\u56fe\u7247\u751f\u6210\n- `preset_size` (\u53ef\u9009) - \u9884\u8bbe\u5c3a\u5bf8\uff0c\u5982\uff1a\n - `default` - \u9ed8\u8ba4\u5c3a\u5bf8 (1024x1024)\n - `square` - \u6b63\u65b9\u5f62 (1024x1024)\n - `landscape` - \u6a2a\u5411 (1792x1024)\n - `portrait` - \u7eb5\u5411 (1024x1792)\n- `size` (\u53ef\u9009) - \u81ea\u5b9a\u4e49\u5c3a\u5bf8\uff08\u5982\u679c\u4e0d\u4f7f\u7528preset_size\uff09\n - DALL-E 3: `1024x1024`, `1792x1024`, `1024x1792`\n - DALL-E 2: `256x256`, `512x512`, `1024x1024`\n- `quality` (\u53ef\u9009) - \u56fe\u7247\u8d28\u91cf\uff08\u4ec5 DALL-E 3\uff09\uff1a\n - `standard` (\u9ed8\u8ba4) - \u6807\u51c6\u8d28\u91cf\uff0c\u66f4\u5feb\u66f4\u4fbf\u5b9c\n - `hd` - \u9ad8\u6e05\u8d28\u91cf\uff0c\u66f4\u6162\u66f4\u8d35\n- `style` (\u53ef\u9009) - \u56fe\u7247\u98ce\u683c\uff08\u4ec5 DALL-E 3\uff09\uff1a\n - `vivid` (\u9ed8\u8ba4) - \u751f\u52a8\u98ce\u683c\uff0c\u8272\u5f69\u9c9c\u8273\n - `natural` - \u81ea\u7136\u98ce\u683c\uff0c\u66f4\u771f\u5b9e\n- `n` (\u53ef\u9009) - \u751f\u6210\u56fe\u7247\u6570\u91cf\uff1a\n - DALL-E 3: \u56fa\u5b9a\u4e3a 1\n - DALL-E 2: 1-10 \u5f20\n- `download_path` (\u53ef\u9009) - \u4e34\u65f6\u6307\u5b9a\u4e0b\u8f7d\u8def\u5f84\n\n#### OpenAI DALL-E \u4f7f\u7528\u793a\u4f8b\n\n##### \ud83c\udfa8 \u57fa\u672c\u56fe\u7247\u751f\u6210\n\n```text\n\u7528\u6237: \u8bf7\u7528OpenAI\u751f\u6210\u4e00\u5f20\u4e2d\u56fd\u5973\u5b69\u7684\u56fe\u7247\n\nClaude: [\u8c03\u7528 generate_image_openai \u5de5\u5177]\n \u2705 \u56fe\u7247\u751f\u6210\u6210\u529f\uff01\n \ud83d\udcc1 \u672c\u5730\u8def\u5f84: ~/Pictures/OpenAI_Generated/20250803_131535_dall-e-3_1024x1024_Chinese_girl_abc123.jpg\n\n [\u81ea\u52a8\u8c03\u7528 view_image \u5de5\u5177\u663e\u793a\u751f\u6210\u7684\u56fe\u7247]\n```\n\n##### \ud83c\udfaf \u6307\u5b9a\u6a21\u578b\u548c\u8d28\u91cf\n\n```text\n\u7528\u6237: \u7528dall-e-3\u9ad8\u6e05\u6a21\u5f0f\u751f\u6210\u4e00\u5f20\u79d1\u5e7b\u57ce\u5e02\u56fe\u7247\n\nClaude: [\u8c03\u7528 generate_image_openai \u5de5\u5177\uff0c\u53c2\u6570\uff1a\n- prompt: \"\u79d1\u5e7b\u57ce\u5e02\"\n- model: \"dall-e-3\"\n- quality: \"hd\"\n- preset_size: \"landscape\"]\n```\n\n##### \ud83d\udcd0 \u4f7f\u7528\u9884\u8bbe\u5c3a\u5bf8\u548c\u98ce\u683c\n\n```text\n\u7528\u6237: \u751f\u6210\u4e00\u5f20\u81ea\u7136\u98ce\u683c\u7684\u6b63\u65b9\u5f62\u56fe\u7247\uff0c\u5185\u5bb9\u662f\u53ef\u7231\u7684\u5c0f\u732b\n\nClaude: [\u8c03\u7528 generate_image_openai \u5de5\u5177\uff0c\u53c2\u6570\uff1a\n- prompt: \"\u53ef\u7231\u7684\u5c0f\u732b\"\n- preset_size: \"square\"\n- style: \"natural\"]\n \u2705 \u56fe\u7247\u751f\u6210\u6210\u529f\uff01\n \ud83d\udcc1 \u672c\u5730\u8def\u5f84: ~/Pictures/OpenAI_Generated/20250803_131535_dall-e-3_1024x1024_cute_cat_abc123.jpg\n\n [\u81ea\u52a8\u8c03\u7528 view_image \u5de5\u5177\u663e\u793a\u751f\u6210\u7684\u56fe\u7247]\n```\n\n#### \u7f51\u7edc\u56fe\u7247\u5206\u6790\n\n```text\n\u7528\u6237: \u8bf7\u5206\u6790\u8fd9\u5f20\u7f51\u7edc\u56fe\u7247 https://img.youtube.com/vi/iv-5mZ_9CPY/maxresdefault.jpg\n\nClaude: [\u8c03\u7528 view_image \u5de5\u5177]\n\n\u8fd4\u56de\u7ed3\u679c:\n\u56fe\u7247\u8be6\u7ec6\u4fe1\u606f:\n\u6587\u4ef6\u540d: URL: https://img.youtube.com/vi/iv-5mZ_9CPY/maxresdefault.jpg\n\u6587\u4ef6\u8def\u5f84: /tmp/tmp9rizrzqv.jpg\n\u6587\u4ef6\u5927\u5c0f: 290,434 \u5b57\u8282 (283.63 KB, 0.28 MB)\n\u56fe\u7247\u683c\u5f0f: JPEG\n\u5206\u8fa8\u7387: 1280 x 720\n\u989c\u8272\u6a21\u5f0f: RGB\n\u603b\u50cf\u7d20\u6570: 921,600\n\n[\u540c\u65f6\u663e\u793a\u56fe\u7247\u5185\u5bb9\u4f9b\u5206\u6790]\n```\n\n## \ud83c\udf10 URL\u56fe\u7247\u652f\u6301\n\n### \u652f\u6301\u7684URL\u7c7b\u578b\n\n- **HTTP/HTTPS\u534f\u8bae**: `http://` \u548c `https://` \u5f00\u5934\u7684URL\n- **\u5404\u79cd\u57df\u540d**: \u652f\u6301\u4efb\u4f55\u53ef\u516c\u5f00\u8bbf\u95ee\u7684\u56fe\u7247URL\n- **\u5e38\u89c1\u56fe\u7247\u7f51\u7ad9**:\n - YouTube\u7f29\u7565\u56fe: `https://img.youtube.com/vi/VIDEO_ID/maxresdefault.jpg`\n - \u793e\u4ea4\u5a92\u4f53\u56fe\u7247: Twitter\u3001Instagram\u3001Facebook\u7b49\n - \u56fe\u7247\u6258\u7ba1\u670d\u52a1: Imgur\u3001Flickr\u3001Google Photos\u7b49\n - CDN\u56fe\u7247: \u5404\u79cd\u5185\u5bb9\u5206\u53d1\u7f51\u7edc\u7684\u56fe\u7247\n\n### \u5b89\u5168\u7279\u6027\n\n- **\u534f\u8bae\u9650\u5236**: \u4ec5\u5141\u8bb8HTTP\u548cHTTPS\u534f\u8bae\uff0c\u62d2\u7edd\u5176\u4ed6\u534f\u8bae\n- **Content-Type\u9a8c\u8bc1**: \u786e\u4fddURL\u8fd4\u56de\u7684\u662f\u56fe\u7247\u5185\u5bb9\n- **\u8d85\u65f6\u63a7\u5236**: 30\u79d2\u4e0b\u8f7d\u8d85\u65f6\uff0c\u907f\u514d\u957f\u65f6\u95f4\u7b49\u5f85\n- **\u81ea\u52a8\u91cd\u5b9a\u5411**: \u652f\u6301\u6700\u591a5\u6b21\u91cd\u5b9a\u5411\u8ddf\u8e2a\n- **\u4e34\u65f6\u6587\u4ef6\u7ba1\u7406**: \u4e0b\u8f7d\u7684\u56fe\u7247\u5b58\u50a8\u5728\u7cfb\u7edf\u4e34\u65f6\u76ee\u5f55\uff0c\u5904\u7406\u5b8c\u81ea\u52a8\u6e05\u7406\n\n### \u4f7f\u7528\u6ce8\u610f\u4e8b\u9879\n\n- **\u7f51\u7edc\u8fde\u63a5**: \u9700\u8981\u7a33\u5b9a\u7684\u7f51\u7edc\u8fde\u63a5\u8bbf\u95ee\u5916\u90e8URL\n- **\u8bbf\u95ee\u6743\u9650**: \u67d0\u4e9b\u7f51\u7ad9\u53ef\u80fd\u6709\u9632\u722c\u866b\u673a\u5236\uff0c\u53ef\u80fd\u65e0\u6cd5\u8bbf\u95ee\n- **\u6587\u4ef6\u5927\u5c0f**: URL\u56fe\u7247\u4e0d\u53d7\u672c\u5730\u6587\u4ef6\u5927\u5c0f\u9650\u5236\uff0c\u9075\u5faaMCP\u534f\u8bae\u5904\u7406\n- **\u9690\u79c1\u8003\u8651**: \u8bbf\u95eeURL\u65f6\u4f1a\u66b4\u9732\u60a8\u7684IP\u5730\u5740\u7ed9\u76ee\u6807\u670d\u52a1\u5668\n\n## \u652f\u6301\u7684\u56fe\u7247\u683c\u5f0f\n\n- JPEG (.jpg, .jpeg)\n- PNG (.png)\n- GIF (.gif)\n- BMP (.bmp)\n- WebP (.webp)\n\n### \u56fe\u7247\u5904\u7406\n\n- \u9ed8\u8ba4\u6700\u5927\u6587\u4ef6\u5927\u5c0f\u9650\u5236\u4e3a5MB\n- \u6240\u6709\u975eJPEG\u683c\u5f0f\u7684\u56fe\u7247\u4f1a\u88ab\u8f6c\u6362\u4e3aJPEG\u4ee5\u51cf\u5c0f\u5927\u5c0f\n- \u5bf9\u4e8e\u5305\u542b\u900f\u660e\u901a\u9053\u7684\u56fe\u7247\uff08\u5982PNG\uff09\uff0c\u4f1a\u5728\u8f6c\u6362\u65f6\u6dfb\u52a0\u767d\u8272\u80cc\u666f\n- \u4f7f\u7528\u4f18\u5316\u7684JPEG\u538b\u7f29\u7b97\u6cd5\u51cf\u5c0f\u8f93\u51fa\u6587\u4ef6\u5927\u5c0f\n\n### \u9519\u8bef\u5904\u7406\n\n\u670d\u52a1\u5305\u542b\u5168\u9762\u7684\u9519\u8bef\u5904\u7406\u673a\u5236\uff1a\n\n**\u672c\u5730\u6587\u4ef6\u9519\u8bef:**\n\n- \u56fe\u7247\u8def\u5f84\u9a8c\u8bc1\uff08\u6587\u4ef6\u662f\u5426\u5b58\u5728\uff09\n- \u6587\u4ef6\u5927\u5c0f\u68c0\u67e5\n- \u56fe\u7247\u683c\u5f0f\u9a8c\u8bc1\n- \u6587\u4ef6\u6743\u9650\u68c0\u67e5\n\n**\u7f51\u7edc\u56fe\u7247\u9519\u8bef:**\n\n- URL\u683c\u5f0f\u9a8c\u8bc1\n- \u7f51\u7edc\u8fde\u63a5\u9519\u8bef\uff08\u8d85\u65f6\u3001DNS\u5931\u8d25\u7b49\uff09\n- HTTP\u72b6\u6001\u9519\u8bef\uff08404\u3001403\u3001500\u7b49\uff09\n- Content-Type\u9a8c\u8bc1\uff08\u786e\u4fdd\u662f\u56fe\u7247\u5185\u5bb9\uff09\n- \u4e0b\u8f7d\u5931\u8d25\u5904\u7406\n\n**\u901a\u7528\u9519\u8bef:**\n\n- \u5f02\u5e38\u6355\u83b7\u548c\u53cb\u597d\u9519\u8bef\u6d88\u606f\n- \u4e34\u65f6\u6587\u4ef6\u6e05\u7406\uff08\u5373\u4f7f\u51fa\u9519\u4e5f\u4f1a\u6e05\u7406\uff09\n\n## EXIF\u5143\u6570\u636e\u652f\u6301\n\n\u8be5\u670d\u52a1\u63d0\u4f9b\u5b8c\u6574\u7684EXIF\u5143\u6570\u636e\u63d0\u53d6\u529f\u80fd\uff1a\n\n### \u652f\u6301\u7684EXIF\u4fe1\u606f\u7c7b\u578b\n\n- **\u8bbe\u5907\u4fe1\u606f**: \u76f8\u673a\u54c1\u724c\u3001\u578b\u53f7\u3001\u8f6f\u4ef6\u7248\u672c\n- **\u62cd\u6444\u53c2\u6570**: \u66dd\u5149\u65f6\u95f4\u3001\u5149\u5708\u503c\u3001ISO\u611f\u5149\u5ea6\u3001\u7126\u8ddd\n- **\u62cd\u6444\u65f6\u95f4**: \u62cd\u6444\u65f6\u95f4\u3001\u6570\u5b57\u5316\u65f6\u95f4\u3001\u539f\u59cb\u65f6\u95f4\n- **\u6280\u672f\u53c2\u6570**: \u8272\u5f69\u7a7a\u95f4\u3001\u95ea\u5149\u706f\u8bbe\u7f6e\u3001\u6d4b\u5149\u6a21\u5f0f\u3001\u66dd\u5149\u7a0b\u5e8f\n- **\u56fe\u7247\u5c5e\u6027**: EXIF\u56fe\u7247\u5c3a\u5bf8\u3001\u65b9\u5411\u4fe1\u606f\n- **GPS\u4fe1\u606f**: \u5730\u7406\u4f4d\u7f6e\u6570\u636e\uff08\u5982\u679c\u6709\uff09\n- **\u5176\u4ed6\u5143\u6570\u636e**: \u6240\u6709\u53ef\u7528\u7684EXIF\u6807\u7b7e\n\n### EXIF\u6570\u636e\u5904\u7406\u7279\u6027\n\n- **\u667a\u80fd\u7c7b\u578b\u5904\u7406**: \u81ea\u52a8\u5904\u7406\u5b57\u8282\u6570\u636e\u3001\u5206\u6570\u503c\u3001\u6d6e\u70b9\u6570\u7b49\u4e0d\u540c\u6570\u636e\u7c7b\u578b\n- **\u82f1\u6587\u952e\u540d**: \u4fdd\u6301\u539f\u59cbEXIF\u6807\u7b7e\u540d\uff0c\u4fbf\u4e8eLLM\u7406\u89e3\u4e13\u4e1a\u672f\u8bed\n- **\u4f18\u96c5\u964d\u7ea7**: \u6ca1\u6709EXIF\u6570\u636e\u7684\u56fe\u7247\u4e0d\u4f1a\u663e\u793a\u7a7a\u767d\u90e8\u5206\n- **\u5b8c\u6574\u63d0\u53d6**: \u63d0\u53d6\u6240\u6709\u53ef\u7528\u7684EXIF\u5b57\u6bb5\uff0c\u4e0d\u9884\u8bbe\u9650\u5236\n\n## \u6269\u5c55\u6027\n\n\u8be5\u670d\u52a1\u8bbe\u8ba1\u4e3a\u53ef\u6269\u5c55\u7684\uff0c\u672a\u6765\u53ef\u4ee5\u6dfb\u52a0\u66f4\u591a\u529f\u80fd\uff1a\n\n- **\u66f4\u591a\u56fe\u7247\u683c\u5f0f**: \u652f\u6301RAW\u683c\u5f0f\u3001HEIC\u7b49\n- **\u56fe\u7247\u9884\u5904\u7406**: \u88c1\u526a\u3001\u7f29\u653e\u3001\u65cb\u8f6c\u7b49\u64cd\u4f5c\n- **\u9ad8\u7ea7\u5206\u6790**: \u989c\u8272\u5206\u5e03\u3001\u76f4\u65b9\u56fe\u3001\u5bf9\u8c61\u68c0\u6d4b\n- **\u6279\u91cf\u5904\u7406**: \u540c\u65f6\u5904\u7406\u591a\u4e2a\u56fe\u7247\u6587\u4ef6\u6216URL\n- **AI\u589e\u5f3a**: \u56fe\u7247\u8d28\u91cf\u8bc4\u4f30\u3001\u573a\u666f\u8bc6\u522b\u7b49\n- **\u7f13\u5b58\u673a\u5236**: URL\u56fe\u7247\u667a\u80fd\u7f13\u5b58\uff0c\u63d0\u9ad8\u91cd\u590d\u8bbf\u95ee\u6027\u80fd\n- **\u4ee3\u7406\u652f\u6301**: \u652f\u6301HTTP\u4ee3\u7406\u8bbf\u95ee\u53d7\u9650\u7f51\u7edc\u4e2d\u7684\u56fe\u7247\n- **\u8ba4\u8bc1\u652f\u6301**: \u652f\u6301\u9700\u8981\u8ba4\u8bc1\u7684\u79c1\u6709\u56fe\u7247URL\n\n## \u6ce8\u610f\u4e8b\u9879\n\n### \u6587\u4ef6\u8def\u5f84\n\n- \u56fe\u7247\u8def\u5f84\u5fc5\u987b\u662f\u5b8c\u6574\u7684\u7edd\u5bf9\u8def\u5f84\n- \u652f\u6301\u8de8\u5e73\u53f0\u8def\u5f84\u683c\u5f0f\uff08Windows\u3001macOS\u3001Linux\uff09\n\n### \u9690\u79c1\u4e0e\u5b89\u5168\n\n- \u670d\u52a1\u4e0d\u4f1a\u4fee\u6539\u539f\u59cb\u56fe\u7247\u6587\u4ef6\n- \u56fe\u7247\u6570\u636e\u4e0d\u4f1a\u88ab\u6c38\u4e45\u5b58\u50a8\uff0c\u4ec5\u5728\u5904\u7406\u8fc7\u7a0b\u4e2d\u4e34\u65f6\u4f7f\u7528\n- EXIF\u6570\u636e\u53ef\u80fd\u5305\u542b\u654f\u611f\u4fe1\u606f\uff08\u5982GPS\u4f4d\u7f6e\uff09\uff0c\u8bf7\u6ce8\u610f\u9690\u79c1\u4fdd\u62a4\n\n### \u6027\u80fd\u8003\u8651\n\n- \u9ed8\u8ba4\u6700\u5927\u6587\u4ef6\u5927\u5c0f\u9650\u5236\u4e3a5MB\uff0c\u53ef\u901a\u8fc7\u53c2\u6570\u8c03\u6574\n- \u5927\u578b\u56fe\u7247\u4f1a\u81ea\u52a8\u8fdb\u884c\u8d28\u91cf\u4f18\u5316\u4ee5\u51cf\u5c0f\u4f20\u8f93\u5927\u5c0f\n- EXIF\u63d0\u53d6\u5bf9\u6027\u80fd\u5f71\u54cd\u5f88\u5c0f\uff0c\u9002\u5408\u5b9e\u65f6\u4f7f\u7528\n\n### \u517c\u5bb9\u6027\n\n- \u652f\u6301\u6240\u6709\u4e3b\u6d41\u56fe\u7247\u683c\u5f0f\u7684EXIF\u6570\u636e\n- \u67d0\u4e9b\u683c\u5f0f\uff08\u5982PNG\u3001GIF\uff09\u53ef\u80fd\u4e0d\u5305\u542bEXIF\u4fe1\u606f\n- AI\u751f\u6210\u7684\u56fe\u7247\u901a\u5e38\u4e0d\u5305\u542b\u4f20\u7edf\u7684\u62cd\u6444\u53c2\u6570EXIF\u6570\u636e\n",
"bugtrack_url": null,
"license": null,
"summary": "MCP\u670d\u52a1\uff1a\u5c06\u672c\u5730\u56fe\u7247\u548c\u7f51\u7edc\u56fe\u7247\u53d1\u9001\u7ed9LLM",
"version": "5.2.0",
"project_urls": null,
"split_keywords": [],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "a010d4a04aa47c02b0f0cd0dc4376c64dc5193a305365cda4228f388b1c4dcdd",
"md5": "ed1bc8a95e6403c264a6a1dd339c4ecb",
"sha256": "7fc404cb1ef13adaed63d16d70445b7a008d2f338d6eb08d850e9126cbf807f4"
},
"downloads": -1,
"filename": "mcp_imgutils-5.2.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "ed1bc8a95e6403c264a6a1dd339c4ecb",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.11",
"size": 82930,
"upload_time": "2025-08-10T18:41:03",
"upload_time_iso_8601": "2025-08-10T18:41:03.319338Z",
"url": "https://files.pythonhosted.org/packages/a0/10/d4a04aa47c02b0f0cd0dc4376c64dc5193a305365cda4228f388b1c4dcdd/mcp_imgutils-5.2.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "80afb2caea3a10363d2c5499377b11b6351599f7a5edf0e5149a61d87a583768",
"md5": "f3e154e6b1ed191d8e4bcbee59352bc8",
"sha256": "bc64ac4c68d8022819f154b380bcd2f548cc9c6d7128efb890acf1e1915470b6"
},
"downloads": -1,
"filename": "mcp_imgutils-5.2.0.tar.gz",
"has_sig": false,
"md5_digest": "f3e154e6b1ed191d8e4bcbee59352bc8",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.11",
"size": 104482,
"upload_time": "2025-08-10T18:41:04",
"upload_time_iso_8601": "2025-08-10T18:41:04.787816Z",
"url": "https://files.pythonhosted.org/packages/80/af/b2caea3a10363d2c5499377b11b6351599f7a5edf0e5149a61d87a583768/mcp_imgutils-5.2.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-08-10 18:41:04",
"github": false,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"lcname": "mcp-imgutils"
}