MCP DocInsight
MCP DocInsight是一个文档驱动的系统,它解析结构化的研究生应用程序PDF,将提取的数据存储在SQLite数据库中,并允许用户使用自然语言查询该数据。
概述
该系统展示了一个用于将大型语言模型与数据库集成的受控架构。它不允许LLM生成原始SQL,而是生成由MCP(模型上下文协议)层验证和执行的结构化工具调用。
特性
- 将结构化PDF应用程序表单解析为JSON
- 将应用程序数据存储在SQLite数据库中
- 批量摄取PDF目录
- 根据文件名对文件进行重复数据消除
- 使用自然语言查询数据
- 通过经过验证的工具调用安全执行
- 支持过滤和聚合查询
运作原理
- PDF被解析为结构化的Python字典
- 解析后的数据以JSON格式暂存
- 数据被插入到SQLite数据库中
- 用户输入自然语言查询
- LLM将查询转换为结构化工具调用
- MCP层验证工具调用
- 数据库执行相应的查询
- 结果返回给用户
安装说明
1.克隆存储库
git clone https://github.com/EthanScott19/DocInsight-MCP.git2.创建虚拟环境
python3 -m venv venv
source venv/bin/activate3.安装依赖项
pip install -r requirements.txt相干API密钥设置
本项目需要一个Cohere API密钥。
步骤1:创建API密钥
访问: https://dashboard.cohere.com/api-keys
生成新的API密钥。
步骤2:设置环境变量
macOS/Linux:
export COHERE_API_KEY="your_api_key_here"可选(跨会话持久):
echo 'export COHERE_API_KEY="your_api_key_here"' >> ~/.zshrc
source ~/.zshrc步骤3:验证
echo $COHERE_API_KEY运行应用程序
从项目根:
cd MCP-DocInsight
./start.sh用法
选项1:提问
示例查询:
有多少申请人? 有多少BIO申请者的GPA至少为3.5? 向CSC申请人展示3.2 GPA以上 显示2025年秋季的临时录取名单
选项2:上传PDF
您可以上传:
- 单个PDF文件
- 用于批量摄取的PDF目录
批摄取行为:
- 根据文件名检测新文件
- 允许用户在处理之前排除文件
- 将已成功处理的文件移动到已处理/
- 将失败的文件移动到失败/
备注
- API密钥不包含在存储库中
- 每个用户必须提供自己的Cohere API密钥
- 根据文件名跳过重复的PDF
未来改进
- 添加更多工具
- 改进结果格式
作者
- 伊森·斯科特
- 贾斯汀康奈尔
- 加里克·米尔斯
