Hacker News

Busca e analisa histórias do Hacker News, fornecendo dados estruturados para posts de topo, novos, perguntas, mostras e vagas.

Documentação

Servidor MCP do Hacker News

Um servidor Model Context Protocol (MCP) que fornece ferramentas para buscar histórias do Hacker News. Este servidor analisa o conteúdo HTML de news.ycombinator.com e fornece dados estruturados para diferentes tipos de histórias (top, new, ask, show, jobs).

Hacker News MCP server

Recursos

  • Buscar diferentes tipos de histórias (top, new, ask, show, jobs)
  • Obter dados estruturados, incluindo títulos, URLs, pontos, autores, carimbos de data/hora e contagens de comentários
  • Limite configurável no número de histórias retornadas
  • Tratamento de erros e validação limpos

Instalação

  1. Clone o repositório:
git clone https://github.com/pskill9/hn-server
cd hn-server
  1. Instale as dependências:
npm install
  1. Compile o servidor:
npm run build
  1. Adicione ao seu arquivo de configuração de configurações do MCP (o local depende do seu sistema):

Para a extensão Claude do VSCode:

{
  "mcpServers": {
    "hacker-news": {
      "command": "node",
      "args": ["/path/to/hn-server/build/index.js"]
    }
  }
}

Uso

O servidor fornece uma ferramenta chamada get_stories que pode ser usada para buscar histórias do Hacker News.

Ferramenta: get_stories

Parâmetros:

  • type (string): Tipo de histórias a buscar
    • Opções: 'top', 'new', 'ask', 'show', 'jobs'
    • Padrão: 'top'
  • limit (número): Número de histórias a retornar
    • Intervalo: 1-30
    • Padrão: 10

Exemplo de uso:

use_mcp_tool with:
server_name: "hacker-news"
tool_name: "get_stories"
arguments: {
  "type": "top",
  "limit": 5
}

Exemplo de saída:

[
  {
    "title": "Example Story Title",
    "url": "https://example.com/story",
    "points": 100,
    "author": "username",
    "time": "2024-12-28T00:03:05",
    "commentCount": 50,
    "rank": 1
  },
  // ... more stories
]

Integração com o Claude

Para usar este servidor MCP com o Claude, você precisará:

  1. Ter o aplicativo de desktop do Claude ou a extensão Claude do VSCode instalados
  2. Configurar o servidor MCP nas suas configurações
  3. Usar a interface de linguagem natural do Claude para interagir com o Hacker News

Configuração

Para o aplicativo de desktop do Claude, adicione a configuração do servidor em:

// ~/Library/Application Support/Claude/claude_desktop_config.json (macOS)
// %APPDATA%\Claude\claude_desktop_config.json (Windows)
{
  "mcpServers": {
    "hacker-news": {
      "command": "node",
      "args": ["/path/to/hn-server/build/index.js"]
    }
  }
}

Para a extensão Claude do VSCode, adicione em:

// VSCode Settings JSON
{
  "mcpServers": {
    "hacker-news": {
      "command": "node",
      "args": ["/path/to/hn-server/build/index.js"]
    }
  }
}

Exemplos de Interações

Após a configuração, você pode interagir com o Claude usando linguagem natural para buscar histórias do Hacker News. Exemplos:

  • "Mostre-me as 5 principais histórias do Hacker News"
  • "Quais são as postagens mais recentes do Ask HN?"
  • "Traga-me as principais submissões do Show HN de hoje"

O Claude usará automaticamente os parâmetros apropriados para buscar as histórias que você deseja.

Claude using the Hacker News MCP server

Estrutura do Objeto de História

Cada objeto de história contém:

  • title (string): O título da história
  • url (string, opcional): URL da história (pode ser uma URL interna do HN para postagens de texto)
  • points (número): Número de votos positivos
  • author (string): Nome de usuário do autor
  • time (string): Carimbo de data/hora de quando a história foi postada
  • commentCount (número): Número de comentários
  • rank (número): Posição na lista

Desenvolvimento

O servidor é construído usando:

  • TypeScript
  • Model Context Protocol SDK
  • Axios para requisições HTTP
  • Cheerio para análise de HTML

Para modificar o servidor:

  1. Faça alterações em src/index.ts
  2. Recompile:
npm run build

Tratamento de Erros

O servidor inclui tratamento robusto de erros para:

  • Tipos de histórias inválidos
  • Falhas de rede
  • Erros de análise de HTML
  • Valores de parâmetros inválidos

Os erros são retornados com códigos de erro apropriados e mensagens descritivas.

Contribuindo

Contribuições são bem-vindas! Sinta-se à vontade para enviar um Pull Request.

Licença

Licença MIT - sinta-se à vontade para usar isso em seus próprios projetos.