Skip to main content
Glama
huangxinping

Huggingface Daily Papers

by huangxinping
README.md
# HuggingFace Daily Papers MCP Server

A MCP (Model Context Protocol) server for fetching HuggingFace daily papers.

## Features

- Fetch today's, yesterday's or specific date HuggingFace papers
- Provides paper title, authors, abstract, tags, votes, and submitted by info
- Includes paper links and PDF download links  
- Supports MCP tools and resource interfaces
- ArXiv integration for complete author lists
- Complete error handling and logging
- Comprehensive test coverage

## Installation & Usage

### Option 1: Direct execution with uvx (Recommended)

Install and run directly using uvx:

```bash
uvx huggingface-daily-paper-mcp
```

This will automatically install the package and its dependencies, then start the MCP server.

### Option 2: Local development

For local development, clone the repository and install dependencies:

```bash
git clone https://github.com/huangxinping/huggingface-daily-paper-mcp.git
cd huggingface-daily-paper-mcp
uv sync
```

### Local usage commands

**Run as MCP Server (for development)**:
```bash
python main.py
```

**Test Scraper Function**:
```bash
python scraper.py
```

**Run Tests**:
```bash
uv run -m pytest test_mcp_server.py -v
```

**Build Package**:
```bash
uv build
```

## MCP Interface

### Tools

1. **get_papers_by_date**
   - Description: Get HuggingFace papers for a specific date
   - Parameters: `date` (YYYY-MM-DD format)

2. **get_today_papers**
   - Description: Get today's HuggingFace papers
   - Parameters: None

3. **get_yesterday_papers**
   - Description: Get yesterday's HuggingFace papers
   - Parameters: None

### Resources

1. **papers://today**
   - Today's papers JSON data

2. **papers://yesterday**
   - Yesterday's papers JSON data

## Project Structure

```
huggingface-daily-paper-mcp/
├── main.py                    # MCP server main program
├── scraper.py                 # HuggingFace papers scraper module
├── test_mcp_server.py         # MCP server test cases
├── README.md                  # Project documentation
├── .gitignore                 # Git ignore file
├── pyproject.toml             # Project configuration file
└── uv.lock                    # Dependency lock file
```

## Tech Stack

- **Python 3.10+**: Programming language
- **MCP**: Model Context Protocol framework
- **Requests**: HTTP request library
- **BeautifulSoup4**: HTML parsing library
- **pytest**: Testing framework
- **uv**: Python package manager

## Development Standards

- Use uv native commands for package management
- Follow Python PEP 8 coding standards
- Include type hints and docstrings
- Complete error handling and logging
- Write unit tests to ensure code quality

## Example Output

Single paper data structure:

```json
{
  "title": "CMPhysBench: A Benchmark for Evaluating Large Language Models in Condensed Matter Physics",
  "authors": ["Weida Wang", "Dongchen Huang", "Jiatong Li", "..."],
  "abstract": "CMPhysBench evaluates LLMs in condensed matter physics using calculation problems...",
  "url": "https://huggingface.co/papers/2508.18124",
  "pdf_url": "https://arxiv.org/pdf/2508.18124.pdf",
  "votes": 15,
  "submitted_by": "researcher123",
  "scraped_at": "2025-08-27T10:30:00.123456"
}
```

MCP Tool output format:
```
Title: CMPhysBench: A Benchmark for Evaluating Large Language Models in Condensed Matter Physics
Authors: Weida Wang, Dongchen Huang, Jiatong Li, Tengchao Yang, Ziyang Zheng...
Abstract: CMPhysBench evaluates LLMs in condensed matter physics using calculation problems...
URL: https://huggingface.co/papers/2508.18124
PDF: https://arxiv.org/pdf/2508.18124.pdf
Votes: 15
Submitted by: researcher123
--------------------------------------------------
```

## AI IDE/CLI Configuration

### Claude Code (CLI)

Add to your MCP configuration:

```json
{
  "mcpServers": {
    "huggingface-papers": {
      "command": "uvx",
      "args": ["huggingface-daily-paper-mcp"]
    }
  }
}
```

### Cursor IDE

Add to your `.cursorrules` or MCP settings:

```json
{
  "mcp": {
    "servers": {
      "huggingface-papers": {
        "command": "uvx",
        "args": ["huggingface-daily-paper-mcp"],
        "env": {}
      }
    }
  }
}
```

### Windsurf IDE

Add to your Windsurf MCP configuration:

```json
{
  "mcpServers": {
    "huggingface-papers": {
      "command": "uvx",
      "args": ["huggingface-daily-paper-mcp"]
    }
  }
}
```

### VS Code with Continue Extension

Add to your `continue` configuration:

```json
{
  "mcp": {
    "servers": {
      "huggingface-papers": {
        "command": "uvx",
        "args": ["huggingface-daily-paper-mcp"]
      }
    }
  }
}
```

### Other MCP-Compatible Tools

For any MCP-compatible client, use:

```bash
# Command
uvx huggingface-daily-paper-mcp

# Or with Python path
python -m main
```

## License

MIT License

TDQS

B3.1/5.0

Scored across 3 tools

Disambiguation2/5

The tools have overlapping purposes with unclear boundaries: get_papers_by_date can retrieve papers for any date, including today and yesterday, making get_today_papers and get_yesterday_papers redundant special cases. This overlap creates ambiguity about which tool to use for date-specific queries, as the descriptions don't clarify when to prefer one over another.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern with clear, descriptive naming: get_papers_by_date, get_today_papers, and get_yesterday_papers. The naming convention is uniform throughout, using snake_case and starting with 'get_' followed by the target, making it predictable and readable.

Tool Count2/5

With only 3 tools, the set feels thin and under-scoped for a server named 'Huggingface Daily Papers,' which suggests a broader domain of paper retrieval or analysis. The tools are limited to basic date-based fetching without operations like search, filtering, or metadata access, making the count too low for effective agent use in this context.

Completeness2/5

There are significant gaps in the tool surface for the implied domain of accessing HuggingFace papers. Missing operations include searching papers by keyword, filtering by categories or authors, retrieving paper details or abstracts, and accessing trends or summaries. This incompleteness will likely cause agent failures when trying to perform common paper-related tasks beyond simple date retrieval.

Maintenance

ActivityInactive
ResponsivenessNo issues