图像搜索服务

一个基于Unsplash API的图像搜索服务器,提供图像搜索功能并返回包含URL和描述的图像结果。

  • by justinmstuart
  • C#
  • 本地部署
  • 2 星标
  • 更新于
在 GitHub 查看 justinmstuart/image-mcp

使用说明

图像MCP服务器

一种模型上下文协议(MCP)服务器,用于使用Unsplash API搜索图像。

先决条件

配置

此项目需要Unsplash API客户端ID才能运行。API密钥应 永远不要致力于源代码控制。您可以使用以下方法之一进行配置:

方法1:用户秘密(建议本地开发)

这是本地开发最安全的方法:

dotnet user-secrets set "ImageApi:ClientId" "your-unsplash-api-key"

方法2:环境变量(推荐用于生产/CI)

使用双下划线符号设置环境变量:

Windows(PowerShell):

$env:ImageApi__ClientId="your-unsplash-api-key"

Windows(命令提示符):

set ImageApi__ClientId=your-unsplash-api-key

Linux/macOS:

export ImageApi__ClientId="your-unsplash-api-key"

方法3:应用程序设置。Development.json(本地开发的替代方案)

创建一个名为的文件 appsettings.Development.json (此文件已在 .gitignore):

{
  "ImageApi": {
    "ClientId": "your-unsplash-api-key"
  }
}

方法4:launchSettings.json(用于Visual Studio/VS代码)

编辑 Properties/launchSettings.json (此文件已在 .gitignore)并替换占位符:

{
  "profiles": {
    "image-mcp": {
      "commandName": "Project",
      "environmentVariables": {
        "ImageApi__ClientId": "your-unsplash-api-key"
      }
    }
  }
}

配置结构

应用程序需要以下配置:

{
  "ImageApi": {
    "BaseUrl": "https://api.unsplash.com/",
    "ClientId": "your-api-key"
  }
}
  • 基础网址:Unsplash API基本URL(已在中配置 appsettings.json)
  • 可点击:您的Unsplash API访问密钥(必须使用上述方法之一进行配置)

建立和运行

  1. 克隆存储库
  2. 使用上面的方法之一配置Unsplash API密钥
  3. 构建项目:
    dotnet build
    
  4. 运行服务器:
    dotnet run
    

CLI模式(基本)

此项目还支持用于单次搜索的基本CLI命令。

dotnet run -- search "nature"

您还可以运行:

dotnet run -- --version
dotnet run -- --help
  • 输出以JSON格式打印到stdout。
  • 命令错误将写入stderr并返回非零退出代码。
  • 无参数运行仍会启动MCP服务器模式。

配置验证

应用程序验证启动时是否存在所有必需的配置值。如果 ClientId 如果缺少或无效,应用程序将无法启动,并显示明确的错误消息。

未提交源代码管理的文件

以下文件包含敏感信息,通过以下方式排除在版本控制之外 .gitignore:

  • appsettings.Development.json
  • appsettings.*.json (除 appsettings.example.json)
  • Properties/launchSettings.json

获取Unsplash API密钥

  1. 首选 https://unsplash.com/developers
  2. 创建新应用程序
  3. 复制您的“访问密钥”并将其用作您的 ClientId 在配置中

可用工具

  • 搜索图片:使用Unsplash API搜索图像、照片或图片。返回一个包含URL和描述的图像结果数组。

克劳德工具选择

Claude和其他LLM客户根据工具的 Description为了确保克劳德在处理图像相关请求时更喜欢图像MCP服务器而不是其内置的网络搜索 search_images 工具描述明确指出:

  • 何时使用此工具(查找、获取、显示或搜索图像、照片或图片的任何请求)
  • 对于与图像相关的请求,它应该比网络搜索更受欢迎

如果您观察到Claude默认使用网络搜索而不是此工具,请通过以下方式验证MCP服务器是否已连接,以及工具描述是否对模型可见 tools/list.