一个用于发现、爬取和索引网站的工具,将其作为MCP服务器暴露给LLM代理,以实现更准确和及时的推理和代码生成。
</div>Doctor 提供了一整套解决方案:
export OPENAI_API_KEY=your-openai-key
docker compose up
/fetch_url 端点并提供URL开始爬取任务/job_progress 查看当前任务状态http://localhost:9111/mcp 作为MCP服务器POST /fetch_url: 开始爬取URLGET /search_docs: 搜索已索引的文档GET /job_progress: 检查爬取任务进度GET /list_doc_pages: 列出已索引的页面GET /get_doc_page: 获取页面的全文地图功能提供了爬取网站的分层视图,便于导航和探索已索引站点的结构。
端点:
GET /map: 查看所有爬取站点的索引GET /map/site/{root_page_id}: 查看特定站点的分层树结构GET /map/page/{page_id}: 查看特定页面及其导航(父级、同级、子级)GET /map/page/{page_id}/raw: 获取页面的原始Markdown内容特性:
使用示例:
/fetch_url 端点爬取一个网站/map 查看所有爬取的站点确保您的Docker Compose堆栈正在运行,然后在Cursor或VSCode MCP服务器配置中添加:
"doctor": {
"type": "sse",
"url": "http://localhost:9111/mcp"
}
要运行所有测试:
# 运行所有测试并生成覆盖率报告
pytest
要运行特定测试类别:
# 只运行单元测试
pytest -m unit
# 只运行异步测试
pytest -m async_test
# 运行特定组件的测试
pytest tests/lib/test_crawler.py
项目配置为自动生成覆盖率报告:
# 运行测试并生成详细的覆盖率报告
pytest --cov=src --cov-report=term-missing
tests/conftest.py: 所有测试的通用fixturetests/lib/: 库组件的测试
test_crawler.py: 爬虫模块的测试test_crawler_enhanced.py: 带层次跟踪的增强型爬虫的测试test_chunker.py: 分块模块的测试test_embedder.py: 嵌入模块的测试test_database.py: 统一的Database类的测试test_database_hierarchy.py: 数据库层次操作的测试tests/common/: 公共模块的测试tests/services/: 服务层的测试
test_map_service.py: 地图服务的测试tests/api/: API端点的测试
test_map_api.py: 地图API端点的测试tests/integration/: 集成测试
test_processor_enhanced.py: 带层次跟踪的增强型处理器的测试项目配置了提交前钩子,在每次提交前自动运行:
ruff check --fix: 检查代码并自动修复问题ruff format: 根据项目风格格式化代码要设置提交前钩子:
# 安装pre-commit
uv pip install pre-commit
# 安装git钩子
pre-commit install
您可以手动在所有文件上运行提交前钩子:
# 运行所有提交前钩子
pre-commit run --all-files
或者只在暂存文件上运行:
# 在暂存文件上运行
pre-commit run
本项目采用MIT许可证 - 详情见LICENSE.md文件。