多模态本地内存MCP服务器

基于Gemini Embedding 2的多模态本地内存MCP服务器,为AI代理提供统一的跨模态搜索和本地持久化存储。

  • by AlaeddineMessadi
  • Python
  • 本地部署
  • 5 星标
  • 更新于
在 GitHub 查看 AlaeddineMessadi/gemini-embedding-2-mcp-server

使用说明

A multimodal local memory MCP for AI agents powered by Gemini Embedding 2.


将您的本地文档、代码、PDF、图像、音频和视频直接连接到 克劳德, 光标,或 VS Code 使用谷歌的 gemini-embedding-2-preview 模型与严格局部 色度数据库 矢量数据库。

与纯文本本地RAG工具不同,此服务器在文本、视觉PDF页面、图像、音频和视频中保留一个本地存储层,然后将确切的文件路径和页面或块上下文返回给您的代理。

为什么这不一样

  • 一个跨模态的嵌入空间:从同一存储层搜索代码、PDF、图像、音频和视频。
  • 本地优先坚持:你的指数保持不变 ~/.gemini_mcp_db,不在宿主矢量数据库中。
  • 代理友好检索:搜索结果包括确切的路径、类型、模式和页面感知上下文。
  • 默认情况下为零配置:服务器使用内置的护栏和合理的索引默认值,因此大多数用户不需要配置文件。

你可以问什么

  • Find the PDF page that explains our design tokens.
  • Search my image library for screenshots of dashboards with dark sidebars.
  • Find the audio or video clip where we talked about pricing changes.
  • Search only my work docs folder for onboarding notes about incident response.
  • Give me the surrounding context for result 2 so I can cite the original file correctly.

✨ 主要特点

特性 描述
🧠 统一多模式搜索 将文本、视觉PDF页面、图像、音频和视频存储在一个本地语义记忆中,以便单个查询可以跨模态检索。
📄 可视化PDF检索 将PDF逐页渲染为Gemini Embedded 2的图像,同时保留提取的文本以供代理阅读引用和上下文。
🎯 精确检索控制 支持范围、路径前缀、类型、扩展和模态的紧凑过滤器,因此代理可以在不进行繁重配置的情况下进行精确搜索。
👀 索引前预览 preview_directory() 显示了在扫描运行之前,将按模态和跳过原因对哪些内容进行索引。
🧾 情境感知结果 get_result_context() 返回相邻的块或页面,以便代理在搜索后可以检查确切的源材料。
🛡️ 本地隐私+护栏 使用本地ChromaDB存储,默认情况下跳过垃圾文件夹,阻止危险的根扫描,并自动处理重复数据删除和重影文件清理。

🚀 安装和设置

我们支持两种方式来运行此服务器: 零安装 (推荐)或 本地开发人员克隆. 确保你有 uv 安装在您的计算机上(pip install uv).

方法1:零安装(推荐)

你可以让你的AI助手直接从GitHub运行服务器,而无需在本地克隆存储库。 uvx 表现得像 npx 对于Python,在安全的临时环境中自动下载和缓存服务器。

PyPI被配置为标记版本的长期稳定分销渠道。在第一次PyPI发布完成之前,使用下面的固定Git发布标签install。

对于一个 稳定安装,固定到释放标签上:

uvx --from git+https://github.com/AlaeddineMessadi/gemini-embedding-2-mcp-server.git@<release-tag> gemini-embedding-2-mcp

例子:

uvx --from git+https://github.com/AlaeddineMessadi/gemini-embedding-2-mcp-server.git@v1.2.1 gemini-embedding-2-mcp

对于一个 边缘安装,省略标记并跟踪最新 main 分支州。

一旦PyPI发布生效,stable install命令变为:

uvx gemini-embedding-2-mcp-server

🔑 获取Gemini API密钥

为了增强嵌入模型,你需要一个来自谷歌的免费API密钥。

  1. 首选 Google AI 工作室.
  2. 点击 创建API密钥.
  3. 复制密钥并在下面的客户端配置中使用它,如下所示 GEMINI_API_KEY.

🔌 客户端连接指南

🤖 克劳德代码(CLI)

您可以将此服务器连接到 克劳德代码 CLI本机。 在终端中运行以下命令:

claude mcp add gemini-embedding-2-mcp \
  --env GEMINI_API_KEY="your-api-key-here" \
  -- uvx --from git+https://github.com/AlaeddineMessadi/gemini-embedding-2-mcp-server.git@v1.2.1 gemini-embedding-2-mcp

🦋 克劳德桌面版

打开Claude Desktop配置文件(通常 ~/Library/Application Support/Claude/claude_desktop_config.json 在macOS上)并添加:

{
  "mcpServers": {
    "gemini-embedding-2-mcp": {
      "command": "uvx",
      "args": [
        "--from",
        "git+https://github.com/AlaeddineMessadi/gemini-embedding-2-mcp-server.git@v1.2.1",
        "gemini-embedding-2-mcp"
      ],
      "env": {
        "GEMINI_API_KEY": "your-api-key-here"
      }
    }
  }
}

💻 光标IDE

  1. 首选 设置 > 特性 > 主控程序
  2. 点击 +添加新的MCP服务器
  3. 选择 命令 作为类型。
  4. 姓名: gemini-embedding
  5. 命令: GEMINI_API_KEY="your-api-key" uvx --from git+https://github.com/AlaeddineMessadi/gemini-embedding-2-mcp-server.git@v1.2.1 gemini-embedding-2-mcp

🏄‍♂️ 风浪(喀斯喀特)

打开你的 ~/.codeium/windsurf/mcp_config.json 文件并添加:

{
  "mcpServers": {
    "gemini-embedding-2-mcp": {
      "command": "uvx",
      "args": [
        "--from",
        "git+https://github.com/AlaeddineMessadi/gemini-embedding-2-mcp-server.git@v1.2.1",
        "gemini-embedding-2-mcp"
      ],
      "env": {
        "GEMINI_API_KEY": "your-api-key-here"
      }
    }
  }
}

⚡ 泽德编辑器

打开你的 ~/.config/zed/settings.json 并附加MCP服务器块:

{
  "experimental.mcp": {
    "gemini-embedding-2-mcp": {
      "command": "uvx",
      "args": [
        "--from",
        "git+https://github.com/AlaeddineMessadi/gemini-embedding-2-mcp-server.git@v1.2.1",
        "gemini-embedding-2-mcp"
      ],
      "env": {
        "GEMINI_API_KEY": "your-api-key-here"
      }
    }
  }
}

💻 VS代码(带Cline/RooCode)

打开 ~/Library/Application Support/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json 并附加:

{
  "mcpServers": {
    "gemini-embedding": {
      "command": "uvx",
      "args": [
        "--from",
        "git+https://github.com/AlaeddineMessadi/gemini-embedding-2-mcp-server.git@v1.2.1",
        "gemini-embedding-2-mcp"
      ],
      "env": {
        "GEMINI_API_KEY": "your-api-key-here"
      }
    }
  }
}

方法2:本地开发者克隆

如果你想修改源代码:

# 1. Clone the repository
git clone https://github.com/AlaeddineMessadi/gemini-embedding-2-mcp-server.git
cd gemini-embedding-2-mcp-server

# 2. Install dependencies
uv sync

(如果使用此方法,可以通过运行以下命令直接将其添加到本地的Claude Code CLI中:)

claude mcp add gemini-embedding-local --env GEMINI_API_KEY="your-api-key" -- uv --directory "$(pwd)" run gemini-embedding-2-mcp

方法三:Docker

如果您需要一个容器化的MCP服务器进行注册表验证或部署,请构建并运行附带的映像:

docker build -t gemini-embedding-2-mcp-server .
docker run --rm -i \
  -e GEMINI_API_KEY="your-api-key-here" \
  -v "$HOME/.gemini_mcp_db:/root/.gemini_mcp_db" \
  gemini-embedding-2-mcp-server

容器与任何其他本地MCP服务器一样通过标准I/O进行通信,并将ChromaDB数据保存在装载的卷中。


🛠️ 暴露的MCP能力

一旦连接,您的AI助手将立即获得以下工具:

⚙️ 工具

  • index_directory(path: str, ignore: list = None):扫描并正式将一个全新的本地文件夹嵌入数据库。安全支持通配符 ignore 模式。
  • preview_directory(path: str, ignore: list = None):模拟扫描,看看哪些内容会被索引,按模态分组,跳过原因。
  • search_my_documents(query: str, limit: int, scope: str = None, types: list[str] = None, path_prefix: str = None, extensions: list[str] = None, modalities: list[str] = None):使用紧凑的检索过滤器运行语义搜索。
  • get_result_context(source: str, locator: str = None, window: int = 1):获取以前索引的结果的附近块或页面上下文。
  • list_indexed_directories():查看AI已经知道的目录根。
  • sync_indexed_directories():自动强制数据库查找新的、更新的或最近删除的(重影)文件并清理向量。
  • remove_directory_from_index(path: str):清除矢量的特定轨迹。

🔎 精密过滤器

默认情况下,主搜索工具保持简单,但在需要精确性时支持一些高价值过滤器:

  • scope:将匹配限制在广泛的目录范围内,例如 /Users/me/work
  • path_prefix:将匹配限制为更精确的路径前缀
  • types:根据存储的项目类型进行限制,例如 text 或 pdf_visual_page
  • extensions:按文件扩展名限制,例如 .pdf 或 .md
  • modalities:受模式限制,如 text, pdf, image, audio,或 video

📊 资源

  • gemini://database-stats:实时可观察性!将ChromaDB中矢量段的精确比例直接暴露给助手的上下文。

📚 技术文档

📜 许可证

麻省理工学院©Alaeddine Messadi