返回市场
MCP服务器量化连接文档

MCP服务器量化连接文档

作者:lhstorm2 星标更新:2025-08-17

项目介绍

QuantConnect PDF MCP Server

一个高级的模型上下文协议(MCP)服务器,用于提供QuantConnect PDF文档的智能搜索和检索能力。该服务器将PDF转换为可搜索的Markdown格式,并使用TF-IDF评分和邻近匹配来提供快速且上下文感知的搜索。

功能

  • 智能PDF处理:自动将PDF转换为具有适当格式的结构化Markdown
  • 快速搜索索引:使用倒排索引和TF-IDF评分以获得相关结果
  • 上下文感知结果:返回带有高亮匹配的相关摘录
  • 缓存系统:避免重新处理未更改的PDF以提高性能
  • 邻近匹配:提升查询词出现在一起的结果
  • 三种MCP工具:搜索、列出文档和检索完整内容

项目结构

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           # 转换后的文档

安装

先决条件

  • Python 3.8或更高版本
  • pip包管理器

第一步:安装依赖项

安装所需包:

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设置

找到您的Claude Desktop配置文件:

  • macOS~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows%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

使用

启动服务器

  1. 独立测试

    export QUANTCONNECT_PDF_FOLDER="/path/to/your/pdfs"
    python server.py
    
  2. 与Claude Desktop结合使用:在配置后重启Claude Desktop以加载MCP服务器

  3. 手动PDF转换(可选):

    python convert_pdfs.py [pdf_folder] [markdown_folder]
    

测试集成

在Claude中测试以下问题:

  • “你能列出可用的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转换和索引
  • 后台初始化:服务器立即启动而处理继续
  • 高效存储:Markdown转换减少了内存使用量相对于原始PDF文本

故障排除

常见问题

  1. 服务器无法连接

    • 核实Claude Desktop配置中的绝对路径
    • 检查Python虚拟环境激活情况
    • 确保server.py具有执行权限
  2. PDF无法加载

    • 确认QUANTCONNECT_PDF_FOLDER路径存在
    • 检查PDF文件权限和可读性
    • 查找服务器输出中的错误消息
  3. 搜索没有返回结果

    • 等待初始PDF处理完成
    • 检查是否成功创建了Markdown文件
    • 尝试更广泛的搜索词
  4. 性能问题

    • 确保有足够的磁盘空间用于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

自定义搜索查询

搜索支持各种查询类型:

  • 单个词回测
  • 多词查询自定义指标开发
  • 技术术语OnData事件处理器
  • 代码概念Algorithm.Initialize方法

集成示例

向Claude提出复杂的问题,例如:

“使用QuantConnect文档,逐步展示如何创建带有示例的自定义指标”

“所有不同的订单类型有哪些,何时应该使用每一种?”

“查找宇宙选择的代码示例并解释不同的方法”

“根据文档比较本地平台设置过程与云部署”

贡献

扩展服务器的方法:

  1. 添加新文档格式:扩展server.py:236中的转换系统
  2. 改进搜索:增强SearchIndex类以实现语义搜索
  3. 添加专用工具:创建领域特定的搜索函数
  4. 性能优化:实现并行处理或数据库存储

版本历史

  • v0.3.0:增强搜索,加入TF-IDF评分和邻近匹配
  • v0.2.0:添加缓存系统和后台处理
  • v0.1.0:基本的PDF到Markdown转换和简单的搜索