GeekNews MCP Server

Busca e armazena em cache artigos diários do GeekNews usando web scraping.

Documentação

Servidor MCP GeekNews

smithery badge

Este projeto é um servidor Model Context Protocol (MCP) que busca artigos do GeekNews. Implementado em Python, utiliza BeautifulSoup para realizar web scraping. Para reduzir a carga no servidor, oferece a funcionalidade de analisar os dados automaticamente uma vez por dia e armazená-los em cache.

Recursos

tool1tool2
exampleexample

Ferramentas

  • Ferramenta get_articles: funcionalidade para buscar artigos do GeekNews

    • É possível especificar o tipo de artigo (top, new, ask, show) e a quantidade de artigos a retornar
    • Cada resposta inclui título, URL, pontos, autor, horário, número de comentários e informações de classificação
    • Utiliza dados em cache para reduzir a carga no servidor
  • Ferramenta get_weekly_news: funcionalidade para buscar as notícias semanais do GeekNews

    • É possível especificar um ID de notícia semanal específico ou buscar a notícia semanal mais recente
    • Fornece informações como título, número, ID, conteúdo, URL e lista de itens da notícia semanal
    • Cada item inclui título, URL e informações de classificação
    • Utiliza dados em cache para reduzir a carga no servidor

Funcionalidade de cache

  • Analisa os dados automaticamente uma vez por dia e os armazena em cache
  • Se os dados em cache forem válidos, utiliza os dados em cache sem fazer requisições ao servidor do GeekNews
  • Os dados em cache são válidos por 24 horas e são renovados automaticamente após esse período
  • Um agendador verifica periodicamente a validade do cache e o renova quando necessário

Como usar

  • Instalação via Smithery

    🚀 geeknews-mcp-server

  • Adicione as informações do servidor ao arquivo de configuração do MCP

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

Método de instalação local

  1. Git Clone

    git clone https://github.com/the0807/GeekNews-MCP-Server
    cd GeekNews-MCP-Server
    
  2. Configurar o ambiente com uv

    uv sync
    
  3. Executar o ambiente virtual

    uv venv
    source .venv/bin/activate
    
  4. Testar o servidor com o MCP Inspector

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

Estrutura do código

  • src/models.py: definição da classe de dados que armazena informações dos artigos
  • src/parser.py: analisa o HTML do site GeekNews para extrair informações dos artigos
  • src/client.py: cliente HTTP que busca dados do site GeekNews
  • src/config.py: definição de configurações e constantes
  • src/cache.py: fornece funcionalidade de gerenciamento de cache
  • src/scheduler.py: agendador de atualização periódica de dados
  • src/server.py: implementação do servidor MCP
  • main.py: ponto de entrada para execução do servidor

[!Note]

  • Este servidor depende da estrutura HTML do site GeekNews. Se a estrutura do site mudar, pode ser necessário atualizar a lógica de análise.
  • Os dados em cache são armazenados na pasta .cache/geeknews-mcp no diretório inicial do usuário.