GeekNews MCP Server

Obtiene y almacena en caché artículos diarios de GeekNews mediante web scraping.

Documentación

GeekNews MCP Server

smithery badge

Este proyecto es un servidor de Model Context Protocol (MCP) que obtiene artículos de GeekNews. Está implementado en Python y utiliza BeautifulSoup para realizar el web scraping. Para reducir la carga del servidor, ofrece la funcionalidad de analizar los datos automáticamente una vez al día y almacenarlos en caché.

Características

tool1tool2
exampleexample

Herramientas (Tools)

  • Herramienta get_articles: Función para obtener artículos de GeekNews

    • Se puede especificar el tipo de artículo (top, new, ask, show) y la cantidad de artículos a devolver
    • Cada respuesta incluye título, URL, puntos, autor, hora, número de comentarios e información de clasificación
    • Utiliza datos en caché para reducir la carga del servidor
  • Herramienta get_weekly_news: Función para obtener las noticias semanales de GeekNews

    • Se puede especificar un ID de noticia semanal concreto u obtener la noticia semanal más reciente
    • Proporciona información como título, número, ID, contenido, URL y lista de elementos de la noticia semanal
    • Cada elemento incluye título, URL e información de clasificación
    • Utiliza datos en caché para reducir la carga del servidor

Función de caché

  • Analiza los datos automáticamente una vez al día y los almacena en caché
  • Si los datos en caché son válidos, se utilizan sin realizar solicitudes al servidor de GeekNews
  • Los datos en caché son válidos durante 24 horas y se renuevan automáticamente después de ese período
  • El programador verifica periódicamente la validez de la caché y la renueva si es necesario

Uso

  • Instalación mediante Smithery

    🚀 geeknews-mcp-server

  • Añadir la información del servidor al archivo de configuración de MCP

    {
    "mcpServers": {
       "geeknews-mcp-server": {
          "command": "npx",
          "args": [
          "-y",
          "@smithery/cli@latest",
          "run",
          "@the0807/geeknews-mcp-server",
          "--key",
          "smithery에서 발급 받은 키"
          ]
       }
    }
    }
    

Método de instalación local

  1. Git Clone

    git clone https://github.com/the0807/GeekNews-MCP-Server
    cd GeekNews-MCP-Server
    
  2. Configurar el entorno con uv

    uv sync
    
  3. Ejecutar el entorno virtual

    uv venv
    source .venv/bin/activate
    
  4. Probar el servidor con MCP Inspector

    uv run mcp
    mcp dev main.py
    
    # 터미널에 나오는 URL(MCP Inspector)로 접속하여 서버 테스트
    

Estructura del código

  • src/models.py: Definición de la clase de datos para almacenar información de artículos
  • src/parser.py: Analiza el HTML del sitio web de GeekNews para extraer información de artículos
  • src/client.py: Cliente HTTP para obtener datos del sitio web de GeekNews
  • src/config.py: Definición de configuración y constantes
  • src/cache.py: Proporciona la funcionalidad de gestión de caché
  • src/scheduler.py: Programador para la renovación periódica de datos
  • src/server.py: Implementación del servidor MCP
  • main.py: Punto de entrada para la ejecución del servidor

[!Note]

  • Este servidor depende de la estructura HTML del sitio web de GeekNews. Si la estructura del sitio cambia, es posible que sea necesario actualizar la lógica de análisis.
  • Los datos en caché se almacenan en la carpeta .cache/geeknews-mcp dentro del directorio de inicio del usuario.