Skip to main content
Glama
README.md
# Book Crawler MCP

一个自动化的 PDF 书籍爬取和 Gumroad 发布工具,使用 AI 生成商品描述。

## 功能

| 工具 | 描述 |
|------|------|
| `fetch_arxiv_papers` | 从 arXiv 获取学术论文 |
| `fetch_github_repos` | 从 GitHub 获取热门仓库 |
| `download_pdf` | 下载 PDF 文件 |
| `extract_pdf_content` | 提取 PDF 内容和元数据 |
| `generate_gumroad_listing` | 使用 AI 生成 Gumroad 商品描述 |
| `publish_to_gumroad` | 发布商品到 Gumroad |
| `auto_crawl_and_publish` | 一键全自动爬取并发布 |
| `list_gumroad_products` | 查看已发布的商品 |

## 安装

### 1. 克隆并安装依赖

```bash
git clone https://github.com/LiZhuBin/book-crawler-mcp.git
cd book-crawler-mcp
npm install
npm run build
```

### 2. 配置环境变量

复制 `.env.example` 为 `.env` 并填入你的密钥:

```bash
cp .env.example .env
```

```env
# Gumroad API Token
# 获取方式:https://gumroad.com/settings -> Advanced
GUMROAD_ACCESS_TOKEN=your_token_here

# Anthropic API Key (用于 AI 生成商品描述)
# 获取方式:https://console.anthropic.com/settings/keys
ANTHROPIC_API_KEY=your_key_here
```

## 使用

### MCP 配置

在 Claude 的 MCP 配置文件中添加:

```json
{
  "mcpServers": {
    "book-crawler": {
      "command": "npx",
      "args": ["book-crawler-mcp"],
      "env": {
        "GUMROAD_ACCESS_TOKEN": "your_token",
        "ANTHROPIC_API_KEY": "your_key"
      }
    }
  }
}
```

### 使用示例

#### 1. 从 arXiv 获取论文

```json
{
  "categories": ["cs.AI", "cs.LG", "cs.CL"],
  "limit": 10
}
```

#### 2. 下载并提取 PDF 内容

```json
{
  "url": "https://arxiv.org/pdf/2301.00001.pdf"
}
```

#### 3. 生成 Gumroad 商品描述

```json
{
  "pdfContent": "提取的 PDF 内容...",
  "title": "论文标题",
  "author": "作者名"
}
```

#### 4. 发布到 Gumroad

```json
{
  "name": "商品名称",
  "description": "商品描述 (Markdown)",
  "price": 1999,
  "currency": "USD"
}
```

#### 5. 全自动模式

```json
{
  "source": "arxiv",
  "categories": ["cs.AI", "cs.LG"],
  "autoPublish": true,
  "priceRange": {
    "min": 999,
    "max": 4999
  }
}
```

## 工作流程

```
┌─────────────────────────────────────────────────────────────┐
│  1. fetch_arxiv_papers / fetch_github_repos                │
│     → 获取热门资源列表                                       │
└─────────────────────────────────────────────────────────────┘
                            ↓
┌─────────────────────────────────────────────────────────────┐
│  2. download_pdf                                            │
│     → 下载 PDF 文件到本地                                     │
└─────────────────────────────────────────────────────────────┘
                            ↓
┌─────────────────────────────────────────────────────────────┐
│  3. extract_pdf_content                                     │
│     → 提取文本内容和元数据                                    │
└─────────────────────────────────────────────────────────────┘
                            ↓
┌─────────────────────────────────────────────────────────────┐
│  4. generate_gumroad_listing                               │
│     → AI 生成商品标题、描述、定价                              │
└─────────────────────────────────────────────────────────────┘
                            ↓
┌─────────────────────────────────────────────────────────────┐
│  5. publish_to_gumroad                                      │
│     → 上传文件并发布商品                                      │
└─────────────────────────────────────────────────────────────┘
```

## 开发

```bash
# 安装依赖
npm install

# 开发模式
npm run dev

# 构建
npm run build

# 运行
npm start
```

## 注意事项

1. **版权**: 确保你有权分发爬取的内容
2. **API 限制**: 遵守各平台的 API 调用频率限制
3. **定价责任**: AI 生成的价格仅供参考,请自行判断

## License

MIT

## Links

- [Gumroad API](https://gumroad.com/api)
- [arXiv API](https://arxiv.org/help/api)
- [GitHub API](https://docs.github.com/en/rest)
- [Anthropic API](https://docs.anthropic.com/claude/reference)

TDQS

B3.2/5.0

Scored across 1 tool

Disambiguation5/5

With only one tool, there is no possibility of overlap or confusion between tools. The agent will always select the correct tool.

Naming Consistency5/5

A single tool follows a clear verb_noun pattern (fetch_github_repos), and there are no other tools to introduce inconsistency.

Tool Count2/5

The server has only one tool, which feels insufficient and misaligned with the server name 'book-crawler-mcp'. The tool appears unrelated to book crawling, suggesting poor scoping.

Completeness1/5

The single tool covers only fetching GitHub repos, leaving any book-crawling domain completely uncovered. The surface is severely incomplete.

Maintenance

ActivityInactive
ResponsivenessNo issues