hackernews-mcp

Malayke/hackernews-mcp

3.3

If you are the rightful owner of hackernews-mcp and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to dayong@mcphub.com.

The Hacker News Reader MCP Server is a Model Context Protocol server designed to fetch and format Hacker News discussions and article content for LLM consumption.

Tools
1
Resources
0
Prompts
0

Hacker News Reader MCP Server

Python 3.11+ License: MIT

A Model Context Protocol (MCP) server that fetches Hacker News discussions and article content. Optimized for LLM consumption with compact, token-efficient formatting.

Features

✅ Fetch complete Hacker News discussion threads
✅ Scrape linked article content in markdown format
✅ LLM-optimized output (compact nested replies)
✅ Accepts both HN URLs and item IDs
✅ Handles edge cases (text posts, Ask HN, deleted comments)
✅ Powered by Firecrawl for robust article extraction

Installation

Using uvx from GitHub (Recommended)

uvx --from git+https://github.com/Malayke/hackernews-mcp.git hackernews-mcp

Using uv pip

uv pip install git+https://github.com/Malayke/hackernews-mcp.git

Using pip

pip install git+https://github.com/Malayke/hackernews-mcp.git

Usage

As an MCP Server

Add to your MCP settings configuration (e.g., in Claude Desktop or other MCP clients):

{
  "mcpServers": {
    "hackernews-mcp": {
      "command": "uvx",
      "args": [
        "--from",
        "git+https://github.com/Malayke/hackernews-mcp.git",
        "hackernews-mcp"
      ],
      "env": {
        "FIRECRAWL_API_KEY": "your_api_key_here"
      }
    }
  }
}

Or if you've installed it with pip/uv pip:

{
  "mcpServers": {
    "hackernews-mcp": {
      "command": "hackernews-mcp",
      "env": {
        "FIRECRAWL_API_KEY": "your_api_key_here"
      }
    }
  }
}

Environment Variables

Required:

Create a .env file:

FIRECRAWL_API_KEY=your_api_key_here

Available Tools

get_hn_content

Fetches Hacker News comments and the linked article content.

Input:

  • hn_url: HN URL or item ID
    • Full URL: https://news.ycombinator.com/item?id=46130187
    • Just ID: 46130187

Output: Combined markdown with:

  1. Article Content - Scraped article in markdown format
  2. HN Discussion - Formatted comment threads with metadata

Example:

{
  "hn_url": "https://news.ycombinator.com/item?id=46130187"
}

Output Format

The tool returns LLM-optimized content:

# ARTICLE CONTENT

[Article markdown content here...]

---

# HACKER NEWS DISCUSSION

STORY: Article Title
URL: https://example.com/article
AUTHOR: username | POINTS: 123 | TIME: 2 hours ago
TOTAL_COMMENTS: 45

COMMENT #1
COMMENT [author @ time] ID: 123456
Comment text here...
  REPLY [author2 @ time] ID: 123457
  Reply text here...
    REPLY [author3 @ time] ID: 123458
    Nested reply text...

COMMENT #2
...

Development

Local Setup

# Clone the repository
git clone https://github.com/Malayke/hackernews-mcp.git
cd hackernews-mcp

# Install dependencies with uv
uv sync

# Set up environment
echo "FIRECRAWL_API_KEY=your_api_key_here" > .env

# Run the server
uv run server.py

Testing

# Test the MCP server
uv run python test_mcp_server.py

Using in Development Mode

For local development with live changes:

{
  "mcpServers": {
    "hackernews-mcp": {
      "command": "uv",
      "args": [
        "run",
        "--directory",
        "/path/to/hackernews-mcp",
        "python",
        "server.py"
      ],
      "env": {
        "FIRECRAWL_API_KEY": "your_api_key_here"
      }
    }
  }
}

Requirements

  • Python 3.11+
  • Firecrawl API key (for article scraping)

Dependencies

  • mcp - Model Context Protocol SDK
  • requests - HTTP requests
  • beautifulsoup4 - HTML parsing
  • firecrawl-py - Article content extraction
  • python-dotenv - Environment variable management

License

MIT License - see file for details.

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

Links

Support

For issues, questions, or contributions, please visit the GitHub repository.