Token导航 LogoToken导航TokenDH.com
Book Downloader MCP logo
运维云端未说明官方级别未说明来源级核验

Book Downloader MCP

MCP Server

一个强大的Node.js/TypeScript工具,用于从LibGen镜像搜索和下载电子书,并集成了模型上下文协议(MCP)服务器,实现与大型语言模型(LLM)的无缝集成。

工具数

7

提示词数

0

GitHub Stars

1

资源数

0
TypeScriptClaude云端部署Claude

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

CodeDreamer06

提供方

CodeDreamer06

最后核验

2026/5/17 20:22

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

详细介绍

LibGen下载器 + MCP服务器

一个强大的Node.js/TypeScript工具,用于从LibGen镜像站点搜索和下载电子书,其特点在于配备了一个模型上下文协议(MCP)服务器,以实现与大型语言模型(LLM)的无缝集成。

🚀 特点

  • MCP服务器集成使大型语言模型(如Claude)能够通过工具调用搜索和下载书籍
  • 程序化API完整Node.js API,用于自动化工作流
  • 批量下载通过MD5同时下载多本书籍
  • 智能镜发现LibGen+镜像的自动检测和故障转移
  • 弹性运营内置网络请求的重试和错误处理功能
  • TypeScript 支持包含完整的类型定义

📦 安装

对于MCP服务器(与大型语言模型集成)

npm install -g book-downloader-mcp

用于程序化使用

npm install book-downloader-mcp

要求建议使用 Node.js 16 或更高版本

🤖 MCP服务器设置

Claude 桌面集成

  1. 全局安装:
npm install -g book-downloader-mcp
  1. 添加到你的 claude_desktop_config.json
{
  "mcpServers": {
    "libgen": {
      "command": "libgen-mcp"
    }
  }
}
  1. 重启Claude桌面版

现在,助手将能够访问LibGen的搜索和下载功能!

其他MCP客户端

直接运行MCP服务器:

libgen-mcp

或者从源代码:

npm run start:mcp

💻 程序化使用

基本示例

const libgen = require('@rovodev/libgen-mcp-server');

async function searchAndDownload() {
  // Initialize mirror connection
  await libgen.ensureMirrorReady();
  
  // Search for books
  const results = await libgen.searchBooks('The Art of War');
  console.log(`Found ${results.length} results`);
  
  if (results.length > 0) {
    const book = results[0];
    console.log(`Downloading: ${book.title} by ${book.authors}`);
    
    // Get direct download URL
    const url = await libgen.getDirectDownloadUrlByMd5(book.md5);
    console.log(`Download URL: ${url}`);
    
    // Download the file
    const outcome = await libgen.downloadByMd5(book.md5);
    if (outcome.status === 'ok') {
      console.log(`Downloaded to: ${outcome.path}`);
    }
  }
}

searchAndDownload();

TypeScript 示例

import * as libgen from '@rovodev/libgen-mcp-server';

async function bulkDownload(searchQuery: string) {
  await libgen.ensureMirrorReady();
  
  const results = await libgen.searchBooks(searchQuery, 1, 10);
  const md5List = results
    .filter(book => book.md5)
    .map(book => book.md5!)
    .slice(0, 3); // Download first 3 books
  
  const outcomes = await libgen.downloadByMd5List(md5List);
  outcomes.forEach(outcome => {
    if (outcome.status === 'ok') {
      console.log(`✓ Downloaded: ${outcome.filename}`);
    } else {
      console.log(`✗ Failed: ${outcome.error}`);
    }
  });
}

API 参考文档

  • ensureMirrorReady()初始化镜像配置
  • searchBooks(query, page?, pageSize?)搜索书籍
  • getDirectDownloadUrlByMd5(md5)获取书籍的下载链接
  • downloadByMd5(md5)下载单本书籍
  • downloadByMd5List(md5Array)批量下载多本书籍

🛠 MCP 工具参考

当通过MCP连接时,大型语言模型(LLMs)可使用以下工具:

核心运营

工具描述输入输出
libgen.ensureMirror初始化并选择工作镜像{}{ mirror, config }
libgen.getActiveMirror获取当前选中的镜像{}{ mirror }
libgen.setActiveMirror手动设置活动镜像{ mirrorSrc: string }{ mirror }

搜索与发现

工具描述输入输出
libgen.search在LibGen+上搜索书籍{ query: string, page?: number, pageSize?: number }带有元数据的书籍条目数组

搜索结果字段idauthorstitlepublisheryearpageslanguagesizeextensionmirrormd5resolvedMirrorUrl

下载操作

工具描述输入输出
libgen.getDownloadUrl获取直接下载链接{ md5: string }{ md5, url }
libgen.download下载单个文件{ md5: string }{ md5, status, path?, filename?, total?, error? }
libgen.bulkDownload下载多个文件{ md5List: string[] }下载结果数组

示例MCP工作流程

// 1. Initialize
await mcp.call("libgen.ensureMirror", {});

// 2. Search
const results = await mcp.call("libgen.search", { 
  query: "machine learning", 
  page: 1 
});

// 3. Download first result
if (results.length > 0) {
  const outcome = await mcp.call("libgen.download", { 
    md5: results[0].md5 
  });
}

⚠️ 重要提示

  • 镜像状态LibGen镜像站点可能不稳定。该工具会自动从配置中发现可用的镜像站点
  • 文件位置下载文件以原始文件名保存在当前工作目录中
  • 网络韧性内置重试机制处理临时网络问题
  • LibGen+ 兼容性针对LibGen+镜像结构和解析进行了优化

🔧 开发

构建项目

npm run build          # Compile TypeScript
npm run build:mcp      # Build and run MCP server
npm run watch          # Watch mode for development

本地运行

npm run start:mcp      # Start MCP server in development
npm run lint           # Run ESLint
npm run format         # Format code with Prettier

测试

npm test               # Run all tests
npm run test:ci        # Run tests in CI mode

可选的集成测试为Groq API测试设置环境变量:

  • GROQ_API_KEY您的Groq API密钥
  • RUN_GROQ_TESTS=1启用集成测试

创建一个 .env 文件(已添加到git忽略列表)或使用 .env.test 用于测试。参见 .env.example 供参考。

🏗 建筑学

  • 核心层HTML解析(使用jsdom)、HTTP请求、镜像发现、重试逻辑
  • MCP服务器基于Stdio的服务器,将LibGen操作作为MCP工具暴露出来
  • 程序化API用于Node.js集成的直接函数导出
  • 镜像管理动态配置获取与自动故障转移

📋 更新日志

v3.0.2(当前版本)

  • ✅ 完整的测试覆盖率,使用适当的模拟
  • ✅ 更新了MCP SDK兼容性
  • ✅ 增强了错误处理和重试机制
  • ✅ 改进了文档和示例

v3.0.0(版本3.0.0)

  • 🔄 以LibGen镜像作为主要来源
  • ➖ 移除了LibGen+兼容性的搜索过滤器
  • ➖ 暂时移除备用下载选项

v2.x(版本2.x)

  • ➕ 替代下载选项,进度指示器
  • \+ CLI搜索功能和快捷键
  • ➕ 缓存系统

v1.x

  • 🔄 使用React/Ink/Zustand完成UI重写
  • \+ 批量下载功能
  • ✅ 增强了错误处理和重试逻辑

📄 许可证

WTFPL(Do What The Fuck You Want To Public License,即“做你他妈想做的事公共许可证”) “Do What The F\*ck You Want To Public License” 可以翻译为“随你便公共许可证”或“想干嘛就干嘛公共许可证”,不过这个名称包含不雅词汇,正式场合应避免使用。一个更正式且中性的翻译可能是“自由行动公共许可证”或“自主决定公共许可证”,但具体翻译还需根据上下文和语境来确定

⚖️ 法律免责声明

这个工具访问第三方LibGen镜像站点,这些站点可能:

  • 在某些地区受阻或不稳定
  • 遵守当地法律法规

请负责任地使用,并确保遵守您所在司法管辖区的适用法律。

______________________________________________________________________

🤝 贡献

  1. 为仓库创建分支(或“克隆仓库”)
  2. 创建一个特性分支
  3. 为新功能添加测试
  4. 确保所有测试通过: npm test
  5. 提交拉取请求

仓库https://github.com/obsfx/libgen-downloader 翻译为中文是:https://github.com/obsfx/libgen下载器(或:libgen下载工具)

目录标签

目录标签

TypeScriptClaude云端部署电子书下载本地部署LibGenMCP服务器Node.js工具批量下载

支持客户端

Claude

接入字段

传输方式(transport,传输协议)

未说明

鉴权方式(authType,认证方式)

none

工具数量(toolCount,工具数)

7

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

未说明none部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

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

仍需确认:installCommand

来源信息

继续浏览同类 MCP