使用说明

项目简介

SearchScape项目是一个基于Model Context Protocol (MCP) 的服务器实现,旨在为大型语言模型(LLM)客户端提供图像相关的上下文信息和功能。它集成了Unsplash和Hugging Face,允许LLM应用通过简单的工具调用,实现高质量的图像搜索和多种AI驱动的图像转换。

主要功能点

  • 图像搜索: 通过自然语言提示从Unsplash获取高质量图片。
  • 图像转换: 利用Hugging Face的AI模型对图像进行多种转换,包括:
    • 艺术风格迁移: 将艺术风格应用到图片上。
    • 图像增强: 使用超分辨率技术提升图像质量。
    • 图文转换: 根据文本提示修改图像内容 (例如,将图片变成卡通风格)。

安装步骤

  1. 克隆仓库
    git clone https://github.com/Pree3105/SearchScape.git
    cd SearchScape
  2. 安装依赖
    npm install
  3. 配置环境变量
    • 在项目根目录下创建 '.env' 文件。
    • 添加 Unsplash API 密钥和 Hugging Face API 密钥:
      UNSPLASH_ACCESS_KEY=YOUR_UNSPLASH_API_KEY
      HUGGING_FACE_API_KEY=YOUR_HUGGING_FACE_API_KEY
      请替换 'YOUR_UNSPLASH_API_KEY' 和 'YOUR_HUGGING_FACE_API_KEY' 为您自己的API密钥。 您需要在 Unsplash 开发者网站Hugging Face 注册并获取API密钥。

服务器配置

MCP客户端需要配置以下信息以连接 SearchScape MCP 服务器。配置信息为 JSON 格式:

{
  "serverName": "SearchScape",
  "command": "node",
  "args": [
    "mcp_server/mcp.js"
  ],
  "transport": "stdio"
}

配置参数说明:

  • 'serverName': 服务器名称,设置为 "SearchScape" 或您自定义的名称。
  • 'command': 启动服务器的命令,这里使用 'node' 来运行 JavaScript 代码。
  • 'args': 命令参数,指定 MCP 服务器入口文件路径 'mcp_server/mcp.js'。
  • 'transport': 传输协议,SearchScape MCP 服务器使用标准输入输出 (stdio) 进行通信,所以设置为 '"stdio"'。

注意: 请确保您的环境中已安装 Node.js 并且 'node' 命令在系统 PATH 环境变量中可用。

基本使用方法

  1. 启动 MCP 服务器

    • 按照上述 服务器配置 中的 'command' 和 'args' 信息,在 MCP 客户端中配置并启动 SearchScape MCP 服务器。
    • 或者,您也可以在项目根目录下,手动执行命令 'node mcp_server/mcp.js' 来启动服务器。服务器成功启动后,会在控制台输出 'SearchScape MCP Server running on stdio'。
  2. 使用 MCP 客户端调用工具

    • MCP 客户端启动后,会自动与 SearchScape MCP 服务器建立连接。
    • 您可以使用 MCP 客户端提供的界面或 API,调用以下工具来使用 SearchScape 的功能:

    工具列表:

    • 'fetch-image': 从 Unsplash 获取图像。

      • 参数:
        • 'prompt' (string, 必填): 描述您想要搜索的图像的文本提示 (例如: "sunset over mountains")。
        • 'userId' (string, 必填): 用户会话 ID,用于跟踪用户会话。您可以自定义生成,例如使用 UUID。
      • 输出:
        • 返回包含图像 URL 的文本内容。
    • 'transform-image': 对已获取的图像进行转换。

      • 参数:
        • 'filter' (string, 必填): 图像转换类型,可选值包括 '"artistic"' (艺术风格迁移), '"enhance"' (图像增强), '"translate"' (图文转换)。
        • 'userId' (string, 必填): 用户会话 ID,需要与 'fetch-image' 工具调用时使用的 'userId' 保持一致,以便服务器找到之前获取的图像。
      • 输出:
        • 返回包含转换后图像 URL 的文本内容。

    使用示例 (假设使用 MCP 客户端的 API 调用):

    // 假设 client 是 MCP 客户端实例
    
    // 1. 获取图像
    client.callTool({
      name: "fetch-image",
      arguments: {
        prompt: "a cat sitting on a windowsill",
        userId: "user123"
      }
    }).then(response => {
      console.log("Fetch Image Response:", response);
      // 从 response 中获取图像 URL
    });
    
    // 2. 转换图像 (艺术风格迁移)
    client.callTool({
      name: "transform-image",
      arguments: {
        filter: "artistic",
        userId: "user123" // 使用相同的 userId
      }
    }).then(response => {
      console.log("Transform Image Response:", response);
      // 从 response 中获取转换后的图像 URL
    });

    注意: 'userId' 用于在服务器端管理用户会话和存储已获取的图像。在同一次会话中,如果您先调用 'fetch-image' 获取了图像,再调用 'transform-image' 进行转换,请务必使用相同的 'userId'。

总结

SearchScape MCP 服务器为您提供了一套方便易用的图像处理工具,LLM 应用可以通过调用这些工具,轻松实现图像搜索、风格转换、图像增强等功能,从而扩展 LLM 的能力边界。

信息

分类

AI与计算