Token导航 LogoToken导航

MCP Server · AI代理

Pdf Downloader MCP

一个基于MCP协议的PDF下载工具,具有高级重试逻辑、错误处理和部分下载恢复功能。

stdio官方级别未说明来源级核验工具 1
错误处理Python文件管理

快速开始

作者 / 组织
baldawsari
提供方
baldawsari

工具数量

1

来源目录标注

资源数量

0

来源目录标注

提示词数量

0

来源目录标注

GitHub Star

0

仓库热度

收录来源

1 个

MCP World

选型结论

Pdf Downloader MCP 属于AI代理类 MCP Server,公开资料标注 1 个工具,通过stdio 本地进程接入,客户端适配情况以官方文档为准,有可以直接复制的安装命令;接入前先确认权限范围。

分类

AI代理

传输方式

stdio

认证方式

无需认证

部署方式

公开资料未说明

安装与配置

安装命令

pip install -e .

公开命令不是通用的启动方式,拼不出可靠配置示例;请在客户端 MCP 配置里按官方文档填写 command 和 args。

上手步骤

  1. 1

    准备运行环境

    stdio 服务在本地起进程,需要先装好 对应的运行时,再按安装命令拉取依赖。

  2. 2

    安装服务

    复制下面的安装命令执行;命令里带占位符的位置换成自己的密钥或路径。

  3. 3

    写入客户端配置

    在客户端的 MCP 配置里填启动命令和参数,保存后完全退出客户端再打开,让新配置生效。

  4. 4

    验证是否可用

    连接成功后客户端会列出 1 个工具,随便调一个只读工具确认能返回结果。

接入前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

详细介绍

PDF下载器MCP

一个强大的模型上下文协议(MCP)服务器,用于下载具有高级重试逻辑、错误处理和部分下载恢复的PDF文件。

特性

?核心功能

  • 单用途工具:一个工具(download_pdf)这使得PDF下载非常好
  • 稳健的重试逻辑:具有抖动的指数级回退,可优雅地处理网络问题
  • 部分下载恢复:使用HTTP范围请求恢复中断的下载
  • 全面的错误处理:对错误进行智能分类,以确定重试策略

?高级重试策略

指数退避
  • 第一次重试:等待5秒
  • 第二次重试:等待10秒
  • 第三次重试:等待20秒
  • 通过快速重试尝试防止服务器不堪重负
智能错误处理
  • 网络超时:重试,超时时间更长
  • HTTP 429(速率受限):等待更长时间,遵守费率限制
  • HTTP 503(服务器不可用):延迟后重试
  • HTTP 404/403:不要重试,立即返回错误
  • SSL/证书错误:使用不同的SSL设置重试
部分下载恢复
  • 使用HTTP范围请求恢复中断的下载
  • 检查服务器是否支持 Accept-Ranges: bytes
  • 从上次下载的字节位置恢复
  • 如果恢复失败,则回退到完整下载
下载验证
  • 验证文件大小是否匹配 Content-Length 头球
  • 基本PDF标题验证(从开始 %PDF)
  • 全面的PDF结构验证
  • 如果文件出现损坏,请重试
后备策略
  • 如果被阻止,请尝试其他用户代理字符串
  • 尝试使用/不使用SSL验证
  • 针对问题服务器的多种连接策略

安装

来源

git clone https://github.com/baldawsari/pdf-downloader-mcp.git
cd pdf-downloader-mcp
pip install -e .

开发安装

git clone https://github.com/baldawsari/pdf-downloader-mcp.git
cd pdf-downloader-mcp
pip install -e ".[dev]"

用法

作为MCP服务器

  1. 运行服务器:
pdf-downloader-mcp
  1. 或者作为Python模块运行:
python -m pdf_downloader_mcp

刀具参数

这 download_pdf 工具接受以下参数:

参数类型必填默认说明
url字符串?-直接PDF URL
destination_path字符串?-本地文件夹路径
filename字符串?URL文件名自定义文件名
max_retries整数?3重试次数(0-10)
retry_delay号码?5.0重试之间的基本延迟(0.1-60.0s)
timeout号码?30.0请求超时(5.0-300.0秒)

示例用法

{
  "tool": "download_pdf",
  "arguments": {
    "url": "https://example.com/document.pdf",
    "destination_path": "/home/user/downloads",
    "filename": "important_document.pdf",
    "max_retries": 5,
    "retry_delay": 10.0,
    "timeout": 60.0
  }
}

响应格式

成功响应
{
  "success": true,
  "local_path": "/home/user/downloads/important_document.pdf",
  "file_size": 1234567,
  "attempts_used": 2,
  "max_retries": 5,
  "download_time": 15.3,
  "total_time": 25.8,
  "average_speed": "4.85",
  "resumed": false,
  "bytes_downloaded": 1234567,
  "error_message": null
}
错误响应
{
  "success": false,
  "local_path": null,
  "file_size": 0,
  "attempts_used": 6,
  "max_retries": 5,
  "download_time": 0,
  "total_time": 45.2,
  "average_speed": "0.00",
  "resumed": false,
  "bytes_downloaded": 0,
  "error_message": "Failed after 6 attempts. Last error: HTTP 404: Not Found"
}

错误类别

下载器将错误分为三类,以获得最佳的重试行为:

重试错误

  • 网络超时
  • 服务器错误(5xx)
  • 费率限制(429)
  • 连接错误
  • SSL错误

NO_RETRY错误

  • 找不到文件(404)
  • 拒绝访问(403)
  • 错误请求(400)
  • 需要身份验证(401)

PARTIAL_RETRY错误

  • 下载不完整
  • 检测到损坏
  • 验证失败

配置

MCP服务器配置

添加到MCP配置文件中:

{
  "mcpServers": {
    "pdf-downloader": {
      "command": "pdf-downloader-mcp",
      "args": []
    }
  }
}

环境变量

变量描述默认值
PDF_DOWNLOADER_LOG_LEVEL日志记录级别(调试、信息、警告、错误)信息
PDF_DOWNLOADER_MAX_CONCURRENT最大并发下载量5

发展

运行测试

pytest

代码格式化

black src/ tests/
isort src/ tests/

类型检查

mypy src/

代码检查

flake8 src/ tests/

建筑

src/pdf_downloader_mcp/
??? __init__.py          # Package initialization
??? __main__.py          # CLI entry point
??? server.py            # MCP server implementation
??? downloader.py        # Core PDF downloader
??? exceptions.py        # Custom exception classes
??? validators.py        # PDF validation logic
??? utils.py            # Utility functions

贡献

  1. 分叉存储库
  2. 创建要素分支(git checkout -b feature/amazing-feature)
  3. 提交您的更改(git commit -m 'Add amazing feature')
  4. 推到分支(git push origin feature/amazing-feature)
  5. 打开拉取请求

许可证

此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。

致谢

______________________________________________________________________

用??用于可靠的PDF下载

工具与能力

工具数量

1

资源数量

0

提示词数量

0

能力标签

PDF下载Python本地部署文件管理错误处理重试逻辑MCP协议

数量来自来源目录的标注,具体工具清单以官方文档为准。

典型使用场景

多步任务编排

把拆解、检索、执行串成一条链,模型按步骤调用工具。

长期上下文

把会话、笔记和知识放到外部存储,换个会话还能接着做。

接自有流程

把内部系统和模型连起来,让助手调用已有的工作流。

选择建议

值得选的地方

  • 只提供 1 个工具,职责集中,接入后不容易误操作。
  • 有现成的安装命令,不用自己找入口,照着跑就能起服务。
  • 公开说明写得比较完整,接入前能看清能力边界。

先想清楚的地方

  • stdio 方式要求本地装好 运行环境,换机器要重新装一遍。
  • 公开摘要偏短,具体能力和限制要回到仓库确认。
  • 第三方目录整理,版本更新和行为细节以官方仓库为准。

更适合

  • 需要在AI代理场景里让模型直接调用外部能力的人。
  • 想先快速试一下、能接受在本地跑服务的人。

不太适合

  • 完全不想在本地装环境的人。
  • 需要厂商级 SLA 和技术支持的生产环境。

同类对比

5 个同类
MCP Server工具数传输方式安装命令收录来源最后核验
Pdf Downloader MCP

MCP World · 本页

1stdio有1 个2026-05-17
Everything Claude Code

MCP World

0stdio有1 个2026-05-17
Filesystem 560c4363

MCP World

13未说明未标注2 个2026-05-17
Time 7365cb6d

MCP.so

2SSE有2 个2026-05-17
Server Everything (everything)

MCP World

11stdio有1 个2026-05-17

按同分类和工具数量挑出最接近的几条,字段以各自详情页为准。

常见问题

5 条

Pdf Downloader MCP 怎么安装?

公开资料给出的安装命令是 pip install -e .,运行环境为 未标注。装完后按客户端要求写进 MCP 配置,重启客户端生效。

Pdf Downloader MCP 怎么在 Claude Desktop、Cursor 里配置?

它是stdio 本地进程,客户端配置里要写启动命令和参数,运行环境是 未标注;保存后完全退出客户端再打开,配置才会生效。

Pdf Downloader MCP 收费吗?

本站只整理公开资料,不代收费用,也没有标注具体价格。是否收费取决于服务本身和背后的接口额度,正式使用前按官方说明确认。

Pdf Downloader MCP 需要 API Key 吗?

公开资料标注为无需认证,装好就能连;如果实际调用时报鉴权错误,按官方文档补上凭据。

Pdf Downloader MCP 支持哪些客户端?

公开资料没有标注具体客户端;能配置本地 MCP 命令的客户端都能接,配置方式参照官方文档。

来源信息

继续浏览同类 MCP