图像描述MCP服务器
一种模型上下文协议(MCP)服务器,使用xAI的Grok API提供AI驱动的图像分析。
目的
该MCP服务器为AI助手提供了一个安全的接口,让他们使用Grok的高级视觉功能来分析图像。它支持网络托管的图像和本地文件,提供详细的描述、技术元数据提取和光学字符识别(OCR)。
特性
当前实施情况
describe_image_url-分析来自网络URL的图像,并提供人工智能生成的描述describe_image_file-分析本地图像文件并提供AI生成的描述extract_text_from_image-执行OCR从图像中提取可读文本
先决条件
- 启用MCP工具包的Docker桌面
- Docker MCP CLI插件(
docker mcp命令) - Grok API密钥来自https://console.x.ai/
安装
请参阅随文件提供的分步说明。
使用示例
在Grok4 Code Fast中,你可以问:
- “描述这张图片:https://example.com/image.jpg"
- “此本地图像显示什么:/path/to/image.png”
- “从该图像中提取任何文本:https://example.com/document.jpg"
- “给我详细分析一下这张照片:https://example.com/photo.jpg"
- “在这个屏幕截图中你能看到什么文本:https://example.com/screenshot.png"
局部测试
# Set environment variables for testing
export GROK_API_KEY="your-grok-api-key"
# Run directly
python image-description-mcp_server.py
# Test MCP protocol
echo '{"jsonrpc":"2.0","method":"tools/list","id":1}' | python image-description-mcp_server.py添加新工具
- 将该功能添加到
image-description-mcp_server.py - 用…装饰
@mcp.tool() - 用新的工具名称更新目录条目
- 重建Docker镜像
故障排除
身份验证错误
- 通过以下方式验证机密
docker mcp secret list - 确保GROK_API_KEY设置正确
- 在检查API密钥有效性https://console.x.ai/
图像处理错误
- 确保图像URL可访问且有效
- 检查本地文件路径是否存在以及是否可读
- 验证是否支持图像格式(JPEG、PNG、WebP等)
安全考虑
- 存储在Docker Desktop secrets中的所有机密
- 切勿硬编码API密钥
- 在Docker中以非root用户身份运行
- 在内存中临时处理的图像
- 没有永久存储图像数据
- 从未记录敏感数据
API文档
此服务与xAI的Grok API集成:
- Grok API参考: https://docs.x.ai/docs/api-reference
- MCP SDK文档: https://github.com/modelcontextprotocol/sdk
数据源
外部图像URL
- 源:可通过HTTP/HTTPS访问的Web托管图像
- 访问方法:使用httpx的HTTP GET请求
- 目的:从任何公共URL下载图像进行分析
- 局限性:只有可访问的网址;没有受身份验证保护的图像
本地图像文件
- 源:对本地映像文件的文件系统访问
- 访问方法:Python文件I/O
- 目的:分析用户系统本地存储的图像
- 支持的路径:绝对和相对文件路径
- 支持格式:JPEG、PNG、WebP、TIFF、GIF、BMP
格罗克API
- 源:xAI的Grok模型具有视觉功能
- 访问方法:通过httpx调用REST API
- 目的:AI驱动的图像分析和描述生成
- 数据流:图像转换为base64,发送到Grok,接收结构化分析
图像处理
- 源:PIL(Pillow)和OpenCV库
- 访问方法:本地处理
- 目的:提取技术元数据并执行OCR
- 无外部通话:纯本地加工
许可证
MIT许可证
