Google Search

Um servidor MCP (Model Context Protocol) que fornece aos assistentes de IA busca de notícias em tempo real, pesquisa, análise de PLN e preferências de notícias personalizadas — tudo acessível por meio de linguagem natural.

Documentação

News Hub MCP

Um servidor MCP (Model Context Protocol) que oferece aos assistentes de IA busca de notícias em tempo real, pesquisa, análise de NLP e preferências personalizadas de notícias — tudo acessível por meio de linguagem natural.

Funciona com VS Code Copilot, Claude Desktop, Cursor, Windsurf e qualquer outro cliente de IA compatível com MCP.


O Que Ele Faz

Pergunte ao seu assistente de IA coisas como:

  • "O que está acontecendo no mundo hoje?" → busca, coleta e resume as principais notícias
  • "Como diferentes veículos estão cobrindo a decisão de taxa do Fed?" → comparação lado a lado de fontes
  • "Busque notícias sobre Tesla e analise o sentimento" → encadeamento de ferramentas entre busca + NLP
  • "Defina minhas preferências para notícias de tecnologia da Índia" → salvas e aplicadas a todas as solicitações futuras

Pré-requisitos

  • Node.js 18 ou superior
  • Uma conta gratuita no RapidAPI com a API Real-Time News Data assinada
    • Cadastre-se em rapidapi.com
    • Pesquise por "Real-Time News Data" e assine o plano gratuito (150 requisições/mês)
    • Copie seu x-rapidapi-key na aba Endpoints

Instalação

git clone https://github.com/your-username/news-hub-mcp.git
cd news-hub-mcp
npm install
npm run setup

npm run setup é um assistente interativo que:

  • Salva sua chave RapidAPI em .env e .vscode/mcp.json
  • Pergunta seus tópicos, país e idioma preferidos
  • Armazena as preferências em ~/.news-hub-mcp/preferences.json

Configuração do Cliente MCP

VS Code Copilot

Adicione em .vscode/mcp.json no seu workspace (criado automaticamente pelo npm run setup):

{
  "servers": {
    "news-hub-mcp": {
      "type": "stdio",
      "command": "node",
      "args": ["server/index.js"],
      "cwd": "/absolute/path/to/news-hub-mcp",
      "env": {
        "RAPIDAPI_KEY": "your_key_here"
      }
    }
  }
}

Claude Desktop

Adicione em ~/Library/Application Support/Claude/claude_desktop_config.json:

{
  "mcpServers": {
    "news-hub-mcp": {
      "command": "node",
      "args": ["/absolute/path/to/news-hub-mcp/server/index.js"],
      "env": {
        "RAPIDAPI_KEY": "your_key_here"
      }
    }
  }
}

Ferramentas Disponíveis

FerramentaDescrição
get_news_digestFerramenta principal. Busca, coleta e resume notícias em uma única chamada. Use para qualquer pergunta geral de notícias.
get_latest_newsRetorna metadados brutos dos artigos (títulos, URLs, fontes). Use quando o usuário quiser uma lista de links.
search_newsBusca artigos por palavra-chave ou frase. Use para nomes, eventos ou tópicos específicos.
compare_news_sourcesBusca o mesmo tópico em 3 fontes e retorna um resumo lado a lado de cada uma.
analyze_sentimentClassifica o texto como positivo, negativo ou neutro usando a pontuação AFINN.
extract_entitiesExtrai pessoas, organizações e tópicos do texto.
get_my_preferencesRetorna suas preferências de notícias atualmente salvas.
set_my_preferencesAtualiza suas preferências (tópicos, país, idioma). As alterações são aplicadas imediatamente.

Encadeamento de Ferramentas

O cliente de IA pode chamar ferramentas em sequência. Exemplos de cadeias:

Análise de sentimento em notícias:

"Traga notícias sobre IA e analise o sentimento geral"

  1. get_latest_news (tópico: IA) → retorna descrições dos artigos
  2. analyze_sentiment (texto: descrições combinadas) → retorna a pontuação

Extração de entidades a partir de busca:

"Busque notícias sobre Tesla e extraia pessoas e organizações importantes"

  1. search_news (consulta: Tesla) → retorna artigos
  2. extract_entities (texto: descrições combinadas) → retorna entidades

Preferências do Usuário

As preferências são armazenadas em ~/.news-hub-mcp/preferences.json e persistem entre sessões.

Para definir pelo assistente:

npm run setup

Para definir pela IA:

"Defina minhas preferências de notícias para tecnologia e ciência, país EUA, idioma inglês"

Campos de preferência:

CampoDescriçãoExemplo
topicsTópicos preferidos, aplicados automaticamente quando nenhum tópico é informado["technology", "science"]
countryCódigo de país ISO 3166-1 alpha-2"US", "GB", "IN"
languageCódigo de idioma ISO 639-1"en", "fr", "de"

Desenvolvimento

npm start        # Run the server
npm run dev      # Run with hot reload (nodemon)
npm run setup    # Re-run the setup wizard

Arquitetura

AI Client (Copilot / Claude Desktop / Cursor)
        │
        │  MCP Protocol over stdio
        ▼
server/index.js          ← Entry point: validates env, registers tools, routes requests
        │
        ├── server/tools/          ← One file per MCP tool
        │   ├── getNewsDigest.js       Primary: fetch + scrape + summarize
        │   ├── getLatestNews.js       Raw article list
        │   ├── searchNews.js          Keyword search
        │   ├── compareNewsSources.js  Multi-source comparison
        │   ├── analyzeSentiment.js    NLP sentiment
        │   ├── extractEntities.js     NLP entity extraction
        │   ├── getMyPreferences.js    Read preferences
        │   └── setMyPreferences.js    Write preferences
        │
        └── server/services/       ← Reusable modules (no MCP coupling)
            ├── newsService.js         RapidAPI HTTP calls + response normalization
            ├── nlpService.js          sentiment + compromise NLP libraries
            ├── scraper.js             axios + cheerio article scraping
            └── preferencesService.js  ~/.news-hub-mcp/preferences.json read/write

Licença

MIT