文件搜索API

MCP-Gemini-FileSearch是一个将Google Gemini File Search API封装为MCP服务器兼容工具的服务,支持在MCP兼容的LLM客户端中进行文档检索和RAG搜索。

  • by amsminn
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 amsminn/mcp-gemini-filesearch

使用说明

MCP Gemini文件搜索

将Google Gemini文件搜索API打包为模型上下文协议(MCP)服务器的工具。可以在ChatGPT、Claude Desktop等MCP兼容客户端上使用基于文档的RAG搜索。

特性

  • Gemini File Search API MCP包装器 -适用于MCP兼容的LLM客户端
  • 上载文件 -支持自动下载本地文件和URL
  • 自然语言搜索 -基于文档内容的RAG搜索
  • 引用验证 -查看特定页面正文(get_passages)
  • 元数据管理 -标题、作者、年份、DOI、标签、来源URL
  • 过滤搜索 -按年度范围、作者和标签进行搜索

用法示例

快速开始

1.发放API密钥

获取免费API密钥: 谷歌人工智能工作室可以免费获得Gemini API密钥。

2.MCP设置

在Claude Desktop或其他MCP兼容客户端的配置文件中添加以下内容:

{
  "mcpServers": {
    "gemini-filesearch": {
      "command": "npx",
      "args": ["-y", "mcp-gemini-filesearch"],
      "env": {
        "GEMINI_API_KEY": "AIzaSyXXXXXXXXXXXXXXXX",
        "GEMINI_FILESTORE_NAME": "select-your-store-name"
      }
    }
  }
}

重要:

  • GEMINI_API_KEY: 谷歌人工智能工作室请输入从中获得的免费API密钥
  • GEMINI_FILESTORE_NAME:指定您想要的商店名称(例如“my-research”、“论文集”、“technical-docs”)
    • 使用相同的名称可以继续使用以前上载的文档。
    • 使用其他名称创建新的独立文档存储库

内部工具使用示例

create_file_store

{
  "display_name": "My Research Store"
}

add_document

本地文件:

{
  "source": "/path/to/document.pdf",
  "metadata": {
    "title": "Attention Is All You Need",
    "authors": ["Vaswani", "Shazeer", "Parmar"],
    "year": 2017,
    "tags": ["transformer", "attention"]
  }
}

网址:

{
  "source": "https://arxiv.org/pdf/1706.03762.pdf",
  "metadata": {
    "title": "Attention Is All You Need",
    "year": 2017
  }
}

搜索

{
  "query": "What are the limitations of self-attention?",
  "top_k": 5
}
{
  "query": "neural network architectures",
  "top_k": 10,
  "filters": {
    "year_min": 2015,
    "year_max": 2023,
    "tags": ["transformer"]
  }
}

get_消息

检索特定页面

{
  "doc_id": "gemfile_abc123xyz",
  "page_spans": [
    { "start": 3, "end": 4 },
    { "start": 7, "end": 7 }
  ]
}

list_文档

{
  "page": 1,
  "page_size": 20,
  "filters": {
    "year_min": 2015,
    "tags": ["transformer"]
  }
}

删除文档

{
  "doc_id": "gemfile_abc123xyz"
}

异常

  • FILE_TOO_LARGE:超过文件大小
  • INVALID_FILE_TYPE:不支持的格式
  • RATE_LIMITED:API请求限制(自动重试)

开发

npm install
npm run build
npm test
npm run lint

项目结构

mcp-gemini-filesearch/
├── bin/cli.js           # CLI 진입점
├── src/
│   ├── server.ts        # MCP 서버
│   ├── tools/           # MCP 도구
│   └── lib/             # 핵심 라이브러리
├── tests/unit/          # 단위 테스트
├── manifest.json        # MCP 메타데이터
└── package.json

需求

  • 要求
  • 规格
  • Node.js≥20
  • TypeScript 5.7
  • 模型上下文协议(MCP)1.0
  • Google Gemini文件搜索API

Zod 3.23(验证)

Jest 29(单元测试)

许可证