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(单元测试)
