logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

unified-llm-interface-toolkit

A robust software orchestration layer designed for building bespoke applications that interface with large language models, integrating extensive capabilities for deep document ingestion (PDF, DOCX, XLSX) and dynamic web data acquisition.

Author

unified-llm-interface-toolkit logo

w-jeon

MIT License

Quick Info

GitHub GitHub Stars 3
NPM Weekly Downloads 1734977
Tools 1
Last Updated 2026-02-19

Tags

frameworktoolsmcpmcp frameworkbusiness toolsframework framework

统一式大模型交互工具集 (Unified LLM Interface Toolkit)

smithery badge

本程序集是一个基于MCP(Model Context Protocol)的开发环境,专注于创建与先进大语言模型(LLMs)深度集成的自定义操作代理。它提供了一套高度优化的工具链,旨在无缝增强集成开发环境(如Cursor IDE)的上下文获取能力,核心功能覆盖从复杂文档结构化提取到实时网络信息检索。

核心功能模块

本工具包提供以下关键操作组件:

1. 智能泛文档摄取器 (file)

此工具提供通用文件处理入口,可自动推断文件格式并应用最合适的解析策略,全面支持二进制和结构化文档。

  • 调用语法: file /path/to/any_document
  • 支持介质:
  • 可移植文档格式 (.pdf)
  • Microsoft Word 格式 (.doc, .docx)
  • Microsoft 电子表格格式 (.xls, .xlsx, .xlsm)
  • 输入参数: file_path - 目标文件的本地绝对或相对路径
  • 输出: 依据文件类型返回标准化的处理结果结构

2. PDF内容深度抽取 (pdf)

专门用于处理PDF文件,支持两种不同的处理粒度以平衡速度与信息完整性。

  • 调用语法: pdf /path/to/document.pdf [processing_mode]
  • 输入参数:
  • file_path - PDF文件的本地引用
  • processing_mode - 操作模式(可选):
    • quick - 快速文本提炼模式,侧重于纯文本流提取
    • full - 完整解析模式,提取文本、布局信息及嵌入式图像(默认值)
  • 返回内容:
  • 快速模式: 纯文本内容摘要
  • 完整模式: 文本流与可提取的图像对象
  • 技术亮点:
  • 采用PyMuPDF(Fitz)实现高保真文本和图像捕获。
  • 内置机制应对特大文件集的内存管理。
  • 支持对提取的图像进行标准化处理和导出。

3. Word文档结构化解析 (word)

用于解析DOCX文件,以结构化的方式提取文本内容、表格数据和多媒体资源。

  • 调用语法: word /path/to/document.docx
  • 功能: 结构化分解Word文档,提取文本主体、表格定义和嵌入对象。
  • 输入参数: file_path - Word文档的本地文件引用
  • 返回内容: 包含文档的线性文本流、检测到的表格数据结构以及图像元数据。
  • 技术亮点: 依赖python-docx库,确保文本和表格边界的准确性。

4. Excel工作簿数据抽取 (excel)

负责解析电子表格文件,提供工作簿(Sheet)级别的数据透视和内容导出。

  • 调用语法: excel /path/to/spreadsheet.xlsx
  • 功能: 遍历并解析Excel文件中的所有工作表内容。
  • 输入参数: file_path - 目标电子表格文件的本地路径
  • 返回内容:
  • 顶级元数据(工作簿数量、文件名)
  • 针对每个工作表的详细报告:
    • 维度信息(行数、列数)
    • 字段(列名)清单
    • 格式化后的完整表格数据集
  • 技术亮点:
  • 利用pandasopenpyxl实现高性能的数据帧操作。
  • 原生支持多工作表并行或顺序处理。
  • 自动进行数据类型推断和转换。

5. 实时网络内容采集 (url)

用于从指定的统一资源定位符(URL)获取可渲染的网页内容。

  • 调用语法: url https://www.target-site.com
  • 输入参数: url - 目标网站的完整URL地址
  • 返回内容: 网页主体内容的文本表示
  • 技术亮点:
  • 全面的HTTP状态码错误捕获与反馈。
  • 可配置的网络请求超时管理。
  • 自动内容编码检测和解码(UTF-8, ISO-8859-1等)。

架构与性能考量

本框架通过以下技术策略优化I/O密集型文档操作:

  1. 自动化类型调度
  2. 基于文件后缀的智能路由,确保请求被导向最优的解析器。
  3. 提供单一、一致化的外部调用API。

  4. 深度文档处理策略

  5. PDF: 引入双重解析机制,优先使用高精度引擎,必要时降级至高兼容性引擎。
  6. Word: 专注于表格边界识别和格式保留的文本抽取。
  7. Excel: 优化大型数据集的内存占用。

  8. 资源生命周期管理

  9. 引入临时文件暂存机制,用于超大文件的分块处理。
  10. 确保所有I/O操作完成后进行彻底的资源清理。
  11. 实施请求级超时保护,防止I/O阻塞。

  12. 健壮性与反馈

  13. 完善的Try-Catch块覆盖关键操作。
  14. 产生清晰、可供LLM理解的诊断性错误消息。

文档解析技术细节探究

PDF解析深度

  1. 解析优先级链:
  2. 一级:PyMuPDF (fitz) - 速度和准确性最高。
  3. 二级:PymuPDF4llm 适配层 - 专为下游LLM上下文窗口优化。
  4. 三级:PyPDF2 - 作为最终的、最广泛兼容的备份方案。

  5. 性能调优:

  6. 设定模式依赖的最大页数限制(完整: 30页;快速: 50页)。
  7. 图像提取过程中的分辨率(DPI)限制和文件大小限制。
  8. 异步或多线程优化,加速多页文档的并行处理。

  9. 故障恢复:

  10. 详细的错误栈记录与用户提示。
  11. 确保在主解析器失败时,系统能安全地切换到备用路径。
  12. 强制执行5分钟的操作超时限制。

Word文档结构化

  1. 元数据与内容映射:
  2. 提取文档属性(作者、主题等)。
  3. 细粒度段落捕获,尝试保留关键格式标记。
  4. 表格数据结构被转换为Markdown表格格式,便于LLM消费。

  5. 多媒体对象识别:

  6. 报告文档中存在的图片总数。
  7. 识别并定位内部图片引用关系。

代码组织结构

本框架遵循严格的模块化设计原则,以支持便捷的功能扩展与维护:

mcp_tool/ ├── tools/ # 核心工具实现目录 │ ├── init.py # 基础工具接口和注册管理器定义 │ ├── loader.py # 动态工具加载和服务发现机制 │ ├── file_tool.py # 综合文件路由工具 │ ├── pdf_tool.py # PDF抽取引擎 │ ├── word_tool.py # DOCX解析模块 │ ├── excel_tool.py # XLSX/XLS数据处理模块 │ └── url_tool.py # 网络数据获取适配器 ├── init.py ├── main.py # 启动入口 └── server.py # MCP服务器和SSE端点实现

开发者快速上手指南

扩展工具集

  1. tools子目录中创建新的Python模块文件(例如:new_feature_tool.py)。
  2. 导入框架的基础组件和注册装饰器。
  3. 定义一个继承自BaseTool的新类。
  4. 使用@ToolRegistry.register装饰器声明该工具。
  5. 必须实现异步的execute方法来承载核心逻辑。

工具模板示例(JSON Schema驱动)

python import mcp.types as types from . import BaseTool, ToolRegistry

@ToolRegistry.register class CustomFeatureTool(BaseTool): """描述该工具的用途和能力""" name = "custom_processing_agent" # 注册名称 description = "用于执行特定非标准数据转换任务" input_schema = { # 严格的输入参数定义 "type": "object", "required": ["input_data_ref"],
"properties": { "input_data_ref": { "type": "string", "description": "指向输入资源的引用标识符", }, "config_flag": { "type": "boolean", "description": "启用高级配置选项(默认False)", } }, }

async def execute(self, arguments: dict) -> list[types.TextContent | types.BlobContent]:
    """工具的执行逻辑"""
    # 参数验证与提取
    if "input_data_ref" not in arguments:
        return [types.TextContent(type="text", text="[ERROR] 缺少必需的输入引用。")]

    ref = arguments["input_data_ref"]
    flag = arguments.get("config_flag", False)

    # 核心处理(示例)
    processing_status = "高级模式激活" if flag else "标准模式运行"
    output_text = f"引用 {ref} 已处理。状态: {processing_status}"

    # 结果封装
    return [types.TextContent(
        type="text",
        text=output_text
    )]

运维与部署手册

Docker容器化部署(推荐方案)

  1. 初始化仓库: bash

获取代码库

git clone https://github.com/your-username/mcp-framework.git cd mcp-framework

复制环境变量模板 cp .env.example .env

  1. Compose操作: bash

构建镜像并以后台模式启动服务

docker compose up --build -d

实时监控服务器输出

docker compose logs -f

管理容器生命周期

docker compose ps docker compose stop docker compose down # 完全停止并移除网络

  1. 访问端点:
  2. 服务主端口(SSE流):http://localhost:8000/sse

  3. IDE配置(Cursor):

  4. 导航至设置 -> 扩展 -> MCP服务器连接配置。
  5. 类型选择: "sse"
  6. 远程URL: http://localhost:8000/sse

传统Python环境部署

  1. 系统前置依赖安装:
  2. Linux (Debian/Ubuntu): 确保安装了PDF和OCR依赖。 bash sudo apt-get update sudo apt-get install -y poppler-utils tesseract-ocr tesseract-ocr-chi-sim

  3. macOS: 使用Homebrew。 bash brew install poppler tesseract

  4. Windows: 需要手动安装Tesseract OCR并将其执行路径添加到系统环境变量PATH中。

  5. Python环境配置: bash

建立隔离环境

python -m venv venv source venv/bin/activate # Linux/Mac

.\venv\Scripts\activate # Windows

安装项目所需库

pip install -r requirements.txt

  1. 服务启动: bash python -m mcp_tool

运行环境配置

配置参数通过.env文件管理:

  • MCP_SERVER_PORT: 服务监听端口(默认值: 8000)
  • MCP_SERVER_HOST: 监听的网络接口地址(默认值: 0.0.0.0,即所有接口)
  • DEBUG: 启用详细调试日志(布尔值,默认: false)
  • MCP_USER_AGENT: 用于网络请求的自定义标识字符串

技术栈依赖

核心技术组件包括: - mcp: 协议核心实现层。 - PyMuPDF: 高效的PDF解析引擎。 - python-docx: 用于结构化Word文档的提取。 - pandas/openpyxl: 负责电子表格数据的操作和转换。 - httpx: 异步、现代化的HTTP客户端。 - anyio: 跨平台异步I/O抽象层。 - click: 命令行接口(CLI)构建。

社区贡献流程

欢迎社区开发者参与改进:

  1. Fork本仓库。
  2. 创建一个用于新功能的分支(例如:git checkout -b feature/new-parser)。
  3. 提交您所做的修改(git commit -m 'feat: added XYZ functionality')。
  4. 将分支推送到您的Fork(git push origin feature/new-parser)。
  5. 提交一个Pull Request (PR) 到主仓库的开发分支。

许可证

本项目遵循宽松的MIT开源许可证。详细信息请参阅随附的LICENSE文件。

See Also

`