Hacker News

Obtiene y analiza historias de Hacker News, proporcionando datos estructurados para publicaciones principales, nuevas, de preguntas, de muestra y de empleo.

Documentación

Servidor MCP de Hacker News

Un servidor de Protocolo de Contexto de Modelo (MCP) que proporciona herramientas para obtener historias de Hacker News. Este servidor analiza el contenido HTML de news.ycombinator.com y proporciona datos estructurados para diferentes tipos de historias (top, new, ask, show, jobs).

Hacker News MCP server

Características

  • Obtener diferentes tipos de historias (top, new, ask, show, jobs)
  • Obtener datos estructurados que incluyen títulos, URLs, puntos, autores, marcas de tiempo y recuentos de comentarios
  • Límite configurable en el número de historias devueltas
  • Manejo de errores y validación limpios

Instalación

  1. Clona el repositorio:
git clone https://github.com/pskill9/hn-server
cd hn-server
  1. Instala las dependencias:
npm install
  1. Compila el servidor:
npm run build
  1. Añádelo a tu archivo de configuración de ajustes de MCP (la ubicación depende de tu sistema):

Para la extensión de Claude en VSCode:

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

Uso

El servidor proporciona una herramienta llamada get_stories que se puede usar para obtener historias de Hacker News.

Herramienta: get_stories

Parámetros:

  • type (cadena): Tipo de historias a obtener
    • Opciones: 'top', 'new', 'ask', 'show', 'jobs'
    • Predeterminado: 'top'
  • limit (número): Número de historias a devolver
    • Rango: 1-30
    • Predeterminado: 10

Ejemplo de uso:

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

Salida de muestra:

[
  {
    "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
]

Integración con Claude

Para usar este servidor MCP con Claude, necesitarás:

  1. Tener instalada la aplicación de escritorio de Claude o la extensión de Claude para VSCode
  2. Configurar el servidor MCP en tus ajustes
  3. Usar la interfaz de lenguaje natural de Claude para interactuar con Hacker News

Configuración

Para la aplicación de escritorio de Claude, añade la configuración del servidor a:

// ~/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 la extensión de Claude en VSCode, añade a:

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

Ejemplos de interacción

Una vez configurado, puedes interactuar con Claude usando lenguaje natural para obtener historias de Hacker News. Ejemplos:

  • "Muéstrame las 5 historias principales de Hacker News"
  • "¿Cuáles son las últimas publicaciones de Ask HN?"
  • "Obtén las mejores presentaciones de Show HN de hoy"

Claude usará automáticamente los parámetros apropiados para obtener las historias que deseas.

Claude using the Hacker News MCP server

Estructura del objeto de historia

Cada objeto de historia contiene:

  • title (cadena): El título de la historia
  • url (cadena, opcional): URL de la historia (puede ser una URL interna de HN para publicaciones de texto)
  • points (número): Número de votos positivos
  • author (cadena): Nombre de usuario del autor
  • time (cadena): Marca de tiempo de cuándo se publicó la historia
  • commentCount (número): Número de comentarios
  • rank (número): Posición en la lista

Desarrollo

El servidor está construido usando:

  • TypeScript
  • SDK de Protocolo de Contexto de Modelo
  • Axios para solicitudes HTTP
  • Cheerio para análisis de HTML

Para modificar el servidor:

  1. Realiza cambios en src/index.ts
  2. Recompila:
npm run build

Manejo de errores

El servidor incluye un manejo robusto de errores para:

  • Tipos de historias no válidos
  • Fallos de red
  • Errores de análisis de HTML
  • Valores de parámetros no válidos

Los errores se devuelven con códigos de error apropiados y mensajes descriptivos.

Contribuciones

¡Las contribuciones son bienvenidas! No dudes en enviar una solicitud de extracción (Pull Request).

Licencia

Licencia MIT: siéntete libre de usar esto en tus propios proyectos.