QuantConnect PDF MCP服务器
一种先进的模型上下文协议(MCP)服务器,为QuantConnect PDF文档提供智能搜索和检索功能。该服务器将PDF转换为可搜索的markdown格式,并使用TF-IDF评分和邻近度匹配提供快速、上下文感知的搜索。
特性
- 智能PDF处理:自动将PDF转换为具有适当格式的结构化markdown
- 快速搜索索引:使用TF-IDF评分的倒排指数来获得相关结果
- 情境感知结果:返回相关摘录,突出显示匹配项
- 缓存系统:避免重新处理未更改的PDF以获得更好的性能
- 邻近匹配:在查询词紧密排列的情况下增强结果
- 三个MCP工具:搜索、列出文档并检索完整内容
项目结构
QuantConnectServer/
├── server.py # Main MCP server with enhanced search
├── convert_pdfs.py # Standalone PDF conversion utility
├── requirements.txt # Python dependencies
├── README.md # This documentation
├── env/ # Python virtual environment
└── quantconnect-docs/ # PDF documents and converted markdown
├── Quantconnect-Local-Platform-Python-2.pdf
├── Quantconnect-Writing-Algorithms-Python-2.pdf
└── markdown/ # Auto-generated markdown files
├── .pdf_cache.json # Processing cache
├── .search_index.pkl # Search index cache
└── *.md files # Converted documents安装
先决条件
- Python 3.8或更高版本
- pip包管理器
步骤1:安装依赖项
安装所需的软件包:
pip install -r requirements.txt这 requirements.txt 包括:
mcp-模型上下文协议库PyPDF2-PDF文本提取asyncio-异步处理
第二步:准备好你的环境
创建虚拟环境(推荐):
python -m venv env
source env/bin/activate # On Windows: env\Scripts\activate
pip install -r requirements.txt配置
Claude桌面设置
查找您的Claude Desktop配置文件:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - 视窗:
%APPDATA%\Claude\claude_desktop_config.json - Linux:
~/.config/claude/claude_desktop_config.json
添加此配置(调整路径以匹配您的系统):
{
"mcpServers": {
"quantconnect-pdf-server": {
"command": "/path/to/your/project/env/bin/python3",
"args": ["/path/to/your/project/server.py"],
"env": {
"QUANTCONNECT_PDF_FOLDER": "/path/to/your/project/quantconnect-docs",
"QUANTCONNECT_MARKDOWN_FOLDER": "/path/to/your/project/quantconnect-docs/markdown"
}
}
}
}环境变量
QUANTCONNECT_PDF_FOLDER:包含PDF文件的目录(必填)QUANTCONNECT_MARKDOWN_FOLDER:转换后的markdown文件的目录(可选,默认为PDF_FOLDER/markdown)
用法
启动服务器
- 独立测试:
export QUANTCONNECT_PDF_FOLDER="/path/to/your/pdfs"
python server.py- 使用克劳德桌面:配置后重新启动Claude Desktop以加载MCP服务器
- 手动PDF转换 (可选):
python convert_pdfs.py [pdf_folder] [markdown_folder]测试集成
在克劳德进行测试,询问:
- “您能列出可用的QuantConnect文档吗?”
- “在QuantConnect文档中搜索有关回溯测试的信息”
- “QuantConnect文档对指标有什么看法?”
- “显示本地平台文档的第5页”
可用的MCP工具
服务器提供了三个可通过Claude访问的强大工具:
1. search_quantconnect_docs
目的:智能搜索所有QuantConnect文档 参数:
query(必填):搜索要查找的术语或主题max_results(可选):要返回的结果数(默认值:5)
特性:
- TF-IDF评分用于相关性排名
- 多词查询的邻近匹配
- 使用突出显示的匹配项进行上下文提取
- 返回带有页码的文档摘录
2. list_quantconnect_docs
目的:列出收藏中所有可用的PDF文档 参数:无
退货:已处理文件的完整目录及元数据
3. get_document_content
目的:从特定文档中检索完整内容 参数:
filename(必填):文档名称(带或不带.md扩展名)page_number(可选):要检索的特定页面
用例:阅读完整章节,访问特定页面,提取代码示例
技术架构
搜索引擎
- 倒排表:将单词映射到文档位置,以便快速查找
- TF-IDF 评分:平衡术语频率和文档稀有性
- 邻近性提升:增强查询词一起出现的结果
- 上下文提取:围绕匹配项提供相关片段
缓存系统
- PDF处理缓存:避免使用MD5哈希重新处理未更改的文件
- 搜索索引缓存:持久化搜索索引以加快启动速度
- 增量更新:仅处理新的或修改过的PDF
性能特点
- 异步处理:无阻塞PDF转换和索引
- 背景初始化:服务器在处理继续时立即启动
- 高效存储:与原始PDF文本相比,Markdown转换减少了内存使用
故障排除
常见问题
- 服务器未连接
- 验证Claude Desktop配置中的绝对路径 - 检查Python虚拟环境激活 - 确保 server.py 具有执行权限
- PDF未加载
- 确认 QUANTCONNECT_PDF_FOLDER 路径存在 - 检查PDF文件权限和可读性 - 在服务器输出中查找错误消息
- 搜索未返回任何结果
- 等待初始PDF处理完成 - 检查是否已成功创建markdown文件 - 尝试更广泛的搜索词
- 性能问题
- 确保有足够的磁盘空间用于标记文件 - 检查防病毒软件是否正在扫描项目文件夹 - 考虑将缓存文件移动到更快的存储
调试模式
使用调试输出运行服务器:
export QUANTCONNECT_PDF_FOLDER="/path/to/pdfs"
python server.py 2>&1 | tee server.log高级用法
批量PDF处理
无需启动服务器即可处理所有PDF:
python convert_pdfs.py ./quantconnect-docs ./quantconnect-docs/markdown自定义搜索查询
搜索支持多种查询类型:
- 单项条款:
backtesting - 多词查询:
custom indicator development - 技术术语:
OnData event handler - 代码概念:
Algorithm.Initialize method
集成示例
问克劳德一些复杂的问题,比如:
"Using the QuantConnect docs, show me step-by-step how to create a custom indicator with examples"
"What are all the different order types available and when should I use each one?"
"Find code examples of universe selection and explain the different approaches"
"Compare the local platform setup process with cloud deployment according to the documentation"贡献
要扩展服务器,请执行以下操作:
- 添加新文档格式:扩展转换系统
server.py:236 - 改进搜索:增强
SearchIndex语义搜索类 - 添加专用工具:创建特定于域的搜索功能
- 性能优化:实现并行处理或数据库存储
版本历史记录
- v0.3.0:通过TF-IDF评分和邻近度匹配增强搜索
- v0.2.0版本:添加了缓存系统和后台处理
- v0.1.0:基本的PDF到markdown转换和简单搜索
