使用说明

项目简介

Moondream MCP Server 是一个实现了 Model Context Protocol (MCP) 的服务器,它集成了 Moondream 视觉模型,旨在为大型语言模型 (LLM) 客户端(如 Claude 和 Cline)提供强大的图像理解和分析能力。通过标准化的 MCP 协议,Moondream MCP Server 可以无缝地与各种 LLM 应用集成,扩展其在视觉信息处理方面的能力。

主要功能点

  • 图像描述 (Image Captioning):能够生成自然语言的图像描述,帮助LLM理解图片内容。
  • 物体检测 (Object Detection):可以识别并定位图像中的特定物体,为LLM提供更细粒度的视觉信息。
  • 视觉问答 (Visual Question Answering):允许LLM就图像内容提问并获得智能回答,实现更深入的视觉交互。
  • 高性能:采用量化模型,保证高效的推理速度和资源利用率。
  • 自动配置:自动处理模型下载、环境搭建等复杂步骤,简化部署流程。
  • MCP 集成:遵循 Model Context Protocol 标准,易于与支持 MCP 协议的 LLM 客户端集成。

安装步骤

  1. 环境准备:确保已安装 Node.js v18 或更高版本,以及 Python 3.8+。
  2. 克隆仓库:将仓库代码克隆到本地:
    git clone <仓库URL>
    cd moondream-mcp
  3. 安装依赖:使用 pnpm 安装项目依赖:
    pnpm install
  4. 构建服务器:执行构建命令,编译 TypeScript 代码:
    pnpm run build
    构建过程会自动创建 Python 虚拟环境、安装依赖、下载 Moondream 模型并启动模型服务器。

服务器配置

为了让 MCP 客户端(如 Claude 或 Cline)连接到 Moondream MCP Server,您需要在客户端的 MCP 设置文件中添加服务器配置信息。以下是一个配置示例,您需要根据实际情况修改路径:

{
  "mcpServers": {
    "moondream": {  // 服务器名称,可以自定义
      "command": "node",  // 启动服务器的命令,这里使用 node
      "args": ["/path/to/moondream-mcp/build/index.js"]  // 命令参数,指向构建后的服务器入口文件。请将 "/path/to/moondream-mcp" 替换为您的仓库本地路径
    }
  }
}
  • 'server name': 您可以自定义服务器名称,例如 "moondream",用于在客户端中标识该服务器。
  • 'command': 指定启动服务器的命令,Moondream MCP Server 使用 Node.js 运行,因此这里设置为 '"node"'。
  • 'args': 命令参数,是一个字符串数组,用于指定服务器入口文件。请务必将 '/path/to/moondream-mcp/build/index.js' 替换为 Moondream MCP Server 在您本地文件系统中的实际路径。

基本使用方法

配置完成后,在您的 MCP 客户端中选择 Moondream MCP Server。客户端会通过 MCP 协议与服务器建立连接。之后,您可以通过客户端调用服务器提供的工具,例如 'analyze_image' 工具来分析图像。

调用 'analyze_image' 工具的示例如下:

{
  "tool_calls": [
    {
      "name": "analyze_image",  // 工具名称
      "arguments": {
        "image_path": "/path/to/your/image.jpg",  // 图片文件路径,服务器需要能够访问该路径
        "prompt": "generate caption"  // 分析命令,例如 "generate caption" 用于生成图像描述
      }
    }
  ]
}
  • 'name': 指定要调用的工具名称,这里是 '"analyze_image"'。
  • 'arguments': 工具的参数,以 JSON 对象形式提供。
    • 'image_path': 要分析的图像文件的路径,请确保服务器能够访问该路径。
    • 'prompt': 分析命令,用于指示服务器执行何种图像分析任务。常用的 prompt 包括 '"generate caption"'(生成图像描述)、'"detect: [object]"'(检测特定物体,例如 '"detect: car"')、以及任何关于图像内容的问题(用于视觉问答)。

更多工具和 prompt 的使用方法,请参考仓库的 README 文档以及工具的具体描述信息。

信息

分类

AI与计算