NVIDIA文档MCP服务器
基于FastAPI的多进程通信服务器,具有NVIDIA文档代理功能。
特性
- 文件摄入:自动抓取NVIDIA产品文档(GPU、收发器、布线、网卡、软件)
- RESTful API:使用全文搜索功能搜索和检索文档
- 缓存:基于Redis的缓存可提高性能
- 计划更新:使用APScheduler每日自动更新文档
- MongoDB存储:具有文本搜索索引的可扩展文档存储
技术栈
- 后端:使用FastAPI的Python 3.9+
- 数据库:带文本搜索索引的MongoDB
- 缓存:带10分钟TTL的Redis
- 调度器:APScheduler用于每日摄入
- Web剪贴:BeautifulSoup4用于内容提取
- 测试:支持异步的pytest
快速开始
先决条件
- Python 3.9+
- MongoDB(本地或云端)
- Redis(本地或云端)
- Docker和Docker Compose(可选)
安装
- 克隆存储库
git clone
cd nvidia-docs-mcp-server- 安装依赖项
pip install -r requirements.txt- 设置环境变量
cp .env.example .env
# Edit .env with your MongoDB and Redis URLs- 运行应用程序
uvicorn src.main:app --reloadDocker设置
- 从Docker Compose开始
docker-compose up -d- 访问应用程序
- APIhttp://localhost:8000 - API文件:http://localhost:8000/docs
API终点
文档搜索
GET /api/docs?product_type=GPU&search=performance&page=1&limit=10参数:
product_type:按产品类型筛选(GPU、TRANSCEIVER、布线、NETWORK_CARD、软件)search:全文搜索查询page:分页页码limit:每页项目数(最多100个)
按ID获取文档
GET /api/docs/{document_id}获取统计信息
GET /api/docs/stats触发摄入
POST /api/docs/ingest配置
环境变量
MONGODB_URL:MongoDB连接字符串(默认值:mongodb://localhost:27017)REDIS_URL:Redis连接字符串(默认值:redis://localhost:6379)HOST:服务器主机(默认值:0.0.0.0)PORT:服务器端口(默认值:8000)
计划程序配置
默认情况下,调度程序每天凌晨2:00 UTC运行。要修改计划,请编辑 src/cron/schedule.py:
trigger = CronTrigger(hour=2, minute=0) # Change to desired schedule测试
运行测试套件:
pytest -v测试覆盖范围包括:
- 文档摄取和抓取
- API端点和控制器
- Redis缓存功能
- MongoDB操作
- 调度器功能
发展
项目结构
src/
├── main.py # FastAPI application
├── database.py # MongoDB and Redis connections
├── models/
│ └── document.py # Pydantic models
├── ingestion/
│ └── docs_ingest.py # Documentation scraping
├── cron/
│ └── schedule.py # Scheduled tasks
├── controllers/
│ └── docs_controller.py # API controllers
└── routes/
└── docs.py # API routes
__tests__/ # Test files添加新产品类型
- 将产品类型添加到
NVIDIAProduct枚举在src/ingestion/docs_ingest.py - 将基本URL添加到
NVIDIAUrls.BASE_URLS - 更新中的API验证
src/routes/docs.py
部署
Docker生产
docker build -t nvidia-docs-mcp-server .
docker run -p 8000:8000 \
-e MONGODB_URL="mongodb://mongodb:27017" \
-e REDIS_URL="redis://redis:6379" \
nvidia-docs-mcp-serverKubernetes
请参阅 docker-compose.yml 用于参考部署配置。
监控
- 健康检查:
GET /health - 度量:与Prometheus风格的度量集成
- 日志记录:结构化JSON日志记录
许可证
该项目根据MIT许可证获得许可。
