一个高级的模型上下文协议(MCP)服务器,用于提供QuantConnect PDF文档的智能搜索和检索能力。该服务器将PDF转换为可搜索的Markdown格式,并使用TF-IDF评分和邻近匹配来提供快速且上下文感知的搜索。
QuantConnectServer/
├── server.py # 带有增强搜索的主要MCP服务器
├── convert_pdfs.py # 独立的PDF转换工具
├── requirements.txt # Python依赖项
├── README.md # 本文档
├── env/ # Python虚拟环境
└── quantconnect-docs/ # PDF文档和转换后的Markdown
├── Quantconnect-Local-Platform-Python-2.pdf
├── Quantconnect-Writing-Algorithms-Python-2.pdf
└── markdown/ # 自动生成的Markdown文件
├── .pdf_cache.json # 处理缓存
├── .search_index.pkl # 搜索索引缓存
└── *.md files # 转换后的文档
安装所需包:
pip install -r requirements.txt
requirements.txt包括:
mcp - 模型上下文协议库PyPDF2 - PDF文本提取asyncio - 异步处理创建虚拟环境(推荐):
python -m venv env
source env/bin/activate # 在Windows上:env\Scripts\activate
pip install -r requirements.txt
找到您的Claude Desktop配置文件:
~/Library/Application Support/Claude/claude_desktop_config.json%APPDATA%\Claude\claude_desktop_config.json~/.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结合使用:在配置后重启Claude Desktop以加载MCP服务器
手动PDF转换(可选):
python convert_pdfs.py [pdf_folder] [markdown_folder]
在Claude中测试以下问题:
服务器提供了三个强大的工具,可通过Claude访问:
search_quantconnect_docs目的:通过所有QuantConnect文档进行智能搜索 参数:
query(必需):要查找的搜索词或主题max_results(可选):返回的结果数量(默认:5)特性:
list_quantconnect_docs目的:列出集合中的所有可用PDF文档 参数:无
返回:已处理文档的完整目录及其元数据
get_document_content目的:从特定文档中检索完整内容 参数:
filename(必需):文档名称(带或不带.md扩展名)page_number(可选):要检索的具体页面用例:阅读完整部分、访问特定页面、提取代码示例
服务器无法连接
server.py具有执行权限PDF无法加载
QUANTCONNECT_PDF_FOLDER路径存在搜索没有返回结果
性能问题
运行服务器并输出调试信息:
export QUANTCONNECT_PDF_FOLDER="/path/to/pdfs"
python server.py 2>&1 | tee server.log
处理所有PDF而不启动服务器:
python convert_pdfs.py ./quantconnect-docs ./quantconnect-docs/markdown
搜索支持各种查询类型:
回测自定义指标开发OnData事件处理器Algorithm.Initialize方法向Claude提出复杂的问题,例如:
“使用QuantConnect文档,逐步展示如何创建带有示例的自定义指标”
“所有不同的订单类型有哪些,何时应该使用每一种?”
“查找宇宙选择的代码示例并解释不同的方法”
“根据文档比较本地平台设置过程与云部署”
扩展服务器的方法:
server.py:236中的转换系统SearchIndex类以实现语义搜索