MCP Development Framework
by aigo666
hybrid server
The server is able to function both locally and remotely, depending on the configuration or use case.
MCP开发框架
一个强大的MCP(Model Context Protocol)开发框架,用于创建与大语言模型交互的自定义工具。该框架提供了一套完整的工具集,可以轻松地扩展Cursor IDE的功能,实现网页内容获取、文件处理(PDF、Word、Excel)等高级功能。
主要功能
本框架提供了以下核心功能:
1. 综合文件处理
使用file
工具可以自动识别文件类型并选择合适的处理方式,支持PDF、Word和Excel文件。
- 用法:
file /path/to/document
- 支持格式:
- PDF文件 (.pdf)
- Word文档 (.doc, .docx)
- Excel文件 (.xls, .xlsx, .xlsm)
- 参数:
file_path
- 文件的本地路径 - 返回: 根据文件类型返回相应的处理结果
2. PDF文档处理
使用pdf
工具可以处理PDF文档,支持两种处理模式:
- 用法:
pdf /path/to/document.pdf [mode]
- 参数:
file_path
- PDF文件的本地路径mode
- 处理模式(可选):quick
- 快速预览模式,仅提取文本内容full
- 完整解析模式,提取文本和图片内容(默认)
- 返回:
- 快速预览模式:文档的文本内容
- 完整解析模式:文档的文本内容和图片
- 特点:
- 使用PyMuPDF提供高质量的文本提取和图像处理
- 自动处理大型文件
- 支持图片提取和保存
3. Word文档解析
使用word
工具可以解析Word文档,提取文本、表格和图片信息。
- 用法:
word /path/to/document.docx
- 功能: 解析Word文档并提取文本内容、表格和图片信息
- 参数:
file_path
- Word文档的本地路径 - 返回: 文档的文本内容、表格和图片信息
- 特点: 使用python-docx库提供高质量的文本和表格提取
4. Excel文件处理
使用excel
工具可以解析Excel文件,提供完整的表格数据和结构信息。
- 用法:
excel /path/to/spreadsheet.xlsx
- 功能: 解析Excel文件的所有工作表
- 参数:
file_path
- Excel文件的本地路径 - 返回:
- 文件基本信息(文件名、工作表数量)
- 每个工作表的详细信息:
- 行数和列数
- 列名列表
- 完整的表格数据
- 特点:
- 使用pandas和openpyxl提供高质量的表格数据处理
- 支持多工作表处理
- 自动处理数据类型转换
5. 网页内容获取
使用url
工具可以获取任何网页的内容。
- 用法:
url https://example.com
- 参数:
url
- 要获取内容的网站URL - 返回: 网页的文本内容
- 特点:
- 完整的HTTP错误处理
- 超时管理
- 自动编码处理
技术特点
本框架采用了多种技术来优化文件处理性能:
- 智能文件类型识别
- 自动根据文件扩展名选择合适的处理工具
- 提供统一的文件处理接口
- 高效的文档处理
- PDF处理:支持快速预览和完整解析两种模式
- Word处理:精确提取文本、表格和图片
- Excel处理:高效处理大型表格数据
- 内存优化
- 使用临时文件管理大型文件
- 自动清理临时资源
- 分块处理大型文档
- 错误处理
- 完整的异常捕获和处理
- 详细的错误信息反馈
- 优雅的失败处理机制
文档处理技术细节
PDF处理
- 多层次处理策略:
- 首先尝试使用PyMuPDF(fitz)提取内容(速度快、准确度高)
- 如果失败,回退到PymuPDF4llm(专为大语言模型优化)
- 最后尝试PyPDF2作为最终备用方案
- 性能优化:
- 限制处理的最大页数(完整模式: 30页,快速模式: 50页)
- 图片处理优化(DPI调整、大小限制)
- 多线程处理加速
- 错误处理:
- 详细的错误信息和提示
- 备用处理方法,确保服务稳定性
- 超时保护机制(5分钟超时设置)
Word文档处理
- 文档结构解析:
- 提取文档属性(标题、作者、创建时间等)
- 段落内容提取,保留原始格式
- 表格转换为Markdown格式
- 图片信息:
- 提供文档中图片的数量信息
- 图片引用关系识别
项目结构
本框架采用模块化设计,便于扩展和维护:
Copy
开发指南
如何开发新工具
- 在
tools
目录下创建一个新的Python文件,如your_tool.py
- 导入必要的依赖和基类
- 创建一个继承自
BaseTool
的工具类 - 使用
@ToolRegistry.register
装饰器注册工具 - 实现工具的
execute
方法
工具模板示例
Copy
部署指南
Docker部署(推荐)
- 初始设置:
Copy
- 使用Docker Compose:
Copy
- 访问服务:
- SSE端点: http://localhost:8000/sse
- Cursor IDE配置:
- 设置 → 功能 → 添加MCP服务器
- 类型: "sse"
- URL:
http://localhost:8000/sse
传统Python部署
- 安装系统依赖:
Copy
- 安装Python依赖:
Copy
- 启动服务:
Copy
配置
环境变量
在.env
文件中配置:
MCP_SERVER_PORT
: 服务器端口(默认: 8000)MCP_SERVER_HOST
: 绑定地址(默认: 0.0.0.0)DEBUG
: 调试模式(默认: false)MCP_USER_AGENT
: 自定义User-Agent
依赖项
主要依赖:
mcp
: Model Context Protocol实现PyMuPDF
: PDF文档处理python-docx
: Word文档处理pandas
和openpyxl
: Excel文件处理httpx
: 异步HTTP客户端anyio
: 异步I/O支持click
: 命令行接口
贡献指南
- Fork仓库
- 创建功能分支 (
git checkout -b feature/amazing-feature
) - 提交更改 (
git commit -m 'Add some amazing feature'
) - 推送到分支 (
git push origin feature/amazing-feature
) - 打开Pull Request
许可证
本项目采用MIT许可证 - 详情请参阅LICENSE文件。
This server cannot be installed
A powerful Model Context Protocol framework that extends Cursor IDE with tools for web content retrieval, PDF processing, and Word document parsing.