MCP Development Framework
by aigo666
- .lh
{
"sourceFile": "README.md",
"activeCommit": 0,
"commits": [
{
"activePatchIndex": 25,
"patches": [
{
"date": 1741245187085,
"content": "Index: \n===================================================================\n--- \n+++ \n"
},
{
"date": 1741245212706,
"content": "Index: \n===================================================================\n--- \n+++ \n@@ -92,8 +92,22 @@\n # Or install via pip (any OS)\n pip install uv\n ```\n \n+Install system dependencies for PDF processing:\n+\n+```bash\n+# On Ubuntu/Debian\n+sudo apt-get install poppler-utils\n+\n+# On macOS\n+brew install poppler\n+\n+# On Windows\n+# Download and install poppler from http://blog.alivate.com.au/poppler-windows/\n+# And add the bin directory to your PATH\n+```\n+\n Start the server using either stdio (default) or SSE transport:\n \n ```bash\n # Install the package with development dependencies\n"
},
{
"date": 1741245907553,
"content": "Index: \n===================================================================\n--- \n+++ \n@@ -81,8 +81,15 @@\n - Add new MCP server\n - Type: Select \"sse\"\n - URL: Enter `http://localhost:8000/sse`\n \n+6. 访问本地文件:\n+ - 默认情况下,Docker容器无法访问主机(您的电脑)上的文件\n+ - 在`docker-compose.yml`文件中,我们已经将`/Users/liuyanzhi/Desktop`目录挂载到容器内的`/host_files`目录\n+ - 要访问您桌面上的PDF文件,请使用路径`/host_files/文件名.pdf`\n+ - 例如,要访问`/Users/liuyanzhi/Desktop/2024-刘彦志-设计文档/2024-01-09-还款流程优化方案设计-刘彦志-互联网事业部.pdf`,请使用路径`/host_files/2024-刘彦志-设计文档/2024-01-09-还款流程优化方案设计-刘彦志-互联网事业部.pdf`\n+ - 如果需要访问其他目录,请修改`docker-compose.yml`文件中的`volumes`部分\n+\n ### Traditional Setup\n \n First, install the uv package manager:\n \n"
},
{
"date": 1741246496844,
"content": "Index: \n===================================================================\n--- \n+++ \n@@ -17,9 +17,38 @@\n 3. **PDF文档解析工具 (file)**\n - 解析PDF文档并提取文本和图片内容\n - 参数: `file_path` - PDF文件的本地路径\n - 返回: 文档的文本内容和图片(以base64编码形式)\n+ - 注意: 对于大型文件,处理可能需要较长时间,并且可能会超时\n \n+4. **PDF快速预览工具 (quick_pdf)**\n+ - 快速预览PDF文档内容(仅提取文本,不包含图片)\n+ - 参数: `file_path` - PDF文件的本地路径\n+ - 返回: 文档的文本内容\n+ - 适用于: 大型PDF文件或需要快速查看内容时\n+\n+## PDF处理性能优化\n+\n+为了提高PDF处理性能并避免超时错误,我们实施了以下优化:\n+\n+1. **文本处理优化**:\n+ - 限制处理的最大页数(完整模式: 30页,快速模式: 50页)\n+ - 提供处理进度反馈\n+\n+2. **图片处理优化**:\n+ - 降低DPI值(从150降至100)以加快处理速度\n+ - 限制处理图片的最大页数(10页)\n+ - 调整图片大小和质量以减小数据量\n+ - 使用多线程加速图片处理\n+\n+3. **超时处理**:\n+ - 增加服务器超时设置(5分钟)\n+ - 添加详细的错误处理和提示信息\n+\n+4. **大文件处理**:\n+ - 对大文件(>10MB)提供警告\n+ - 提供快速预览模式,仅提取文本内容\n+\n ## Quick Start\n \n 1. Click \"Deploy to Heroku\" button\n \n"
},
{
"date": 1741250154683,
"content": "Index: \n===================================================================\n--- \n+++ \n@@ -5,23 +5,19 @@\n \n \n ## 可用工具\n \n-1. **网站内容获取工具 (mcp_fetch)**\n+1. **网站内容获取工具 (url)**\n - 获取指定URL的网站内容\n - 参数: `url` - 要获取内容的网站URL\n \n-2. **服务器心情查询工具 (mood)**\n- - 查询服务器的\"心情\"\n- - 参数: `question` - 询问服务器心情的问题\n-\n-3. **PDF文档解析工具 (file)**\n+2. **PDF文档解析工具 (file)**\n - 解析PDF文档并提取文本和图片内容\n - 参数: `file_path` - PDF文件的本地路径\n - 返回: 文档的文本内容和图片(以base64编码形式)\n - 注意: 对于大型文件,处理可能需要较长时间,并且可能会超时\n \n-4. **PDF快速预览工具 (quick_pdf)**\n+3. **PDF快速预览工具 (quick_pdf)**\n - 快速预览PDF文档内容(仅提取文本,不包含图片)\n - 参数: `file_path` - PDF文件的本地路径\n - 返回: 文档的文本内容\n - 适用于: 大型PDF文件或需要快速查看内容时\n"
},
{
"date": 1741251383724,
"content": "Index: \n===================================================================\n--- \n+++ \n@@ -1,195 +1,118 @@\n-# MCP Server Template for Cursor IDE\n-\n-A simple template for creating custom tools for Cursor IDE using Model Context Protocol (MCP). Create your own repository from this template, modify the tools, and connect them to your Cursor IDE.\n-\n-\n-\n+# MCP服务器模板用于Cursor IDE\n+一个简单的模板,用于使用模型上下文协议(MCP)为Cursor IDE创建自定义工具。从此模板创建自己的仓库,修改工具,并将其连接到您的Cursor IDE。\n ## 可用工具\n-\n 1. **网站内容获取工具 (url)**\n - 获取指定URL的网站内容\n - 参数: `url` - 要获取内容的网站URL\n-\n 2. **PDF文档解析工具 (file)**\n - 解析PDF文档并提取文本和图片内容\n - 参数: `file_path` - PDF文件的本地路径\n - 返回: 文档的文本内容和图片(以base64编码形式)\n - 注意: 对于大型文件,处理可能需要较长时间,并且可能会超时\n-\n 3. **PDF快速预览工具 (quick_pdf)**\n - 快速预览PDF文档内容(仅提取文本,不包含图片)\n - 参数: `file_path` - PDF文件的本地路径\n - 返回: 文档的文本内容\n - 适用于: 大型PDF文件或需要快速查看内容时\n-\n ## PDF处理性能优化\n-\n 为了提高PDF处理性能并避免超时错误,我们实施了以下优化:\n-\n 1. **文本处理优化**:\n - 限制处理的最大页数(完整模式: 30页,快速模式: 50页)\n - 提供处理进度反馈\n-\n 2. **图片处理优化**:\n - 降低DPI值(从150降至100)以加快处理速度\n - 限制处理图片的最大页数(10页)\n - 调整图片大小和质量以减小数据量\n - 使用多线程加速图片处理\n-\n 3. **超时处理**:\n - 增加服务器超时设置(5分钟)\n - 添加详细的错误处理和提示信息\n-\n 4. **大文件处理**:\n - 对大文件(>10MB)提供警告\n - 提供快速预览模式,仅提取文本内容\n-\n-## Quick Start\n-\n-1. Click \"Deploy to Heroku\" button\n-\n- [](https://heroku.com/deploy?template=https://github.com/kirill-markin/weaviate-mcp-server)\n-\n-2. After deployment, configure Cursor:\n- - Open Cursor Settings → Features\n- - Add new MCP server\n- - Use your Heroku URL with `/sse` path (e.g., `https://<your-app-name>.herokuapp.com/sse`)\n-\n-3. Test your agent's mood in Cursor:\n- - Ask your agent \"Please ask about our server mood and let me know how it is.\"\n- - The server will respond with a cheerful message and a heart ❤️\n-\n-## Alternative Setup Methods\n-\n-You can run the server in three ways: using Docker, traditional Python setup, or directly in Cursor IDE.\n-\n-### Docker Setup\n-\n-The project includes Docker support for easy deployment:\n-\n-1. Initial setup:\n+您可以通过三种方式运行服务器:使用Docker、传统的Python设置或直接在Cursor IDE中。\n+### Docker设置\n+该项目包括Docker支持,便于部署:\n+1. 初始设置:\n ```bash\n-# Clone the repository\n+# 克隆仓库\n git clone https://github.com/kirill-markin/weaviate-mcp-server.git\n cd weaviate-mcp-server\n-\n-# Create environment file\n+# 创建环境文件\n cp .env.example .env\n ```\n-\n-2. Build and run using Docker Compose:\n+2. 使用Docker Compose构建并运行:\n ```bash\n-# Build and start the server\n+# 构建并启动服务器\n docker compose up --build -d\n-\n-# View logs\n+# 查看日志\n docker compose logs -f\n-\n-# Check server status\n+# 检查服务器状态\n docker compose ps\n-\n-# Stop the server\n+# 停止服务器\n docker compose down\n ```\n-\n-3. The server will be available at:\n- - SSE endpoint: http://localhost:8000/sse\n-\n-4. Quick test:\n+3. 服务器将可以在以下地址访问:\n+ - SSE端点: http://localhost:8000/sse\n+4. 快速测试:\n ```bash\n-# Test the server endpoint\n+# 测试服务器端点\n curl -i http://localhost:8000/sse\n ```\n-\n-5. Connect to Cursor IDE:\n- - Open Cursor Settings → Features\n- - Add new MCP server\n- - Type: Select \"sse\"\n- - URL: Enter `http://localhost:8000/sse`\n-\n-6. 访问本地文件:\n+5. 连接到Cursor IDE:\n+ - 打开Cursor设置 → 功能\n+ - 添加新的MCP服务器\n+ - 类型: 选择“sse”\n+ - URL: 输入`http://localhost:8000/sse`\n+6. 访问本地文件:\n - 默认情况下,Docker容器无法访问主机(您的电脑)上的文件\n - 在`docker-compose.yml`文件中,我们已经将`/Users/liuyanzhi/Desktop`目录挂载到容器内的`/host_files`目录\n - 要访问您桌面上的PDF文件,请使用路径`/host_files/文件名.pdf`\n - 例如,要访问`/Users/liuyanzhi/Desktop/2024-刘彦志-设计文档/2024-01-09-还款流程优化方案设计-刘彦志-互联网事业部.pdf`,请使用路径`/host_files/2024-刘彦志-设计文档/2024-01-09-还款流程优化方案设计-刘彦志-互联网事业部.pdf`\n - 如果需要访问其他目录,请修改`docker-compose.yml`文件中的`volumes`部分\n-\n-### Traditional Setup\n-\n-First, install the uv package manager:\n-\n+### 传统设置\n+首先,安装uv包管理器:\n ```bash\n-# Install uv on macOS\n+# 在macOS上安装uv\n brew install uv\n-# Or install via pip (any OS)\n+# 或通过pip安装(任何操作系统)\n pip install uv\n ```\n-\n-Install system dependencies for PDF processing:\n-\n+安装PDF处理的系统依赖:\n ```bash\n-# On Ubuntu/Debian\n+# 在Ubuntu/Debian上\n sudo apt-get install poppler-utils\n-\n-# On macOS\n+# 在macOS上\n brew install poppler\n-\n-# On Windows\n-# Download and install poppler from http://blog.alivate.com.au/poppler-windows/\n-# And add the bin directory to your PATH\n+# 在Windows上\n+# 从http://blog.alivate.com.au/poppler-windows/下载并安装poppler\n+# 并将bin目录添加到您的PATH中\n ```\n-\n-Start the server using either stdio (default) or SSE transport:\n-\n+使用stdio(默认)或SSE传输启动服务器:\n ```bash\n-# Install the package with development dependencies\n+# 安装开发依赖的包\n uv pip install -e \".[dev]\"\n-\n-# Using stdio transport (default)\n+# 使用stdio传输(默认)\n uv run mcp-simple-tool\n-\n-# Using SSE transport on custom port\n+# 使用自定义端口的SSE传输\n uv run mcp-simple-tool --transport sse --port 8000\n-\n-# Run tests\n+# 运行测试\n uv run pytest -v\n ```\n-\n-After installation, you can connect the server directly to Cursor IDE:\n-\n-1. Right-click on the `cursor-run-mcp-server.sh` file in Cursor\n-2. Select \"Copy Path\" to copy the absolute path\n-3. Open Cursor Settings (gear icon)\n-4. Navigate to Features tab\n-5. Scroll down to \"MCP Servers\"\n-6. Click \"Add new MCP server\"\n-7. Fill in the form:\n- - Name: Choose any name (e.g., \"my-mcp-server-1\")\n- - Type: Select \"stdio\" (not \"sse\" because we run the server locally)\n- - Command: Paste the absolute path to `cursor-run-mcp-server.sh` that you copied earlier. For example: `/Users/kirillmarkin/weaviate-mcp-server/cursor-run-mcp-server.sh`\n-\n-### Environment Variables\n-\n-Available environment variables (can be set in `.env`):\n-\n-- `MCP_SERVER_PORT` (default: 8000) - Port to run the server on\n-- `MCP_SERVER_HOST` (default: 0.0.0.0) - Host to bind the server to\n-- `DEBUG` (default: false) - Enable debug mode\n-- `MCP_USER_AGENT` - Custom User-Agent for website fetching\n-\n-## Additional options\n-\n-### Installing via Smithery\n-\n-[](https://smithery.ai/server/@kirill-markin/example-mcp-server)\n-\n-To install MCP Server Template for Cursor IDE for Claude Desktop automatically via [Smithery](https://smithery.ai/server/@kirill-markin/example-mcp-server):\n-\n-```bash\n-npx -y @smithery/cli install @kirill-markin/example-mcp-server --client claude\n-```\n-\n-### Glama server review\n-\n-<a href=\"https://glama.ai/mcp/servers/jgisqn8zco\"><img width=\"380\" height=\"200\" src=\"https://glama.ai/mcp/servers/jgisqn8zco/badge\" alt=\"Server Template for Cursor IDE MCP server\" /></a>\n-\n+安装后,您可以将服务器直接连接到Cursor IDE:\n+1. 在Cursor中右键单击`cursor-run-mcp-server.sh`文件\n+2. 选择“复制路径”以复制绝对路径\n+3. 打开Cursor设置(齿轮图标)\n+4. 导航到功能选项卡\n+5. 向下滚动到“MCP服务器”\n+6. 点击“添加新MCP服务器”\n+7. 填写表单:\n+ - 名称: 选择任何名称(例如,“my-mcp-server-1”)\n+ - 类型: 选择“stdio”(而不是“sse”,因为我们在本地运行服务器)\n+ - 命令: 粘贴您之前复制的`cursor-run-mcp-server.sh`的绝对路径。例如:`/Users/kirillmarkin/weaviate-mcp-server/cursor-run-mcp-server.sh`\n+### 环境变量\n+可用的环境变量(可以在`.env`中设置):\n+- `MCP_SERVER_PORT`(默认: 8000) - 服务器运行的端口\n+- `MCP_SERVER_HOST`(默认: 0.0.0.0) - 绑定服务器的主机\n+- `DEBUG`(默认: false) - 启用调试模式\n+- `MCP_USER_AGENT` - 网站抓取的自定义User-Agent\n"
},
{
"date": 1741252765267,
"content": "Index: \n===================================================================\n--- \n+++ \n@@ -1,118 +1,159 @@\n-# MCP服务器模板用于Cursor IDE\n-一个简单的模板,用于使用模型上下文协议(MCP)为Cursor IDE创建自定义工具。从此模板创建自己的仓库,修改工具,并将其连接到您的Cursor IDE。\n-## 可用工具\n-1. **网站内容获取工具 (url)**\n- - 获取指定URL的网站内容\n- - 参数: `url` - 要获取内容的网站URL\n-2. **PDF文档解析工具 (file)**\n- - 解析PDF文档并提取文本和图片内容\n- - 参数: `file_path` - PDF文件的本地路径\n- - 返回: 文档的文本内容和图片(以base64编码形式)\n- - 注意: 对于大型文件,处理可能需要较长时间,并且可能会超时\n-3. **PDF快速预览工具 (quick_pdf)**\n- - 快速预览PDF文档内容(仅提取文本,不包含图片)\n- - 参数: `file_path` - PDF文件的本地路径\n- - 返回: 文档的文本内容\n- - 适用于: 大型PDF文件或需要快速查看内容时\n-## PDF处理性能优化\n-为了提高PDF处理性能并避免超时错误,我们实施了以下优化:\n-1. **文本处理优化**:\n+# MCP开发框架\n+\n+一个强大的MCP(Model Context Protocol)开发框架,用于创建与大语言模型交互的自定义工具。该框架提供了一套完整的工具集,可以轻松地扩展Cursor IDE的功能,实现网页内容获取和PDF文档处理等高级功能。\n+\n+## 主要功能\n+\n+本框架提供了以下核心功能:\n+\n+### 1. 网页内容获取\n+\n+使用`url`工具可以获取任何网页的内容,支持完整的HTTP错误处理和超时管理。\n+\n+- **用法**: `url https://example.com`\n+- **参数**: `url` - 要获取内容的网站URL\n+- **返回**: 网页的文本内容\n+\n+### 2. PDF文档处理\n+\n+框架提供了两种PDF处理工具,满足不同场景的需求:\n+\n+#### 完整PDF解析 (file)\n+\n+- **用法**: `file /path/to/document.pdf`\n+- **功能**: 解析PDF文档并提取文本和图片内容\n+- **参数**: `file_path` - PDF文件的本地路径\n+- **返回**: 文档的文本内容(Markdown格式)和图片信息\n+- **特点**: 使用PymuPDF4llm库提供高质量的文本提取和图像处理\n+\n+#### 快速PDF预览 (quick_pdf)\n+\n+- **用法**: `quick_pdf /path/to/document.pdf`\n+- **功能**: 快速预览PDF文档内容(仅提取文本)\n+- **参数**: `file_path` - PDF文件的本地路径\n+- **返回**: 文档的文本内容(Markdown格式)\n+- **适用场景**: 大型PDF文件或只需要文本内容时\n+\n+## PDF处理技术特点\n+\n+本框架使用了多种技术来优化PDF处理性能:\n+\n+1. **PymuPDF4llm集成**:\n+ - 使用专为大语言模型优化的PDF处理库\n+ - 高质量的文本提取,保留原始格式\n+ - 结构化的Markdown输出\n+\n+2. **性能优化**:\n - 限制处理的最大页数(完整模式: 30页,快速模式: 50页)\n- - 提供处理进度反馈\n-2. **图片处理优化**:\n- - 降低DPI值(从150降至100)以加快处理速度\n- - 限制处理图片的最大页数(10页)\n- - 调整图片大小和质量以减小数据量\n- - 使用多线程加速图片处理\n-3. **超时处理**:\n- - 增加服务器超时设置(5分钟)\n- - 添加详细的错误处理和提示信息\n-4. **大文件处理**:\n+ - 图片处理优化(DPI调整、大小限制)\n+ - 多线程处理加速\n+\n+3. **错误处理**:\n+ - 详细的错误信息和提示\n+ - 备用处理方法,确保服务稳定性\n+ - 超时保护机制(5分钟超时设置)\n+\n+4. **大文件支持**:\n - 对大文件(>10MB)提供警告\n- - 提供快速预览模式,仅提取文本内容\n-您可以通过三种方式运行服务器:使用Docker、传统的Python设置或直接在Cursor IDE中。\n-### Docker设置\n+ - 快速预览模式,适用于大型文档\n+ - 进度反馈,提供处理状态\n+\n+## 部署方式\n+\n+您可以通过以下方式部署和使用本框架:\n+\n+### Docker部署(推荐)\n+\n 该项目包括Docker支持,便于部署:\n+\n 1. 初始设置:\n ```bash\n # 克隆仓库\n-git clone https://github.com/kirill-markin/weaviate-mcp-server.git\n-cd weaviate-mcp-server\n+git clone https://github.com/your-username/mcp-development-framework.git\n+cd mcp-development-framework\n+\n # 创建环境文件\n cp .env.example .env\n ```\n+\n 2. 使用Docker Compose构建并运行:\n ```bash\n # 构建并启动服务器\n docker compose up --build -d\n+\n # 查看日志\n docker compose logs -f\n+\n # 检查服务器状态\n docker compose ps\n+\n # 停止服务器\n docker compose down\n ```\n+\n 3. 服务器将可以在以下地址访问:\n - SSE端点: http://localhost:8000/sse\n-4. 快速测试:\n-```bash\n-# 测试服务器端点\n-curl -i http://localhost:8000/sse\n-```\n-5. 连接到Cursor IDE:\n+\n+4. 连接到Cursor IDE:\n - 打开Cursor设置 → 功能\n - 添加新的MCP服务器\n- - 类型: 选择“sse”\n+ - 类型: 选择\"sse\"\n - URL: 输入`http://localhost:8000/sse`\n-6. 访问本地文件:\n+\n+5. 访问本地文件:\n - 默认情况下,Docker容器无法访问主机(您的电脑)上的文件\n- - 在`docker-compose.yml`文件中,我们已经将`/Users/liuyanzhi/Desktop`目录挂载到容器内的`/host_files`目录\n- - 要访问您桌面上的PDF文件,请使用路径`/host_files/文件名.pdf`\n- - 例如,要访问`/Users/liuyanzhi/Desktop/2024-刘彦志-设计文档/2024-01-09-还款流程优化方案设计-刘彦志-互联网事业部.pdf`,请使用路径`/host_files/2024-刘彦志-设计文档/2024-01-09-还款流程优化方案设计-刘彦志-互联网事业部.pdf`\n- - 如果需要访问其他目录,请修改`docker-compose.yml`文件中的`volumes`部分\n-### 传统设置\n-首先,安装uv包管理器:\n+ - 在`docker-compose.yml`文件中配置卷挂载,将本地目录挂载到容器内\n+ - 例如,如果挂载了`/Users/username/Documents`到`/host_docs`,则使用`/host_docs/file.pdf`访问文件\n+\n+### 传统Python部署\n+\n+首先,安装uv包管理器和系统依赖:\n+\n ```bash\n-# 在macOS上安装uv\n-brew install uv\n-# 或通过pip安装(任何操作系统)\n+# 安装uv\n pip install uv\n-```\n-安装PDF处理的系统依赖:\n-```bash\n+\n+# 安装PDF处理的系统依赖\n # 在Ubuntu/Debian上\n sudo apt-get install poppler-utils\n # 在macOS上\n brew install poppler\n # 在Windows上\n # 从http://blog.alivate.com.au/poppler-windows/下载并安装poppler\n # 并将bin目录添加到您的PATH中\n ```\n-使用stdio(默认)或SSE传输启动服务器:\n+\n+然后安装和运行服务器:\n+\n ```bash\n # 安装开发依赖的包\n uv pip install -e \".[dev]\"\n+\n # 使用stdio传输(默认)\n uv run mcp-simple-tool\n+\n # 使用自定义端口的SSE传输\n uv run mcp-simple-tool --transport sse --port 8000\n+\n # 运行测试\n uv run pytest -v\n ```\n-安装后,您可以将服务器直接连接到Cursor IDE:\n-1. 在Cursor中右键单击`cursor-run-mcp-server.sh`文件\n-2. 选择“复制路径”以复制绝对路径\n-3. 打开Cursor设置(齿轮图标)\n-4. 导航到功能选项卡\n-5. 向下滚动到“MCP服务器”\n-6. 点击“添加新MCP服务器”\n-7. 填写表单:\n- - 名称: 选择任何名称(例如,“my-mcp-server-1”)\n- - 类型: 选择“stdio”(而不是“sse”,因为我们在本地运行服务器)\n- - 命令: 粘贴您之前复制的`cursor-run-mcp-server.sh`的绝对路径。例如:`/Users/kirillmarkin/weaviate-mcp-server/cursor-run-mcp-server.sh`\n-### 环境变量\n+\n+## 环境变量配置\n+\n 可用的环境变量(可以在`.env`中设置):\n+\n - `MCP_SERVER_PORT`(默认: 8000) - 服务器运行的端口\n - `MCP_SERVER_HOST`(默认: 0.0.0.0) - 绑定服务器的主机\n - `DEBUG`(默认: false) - 启用调试模式\n - `MCP_USER_AGENT` - 网站抓取的自定义User-Agent\n+\n+## 自定义开发\n+\n+本框架设计为易于扩展,您可以通过以下步骤添加自己的工具:\n+\n+1. 在`mcp_simple_tool/server.py`中实现工具功能\n+2. 在`fetch_tool`函数中添加工具处理逻辑\n+3. 在`list_tools`函数中注册工具\n+\n+详细的开发指南请参考[开发文档](docs/development.md)。\n"
},
{
"date": 1741253417170,
"content": "Index: \n===================================================================\n--- \n+++ \n@@ -155,5 +155,4 @@\n 1. 在`mcp_simple_tool/server.py`中实现工具功能\n 2. 在`fetch_tool`函数中添加工具处理逻辑\n 3. 在`list_tools`函数中注册工具\n \n-详细的开发指南请参考[开发文档](docs/development.md)。\n"
},
{
"date": 1741258880040,
"content": "Index: \n===================================================================\n--- \n+++ \n@@ -22,10 +22,16 @@\n \n - **用法**: `file /path/to/document.pdf`\n - **功能**: 解析PDF文档并提取文本和图片内容\n - **参数**: `file_path` - PDF文件的本地路径\n-- **返回**: 文档的文本内容(Markdown格式)和图片信息\n-- **特点**: 使用PymuPDF4llm库提供高质量的文本提取和图像处理\n+- **返回**: \n+ - 文档的文本内容(Markdown格式)\n+ - 图片内容分析(包括OCR文本识别和图像类型识别)\n+- **特点**: \n+ - 使用PymuPDF4llm库提供高质量的文本提取\n+ - 集成OCR技术识别图片中的文本\n+ - 智能分析图片类型(文本图像、图表/图形、照片等)\n+ - 评估图片质量和清晰度\n \n #### 快速PDF预览 (quick_pdf)\n \n - **用法**: `quick_pdf /path/to/document.pdf`\n@@ -42,19 +48,25 @@\n - 使用专为大语言模型优化的PDF处理库\n - 高质量的文本提取,保留原始格式\n - 结构化的Markdown输出\n \n-2. **性能优化**:\n+2. **图像内容分析**:\n+ - OCR文本识别(支持中英文)\n+ - 图像类型智能分类\n+ - 图像质量评估\n+ - 图像特征提取\n+\n+3. **性能优化**:\n - 限制处理的最大页数(完整模式: 30页,快速模式: 50页)\n - 图片处理优化(DPI调整、大小限制)\n - 多线程处理加速\n \n-3. **错误处理**:\n+4. **错误处理**:\n - 详细的错误信息和提示\n - 备用处理方法,确保服务稳定性\n - 超时保护机制(5分钟超时设置)\n \n-4. **大文件支持**:\n+5. **大文件支持**:\n - 对大文件(>10MB)提供警告\n - 快速预览模式,适用于大型文档\n - 进度反馈,提供处理状态\n \n"
},
{
"date": 1741259380552,
"content": "Index: \n===================================================================\n--- \n+++ \n@@ -22,16 +22,10 @@\n \n - **用法**: `file /path/to/document.pdf`\n - **功能**: 解析PDF文档并提取文本和图片内容\n - **参数**: `file_path` - PDF文件的本地路径\n-- **返回**: \n- - 文档的文本内容(Markdown格式)\n- - 图片内容分析(包括OCR文本识别和图像类型识别)\n-- **特点**: \n- - 使用PymuPDF4llm库提供高质量的文本提取\n- - 集成OCR技术识别图片中的文本\n- - 智能分析图片类型(文本图像、图表/图形、照片等)\n- - 评估图片质量和清晰度\n+- **返回**: 文档的文本内容(Markdown格式)和图片信息\n+- **特点**: 使用PymuPDF4llm库提供高质量的文本提取和图像处理\n \n #### 快速PDF预览 (quick_pdf)\n \n - **用法**: `quick_pdf /path/to/document.pdf`\n@@ -48,25 +42,19 @@\n - 使用专为大语言模型优化的PDF处理库\n - 高质量的文本提取,保留原始格式\n - 结构化的Markdown输出\n \n-2. **图像内容分析**:\n- - OCR文本识别(支持中英文)\n- - 图像类型智能分类\n- - 图像质量评估\n- - 图像特征提取\n-\n-3. **性能优化**:\n+2. **性能优化**:\n - 限制处理的最大页数(完整模式: 30页,快速模式: 50页)\n - 图片处理优化(DPI调整、大小限制)\n - 多线程处理加速\n \n-4. **错误处理**:\n+3. **错误处理**:\n - 详细的错误信息和提示\n - 备用处理方法,确保服务稳定性\n - 超时保护机制(5分钟超时设置)\n \n-5. **大文件支持**:\n+4. **大文件支持**:\n - 对大文件(>10MB)提供警告\n - 快速预览模式,适用于大型文档\n - 进度反馈,提供处理状态\n \n"
},
{
"date": 1741259553064,
"content": "Index: \n===================================================================\n--- \n+++ \n@@ -22,10 +22,17 @@\n \n - **用法**: `file /path/to/document.pdf`\n - **功能**: 解析PDF文档并提取文本和图片内容\n - **参数**: `file_path` - PDF文件的本地路径\n-- **返回**: 文档的文本内容(Markdown格式)和图片信息\n-- **特点**: 使用PymuPDF4llm库提供高质量的文本提取和图像处理\n+- **返回**: \n+ - 文档的文本内容(Markdown格式)\n+ - 图片内容分析(包括OCR文本提取和图像类型识别)\n+ - 图表和图形的自动识别\n+- **特点**: \n+ - 使用PymuPDF4llm库提供高质量的文本提取\n+ - 集成OCR技术识别图片中的文字\n+ - 智能分析图像类型(照片、图表、线条图等)\n+ - 提供图像清晰度评估\n \n #### 快速PDF预览 (quick_pdf)\n \n - **用法**: `quick_pdf /path/to/document.pdf`\n@@ -42,19 +49,25 @@\n - 使用专为大语言模型优化的PDF处理库\n - 高质量的文本提取,保留原始格式\n - 结构化的Markdown输出\n \n-2. **性能优化**:\n+2. **图像内容分析**:\n+ - OCR技术提取图片中的文字内容\n+ - 图像类型智能识别(照片、图表、线条图等)\n+ - 图像特征分析(颜色分布、边缘密度等)\n+ - 图像质量评估(清晰度分析)\n+\n+3. **性能优化**:\n - 限制处理的最大页数(完整模式: 30页,快速模式: 50页)\n - 图片处理优化(DPI调整、大小限制)\n - 多线程处理加速\n \n-3. **错误处理**:\n+4. **错误处理**:\n - 详细的错误信息和提示\n - 备用处理方法,确保服务稳定性\n - 超时保护机制(5分钟超时设置)\n \n-4. **大文件支持**:\n+5. **大文件支持**:\n - 对大文件(>10MB)提供警告\n - 快速预览模式,适用于大型文档\n - 进度反馈,提供处理状态\n \n"
},
{
"date": 1741259593726,
"content": "Index: \n===================================================================\n--- \n+++ \n@@ -22,17 +22,10 @@\n \n - **用法**: `file /path/to/document.pdf`\n - **功能**: 解析PDF文档并提取文本和图片内容\n - **参数**: `file_path` - PDF文件的本地路径\n-- **返回**: \n- - 文档的文本内容(Markdown格式)\n- - 图片内容分析(包括OCR文本提取和图像类型识别)\n- - 图表和图形的自动识别\n-- **特点**: \n- - 使用PymuPDF4llm库提供高质量的文本提取\n- - 集成OCR技术识别图片中的文字\n- - 智能分析图像类型(照片、图表、线条图等)\n- - 提供图像清晰度评估\n+- **返回**: 文档的文本内容(Markdown格式)和图片信息\n+- **特点**: 使用PymuPDF4llm库提供高质量的文本提取和图像处理\n \n #### 快速PDF预览 (quick_pdf)\n \n - **用法**: `quick_pdf /path/to/document.pdf`\n@@ -49,25 +42,19 @@\n - 使用专为大语言模型优化的PDF处理库\n - 高质量的文本提取,保留原始格式\n - 结构化的Markdown输出\n \n-2. **图像内容分析**:\n- - OCR技术提取图片中的文字内容\n- - 图像类型智能识别(照片、图表、线条图等)\n- - 图像特征分析(颜色分布、边缘密度等)\n- - 图像质量评估(清晰度分析)\n-\n-3. **性能优化**:\n+2. **性能优化**:\n - 限制处理的最大页数(完整模式: 30页,快速模式: 50页)\n - 图片处理优化(DPI调整、大小限制)\n - 多线程处理加速\n \n-4. **错误处理**:\n+3. **错误处理**:\n - 详细的错误信息和提示\n - 备用处理方法,确保服务稳定性\n - 超时保护机制(5分钟超时设置)\n \n-5. **大文件支持**:\n+4. **大文件支持**:\n - 对大文件(>10MB)提供警告\n - 快速预览模式,适用于大型文档\n - 进度反馈,提供处理状态\n \n"
},
{
"date": 1741408368994,
"content": "Index: \n===================================================================\n--- \n+++ \n@@ -1,7 +1,7 @@\n # MCP开发框架\n \n-一个强大的MCP(Model Context Protocol)开发框架,用于创建与大语言模型交互的自定义工具。该框架提供了一套完整的工具集,可以轻松地扩展Cursor IDE的功能,实现网页内容获取和PDF文档处理等高级功能。\n+一个强大的MCP(Model Context Protocol)开发框架,用于创建与大语言模型交互的自定义工具。该框架提供了一套完整的工具集,可以轻松地扩展Cursor IDE的功能,实现网页内容获取、PDF文档处理和Word文档解析等高级功能。\n \n ## 主要功能\n \n 本框架提供了以下核心功能:\n@@ -33,17 +33,29 @@\n - **参数**: `file_path` - PDF文件的本地路径\n - **返回**: 文档的文本内容(Markdown格式)\n - **适用场景**: 大型PDF文件或只需要文本内容时\n \n-## PDF处理技术特点\n+### 3. Word文档解析\n \n-本框架使用了多种技术来优化PDF处理性能:\n+使用`word`工具可以解析Word文档(.docx和.doc格式),提取文本内容、表格和图片信息。\n \n-1. **PymuPDF4llm集成**:\n- - 使用专为大语言模型优化的PDF处理库\n- - 高质量的文本提取,保留原始格式\n- - 结构化的Markdown输出\n+- **用法**: `word /path/to/document.docx`\n+- **功能**: 解析Word文档并提取文本内容、表格和图片信息\n+- **参数**: `file_path` - Word文档的本地路径\n+- **返回**: 文档的文本内容(Markdown格式)、表格和图片信息\n+- **特点**: 使用python-docx库提供高质量的文本和表格提取\n \n+## 文档处理技术特点\n+\n+本框架使用了多种技术来优化文档处理性能:\n+\n+### PDF处理\n+\n+1. **多层次处理策略**:\n+ - 首先尝试使用PyMuPDF(fitz)提取内容(速度快、准确度高)\n+ - 如果失败,回退到PymuPDF4llm(专为大语言模型优化)\n+ - 最后尝试PyPDF2作为最终备用方案\n+\n 2. **性能优化**:\n - 限制处理的最大页数(完整模式: 30页,快速模式: 50页)\n - 图片处理优化(DPI调整、大小限制)\n - 多线程处理加速\n@@ -52,13 +64,108 @@\n - 详细的错误信息和提示\n - 备用处理方法,确保服务稳定性\n - 超时保护机制(5分钟超时设置)\n \n-4. **大文件支持**:\n- - 对大文件(>10MB)提供警告\n- - 快速预览模式,适用于大型文档\n- - 进度反馈,提供处理状态\n+### Word文档处理\n \n+1. **文档结构解析**:\n+ - 提取文档属性(标题、作者、创建时间等)\n+ - 段落内容提取,保留原始格式\n+ - 表格转换为Markdown格式\n+\n+2. **图片信息**:\n+ - 提供文档中图片的数量信息\n+ - 图片引用关系识别\n+\n+## 模块化工具框架\n+\n+本框架采用模块化设计,便于扩展和维护:\n+\n+```\n+mcp_simple_tool/\n+├── tools/\n+│ ├── __init__.py # 定义工具基类和注册器\n+│ ├── loader.py # 工具加载器,自动加载所有工具\n+│ ├── url_tool.py # URL工具实现\n+│ ├── pdf_tool.py # PDF解析工具实现\n+│ ├── quick_pdf_tool.py # 快速PDF预览工具实现\n+│ └── word_tool.py # Word文档解析工具实现\n+├── __init__.py\n+├── __main__.py\n+└── server.py # MCP服务器实现\n+```\n+\n+### 框架特点\n+\n+1. **自动工具发现**:\n+ - 工具加载器自动发现和加载所有工具\n+ - 无需手动注册,只需创建新工具文件\n+\n+2. **统一接口**:\n+ - 所有工具继承自`BaseTool`基类\n+ - 标准化的输入和输出格式\n+\n+3. **简单扩展**:\n+ - 只需创建新的工具类并使用`@ToolRegistry.register`装饰器\n+ - 框架自动处理工具的注册和调用\n+\n+## 如何开发新工具\n+\n+1. 在`tools`目录下创建一个新的Python文件,如`your_tool.py`\n+2. 导入必要的依赖和基类\n+3. 创建一个继承自`BaseTool`的工具类\n+4. 使用`@ToolRegistry.register`装饰器注册工具\n+5. 实现工具的`execute`方法\n+\n+### 工具模板示例\n+\n+```python\n+import mcp.types as types\n+from . import BaseTool, ToolRegistry\n+\n+@ToolRegistry.register\n+class YourTool(BaseTool):\n+ \"\"\"您的工具描述\"\"\"\n+ name = \"your_tool_name\" # 工具的唯一标识符\n+ description = \"您的工具描述\" # 工具的描述信息,将显示给用户\n+ input_schema = {\n+ \"type\": \"object\",\n+ \"required\": [\"param1\"], # 必需的参数\n+ \"properties\": {\n+ \"param1\": {\n+ \"type\": \"string\",\n+ \"description\": \"参数1的描述\",\n+ },\n+ \"param2\": {\n+ \"type\": \"integer\",\n+ \"description\": \"参数2的描述(可选)\",\n+ }\n+ },\n+ }\n+ \n+ async def execute(self, arguments: dict) -> list[types.TextContent | types.ImageContent | types.EmbeddedResource]:\n+ \"\"\"执行工具逻辑\"\"\"\n+ # 参数验证\n+ if \"param1\" not in arguments:\n+ return [types.TextContent(\n+ type=\"text\",\n+ text=\"Error: Missing required argument 'param1'\"\n+ )]\n+ \n+ # 获取参数\n+ param1 = arguments[\"param1\"]\n+ param2 = arguments.get(\"param2\", 0) # 获取可选参数,提供默认值\n+ \n+ # 执行工具逻辑\n+ result = f\"处理参数: {param1}, {param2}\"\n+ \n+ # 返回结果\n+ return [types.TextContent(\n+ type=\"text\",\n+ text=result\n+ )]\n+```\n+\n ## 部署方式\n \n 您可以通过以下方式部署和使用本框架:\n \n@@ -86,8 +193,14 @@\n \n # 检查服务器状态\n docker compose ps\n \n+# 暂停容器(不删除)\n+docker compose pause\n+\n+# 恢复已暂停的容器\n+docker compose unpause\n+\n # 停止服务器\n docker compose down\n ```\n \n@@ -147,12 +260,32 @@\n - `MCP_SERVER_HOST`(默认: 0.0.0.0) - 绑定服务器的主机\n - `DEBUG`(默认: false) - 启用调试模式\n - `MCP_USER_AGENT` - 网站抓取的自定义User-Agent\n \n-## 自定义开发\n+## 依赖项\n \n-本框架设计为易于扩展,您可以通过以下步骤添加自己的工具:\n+本项目使用以下主要依赖:\n \n-1. 在`mcp_simple_tool/server.py`中实现工具功能\n-2. 在`fetch_tool`函数中添加工具处理逻辑\n-3. 在`list_tools`函数中注册工具\n+- `mcp` - Model Context Protocol实现\n+- `PyPDF2` - PDF文档处理\n+- `PyMuPDF` - 高性能PDF文档处理\n+- `pymupdf4llm` - 为大语言模型优化的PDF处理\n+- `pdf2image` - PDF转图像处理\n+- `python-docx` - Word文档处理\n+- `httpx` - 异步HTTP客户端\n+- `anyio` - 异步I/O支持\n+- `click` - 命令行接口\n \n+## 贡献指南\n+\n+欢迎贡献!请遵循以下步骤:\n+\n+1. Fork仓库\n+2. 创建功能分支 (`git checkout -b feature/amazing-feature`)\n+3. 提交更改 (`git commit -m 'Add some amazing feature'`)\n+4. 推送到分支 (`git push origin feature/amazing-feature`)\n+5. 打开Pull Request\n+\n+## 许可证\n+\n+本项目采用MIT许可证 - 详情请参阅[LICENSE](LICENSE)文件。\n+\n"
},
{
"date": 1741494899320,
"content": "Index: \n===================================================================\n--- \n+++ \n@@ -21,9 +21,14 @@\n #### 完整PDF解析 (file)\n \n - **用法**: `file /path/to/document.pdf`\n - **功能**: 解析PDF文档并提取文本和图片内容\n-- **参数**: `file_path` - PDF文件的本地路径\n+- **参数**: \n+ - `file_path` - PDF文件的本地路径\n+ - `recognize_images` - 是否使用大模型识别图片内容(可选,默认为false)\n+ - `image_save_dir` - 图片保存目录(可选,默认为/host_images)\n+ - `api_key` - 大模型API密钥(可选,如果启用图像识别则必需)\n+ - `api_base_url` - 大模型API基础URL(可选)\n - **返回**: 文档的文本内容(Markdown格式)和图片信息\n - **特点**: 使用PymuPDF4llm库提供高质量的文本提取和图像处理\n \n #### 快速PDF预览 (quick_pdf)\n@@ -43,8 +48,23 @@\n - **参数**: `file_path` - Word文档的本地路径\n - **返回**: 文档的文本内容(Markdown格式)、表格和图片信息\n - **特点**: 使用python-docx库提供高质量的文本和表格提取\n \n+### 4. 图像识别\n+\n+使用`image_recognition`工具可以通过大模型API识别图片内容。\n+\n+- **用法**: `image_recognition /path/to/image.jpg`\n+- **功能**: 使用大模型识别图片内容\n+- **参数**: \n+ - `image_path` - 图片的本地路径或URL\n+ - `prompt` - 提示词,指导模型如何描述图片(可选)\n+ - `base_url` - API基础URL(可选)\n+ - `api_key` - API密钥(可选,如果未设置环境变量)\n+ - `model` - 使用的模型名称(可选,默认为gpt-4o)\n+- **返回**: 图片的识别结果(文本描述)\n+- **特点**: 支持本地文件和URL,可自定义提示词\n+\n ## 文档处理技术特点\n \n 本框架使用了多种技术来优化文档处理性能:\n \n@@ -75,8 +95,20 @@\n 2. **图片信息**:\n - 提供文档中图片的数量信息\n - 图片引用关系识别\n \n+### 图像识别\n+\n+1. **大模型集成**:\n+ - 支持OpenAI GPT-4o等支持图像识别的模型\n+ - 可自定义提示词,获取不同角度的图像描述\n+ - 支持本地文件和URL\n+\n+2. **PDF图像识别集成**:\n+ - 自动提取PDF中的图片并保存到指定目录\n+ - 使用大模型识别图片内容\n+ - 将识别结果集成到PDF解析结果中\n+\n ## 模块化工具框架\n \n 本框架采用模块化设计,便于扩展和维护:\n \n@@ -87,9 +119,10 @@\n │ ├── loader.py # 工具加载器,自动加载所有工具\n │ ├── url_tool.py # URL工具实现\n │ ├── pdf_tool.py # PDF解析工具实现\n │ ├── quick_pdf_tool.py # 快速PDF预览工具实现\n-│ └── word_tool.py # Word文档解析工具实现\n+│ ├── word_tool.py # Word文档解析工具实现\n+│ └── image_recognition_tool.py # 图像识别工具实现\n ├── __init__.py\n ├── __main__.py\n └── server.py # MCP服务器实现\n ```\n@@ -180,8 +213,9 @@\n cd mcp-development-framework\n \n # 创建环境文件\n cp .env.example .env\n+# 编辑.env文件,设置您的API密钥和其他配置\n ```\n \n 2. 使用Docker Compose构建并运行:\n ```bash\n@@ -212,12 +246,13 @@\n - 添加新的MCP服务器\n - 类型: 选择\"sse\"\n - URL: 输入`http://localhost:8000/sse`\n \n-5. 访问本地文件:\n+5. 访问本地文件和图片:\n - 默认情况下,Docker容器无法访问主机(您的电脑)上的文件\n - 在`docker-compose.yml`文件中配置卷挂载,将本地目录挂载到容器内\n- - 例如,如果挂载了`/Users/username/Documents`到`/host_docs`,则使用`/host_docs/file.pdf`访问文件\n+ - 例如,如果挂载了`/Users/username/Documents`到`/host_files`,则使用`/host_files/file.pdf`访问文件\n+ - 提取的图片将保存到`/host_images`目录,对应主机上的`/Users/username/Desktop/pdf_images`\n \n ### 传统Python部署\n \n 首先,安装uv包管理器和系统依赖:\n@@ -259,8 +294,11 @@\n - `MCP_SERVER_PORT`(默认: 8000) - 服务器运行的端口\n - `MCP_SERVER_HOST`(默认: 0.0.0.0) - 绑定服务器的主机\n - `DEBUG`(默认: false) - 启用调试模式\n - `MCP_USER_AGENT` - 网站抓取的自定义User-Agent\n+- `LLM_API_KEY` - 大模型API密钥,用于图像识别\n+- `LLM_API_BASE_URL`(默认: api.openai.com) - 大模型API基础URL\n+- `LLM_MODEL`(默认: gpt-4o) - 使用的大模型名称\n \n ## 依赖项\n \n 本项目使用以下主要依赖:\n"
},
{
"date": 1741495204377,
"content": "Index: \n===================================================================\n--- \n+++ \n@@ -21,14 +21,9 @@\n #### 完整PDF解析 (file)\n \n - **用法**: `file /path/to/document.pdf`\n - **功能**: 解析PDF文档并提取文本和图片内容\n-- **参数**: \n- - `file_path` - PDF文件的本地路径\n- - `recognize_images` - 是否使用大模型识别图片内容(可选,默认为false)\n- - `image_save_dir` - 图片保存目录(可选,默认为/host_images)\n- - `api_key` - 大模型API密钥(可选,如果启用图像识别则必需)\n- - `api_base_url` - 大模型API基础URL(可选)\n+- **参数**: `file_path` - PDF文件的本地路径\n - **返回**: 文档的文本内容(Markdown格式)和图片信息\n - **特点**: 使用PymuPDF4llm库提供高质量的文本提取和图像处理\n \n #### 快速PDF预览 (quick_pdf)\n@@ -48,23 +43,8 @@\n - **参数**: `file_path` - Word文档的本地路径\n - **返回**: 文档的文本内容(Markdown格式)、表格和图片信息\n - **特点**: 使用python-docx库提供高质量的文本和表格提取\n \n-### 4. 图像识别\n-\n-使用`image_recognition`工具可以通过大模型API识别图片内容。\n-\n-- **用法**: `image_recognition /path/to/image.jpg`\n-- **功能**: 使用大模型识别图片内容\n-- **参数**: \n- - `image_path` - 图片的本地路径或URL\n- - `prompt` - 提示词,指导模型如何描述图片(可选)\n- - `base_url` - API基础URL(可选)\n- - `api_key` - API密钥(可选,如果未设置环境变量)\n- - `model` - 使用的模型名称(可选,默认为gpt-4o)\n-- **返回**: 图片的识别结果(文本描述)\n-- **特点**: 支持本地文件和URL,可自定义提示词\n-\n ## 文档处理技术特点\n \n 本框架使用了多种技术来优化文档处理性能:\n \n@@ -95,20 +75,8 @@\n 2. **图片信息**:\n - 提供文档中图片的数量信息\n - 图片引用关系识别\n \n-### 图像识别\n-\n-1. **大模型集成**:\n- - 支持OpenAI GPT-4o等支持图像识别的模型\n- - 可自定义提示词,获取不同角度的图像描述\n- - 支持本地文件和URL\n-\n-2. **PDF图像识别集成**:\n- - 自动提取PDF中的图片并保存到指定目录\n- - 使用大模型识别图片内容\n- - 将识别结果集成到PDF解析结果中\n-\n ## 模块化工具框架\n \n 本框架采用模块化设计,便于扩展和维护:\n \n@@ -119,10 +87,9 @@\n │ ├── loader.py # 工具加载器,自动加载所有工具\n │ ├── url_tool.py # URL工具实现\n │ ├── pdf_tool.py # PDF解析工具实现\n │ ├── quick_pdf_tool.py # 快速PDF预览工具实现\n-│ ├── word_tool.py # Word文档解析工具实现\n-│ └── image_recognition_tool.py # 图像识别工具实现\n+│ └── word_tool.py # Word文档解析工具实现\n ├── __init__.py\n ├── __main__.py\n └── server.py # MCP服务器实现\n ```\n@@ -213,9 +180,8 @@\n cd mcp-development-framework\n \n # 创建环境文件\n cp .env.example .env\n-# 编辑.env文件,设置您的API密钥和其他配置\n ```\n \n 2. 使用Docker Compose构建并运行:\n ```bash\n@@ -246,13 +212,12 @@\n - 添加新的MCP服务器\n - 类型: 选择\"sse\"\n - URL: 输入`http://localhost:8000/sse`\n \n-5. 访问本地文件和图片:\n+5. 访问本地文件:\n - 默认情况下,Docker容器无法访问主机(您的电脑)上的文件\n - 在`docker-compose.yml`文件中配置卷挂载,将本地目录挂载到容器内\n- - 例如,如果挂载了`/Users/username/Documents`到`/host_files`,则使用`/host_files/file.pdf`访问文件\n- - 提取的图片将保存到`/host_images`目录,对应主机上的`/Users/username/Desktop/pdf_images`\n+ - 例如,如果挂载了`/Users/username/Documents`到`/host_docs`,则使用`/host_docs/file.pdf`访问文件\n \n ### 传统Python部署\n \n 首先,安装uv包管理器和系统依赖:\n@@ -294,11 +259,8 @@\n - `MCP_SERVER_PORT`(默认: 8000) - 服务器运行的端口\n - `MCP_SERVER_HOST`(默认: 0.0.0.0) - 绑定服务器的主机\n - `DEBUG`(默认: false) - 启用调试模式\n - `MCP_USER_AGENT` - 网站抓取的自定义User-Agent\n-- `LLM_API_KEY` - 大模型API密钥,用于图像识别\n-- `LLM_API_BASE_URL`(默认: api.openai.com) - 大模型API基础URL\n-- `LLM_MODEL`(默认: gpt-4o) - 使用的大模型名称\n \n ## 依赖项\n \n 本项目使用以下主要依赖:\n"
},
{
"date": 1741523940993,
"content": "Index: \n===================================================================\n--- \n+++ \n@@ -43,8 +43,21 @@\n - **参数**: `file_path` - Word文档的本地路径\n - **返回**: 文档的文本内容(Markdown格式)、表格和图片信息\n - **特点**: 使用python-docx库提供高质量的文本和表格提取\n \n+### 4. 文档智能分析\n+\n+使用`doc_analysis`工具可以通过大模型API智能分析文档内容,回答关于文档的问题。\n+\n+- **用法**: `doc_analysis /path/to/document.pdf \"文档里说了什么?\"`\n+- **功能**: 使用大模型分析文档内容并回答问题\n+- **参数**: \n+ - `file_path` - 文档的本地路径\n+ - `question` - 关于文档的问题\n+ - `model` - 使用的模型名称(可选,默认为'glm-4')\n+- **返回**: 大模型对文档内容的分析结果\n+- **特点**: 利用先进的大语言模型进行深度文档理解和问答\n+\n ## 文档处理技术特点\n \n 本框架使用了多种技术来优化文档处理性能:\n \n@@ -75,8 +88,18 @@\n 2. **图片信息**:\n - 提供文档中图片的数量信息\n - 图片引用关系识别\n \n+### 文档智能分析\n+\n+1. **大模型集成**:\n+ - 使用先进的大语言模型(如GLM-4)进行文档理解\n+ - 支持复杂问题的回答和内容总结\n+\n+2. **文件处理**:\n+ - 自动处理文件上传和格式转换\n+ - 支持多种文档格式(PDF、Word等)\n+\n ## 模块化工具框架\n \n 本框架采用模块化设计,便于扩展和维护:\n \n@@ -87,9 +110,10 @@\n │ ├── loader.py # 工具加载器,自动加载所有工具\n │ ├── url_tool.py # URL工具实现\n │ ├── pdf_tool.py # PDF解析工具实现\n │ ├── quick_pdf_tool.py # 快速PDF预览工具实现\n-│ └── word_tool.py # Word文档解析工具实现\n+│ ├── word_tool.py # Word文档解析工具实现\n+│ └── doc_analysis_tool.py # 文档智能分析工具实现\n ├── __init__.py\n ├── __main__.py\n └── server.py # MCP服务器实现\n ```\n@@ -271,8 +295,9 @@\n - `pymupdf4llm` - 为大语言模型优化的PDF处理\n - `pdf2image` - PDF转图像处理\n - `python-docx` - Word文档处理\n - `httpx` - 异步HTTP客户端\n+- `requests` - HTTP客户端,用于文件上传\n - `anyio` - 异步I/O支持\n - `click` - 命令行接口\n \n ## 贡献指南\n"
},
{
"date": 1741527645409,
"content": "Index: \n===================================================================\n--- \n+++ \n@@ -43,20 +43,27 @@\n - **参数**: `file_path` - Word文档的本地路径\n - **返回**: 文档的文本内容(Markdown格式)、表格和图片信息\n - **特点**: 使用python-docx库提供高质量的文本和表格提取\n \n-### 4. 文档智能分析\n+### 4. 大语言模型交互与文档分析\n \n-使用`doc_analysis`工具可以通过大模型API智能分析文档内容,回答关于文档的问题。\n+使用`llm`工具可以通过大模型API智能分析文档内容或直接回答问题。\n \n-- **用法**: `doc_analysis /path/to/document.pdf \"文档里说了什么?\"`\n-- **功能**: 使用大模型分析文档内容并回答问题\n+- **用法**: \n+ - 文档分析: `llm /path/to/document.pdf \"文档里说了什么?\"`\n+ - 远程文档: `llm https://example.com/document.pdf \"文档里说了什么?\"`\n+ - 直接提问: `llm \"什么是人工智能?\"`\n+- **功能**: 使用大模型分析文档内容并回答问题,或直接回答用户提问\n - **参数**: \n- - `file_path` - 文档的本地路径\n- - `question` - 关于文档的问题\n+ - `file_path` - 文档的本地路径或URL(可选,如果只是提问则不需要)\n+ - `question` - 关于文档的问题或直接提问\n - `model` - 使用的模型名称(可选,默认为'glm-4')\n-- **返回**: 大模型对文档内容的分析结果\n-- **特点**: 利用先进的大语言模型进行深度文档理解和问答\n+- **返回**: 大模型的回答或对文档内容的分析结果\n+- **特点**: \n+ - 支持本地文件和远程URL\n+ - 支持多种文档格式(PDF、Word等)\n+ - 可配置不同的大语言模型\n+ - 在Docker环境中使用`host.docker.internal`访问宿主机上的服务\n \n ## 文档处理技术特点\n \n 本框架使用了多种技术来优化文档处理性能:\n@@ -91,14 +98,17 @@\n \n ### 文档智能分析\n \n 1. **大模型集成**:\n- - 使用先进的大语言模型(如GLM-4)进行文档理解\n+ - 使用先进的大语言模型(如GLM-4)进行文档理解和问答\n - 支持复杂问题的回答和内容总结\n+ - 可配置不同的API端点和模型\n \n 2. **文件处理**:\n- - 自动处理文件上传和格式转换\n+ - 支持本地文件和远程URL\n+ - 自动处理文件格式和内容提取\n - 支持多种文档格式(PDF、Word等)\n+ - 提供详细的错误处理和反馈\n \n ## 模块化工具框架\n \n 本框架采用模块化设计,便于扩展和维护:\n@@ -111,9 +121,9 @@\n │ ├── url_tool.py # URL工具实现\n │ ├── pdf_tool.py # PDF解析工具实现\n │ ├── quick_pdf_tool.py # 快速PDF预览工具实现\n │ ├── word_tool.py # Word文档解析工具实现\n-│ └── doc_analysis_tool.py # 文档智能分析工具实现\n+│ └── doc_analysis_tool.py # 大语言模型交互与文档分析工具实现\n ├── __init__.py\n ├── __main__.py\n └── server.py # MCP服务器实现\n ```\n"
},
{
"date": 1741529060636,
"content": "Index: \n===================================================================\n--- \n+++ \n@@ -43,27 +43,20 @@\n - **参数**: `file_path` - Word文档的本地路径\n - **返回**: 文档的文本内容(Markdown格式)、表格和图片信息\n - **特点**: 使用python-docx库提供高质量的文本和表格提取\n \n-### 4. 大语言模型交互与文档分析\n+### 4. 文档智能分析\n \n-使用`llm`工具可以通过大模型API智能分析文档内容或直接回答问题。\n+使用`doc_analysis`工具可以通过大模型API智能分析文档内容,回答关于文档的问题。\n \n-- **用法**: \n- - 文档分析: `llm /path/to/document.pdf \"文档里说了什么?\"`\n- - 远程文档: `llm https://example.com/document.pdf \"文档里说了什么?\"`\n- - 直接提问: `llm \"什么是人工智能?\"`\n-- **功能**: 使用大模型分析文档内容并回答问题,或直接回答用户提问\n+- **用法**: `doc_analysis /path/to/document.pdf \"文档里说了什么?\"`\n+- **功能**: 使用大模型分析文档内容并回答问题\n - **参数**: \n- - `file_path` - 文档的本地路径或URL(可选,如果只是提问则不需要)\n- - `question` - 关于文档的问题或直接提问\n+ - `file_path` - 文档的本地路径\n+ - `question` - 关于文档的问题\n - `model` - 使用的模型名称(可选,默认为'glm-4')\n-- **返回**: 大模型的回答或对文档内容的分析结果\n-- **特点**: \n- - 支持本地文件和远程URL\n- - 支持多种文档格式(PDF、Word等)\n- - 可配置不同的大语言模型\n- - 在Docker环境中使用`host.docker.internal`访问宿主机上的服务\n+- **返回**: 大模型对文档内容的分析结果\n+- **特点**: 利用先进的大语言模型进行深度文档理解和问答\n \n ## 文档处理技术特点\n \n 本框架使用了多种技术来优化文档处理性能:\n@@ -98,17 +91,14 @@\n \n ### 文档智能分析\n \n 1. **大模型集成**:\n- - 使用先进的大语言模型(如GLM-4)进行文档理解和问答\n+ - 使用先进的大语言模型(如GLM-4)进行文档理解\n - 支持复杂问题的回答和内容总结\n- - 可配置不同的API端点和模型\n \n 2. **文件处理**:\n- - 支持本地文件和远程URL\n- - 自动处理文件格式和内容提取\n+ - 自动处理文件上传和格式转换\n - 支持多种文档格式(PDF、Word等)\n- - 提供详细的错误处理和反馈\n \n ## 模块化工具框架\n \n 本框架采用模块化设计,便于扩展和维护:\n@@ -121,9 +111,9 @@\n │ ├── url_tool.py # URL工具实现\n │ ├── pdf_tool.py # PDF解析工具实现\n │ ├── quick_pdf_tool.py # 快速PDF预览工具实现\n │ ├── word_tool.py # Word文档解析工具实现\n-│ └── doc_analysis_tool.py # 大语言模型交互与文档分析工具实现\n+│ └── doc_analysis_tool.py # 文档智能分析工具实现\n ├── __init__.py\n ├── __main__.py\n └── server.py # MCP服务器实现\n ```\n"
},
{
"date": 1741529101672,
"content": "Index: \n===================================================================\n--- \n+++ \n@@ -43,20 +43,27 @@\n - **参数**: `file_path` - Word文档的本地路径\n - **返回**: 文档的文本内容(Markdown格式)、表格和图片信息\n - **特点**: 使用python-docx库提供高质量的文本和表格提取\n \n-### 4. 文档智能分析\n+### 4. 大语言模型交互与文档分析\n \n-使用`doc_analysis`工具可以通过大模型API智能分析文档内容,回答关于文档的问题。\n+使用`llm`工具可以通过大模型API智能分析文档内容或直接回答问题。\n \n-- **用法**: `doc_analysis /path/to/document.pdf \"文档里说了什么?\"`\n-- **功能**: 使用大模型分析文档内容并回答问题\n+- **用法**: \n+ - 文档分析: `llm /path/to/document.pdf \"文档里说了什么?\"`\n+ - 远程文档: `llm https://example.com/document.pdf \"文档里说了什么?\"`\n+ - 直接提问: `llm \"什么是人工智能?\"`\n+- **功能**: 使用大模型分析文档内容并回答问题,或直接回答用户提问\n - **参数**: \n- - `file_path` - 文档的本地路径\n- - `question` - 关于文档的问题\n+ - `file_path` - 文档的本地路径或URL(可选,如果只是提问则不需要)\n+ - `question` - 关于文档的问题或直接提问\n - `model` - 使用的模型名称(可选,默认为'glm-4')\n-- **返回**: 大模型对文档内容的分析结果\n-- **特点**: 利用先进的大语言模型进行深度文档理解和问答\n+- **返回**: 大模型的回答或对文档内容的分析结果\n+- **特点**: \n+ - 支持本地文件和远程URL\n+ - 支持多种文档格式(PDF、Word等)\n+ - 可配置不同的大语言模型\n+ - 在Docker环境中使用`host.docker.internal`访问宿主机上的服务\n \n ## 文档处理技术特点\n \n 本框架使用了多种技术来优化文档处理性能:\n@@ -91,14 +98,17 @@\n \n ### 文档智能分析\n \n 1. **大模型集成**:\n- - 使用先进的大语言模型(如GLM-4)进行文档理解\n+ - 使用先进的大语言模型(如GLM-4)进行文档理解和问答\n - 支持复杂问题的回答和内容总结\n+ - 可配置不同的API端点和模型\n \n 2. **文件处理**:\n- - 自动处理文件上传和格式转换\n+ - 支持本地文件和远程URL\n+ - 自动处理文件格式和内容提取\n - 支持多种文档格式(PDF、Word等)\n+ - 提供详细的错误处理和反馈\n \n ## 模块化工具框架\n \n 本框架采用模块化设计,便于扩展和维护:\n@@ -111,9 +121,9 @@\n │ ├── url_tool.py # URL工具实现\n │ ├── pdf_tool.py # PDF解析工具实现\n │ ├── quick_pdf_tool.py # 快速PDF预览工具实现\n │ ├── word_tool.py # Word文档解析工具实现\n-│ └── doc_analysis_tool.py # 文档智能分析工具实现\n+│ └── doc_analysis_tool.py # 大语言模型交互与文档分析工具实现\n ├── __init__.py\n ├── __main__.py\n └── server.py # MCP服务器实现\n ```\n"
},
{
"date": 1741529380959,
"content": "Index: \n===================================================================\n--- \n+++ \n@@ -43,28 +43,8 @@\n - **参数**: `file_path` - Word文档的本地路径\n - **返回**: 文档的文本内容(Markdown格式)、表格和图片信息\n - **特点**: 使用python-docx库提供高质量的文本和表格提取\n \n-### 4. 大语言模型交互与文档分析\n-\n-使用`llm`工具可以通过大模型API智能分析文档内容或直接回答问题。\n-\n-- **用法**: \n- - 文档分析: `llm /path/to/document.pdf \"文档里说了什么?\"`\n- - 远程文档: `llm https://example.com/document.pdf \"文档里说了什么?\"`\n- - 直接提问: `llm \"什么是人工智能?\"`\n-- **功能**: 使用大模型分析文档内容并回答问题,或直接回答用户提问\n-- **参数**: \n- - `file_path` - 文档的本地路径或URL(可选,如果只是提问则不需要)\n- - `question` - 关于文档的问题或直接提问\n- - `model` - 使用的模型名称(可选,默认为'glm-4')\n-- **返回**: 大模型的回答或对文档内容的分析结果\n-- **特点**: \n- - 支持本地文件和远程URL\n- - 支持多种文档格式(PDF、Word等)\n- - 可配置不同的大语言模型\n- - 在Docker环境中使用`host.docker.internal`访问宿主机上的服务\n-\n ## 文档处理技术特点\n \n 本框架使用了多种技术来优化文档处理性能:\n \n@@ -95,21 +75,8 @@\n 2. **图片信息**:\n - 提供文档中图片的数量信息\n - 图片引用关系识别\n \n-### 文档智能分析\n-\n-1. **大模型集成**:\n- - 使用先进的大语言模型(如GLM-4)进行文档理解和问答\n- - 支持复杂问题的回答和内容总结\n- - 可配置不同的API端点和模型\n-\n-2. **文件处理**:\n- - 支持本地文件和远程URL\n- - 自动处理文件格式和内容提取\n- - 支持多种文档格式(PDF、Word等)\n- - 提供详细的错误处理和反馈\n-\n ## 模块化工具框架\n \n 本框架采用模块化设计,便于扩展和维护:\n \n@@ -120,10 +87,9 @@\n │ ├── loader.py # 工具加载器,自动加载所有工具\n │ ├── url_tool.py # URL工具实现\n │ ├── pdf_tool.py # PDF解析工具实现\n │ ├── quick_pdf_tool.py # 快速PDF预览工具实现\n-│ ├── word_tool.py # Word文档解析工具实现\n-│ └── doc_analysis_tool.py # 大语言模型交互与文档分析工具实现\n+│ └── word_tool.py # Word文档解析工具实现\n ├── __init__.py\n ├── __main__.py\n └── server.py # MCP服务器实现\n ```\n@@ -305,9 +271,8 @@\n - `pymupdf4llm` - 为大语言模型优化的PDF处理\n - `pdf2image` - PDF转图像处理\n - `python-docx` - Word文档处理\n - `httpx` - 异步HTTP客户端\n-- `requests` - HTTP客户端,用于文件上传\n - `anyio` - 异步I/O支持\n - `click` - 命令行接口\n \n ## 贡献指南\n"
},
{
"date": 1741662873263,
"content": "Index: \n===================================================================\n--- \n+++ \n@@ -1,6 +1,356 @@\n # MCP开发框架\n \n+一个强大的MCP(Model Context Protocol)开发框架,用于创建与大语言模型交互的自定义工具。该框架提供了一套完整的工具集,可以轻松地扩展Cursor IDE的功能,实现网页内容获取、文件处理(PDF、Word、Excel)等高级功能。\n+\n+## 主要功能\n+\n+本框架提供了以下核心功能:\n+\n+### 1. 综合文件处理\n+\n+使用`file`工具可以自动识别文件类型并选择合适的处理方式,支持PDF、Word和Excel文件。\n+\n+- **用法**: `file /path/to/document`\n+- **支持格式**: \n+ - PDF文件 (.pdf)\n+ - Word文档 (.doc, .docx)\n+ - Excel文件 (.xls, .xlsx, .xlsm)\n+- **参数**: `file_path` - 文件的本地路径\n+- **返回**: 根据文件类型返回相应的处理结果\n+\n+### 2. PDF文档处理\n+\n+使用`pdf`工具可以处理PDF文档,支持两种处理模式:\n+\n+- **用法**: `pdf /path/to/document.pdf [mode]`\n+- **参数**: \n+ - `file_path` - PDF文件的本地路径\n+ - `mode` - 处理模式(可选):\n+ - `quick` - 快速预览模式,仅提取文本内容\n+ - `full` - 完整解析模式,提取文本和图片内容(默认)\n+- **返回**: \n+ - 快速预览模式:文档的文本内容\n+ - 完整解析模式:文档的文本内容和图片\n+- **特点**: \n+ - 使用PyMuPDF提供高质量的文本提取和图像处理\n+ - 自动处理大型文件\n+ - 支持图片提取和保存\n+\n+### 3. Word文档解析\n+\n+使用`word`工具可以解析Word文档,提取文本、表格和图片信息。\n+\n+- **用法**: `word /path/to/document.docx`\n+- **功能**: 解析Word文档并提取文本内容、表格和图片信息\n+- **参数**: `file_path` - Word文档的本地路径\n+- **返回**: 文档的文本内容、表格和图片信息\n+- **特点**: 使用python-docx库提供高质量的文本和表格提取\n+\n+### 4. Excel文件处理\n+\n+使用`excel`工具可以解析Excel文件,提供完整的表格数据和结构信息。\n+\n+- **用法**: `excel /path/to/spreadsheet.xlsx`\n+- **功能**: 解析Excel文件的所有工作表\n+- **参数**: `file_path` - Excel文件的本地路径\n+- **返回**: \n+ - 文件基本信息(文件名、工作表数量)\n+ - 每个工作表的详细信息:\n+ - 行数和列数\n+ - 列名列表\n+ - 完整的表格数据\n+- **特点**: \n+ - 使用pandas和openpyxl提供高质量的表格数据处理\n+ - 支持多工作表处理\n+ - 自动处理数据类型转换\n+\n+### 5. 网页内容获取\n+\n+使用`url`工具可以获取任何网页的内容。\n+\n+- **用法**: `url https://example.com`\n+- **参数**: `url` - 要获取内容的网站URL\n+- **返回**: 网页的文本内容\n+- **特点**: \n+ - 完整的HTTP错误处理\n+ - 超时管理\n+ - 自动编码处理\n+\n+## 技术特点\n+\n+本框架采用了多种技术来优化文件处理性能:\n+\n+1. **智能文件类型识别**\n+ - 自动根据文件扩展名选择合适的处理工具\n+ - 提供统一的文件处理接口\n+\n+2. **高效的文档处理**\n+ - PDF处理:支持快速预览和完整解析两种模式\n+ - Word处理:精确提取文本、表格和图片\n+ - Excel处理:高效处理大型表格数据\n+\n+3. **内存优化**\n+ - 使用临时文件管理大型文件\n+ - 自动清理临时资源\n+ - 分块处理大型文档\n+\n+4. **错误处理**\n+ - 完整的异常捕获和处理\n+ - 详细的错误信息反馈\n+ - 优雅的失败处理机制\n+\n+## 文档处理技术特点\n+\n+本框架使用了多种技术来优化文档处理性能:\n+\n+### PDF处理\n+\n+1. **多层次处理策略**:\n+\n+ - 首先尝试使用PyMuPDF(fitz)提取内容(速度快、准确度高)\n+ - 如果失败,回退到PymuPDF4llm(专为大语言模型优化)\n+ - 最后尝试PyPDF2作为最终备用方案\n+2. **性能优化**:\n+\n+ - 限制处理的最大页数(完整模式: 30页,快速模式: 50页)\n+ - 图片处理优化(DPI调整、大小限制)\n+ - 多线程处理加速\n+3. **错误处理**:\n+\n+ - 详细的错误信息和提示\n+ - 备用处理方法,确保服务稳定性\n+ - 超时保护机制(5分钟超时设置)\n+\n+### Word文档处理\n+\n+1. **文档结构解析**:\n+\n+ - 提取文档属性(标题、作者、创建时间等)\n+ - 段落内容提取,保留原始格式\n+ - 表格转换为Markdown格式\n+2. **图片信息**:\n+\n+ - 提供文档中图片的数量信息\n+ - 图片引用关系识别\n+\n+## 模块化工具框架\n+\n+本框架采用模块化设计,便于扩展和维护:\n+\n+```\n+mcp_simple_tool/\n+├── tools/\n+│ ├── __init__.py # 定义工具基类和注册器\n+│ ├── loader.py # 工具加载器,自动加载所有工具\n+│ ├── url_tool.py # URL工具实现\n+│ ├── pdf_tool.py # PDF解析工具实现\n+│ ├── quick_pdf_tool.py # 快速PDF预览工具实现\n+│ └── word_tool.py # Word文档解析工具实现\n+├── __init__.py\n+├── __main__.py\n+└── server.py # MCP服务器实现\n+```\n+\n+### 框架特点\n+\n+1. **自动工具发现**:\n+\n+ - 工具加载器自动发现和加载所有工具\n+ - 无需手动注册,只需创建新工具文件\n+2. **统一接口**:\n+\n+ - 所有工具继承自`BaseTool`基类\n+ - 标准化的输入和输出格式\n+3. **简单扩展**:\n+\n+ - 只需创建新的工具类并使用`@ToolRegistry.register`装饰器\n+ - 框架自动处理工具的注册和调用\n+\n+## 如何开发新工具\n+\n+1. 在`tools`目录下创建一个新的Python文件,如`your_tool.py`\n+2. 导入必要的依赖和基类\n+3. 创建一个继承自`BaseTool`的工具类\n+4. 使用`@ToolRegistry.register`装饰器注册工具\n+5. 实现工具的`execute`方法\n+\n+### 工具模板示例\n+\n+```python\n+import mcp.types as types\n+from . import BaseTool, ToolRegistry\n+\n+@ToolRegistry.register\n+class YourTool(BaseTool):\n+ \"\"\"您的工具描述\"\"\"\n+ name = \"your_tool_name\" # 工具的唯一标识符\n+ description = \"您的工具描述\" # 工具的描述信息,将显示给用户\n+ input_schema = {\n+ \"type\": \"object\",\n+ \"required\": [\"param1\"], # 必需的参数\n+ \"properties\": {\n+ \"param1\": {\n+ \"type\": \"string\",\n+ \"description\": \"参数1的描述\",\n+ },\n+ \"param2\": {\n+ \"type\": \"integer\",\n+ \"description\": \"参数2的描述(可选)\",\n+ }\n+ },\n+ }\n+ \n+ async def execute(self, arguments: dict) -> list[types.TextContent | types.ImageContent | types.EmbeddedResource]:\n+ \"\"\"执行工具逻辑\"\"\"\n+ # 参数验证\n+ if \"param1\" not in arguments:\n+ return [types.TextContent(\n+ type=\"text\",\n+ text=\"Error: Missing required argument 'param1'\"\n+ )]\n+ \n+ # 获取参数\n+ param1 = arguments[\"param1\"]\n+ param2 = arguments.get(\"param2\", 0) # 获取可选参数,提供默认值\n+ \n+ # 执行工具逻辑\n+ result = f\"处理参数: {param1}, {param2}\"\n+ \n+ # 返回结果\n+ return [types.TextContent(\n+ type=\"text\",\n+ text=result\n+ )]\n+```\n+\n+## 部署方式\n+\n+您可以通过以下方式部署和使用本框架:\n+\n+### Docker部署(推荐)\n+\n+该项目包括Docker支持,便于部署:\n+\n+1. 初始设置:\n+\n+```bash\n+# 克隆仓库\n+git clone https://github.com/your-username/mcp-development-framework.git\n+cd mcp-development-framework\n+\n+# 创建环境文件\n+cp .env.example .env\n+```\n+\n+2. 使用Docker Compose构建并运行:\n+\n+```bash\n+# 构建并启动服务器\n+docker compose up --build -d\n+\n+# 查看日志\n+docker compose logs -f\n+\n+# 检查服务器状态\n+docker compose ps\n+\n+# 暂停容器(不删除)\n+docker compose pause\n+\n+# 恢复已暂停的容器\n+docker compose unpause\n+\n+# 停止服务器\n+docker compose down\n+```\n+\n+3. 服务器将可以在以下地址访问:\n+\n+ - SSE端点: http://localhost:8000/sse\n+4. 连接到Cursor IDE:\n+\n+ - 打开Cursor设置 → 功能\n+ - 添加新的MCP服务器\n+ - 类型: 选择\"sse\"\n+ - URL: 输入`http://localhost:8000/sse`\n+5. 访问本地文件:\n+\n+ - 默认情况下,Docker容器无法访问主机(您的电脑)上的文件\n+ - 在`docker-compose.yml`文件中配置卷挂载,将本地目录挂载到容器内\n+ - 例如,如果挂载了`/Users/username/Documents`到`/host_docs`,则使用`/host_docs/file.pdf`访问文件\n+\n+### 传统Python部署\n+\n+首先,安装uv包管理器和系统依赖:\n+\n+```bash\n+# 安装uv\n+pip install uv\n+\n+# 安装PDF处理的系统依赖\n+# 在Ubuntu/Debian上\n+sudo apt-get install poppler-utils\n+# 在macOS上\n+brew install poppler\n+# 在Windows上\n+# 从http://blog.alivate.com.au/poppler-windows/下载并安装poppler\n+# 并将bin目录添加到您的PATH中\n+```\n+\n+然后安装和运行服务器:\n+\n+```bash\n+# 安装开发依赖的包\n+uv pip install -e \".[dev]\"\n+\n+# 使用stdio传输(默认)\n+uv run mcp-simple-tool\n+\n+# 使用自定义端口的SSE传输\n+uv run mcp-simple-tool --transport sse --port 8000\n+\n+# 运行测试\n+uv run pytest -v\n+```\n+\n+## 环境变量配置\n+\n+可用的环境变量(可以在`.env`中设置):\n+\n+- `MCP_SERVER_PORT`(默认: 8000) - 服务器运行的端口\n+- `MCP_SERVER_HOST`(默认: 0.0.0.0) - 绑定服务器的主机\n+- `DEBUG`(默认: false) - 启用调试模式\n+- `MCP_USER_AGENT` - 网站抓取的自定义User-Agent\n+\n+## 依赖项\n+\n+本项目使用以下主要依赖:\n+\n+- `mcp` - Model Context Protocol实现\n+- `PyPDF2` - PDF文档处理\n+- `PyMuPDF` - 高性能PDF文档处理\n+- `pymupdf4llm` - 为大语言模型优化的PDF处理\n+- `pdf2image` - PDF转图像处理\n+- `python-docx` - Word文档处理\n+- `httpx` - 异步HTTP客户端\n+- `anyio` - 异步I/O支持\n+- `click` - 命令行接口\n+\n+## 贡献指南\n+\n+欢迎贡献!请遵循以下步骤:\n+\n+1. Fork仓库\n+2. 创建功能分支 (`git checkout -b feature/amazing-feature`)\n+3. 提交更改 (`git commit -m 'Add some amazing feature'`)\n+4. 推送到分支 (`git push origin feature/amazing-feature`)\n+5. 打开Pull Request\n+\n+## 许可证\n+\n+本项目采用MIT许可证 - 详情请参阅[LICENSE](LICENSE)文件。\n+\n 一个强大的MCP(Model Context Protocol)开发框架,用于创建与大语言模型交互的自定义工具。该框架提供了一套完整的工具集,可以轻松地扩展Cursor IDE的功能,实现网页内容获取、PDF文档处理和Word文档解析等高级功能。\n \n ## 主要功能\n \n@@ -50,30 +400,32 @@\n \n ### PDF处理\n \n 1. **多层次处理策略**:\n+\n - 首先尝试使用PyMuPDF(fitz)提取内容(速度快、准确度高)\n - 如果失败,回退到PymuPDF4llm(专为大语言模型优化)\n - 最后尝试PyPDF2作为最终备用方案\n+2. **性能优化**:\n \n-2. **性能优化**:\n - 限制处理的最大页数(完整模式: 30页,快速模式: 50页)\n - 图片处理优化(DPI调整、大小限制)\n - 多线程处理加速\n+3. **错误处理**:\n \n-3. **错误处理**:\n - 详细的错误信息和提示\n - 备用处理方法,确保服务稳定性\n - 超时保护机制(5分钟超时设置)\n \n ### Word文档处理\n \n 1. **文档结构解析**:\n+\n - 提取文档属性(标题、作者、创建时间等)\n - 段落内容提取,保留原始格式\n - 表格转换为Markdown格式\n+2. **图片信息**:\n \n-2. **图片信息**:\n - 提供文档中图片的数量信息\n - 图片引用关系识别\n \n ## 模块化工具框架\n@@ -96,16 +448,17 @@\n \n ### 框架特点\n \n 1. **自动工具发现**:\n+\n - 工具加载器自动发现和加载所有工具\n - 无需手动注册,只需创建新工具文件\n+2. **统一接口**:\n \n-2. **统一接口**:\n - 所有工具继承自`BaseTool`基类\n - 标准化的输入和输出格式\n+3. **简单扩展**:\n \n-3. **简单扩展**:\n - 只需创建新的工具类并使用`@ToolRegistry.register`装饰器\n - 框架自动处理工具的注册和调用\n \n ## 如何开发新工具\n@@ -140,25 +493,25 @@\n \"description\": \"参数2的描述(可选)\",\n }\n },\n }\n- \n+ \n async def execute(self, arguments: dict) -> list[types.TextContent | types.ImageContent | types.EmbeddedResource]:\n \"\"\"执行工具逻辑\"\"\"\n # 参数验证\n if \"param1\" not in arguments:\n return [types.TextContent(\n type=\"text\",\n text=\"Error: Missing required argument 'param1'\"\n )]\n- \n+ \n # 获取参数\n param1 = arguments[\"param1\"]\n param2 = arguments.get(\"param2\", 0) # 获取可选参数,提供默认值\n- \n+ \n # 执行工具逻辑\n result = f\"处理参数: {param1}, {param2}\"\n- \n+ \n # 返回结果\n return [types.TextContent(\n type=\"text\",\n text=result\n@@ -173,8 +526,9 @@\n \n 该项目包括Docker支持,便于部署:\n \n 1. 初始设置:\n+\n ```bash\n # 克隆仓库\n git clone https://github.com/your-username/mcp-development-framework.git\n cd mcp-development-framework\n@@ -183,8 +537,9 @@\n cp .env.example .env\n ```\n \n 2. 使用Docker Compose构建并运行:\n+\n ```bash\n # 构建并启动服务器\n docker compose up --build -d\n \n@@ -204,17 +559,18 @@\n docker compose down\n ```\n \n 3. 服务器将可以在以下地址访问:\n+\n - SSE端点: http://localhost:8000/sse\n+4. 连接到Cursor IDE:\n \n-4. 连接到Cursor IDE:\n - 打开Cursor设置 → 功能\n - 添加新的MCP服务器\n - 类型: 选择\"sse\"\n - URL: 输入`http://localhost:8000/sse`\n+5. 访问本地文件:\n \n-5. 访问本地文件:\n - 默认情况下,Docker容器无法访问主机(您的电脑)上的文件\n - 在`docker-compose.yml`文件中配置卷挂载,将本地目录挂载到容器内\n - 例如,如果挂载了`/Users/username/Documents`到`/host_docs`,则使用`/host_docs/file.pdf`访问文件\n \n@@ -287,5 +643,4 @@\n \n ## 许可证\n \n 本项目采用MIT许可证 - 详情请参阅[LICENSE](LICENSE)文件。\n-\n"
},
{
"date": 1741663164074,
"content": "Index: \n===================================================================\n--- \n+++ \n@@ -137,9 +137,9 @@\n \n 本框架采用模块化设计,便于扩展和维护:\n \n ```\n-mcp_simple_tool/\n+mcp_tool/\n ├── tools/\n │ ├── __init__.py # 定义工具基类和注册器\n │ ├── loader.py # 工具加载器,自动加载所有工具\n │ ├── url_tool.py # URL工具实现\n"
},
{
"date": 1741663209532,
"content": "Index: \n===================================================================\n--- \n+++ \n@@ -98,77 +98,61 @@\n - 完整的异常捕获和处理\n - 详细的错误信息反馈\n - 优雅的失败处理机制\n \n-## 文档处理技术特点\n+## 文档处理技术细节\n \n-本框架使用了多种技术来优化文档处理性能:\n-\n ### PDF处理\n \n 1. **多层次处理策略**:\n-\n - 首先尝试使用PyMuPDF(fitz)提取内容(速度快、准确度高)\n - 如果失败,回退到PymuPDF4llm(专为大语言模型优化)\n - 最后尝试PyPDF2作为最终备用方案\n+\n 2. **性能优化**:\n-\n - 限制处理的最大页数(完整模式: 30页,快速模式: 50页)\n - 图片处理优化(DPI调整、大小限制)\n - 多线程处理加速\n+\n 3. **错误处理**:\n-\n - 详细的错误信息和提示\n - 备用处理方法,确保服务稳定性\n - 超时保护机制(5分钟超时设置)\n \n ### Word文档处理\n \n 1. **文档结构解析**:\n-\n - 提取文档属性(标题、作者、创建时间等)\n - 段落内容提取,保留原始格式\n - 表格转换为Markdown格式\n+\n 2. **图片信息**:\n-\n - 提供文档中图片的数量信息\n - 图片引用关系识别\n \n-## 模块化工具框架\n+## 项目结构\n \n 本框架采用模块化设计,便于扩展和维护:\n \n ```\n mcp_tool/\n ├── tools/\n │ ├── __init__.py # 定义工具基类和注册器\n │ ├── loader.py # 工具加载器,自动加载所有工具\n-│ ├── url_tool.py # URL工具实现\n-│ ├── pdf_tool.py # PDF解析工具实现\n-│ ├── quick_pdf_tool.py # 快速PDF预览工具实现\n-│ └── word_tool.py # Word文档解析工具实现\n+│ ├── file_tool.py # 综合文件处理工具\n+│ ├── pdf_tool.py # PDF解析工具\n+│ ├── word_tool.py # Word文档解析工具\n+│ ├── excel_tool.py # Excel文件处理工具\n+│ └── url_tool.py # URL工具实现\n ├── __init__.py\n ├── __main__.py\n └── server.py # MCP服务器实现\n ```\n \n-### 框架特点\n+## 开发指南\n \n-1. **自动工具发现**:\n+### 如何开发新工具\n \n- - 工具加载器自动发现和加载所有工具\n- - 无需手动注册,只需创建新工具文件\n-2. **统一接口**:\n-\n- - 所有工具继承自`BaseTool`基类\n- - 标准化的输入和输出格式\n-3. **简单扩展**:\n-\n- - 只需创建新的工具类并使用`@ToolRegistry.register`装饰器\n- - 框架自动处理工具的注册和调用\n-\n-## 如何开发新工具\n-\n 1. 在`tools`目录下创建一个新的Python文件,如`your_tool.py`\n 2. 导入必要的依赖和基类\n 3. 创建一个继承自`BaseTool`的工具类\n 4. 使用`@ToolRegistry.register`装饰器注册工具\n@@ -222,420 +206,92 @@\n text=result\n )]\n ```\n \n-## 部署方式\n+## 部署指南\n \n-您可以通过以下方式部署和使用本框架:\n-\n ### Docker部署(推荐)\n \n-该项目包括Docker支持,便于部署:\n-\n 1. 初始设置:\n-\n ```bash\n # 克隆仓库\n-git clone https://github.com/your-username/mcp-development-framework.git\n-cd mcp-development-framework\n+git clone https://github.com/your-username/mcp-framework.git\n+cd mcp-framework\n \n # 创建环境文件\n cp .env.example .env\n ```\n \n-2. 使用Docker Compose构建并运行:\n-\n+2. 使用Docker Compose:\n ```bash\n-# 构建并启动服务器\n+# 构建并启动\n docker compose up --build -d\n \n # 查看日志\n docker compose logs -f\n \n-# 检查服务器状态\n+# 管理容器\n docker compose ps\n-\n-# 暂停容器(不删除)\n docker compose pause\n-\n-# 恢复已暂停的容器\n docker compose unpause\n-\n-# 停止服务器\n docker compose down\n ```\n \n-3. 服务器将可以在以下地址访问:\n+3. 访问服务:\n+- SSE端点: http://localhost:8000/sse\n \n- - SSE端点: http://localhost:8000/sse\n-4. 连接到Cursor IDE:\n+4. Cursor IDE配置:\n+- 设置 → 功能 → 添加MCP服务器\n+- 类型: \"sse\"\n+- URL: `http://localhost:8000/sse`\n \n- - 打开Cursor设置 → 功能\n- - 添加新的MCP服务器\n- - 类型: 选择\"sse\"\n- - URL: 输入`http://localhost:8000/sse`\n-5. 访问本地文件:\n-\n- - 默认情况下,Docker容器无法访问主机(您的电脑)上的文件\n- - 在`docker-compose.yml`文件中配置卷挂载,将本地目录挂载到容器内\n- - 例如,如果挂载了`/Users/username/Documents`到`/host_docs`,则使用`/host_docs/file.pdf`访问文件\n-\n ### 传统Python部署\n \n-首先,安装uv包管理器和系统依赖:\n-\n+1. 安装依赖:\n ```bash\n # 安装uv\n pip install uv\n \n-# 安装PDF处理的系统依赖\n-# 在Ubuntu/Debian上\n+# 安装系统依赖\n+# Ubuntu/Debian\n sudo apt-get install poppler-utils\n-# 在macOS上\n+# macOS\n brew install poppler\n-# 在Windows上\n-# 从http://blog.alivate.com.au/poppler-windows/下载并安装poppler\n-# 并将bin目录添加到您的PATH中\n ```\n \n-然后安装和运行服务器:\n-\n+2. 运行服务器:\n ```bash\n-# 安装开发依赖的包\n+# 安装项目依赖\n uv pip install -e \".[dev]\"\n \n-# 使用stdio传输(默认)\n-uv run mcp-simple-tool\n-\n-# 使用自定义端口的SSE传输\n-uv run mcp-simple-tool --transport sse --port 8000\n-\n-# 运行测试\n-uv run pytest -v\n+# 启动服务器\n+uv run mcp-tool --transport sse --port 8000\n ```\n \n-## 环境变量配置\n+## 配置\n \n-可用的环境变量(可以在`.env`中设置):\n+### 环境变量\n \n-- `MCP_SERVER_PORT`(默认: 8000) - 服务器运行的端口\n-- `MCP_SERVER_HOST`(默认: 0.0.0.0) - 绑定服务器的主机\n-- `DEBUG`(默认: false) - 启用调试模式\n-- `MCP_USER_AGENT` - 网站抓取的自定义User-Agent\n+在`.env`文件中配置:\n \n-## 依赖项\n+- `MCP_SERVER_PORT`: 服务器端口(默认: 8000)\n+- `MCP_SERVER_HOST`: 绑定地址(默认: 0.0.0.0)\n+- `DEBUG`: 调试模式(默认: false)\n+- `MCP_USER_AGENT`: 自定义User-Agent\n \n-本项目使用以下主要依赖:\n-\n-- `mcp` - Model Context Protocol实现\n-- `PyPDF2` - PDF文档处理\n-- `PyMuPDF` - 高性能PDF文档处理\n-- `pymupdf4llm` - 为大语言模型优化的PDF处理\n-- `pdf2image` - PDF转图像处理\n-- `python-docx` - Word文档处理\n-- `httpx` - 异步HTTP客户端\n-- `anyio` - 异步I/O支持\n-- `click` - 命令行接口\n-\n-## 贡献指南\n-\n-欢迎贡献!请遵循以下步骤:\n-\n-1. Fork仓库\n-2. 创建功能分支 (`git checkout -b feature/amazing-feature`)\n-3. 提交更改 (`git commit -m 'Add some amazing feature'`)\n-4. 推送到分支 (`git push origin feature/amazing-feature`)\n-5. 打开Pull Request\n-\n-## 许可证\n-\n-本项目采用MIT许可证 - 详情请参阅[LICENSE](LICENSE)文件。\n-\n-一个强大的MCP(Model Context Protocol)开发框架,用于创建与大语言模型交互的自定义工具。该框架提供了一套完整的工具集,可以轻松地扩展Cursor IDE的功能,实现网页内容获取、PDF文档处理和Word文档解析等高级功能。\n-\n-## 主要功能\n-\n-本框架提供了以下核心功能:\n-\n-### 1. 网页内容获取\n-\n-使用`url`工具可以获取任何网页的内容,支持完整的HTTP错误处理和超时管理。\n-\n-- **用法**: `url https://example.com`\n-- **参数**: `url` - 要获取内容的网站URL\n-- **返回**: 网页的文本内容\n-\n-### 2. PDF文档处理\n-\n-框架提供了两种PDF处理工具,满足不同场景的需求:\n-\n-#### 完整PDF解析 (file)\n-\n-- **用法**: `file /path/to/document.pdf`\n-- **功能**: 解析PDF文档并提取文本和图片内容\n-- **参数**: `file_path` - PDF文件的本地路径\n-- **返回**: 文档的文本内容(Markdown格式)和图片信息\n-- **特点**: 使用PymuPDF4llm库提供高质量的文本提取和图像处理\n-\n-#### 快速PDF预览 (quick_pdf)\n-\n-- **用法**: `quick_pdf /path/to/document.pdf`\n-- **功能**: 快速预览PDF文档内容(仅提取文本)\n-- **参数**: `file_path` - PDF文件的本地路径\n-- **返回**: 文档的文本内容(Markdown格式)\n-- **适用场景**: 大型PDF文件或只需要文本内容时\n-\n-### 3. Word文档解析\n-\n-使用`word`工具可以解析Word文档(.docx和.doc格式),提取文本内容、表格和图片信息。\n-\n-- **用法**: `word /path/to/document.docx`\n-- **功能**: 解析Word文档并提取文本内容、表格和图片信息\n-- **参数**: `file_path` - Word文档的本地路径\n-- **返回**: 文档的文本内容(Markdown格式)、表格和图片信息\n-- **特点**: 使用python-docx库提供高质量的文本和表格提取\n-\n-## 文档处理技术特点\n-\n-本框架使用了多种技术来优化文档处理性能:\n-\n-### PDF处理\n-\n-1. **多层次处理策略**:\n-\n- - 首先尝试使用PyMuPDF(fitz)提取内容(速度快、准确度高)\n- - 如果失败,回退到PymuPDF4llm(专为大语言模型优化)\n- - 最后尝试PyPDF2作为最终备用方案\n-2. **性能优化**:\n-\n- - 限制处理的最大页数(完整模式: 30页,快速模式: 50页)\n- - 图片处理优化(DPI调整、大小限制)\n- - 多线程处理加速\n-3. **错误处理**:\n-\n- - 详细的错误信息和提示\n- - 备用处理方法,确保服务稳定性\n- - 超时保护机制(5分钟超时设置)\n-\n-### Word文档处理\n-\n-1. **文档结构解析**:\n-\n- - 提取文档属性(标题、作者、创建时间等)\n- - 段落内容提取,保留原始格式\n- - 表格转换为Markdown格式\n-2. **图片信息**:\n-\n- - 提供文档中图片的数量信息\n- - 图片引用关系识别\n-\n-## 模块化工具框架\n-\n-本框架采用模块化设计,便于扩展和维护:\n-\n-```\n-mcp_simple_tool/\n-├── tools/\n-│ ├── __init__.py # 定义工具基类和注册器\n-│ ├── loader.py # 工具加载器,自动加载所有工具\n-│ ├── url_tool.py # URL工具实现\n-│ ├── pdf_tool.py # PDF解析工具实现\n-│ ├── quick_pdf_tool.py # 快速PDF预览工具实现\n-│ └── word_tool.py # Word文档解析工具实现\n-├── __init__.py\n-├── __main__.py\n-└── server.py # MCP服务器实现\n-```\n-\n-### 框架特点\n-\n-1. **自动工具发现**:\n-\n- - 工具加载器自动发现和加载所有工具\n- - 无需手动注册,只需创建新工具文件\n-2. **统一接口**:\n-\n- - 所有工具继承自`BaseTool`基类\n- - 标准化的输入和输出格式\n-3. **简单扩展**:\n-\n- - 只需创建新的工具类并使用`@ToolRegistry.register`装饰器\n- - 框架自动处理工具的注册和调用\n-\n-## 如何开发新工具\n-\n-1. 在`tools`目录下创建一个新的Python文件,如`your_tool.py`\n-2. 导入必要的依赖和基类\n-3. 创建一个继承自`BaseTool`的工具类\n-4. 使用`@ToolRegistry.register`装饰器注册工具\n-5. 实现工具的`execute`方法\n-\n-### 工具模板示例\n-\n-```python\n-import mcp.types as types\n-from . import BaseTool, ToolRegistry\n-\n-@ToolRegistry.register\n-class YourTool(BaseTool):\n- \"\"\"您的工具描述\"\"\"\n- name = \"your_tool_name\" # 工具的唯一标识符\n- description = \"您的工具描述\" # 工具的描述信息,将显示给用户\n- input_schema = {\n- \"type\": \"object\",\n- \"required\": [\"param1\"], # 必需的参数\n- \"properties\": {\n- \"param1\": {\n- \"type\": \"string\",\n- \"description\": \"参数1的描述\",\n- },\n- \"param2\": {\n- \"type\": \"integer\",\n- \"description\": \"参数2的描述(可选)\",\n- }\n- },\n- }\n- \n- async def execute(self, arguments: dict) -> list[types.TextContent | types.ImageContent | types.EmbeddedResource]:\n- \"\"\"执行工具逻辑\"\"\"\n- # 参数验证\n- if \"param1\" not in arguments:\n- return [types.TextContent(\n- type=\"text\",\n- text=\"Error: Missing required argument 'param1'\"\n- )]\n- \n- # 获取参数\n- param1 = arguments[\"param1\"]\n- param2 = arguments.get(\"param2\", 0) # 获取可选参数,提供默认值\n- \n- # 执行工具逻辑\n- result = f\"处理参数: {param1}, {param2}\"\n- \n- # 返回结果\n- return [types.TextContent(\n- type=\"text\",\n- text=result\n- )]\n-```\n-\n-## 部署方式\n-\n-您可以通过以下方式部署和使用本框架:\n-\n-### Docker部署(推荐)\n-\n-该项目包括Docker支持,便于部署:\n-\n-1. 初始设置:\n-\n-```bash\n-# 克隆仓库\n-git clone https://github.com/your-username/mcp-development-framework.git\n-cd mcp-development-framework\n-\n-# 创建环境文件\n-cp .env.example .env\n-```\n-\n-2. 使用Docker Compose构建并运行:\n-\n-```bash\n-# 构建并启动服务器\n-docker compose up --build -d\n-\n-# 查看日志\n-docker compose logs -f\n-\n-# 检查服务器状态\n-docker compose ps\n-\n-# 暂停容器(不删除)\n-docker compose pause\n-\n-# 恢复已暂停的容器\n-docker compose unpause\n-\n-# 停止服务器\n-docker compose down\n-```\n-\n-3. 服务器将可以在以下地址访问:\n-\n- - SSE端点: http://localhost:8000/sse\n-4. 连接到Cursor IDE:\n-\n- - 打开Cursor设置 → 功能\n- - 添加新的MCP服务器\n- - 类型: 选择\"sse\"\n- - URL: 输入`http://localhost:8000/sse`\n-5. 访问本地文件:\n-\n- - 默认情况下,Docker容器无法访问主机(您的电脑)上的文件\n- - 在`docker-compose.yml`文件中配置卷挂载,将本地目录挂载到容器内\n- - 例如,如果挂载了`/Users/username/Documents`到`/host_docs`,则使用`/host_docs/file.pdf`访问文件\n-\n-### 传统Python部署\n-\n-首先,安装uv包管理器和系统依赖:\n-\n-```bash\n-# 安装uv\n-pip install uv\n-\n-# 安装PDF处理的系统依赖\n-# 在Ubuntu/Debian上\n-sudo apt-get install poppler-utils\n-# 在macOS上\n-brew install poppler\n-# 在Windows上\n-# 从http://blog.alivate.com.au/poppler-windows/下载并安装poppler\n-# 并将bin目录添加到您的PATH中\n-```\n-\n-然后安装和运行服务器:\n-\n-```bash\n-# 安装开发依赖的包\n-uv pip install -e \".[dev]\"\n-\n-# 使用stdio传输(默认)\n-uv run mcp-simple-tool\n-\n-# 使用自定义端口的SSE传输\n-uv run mcp-simple-tool --transport sse --port 8000\n-\n-# 运行测试\n-uv run pytest -v\n-```\n-\n-## 环境变量配置\n-\n-可用的环境变量(可以在`.env`中设置):\n-\n-- `MCP_SERVER_PORT`(默认: 8000) - 服务器运行的端口\n-- `MCP_SERVER_HOST`(默认: 0.0.0.0) - 绑定服务器的主机\n-- `DEBUG`(默认: false) - 启用调试模式\n-- `MCP_USER_AGENT` - 网站抓取的自定义User-Agent\n-\n ## 依赖项\n \n-本项目使用以下主要依赖:\n+主要依赖:\n+- `mcp`: Model Context Protocol实现\n+- `PyMuPDF`: PDF文档处理\n+- `python-docx`: Word文档处理\n+- `pandas`和`openpyxl`: Excel文件处理\n+- `httpx`: 异步HTTP客户端\n+- `anyio`: 异步I/O支持\n+- `click`: 命令行接口\n \n-- `mcp` - Model Context Protocol实现\n-- `PyPDF2` - PDF文档处理\n-- `PyMuPDF` - 高性能PDF文档处理\n-- `pymupdf4llm` - 为大语言模型优化的PDF处理\n-- `pdf2image` - PDF转图像处理\n-- `python-docx` - Word文档处理\n-- `httpx` - 异步HTTP客户端\n-- `anyio` - 异步I/O支持\n-- `click` - 命令行接口\n-\n ## 贡献指南\n \n-欢迎贡献!请遵循以下步骤:\n-\n 1. Fork仓库\n 2. 创建功能分支 (`git checkout -b feature/amazing-feature`)\n 3. 提交更改 (`git commit -m 'Add some amazing feature'`)\n 4. 推送到分支 (`git push origin feature/amazing-feature`)\n"
},
{
"date": 1741663617494,
"content": "Index: \n===================================================================\n--- \n+++ \n@@ -1,5 +1,6 @@\n # MCP开发框架\n+[](https://smithery.ai/server/@aigo666/mcp-framework)\n \n 一个强大的MCP(Model Context Protocol)开发框架,用于创建与大语言模型交互的自定义工具。该框架提供了一套完整的工具集,可以轻松地扩展Cursor IDE的功能,实现网页内容获取、文件处理(PDF、Word、Excel)等高级功能。\n \n ## 主要功能\n@@ -247,56 +248,32 @@\n ### 传统Python部署\n \n 1. 安装依赖:\n ```bash\n-# 安装uv\n-pip install uv\n+# 创建虚拟环境\n+python -m venv venv\n+source venv/bin/activate # Linux/Mac\n+# 或\n+.\\venv\\Scripts\\activate # Windows\n \n-# 安装系统依赖\n-# Ubuntu/Debian\n-sudo apt-get install poppler-utils\n-# macOS\n-brew install poppler\n+# 安装依赖\n+pip install -r requirements.txt\n ```\n \n-2. 运行服务器:\n+2. 启动服务:\n ```bash\n-# 安装项目依赖\n-uv pip install -e \".[dev]\"\n-\n-# 启动服务器\n-uv run mcp-tool --transport sse --port 8000\n+python -m mcp_tool\n ```\n \n-## 配置\n+## 贡献指南\n \n-### 环境变量\n+欢迎提交Pull Request来改进这个项目。在提交PR之前,请确保:\n \n-在`.env`文件中配置:\n+1. 代码符合PEP 8规范\n+2. 添加了适当的测试用例\n+3. 更新了相关文档\n+4. 所有测试都能通过\n \n-- `MCP_SERVER_PORT`: 服务器端口(默认: 8000)\n-- `MCP_SERVER_HOST`: 绑定地址(默认: 0.0.0.0)\n-- `DEBUG`: 调试模式(默认: false)\n-- `MCP_USER_AGENT`: 自定义User-Agent\n+## 许可证\n \n-## 依赖项\n+本项目采用MIT许可证。详见[LICENSE](LICENSE)文件。\n \n-主要依赖:\n-- `mcp`: Model Context Protocol实现\n-- `PyMuPDF`: PDF文档处理\n-- `python-docx`: Word文档处理\n-- `pandas`和`openpyxl`: Excel文件处理\n-- `httpx`: 异步HTTP客户端\n-- `anyio`: 异步I/O支持\n-- `click`: 命令行接口\n-\n-## 贡献指南\n-\n-1. Fork仓库\n-2. 创建功能分支 (`git checkout -b feature/amazing-feature`)\n-3. 提交更改 (`git commit -m 'Add some amazing feature'`)\n-4. 推送到分支 (`git push origin feature/amazing-feature`)\n-5. 打开Pull Request\n-\n-## 许可证\n-\n-本项目采用MIT许可证 - 详情请参阅[LICENSE](LICENSE)文件。\n"
},
{
"date": 1741663714310,
"content": "Index: \n===================================================================\n--- \n+++ \n@@ -248,32 +248,57 @@\n ### 传统Python部署\n \n 1. 安装依赖:\n ```bash\n-# 创建虚拟环境\n-python -m venv venv\n-source venv/bin/activate # Linux/Mac\n-# 或\n-.\\venv\\Scripts\\activate # Windows\n+# 安装uv\n+pip install uv\n \n-# 安装依赖\n-pip install -r requirements.txt\n+# 安装系统依赖\n+# Ubuntu/Debian\n+sudo apt-get install poppler-utils\n+# macOS\n+brew install poppler\n ```\n \n-2. 启动服务:\n+2. 运行服务器:\n ```bash\n-python -m mcp_tool\n+# 安装项目依赖\n+uv pip install -e \".[dev]\"\n+\n+# 启动服务器\n+uv run mcp-tool --transport sse --port 8000\n ```\n \n+## 配置\n+\n+### 环境变量\n+\n+在`.env`文件中配置:\n+\n+- `MCP_SERVER_PORT`: 服务器端口(默认: 8000)\n+- `MCP_SERVER_HOST`: 绑定地址(默认: 0.0.0.0)\n+- `DEBUG`: 调试模式(默认: false)\n+- `MCP_USER_AGENT`: 自定义User-Agent\n+\n+## 依赖项\n+\n+主要依赖:\n+- `mcp`: Model Context Protocol实现\n+- `PyMuPDF`: PDF文档处理\n+- `python-docx`: Word文档处理\n+- `pandas`和`openpyxl`: Excel文件处理\n+- `httpx`: 异步HTTP客户端\n+- `anyio`: 异步I/O支持\n+- `click`: 命令行接口\n+\n ## 贡献指南\n \n-欢迎提交Pull Request来改进这个项目。在提交PR之前,请确保:\n+1. Fork仓库\n+2. 创建功能分支 (`git checkout -b feature/amazing-feature`)\n+3. 提交更改 (`git commit -m 'Add some amazing feature'`)\n+4. 推送到分支 (`git push origin feature/amazing-feature`)\n+5. 打开Pull Request\n \n-1. 代码符合PEP 8规范\n-2. 添加了适当的测试用例\n-3. 更新了相关文档\n-4. 所有测试都能通过\n-\n ## 许可证\n \n-本项目采用MIT许可证。详见[LICENSE](LICENSE)文件。\n+本项目采用MIT许可证 - 详情请参阅[LICENSE](LICENSE)文件。\n \n"
},
{
"date": 1741665139304,
"content": "Index: \n===================================================================\n--- \n+++ \n@@ -246,29 +246,39 @@\n - URL: `http://localhost:8000/sse`\n \n ### 传统Python部署\n \n-1. 安装依赖:\n+1. 安装系统依赖:\n ```bash\n-# 安装uv\n-pip install uv\n+# Ubuntu/Debian\n+sudo apt-get update\n+sudo apt-get install -y poppler-utils tesseract-ocr tesseract-ocr-chi-sim\n \n-# 安装系统依赖\n-# Ubuntu/Debian\n-sudo apt-get install poppler-utils\n # macOS\n-brew install poppler\n+brew install poppler tesseract tesseract-lang\n+\n+# Windows\n+# 1. 下载并安装Tesseract: https://github.com/UB-Mannheim/tesseract/wiki\n+# 2. 将Tesseract添加到系统PATH\n ```\n \n-2. 运行服务器:\n+2. 安装Python依赖:\n ```bash\n-# 安装项目依赖\n-uv pip install -e \".[dev]\"\n+# 创建虚拟环境\n+python -m venv venv\n+source venv/bin/activate # Linux/Mac\n+# 或\n+.\\venv\\Scripts\\activate # Windows\n \n-# 启动服务器\n-uv run mcp-tool --transport sse --port 8000\n+# 安装依赖\n+pip install -r requirements.txt\n ```\n \n+3. 启动服务:\n+```bash\n+python -m mcp_tool\n+```\n+\n ## 配置\n \n ### 环境变量\n \n"
}
],
"date": 1741245187085,
"name": "Commit-0",
"content": "# MCP Server Template for Cursor IDE\n\nA simple template for creating custom tools for Cursor IDE using Model Context Protocol (MCP). Create your own repository from this template, modify the tools, and connect them to your Cursor IDE.\n\n\n\n## 可用工具\n\n1. **网站内容获取工具 (mcp_fetch)**\n - 获取指定URL的网站内容\n - 参数: `url` - 要获取内容的网站URL\n\n2. **服务器心情查询工具 (mood)**\n - 查询服务器的\"心情\"\n - 参数: `question` - 询问服务器心情的问题\n\n3. **PDF文档解析工具 (file)**\n - 解析PDF文档并提取文本和图片内容\n - 参数: `file_path` - PDF文件的本地路径\n - 返回: 文档的文本内容和图片(以base64编码形式)\n\n## Quick Start\n\n1. Click \"Deploy to Heroku\" button\n\n [](https://heroku.com/deploy?template=https://github.com/kirill-markin/weaviate-mcp-server)\n\n2. After deployment, configure Cursor:\n - Open Cursor Settings → Features\n - Add new MCP server\n - Use your Heroku URL with `/sse` path (e.g., `https://<your-app-name>.herokuapp.com/sse`)\n\n3. Test your agent's mood in Cursor:\n - Ask your agent \"Please ask about our server mood and let me know how it is.\"\n - The server will respond with a cheerful message and a heart ❤️\n\n## Alternative Setup Methods\n\nYou can run the server in three ways: using Docker, traditional Python setup, or directly in Cursor IDE.\n\n### Docker Setup\n\nThe project includes Docker support for easy deployment:\n\n1. Initial setup:\n```bash\n# Clone the repository\ngit clone https://github.com/kirill-markin/weaviate-mcp-server.git\ncd weaviate-mcp-server\n\n# Create environment file\ncp .env.example .env\n```\n\n2. Build and run using Docker Compose:\n```bash\n# Build and start the server\ndocker compose up --build -d\n\n# View logs\ndocker compose logs -f\n\n# Check server status\ndocker compose ps\n\n# Stop the server\ndocker compose down\n```\n\n3. The server will be available at:\n - SSE endpoint: http://localhost:8000/sse\n\n4. Quick test:\n```bash\n# Test the server endpoint\ncurl -i http://localhost:8000/sse\n```\n\n5. Connect to Cursor IDE:\n - Open Cursor Settings → Features\n - Add new MCP server\n - Type: Select \"sse\"\n - URL: Enter `http://localhost:8000/sse`\n\n### Traditional Setup\n\nFirst, install the uv package manager:\n\n```bash\n# Install uv on macOS\nbrew install uv\n# Or install via pip (any OS)\npip install uv\n```\n\nStart the server using either stdio (default) or SSE transport:\n\n```bash\n# Install the package with development dependencies\nuv pip install -e \".[dev]\"\n\n# Using stdio transport (default)\nuv run mcp-simple-tool\n\n# Using SSE transport on custom port\nuv run mcp-simple-tool --transport sse --port 8000\n\n# Run tests\nuv run pytest -v\n```\n\nAfter installation, you can connect the server directly to Cursor IDE:\n\n1. Right-click on the `cursor-run-mcp-server.sh` file in Cursor\n2. Select \"Copy Path\" to copy the absolute path\n3. Open Cursor Settings (gear icon)\n4. Navigate to Features tab\n5. Scroll down to \"MCP Servers\"\n6. Click \"Add new MCP server\"\n7. Fill in the form:\n - Name: Choose any name (e.g., \"my-mcp-server-1\")\n - Type: Select \"stdio\" (not \"sse\" because we run the server locally)\n - Command: Paste the absolute path to `cursor-run-mcp-server.sh` that you copied earlier. For example: `/Users/kirillmarkin/weaviate-mcp-server/cursor-run-mcp-server.sh`\n\n### Environment Variables\n\nAvailable environment variables (can be set in `.env`):\n\n- `MCP_SERVER_PORT` (default: 8000) - Port to run the server on\n- `MCP_SERVER_HOST` (default: 0.0.0.0) - Host to bind the server to\n- `DEBUG` (default: false) - Enable debug mode\n- `MCP_USER_AGENT` - Custom User-Agent for website fetching\n\n## Additional options\n\n### Installing via Smithery\n\n[](https://smithery.ai/server/@kirill-markin/example-mcp-server)\n\nTo install MCP Server Template for Cursor IDE for Claude Desktop automatically via [Smithery](https://smithery.ai/server/@kirill-markin/example-mcp-server):\n\n```bash\nnpx -y @smithery/cli install @kirill-markin/example-mcp-server --client claude\n```\n\n### Glama server review\n\n<a href=\"https://glama.ai/mcp/servers/jgisqn8zco\"><img width=\"380\" height=\"200\" src=\"https://glama.ai/mcp/servers/jgisqn8zco/badge\" alt=\"Server Template for Cursor IDE MCP server\" /></a>\n\n"
}
]
}