内容
# MCP Server with RAG 和多重搜索
一个自定义的 MCP (Model Calling Protocol) 服务器,提供使用 LlamaIndex 的 RAG (Retrieval-Augmented Generation) 功能,并通过 Google 的 Gemini 2.0 API 和 Linkup 提供多种网络搜索选项。
## 特性
- 使用本地文档的 RAG 工作流
- 多种网络搜索能力:
- Google 的 Gemini 2.0 进行高级 AI 驱动的搜索
- Linkup 进行传统的网络搜索
- 基于 FastMCP 构建
## 设置
### 先决条件
- Python 3.8 或更高版本
- 本地安装 Ollama,并配备 DeepSeek 模型(或修改为使用您首选的模型)
- Gemini API 密钥(可在 https://ai.google.dev/ 获取)
- Linkup API 密钥(可选)
### 安装
1. 克隆此代码库:
```
git clone <repository-url>
cd own-mcp-server
```
2. 安装所需的依赖:
```
pip install -r requirements.txt
```
3. 设置环境变量(创建一个 `.env` 文件):
```
# 必需的 API 密钥
GEMINI_API_KEY=your_gemini_api_key_here
LINKUP_API_KEY=your_linkup_api_key_here
# 可选配置
OLLAMA_HOST=http://localhost:11434
```
4. 将文档添加到 `data` 目录(如果不存在,将自动创建)
### 运行服务器
使用以下命令启动服务器:
```
python server.py
```
## 使用
服务器提供以下工具:
1. `web_search`:使用最佳可用搜索方法(优先使用 Gemini 2.0,后备使用 Linkup)
2. `gemini_search`:使用 Google 的 Gemini 2.0 AI 进行搜索
3. `linkup_search`:使用 Linkup 进行搜索
4. `rag`:使用 RAG 查询您的本地文档
## 所需库
该项目使用:
- llama-index - 核心 RAG 功能
- ollama - 本地 LLM 集成
- Google Generative AI SDK - Gemini 2.0 集成
- Linkup SDK - 网络搜索能力
- FastMCP - MCP 服务器实现
- Python-dotenv - 环境管理
- nest-asyncio - 异步支持
## 故障排除
如果您遇到问题:
1. 确保 Ollama 正确安装并运行
2. 拉取 DeepSeek 模型:`ollama pull deepseek-r1:1.5b`
3. 如果遇到 Python 3.13 兼容性问题,请考虑降级到 Python 3.11 或 3.10
4. 验证您的 API 密钥是否正确并具有必要的权限
5. 对于 Gemini 2.0 问题,请确保您的 API 密钥可以访问最新模型