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).
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
- Clone o repositório:
git clone https://github.com/pskill9/hn-server
cd hn-server
- Instale as dependências:
npm install
- Compile o servidor:
npm run build
- 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á:
- Ter o aplicativo de desktop do Claude ou a extensão Claude do VSCode instalados
- Configurar o servidor MCP nas suas configurações
- 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.

Estrutura do Objeto de História
Cada objeto de história contém:
title(string): O título da históriaurl(string, opcional): URL da história (pode ser uma URL interna do HN para postagens de texto)points(número): Número de votos positivosauthor(string): Nome de usuário do autortime(string): Carimbo de data/hora de quando a história foi postadacommentCount(número): Número de comentáriosrank(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:
- Faça alterações em
src/index.ts - 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.