使用说明
项目简介
该项目是一个MCP(Model Context Protocol)服务器,旨在为LLM客户端提供图像识别能力。它通过集成Anthropic Claude Vision和OpenAI GPT-4 Vision API,允许用户上传图像或提供图像文件路径,并获取对图像内容的详细描述。此外,服务器还可选支持Tesseract OCR技术,以提取图像中的文本信息,并将文本内容整合到图像描述中。
主要功能点
- 图像描述:利用Anthropic Claude Vision或OpenAI GPT-4 Vision模型,根据用户提供的图像生成详细的文本描述。
- 多API支持:支持Anthropic和OpenAI两家主流Vision API,并允许配置主用和备用API提供商,提高服务的可用性和灵活性。
- 多种图像格式:支持JPEG, PNG, GIF, WebP等常见的图像格式。
- 多种输入方式:支持Base64编码的图像数据和本地图像文件路径作为输入。
- 可选OCR文本提取:集成Tesseract OCR引擎,可以从图像中提取文本内容,并将其添加到图像描述中,增强描述的全面性。(此功能为可选,需要用户安装Tesseract OCR并配置启用)
- OpenRouter支持:可以通过OpenRouter访问更多模型,只需配置OpenRouter的相关API密钥和模型名称。
- 详细日志记录:提供详细的日志记录,方便用户监控服务器运行状态和排查问题。
安装步骤
-
克隆仓库
git clone https://github.com/mario-andreschak/mcp-image-recognition.git cd mcp-image-recognition -
配置环境变量 复制 '.env.example' 文件并重命名为 '.env',然后根据需要编辑 '.env' 文件,配置API密钥、Vision Provider、OCR开关等参数。
cp .env.example .env # 编辑 .env 文件'.env' 文件主要配置项包括:
- 'ANTHROPIC_API_KEY': Anthropic API 密钥 (如果使用 Anthropic Vision)。
- 'OPENAI_API_KEY': OpenAI API 密钥 (如果使用 OpenAI Vision)。
- 'VISION_PROVIDER': 首选 Vision API 提供商,可选 'anthropic' 或 'openai'。
- 'FALLBACK_PROVIDER': 备用 Vision API 提供商 (可选)。
- 'LOG_LEVEL': 日志级别,例如 'DEBUG', 'INFO', 'WARNING', 'ERROR'。
- 'ENABLE_OCR': 是否启用 Tesseract OCR 文本提取,'true' 或 'false'。
- 'TESSERACT_CMD': Tesseract 可执行文件的自定义路径 (可选)。
- 'OPENAI_MODEL': OpenAI 模型名称,默认为 'gpt-4o-mini'。 可以使用 OpenRouter 格式指定其他模型,例如 'anthropic/claude-3.5-sonnet-beta:beta'。
- 'OPENAI_BASE_URL': OpenAI API 的自定义 Base URL (可选),例如使用 OpenRouter 时设置为 'https://openrouter.ai/api/v1'。
- 'OPENAI_TIMEOUT': OpenAI API 请求超时时间 (秒),可选。
-
构建项目 在仓库根目录下运行 'build.bat' 脚本构建项目。
build.bat
服务器配置
以下为 MCP 客户端配置 MCP 服务器连接时所需的 'server_parameters' JSON 格式配置信息,请根据实际情况选择并配置:
配置示例 1: 直接使用 Python 启动服务器
{ "server_name": "image-recognition-server", "command": "python", "args": ["-m", "image_recognition_server.server"] }
- 'server_name': 自定义服务器名称,用于在 MCP 客户端中标识该服务器。
- 'command': 启动服务器的命令,这里使用 'python' 解释器。
- 'args': 传递给 'python' 命令的参数, '-m image_recognition_server.server' 表示以模块方式运行 'image_recognition_server.server'。
配置示例 2: 使用 'run.bat server' 脚本启动服务器
{ "server_name": "image-recognition-server", "command": "run.bat", "args": ["server"] }
- 'server_name': 自定义服务器名称。
- 'command': 启动服务器的命令,这里使用 'run.bat' 批处理脚本。
- 'args': 传递给 'run.bat' 脚本的参数,'server' 表示运行服务器模式。
配置示例 3: 开发模式,使用 'run.bat debug' 启动服务器 (带 MCP Inspector)
{ "server_name": "image-recognition-server", "command": "run.bat", "args": ["debug"] }
- 'server_name': 自定义服务器名称。
- 'command': 启动服务器的命令,这里使用 'run.bat' 批处理脚本。
- 'args': 传递给 'run.bat' 脚本的参数,'debug' 表示运行调试模式 (包含 MCP Inspector)。
注意: MCP 客户端需要能够执行 'command' 指定的命令,并正确传递 'args' 参数才能成功启动 MCP 服务器并建立连接。 请确保 MCP 客户端的运行环境与 MCP 服务器的要求相符,例如 Python 环境、依赖库等。
基本使用方法
服务器提供以下两个工具 (Tools):
-
'describe_image': 描述图像内容。
- 输入参数:
- 'image': 包含图像数据和 MIME 类型的 JSON 对象,例如 '{"data": "base64编码的图像数据", "mime_type": "image/png"}'。
- 'prompt' (可选): 用于引导图像描述的文本提示,默认为 "Please describe this image in detail."。
- 输出: 包含图像详细描述的字符串。
- 输入参数:
-
'describe_image_from_file': 根据图像文件路径描述图像内容。
- 输入参数:
- 'filepath': 图像文件的路径字符串,例如 '"path/to/image.png"'。
- 'prompt' (可选): 用于引导图像描述的文本提示,默认为 "Please describe this image in detail."。
- 输出: 包含图像详细描述的字符串。
- 输入参数:
MCP 客户端可以使用 'describe_image' 或 'describe_image_from_file' 工具,并根据工具的参数要求构造请求,调用服务器的图像识别功能。服务器将返回图像的文本描述作为响应。
例如,使用 'describe_image' 工具,客户端需要将图像数据进行 Base64 编码,并 вместе с MIME 类型封装在 JSON 对象中,然后作为 'image' 参数发送给服务器。 服务器处理后,会将图像描述返回给客户端。
信息
分类
AI与计算