本地AI媒体搜索服务器

一个本地运行的AI媒体搜索服务器,通过自然语言搜索访问本地照片和视频,保护用户隐私。

  • by mugdhav
  • Python
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 mugdhav/mcpservers

使用说明


标题:本地人工智能媒体侦察员-黑客马拉松空间提交 表情符号🎬 颜色来源:绿色 颜色致:蓝色 sdk:毕业 sdk版本:“6.0.0” app_file:app.py 固定:false 标签:

  • 构建mcp跟踪消费者
  • 打造mcp轨道创意

🎬 本地AI媒体侦察员

隐私优先语义媒体搜索MCP服务器

100%本地和私人: 您的媒体保留在您的机器上。AI在本地运行。零云上传。

🌟 概述

本地AI媒体侦察员 是一个模型上下文协议(MCP)服务器,它让人工智能助手(如克劳德)通过自然语言搜索访问您的本地照片和视频。

与基于云的解决方案不同,此工具完全使用 SigLIP AI模型(比CLIP快2倍)可以理解媒体文件的内容。

非常适合:

  • 🔍 使用“海滩日落”或“咖啡收据”等描述查找照片/视频
  • 🤖 让Claude Desktop“看到”您当地的媒体库
  • 🔒 关心隐私且不想将个人照片上传到云端的用户

✨ 特性

  • 语义搜索: 按含义搜索,而不仅仅是文件名(例如,“睡在沙发上的猫”)。
  • 多模式: 支持两者 图像 (JPG、PNG、WEBP等)以及 视频 (MP4、MOV、MKV等)。
  • 隐私第一: 所有处理(索引和搜索)都在CPU/GPU上进行。
  • 双接口:
    • 🔌 MCP服务器: 连接到克劳德桌面。
    • 🌐 Web用户界面: 内置接口,用于测试和直接使用。
  • 高性能: 用途 google/siglip-base-patch16-224 FAISS用于快速索引和检索。

🛠️ 安装

先决条件

  • Python 3.10或更高版本
  • Git

1.克隆存储库

git clone https://github.com/mugdhav/local_media_search_mcp_server.git
cd local_media_search_mcp_server

2.创建虚拟环境

建议使用虚拟环境来管理依赖关系。

窗户:

python -m venv venv
.\venv\Scripts\activate

macOS/Linux:

python3 -m venv venv
source venv/bin/activate

3.安装依赖项

pip install -r requirements.txt

⚙️ 配置

  1. 创建一个 .env 根目录中的文件(可选,将使用默认值):

    MEDIA_DIR=media
    INDEX_DIR=index
    
    • MEDIA_DIR:包含照片和视频的文件夹(可以是绝对路径)。
    • INDEX_DIR:AI索引文件将存储在何处。
  2. 添加您的媒体:

    • 将您的照片和视频放在 media 文件夹(或您配置的任何文件夹)。
    • 注意:第一次运行服务器时,它将下载AI模型(~150MB)并为您的文件建立索引。这可能需要几分钟的时间,具体取决于您的库大小。

🚀 用法

1.启动服务器

运行应用程序:

python app.py

您应该看到指示服务器已启动的输出:

Web UI: http://localhost:7860
MCP Endpoint: http://localhost:7860/gradio_api/mcp/sse

2.连接到克劳德桌面

要在Claude Desktop中使用此功能,您需要将服务器配置添加到MCP设置文件中。

文件位置:

  • 窗户: %APPDATA%\Claude\claude_desktop_config.json
  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

配置:

{
  "mcpServers": {
    "media-search": {
      "url": "http://localhost:7860/gradio_api/mcp/sse"
    }
  }
}

保存此文件后重新启动Claude Desktop。

3.使用Web UI

打开 http://localhost:7860 在浏览器中:

  • 测试搜索查询。
  • 查看索引统计信息。
  • 手动触发重新索引。
  • 检查文件详细信息。

🤖 可用的MCP工具

连接到Claude后,您可以使用以下工具:

工具 说明
semantic_search 使用自然语言描述搜索您的媒体。
Args: query (str), media_type (全部/图像/视频), top_k (int)
get_media_details 获取特定媒体文件的元数据(大小、类型、路径)。
Args: file_path (str)
get_index_stats 查看有关索引库的统计信息(计数、大小等)。
reindex_media 强制服务器重新扫描您的媒体目录。
Args: force (布尔)

给克劳德的提示示例:

  • “给我找我的狗在公园里玩的照片。”
  • “我有毕业典礼的视频吗?”
  • “显示第一个搜索结果的元数据。”
  • “重新索引我的媒体库,我刚刚添加了一些新照片。”

🔧 故障排除

  • 首次运行缓慢: 第一次运行下载SigLIP模型。这很正常。
  • 视频处理: 索引视频需要更长的时间,因为它提取帧来理解内容。
  • “找不到文件”: 确保您的 MEDIA_DIR 路径正确 .env 文件。
  • MCP连接错误: 确保服务器正在运行(python app.py)在打开Claude Desktop之前。

📜 许可证

MIT许可证


专为MCP 1岁生日黑客马拉松而打造🎂