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-keyna 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
.enve.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
| Ferramenta | Descrição |
|---|---|
get_news_digest | Ferramenta principal. Busca, coleta e resume notícias em uma única chamada. Use para qualquer pergunta geral de notícias. |
get_latest_news | Retorna metadados brutos dos artigos (títulos, URLs, fontes). Use quando o usuário quiser uma lista de links. |
search_news | Busca artigos por palavra-chave ou frase. Use para nomes, eventos ou tópicos específicos. |
compare_news_sources | Busca o mesmo tópico em 3 fontes e retorna um resumo lado a lado de cada uma. |
analyze_sentiment | Classifica o texto como positivo, negativo ou neutro usando a pontuação AFINN. |
extract_entities | Extrai pessoas, organizações e tópicos do texto. |
get_my_preferences | Retorna suas preferências de notícias atualmente salvas. |
set_my_preferences | Atualiza 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"
get_latest_news(tópico: IA) → retorna descrições dos artigosanalyze_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"
search_news(consulta: Tesla) → retorna artigosextract_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:
| Campo | Descrição | Exemplo |
|---|---|---|
topics | Tópicos preferidos, aplicados automaticamente quando nenhum tópico é informado | ["technology", "science"] |
country | Código de país ISO 3166-1 alpha-2 | "US", "GB", "IN" |
language | Có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