文档爬取与搜索服务

Lex AI是一个能够从任何URL爬取文档内容并通过MCP服务器在Cursor或Claude Code中进行搜索的服务,支持JavaScript渲染、内容分块、OpenAI嵌入和PostgreSQL存储。

  • by sohandillikar
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 sohandillikar/lex-ai

使用说明

莱克斯AI

从任何URL中抓取文档,并通过MCP服务器在Cursor或Claude Code中搜索。内容被抓取(使用JS渲染)、分块、嵌入OpenAI,并使用pgvector存储在PostgreSQL中。

先决条件

  • Python 3.11+
  • Docker&Docker编写
  • OpenAI API密钥

设置

macOS/Linux(或Windows上的Git Bash/WSL):

./setup.sh

Windows(PowerShell):

.\setup.ps1

任何平台(直接用Python运行):

python setup.py

这将启动PostgreSQL,安装Python依赖项和Playwright浏览器(Crawl4AI),创建 .env 从 .env.example 如果需要,并运行MCP配置向导。编辑 .env 添加您的OpenAI API密钥(如果您刚刚创建的话)。

非交互式设置: 集 LEX_AI_MCP_CLIENT=cursor 或 LEX_AI_MCP_CLIENT=claude 跳过客户端提示。

用法

报废文件

选项A--CLI: 使用参数或交互方式运行scraper:

python -m src.scrape https://docs.example.com --max-pages 100
python -m src.scrape --dry-run https://docs.example.com
python -m src.scrape  # prompts for URL

选项B-MCP: 使用 scrape_docs 从Cursor或Claude Code中抓取和索引URL的工具;不需要CLI。

配置MCP客户端

python -m src.init --cursor   # For Cursor (~/.cursor/mcp.json)
python -m src.init --claude   # For Claude Code (.mcp.json)

安装后,重新启动Cursor或Claude Code。集 OPENAI_API_KEY 和 DATABASE_URL 使用Claude Code时。

配置

通过环境变量覆盖默认值: LEX_AI_EMBEDDING_BATCH_SIZE, LEX_AI_CHUNK_TARGET_TOKENS, LEX_AI_DEFAULT_MAX_DEPTH, LEX_AI_DEFAULT_MAX_PAGES等等。看 src/config.py 对于所有选项。

MCP工具

工具 说明
list_sources 列出索引文档源和块计数。搜索前使用以获取 source_url 价值观。
search_docs 对索引文档进行语义搜索。Args: query,可选 source_url, limit (默认值5,最大值20)。
get_page 按URL返回页面的完整内容(例如,从 search_docs 结果)。
scrape_docs 抓取并索引文档URL。参数: url,可选 max_depth (默认值3), max_pages (默认值为50)。
health_check 验证PostgreSQL和OpenAI的连接。刮擦前使用以确认设置。

测试

pip install pytest pytest-asyncio
pytest tests/ -v

建筑

Scrape: URL → Crawl4AI (JS) → Markdown → Chunks (~500 tokens) → OpenAI embeddings → PostgreSQL + pgvector
Query:  Cursor/Claude → MCP → embed query → similarity search → doc chunks