mcp hn

Local 2025-08-31 23:17:42 0

A Model Context Protocol (MCP) server that provides tools for searching and fetching information from Hacker News.


A Model Context Protocol (MCP) server that provides tools for fetching information from Hacker News.

Tools

  • get_stories Fetching (top, new, ask_hn, show_hn) stories
  • get_story_info Fetching comments associated with a story
  • search_stories Searching for stories by query
  • get_user_info Fetching user info

Example Usage

Use prompts like the following:

User: Get the top stories of today
  Output: Uses `get_stories` tool and returns a story about AI
User: What does the details of the story today that talks about the future of AI
  Output: Uses `get_story_info` tool based on the results of the previous tool
User: What has the user `pg` been up to?
  Output: Uses `get_user_info` tool and returns a summary of the user's activity
User: What does hackernews say about careers in AI?
  Output: Uses `search_stories` tool and returns a summary of the comments

A more detailed example with the puppeteer MCP server:

User: What are the top stories of today?
  Output: Uses `get_stories` tool and returns a story about AI
User: Can you use the puppeteer tool to read the article about <AI> and also use the hackernews tool to view the comments and give me a summary of what the main comments are about the article?
  Output: Uses puppeteer tool to read the article about AI and then uses the `get_story_info` hn tool to get the comments and returns a summary of the comments

Quickstart

Claude Desktop:

Update the following:

On MacOS: ~/Library/Application Support/Claude/claude_desktop_config.json

On Windows: %APPDATA%/Claude/claude_desktop_config.json

With the following for production:

{
  "mcpServers": {
    "mcp-hn": {
      "command": "uvx",
      "args": ["mcp-hn"]
    }
  }
}
[
  {
    "description": "Get stories from Hacker News. The options are `top`, `new`, `ask_hn`, `show_hn` for types of stories. This doesn't include the comments. Use `get_story_info` to get the comments.",
    "inputSchema": {
      "properties": {
        "num_stories": {
          "description": "Number of stories to get",
          "type": "integer"
        },
        "story_type": {
          "description": "Type of stories to get, one of: `top`, `new`, `ask_hn`, `show_hn`",
          "type": "string"
        }
      },
      "type": "object"
    },
    "name": "get_stories"
  },
  {
    "description": "Get user info from Hacker News, including the stories they've submitted",
    "inputSchema": {
      "properties": {
        "num_stories": {
          "description": "Number of stories to get, defaults to 10",
          "type": "integer"
        },
        "user_name": {
          "description": "Username of the user",
          "type": "string"
        }
      },
      "required": [
        "user_name"
      ],
      "type": "object"
    },
    "name": "get_user_info"
  },
  {
    "description": "Search stories from Hacker News. It is generally recommended to use simpler queries to get a broader set of results (less than 5 words). Very targetted queries may not return any results.",
    "inputSchema": {
      "properties": {
        "num_results": {
          "description": "Number of results to get, defaults to 10",
          "type": "integer"
        },
        "query": {
          "description": "Search query",
          "type": "string"
        },
        "search_by_date": {
          "description": "Search by date, defaults to False. If this is False, then we search by relevance, then points, then number of comments.",
          "type": "boolean"
        }
      },
      "required": [
        "query"
      ],
      "type": "object"
    },
    "name": "search_stories"
  },
  {
    "description": "Get detailed story info from Hacker News, including the comments",
    "inputSchema": {
      "properties": {
        "story_id": {
          "description": "Story ID",
          "type": "integer"
        }
      },
      "type": "object"
    },
    "name": "get_story_info"
  }
]