Google Search
Un servidor MCP (Model Context Protocol) que proporciona a los asistentes de IA la capacidad de obtener noticias en tiempo real, realizar búsquedas, análisis de PLN y preferencias de noticias personalizadas, todo accesible mediante lenguaje natural.
Documentación
News Hub MCP
Un servidor MCP (Protocolo de Contexto del Modelo) que brinda a los asistentes de IA la obtención de noticias en tiempo real, búsqueda, análisis de PLN y preferencias de noticias personalizadas, todo accesible mediante lenguaje natural.
Funciona con VS Code Copilot, Claude Desktop, Cursor, Windsurf y cualquier otro cliente de IA compatible con MCP.
Qué Hace
Pregúntale a tu asistente de IA cosas como:
- "¿Qué está pasando en el mundo hoy?" → obtiene, extrae y resume las noticias principales
- "¿Cómo están cubriendo diferentes medios la decisión de la tasa de la Fed?" → comparación de fuentes lado a lado
- "Busca noticias sobre Tesla y analiza el sentimiento" → encadenamiento de herramientas entre búsqueda + PLN
- "Configura mis preferencias para noticias de tecnología de India" → se guardan y se aplican a todas las solicitudes futuras
Requisitos Previos
- Node.js 18 o superior
- Una cuenta gratuita de RapidAPI con la API de Datos de Noticias en Tiempo Real suscrita
- Regístrate en rapidapi.com
- Busca "Real-Time News Data" y suscríbete al plan gratuito (150 solicitudes/mes)
- Copia tu
x-rapidapi-keydesde la pestaña de Endpoints
Instalación
git clone https://github.com/your-username/news-hub-mcp.git
cd news-hub-mcp
npm install
npm run setup
npm run setup es un asistente interactivo que:
- Guarda tu clave de RapidAPI en
.envy.vscode/mcp.json - Pregunta por tus temas, país e idioma preferidos
- Almacena las preferencias en
~/.news-hub-mcp/preferences.json
Configuración del Cliente MCP
VS Code Copilot
Agrega a .vscode/mcp.json en tu espacio de trabajo (creado automáticamente por 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
Agrega a ~/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"
}
}
}
}
Herramientas Disponibles
| Herramienta | Descripción |
|---|---|
get_news_digest | Herramienta principal. Obtiene, extrae y resume noticias en una sola llamada. Úsala para cualquier pregunta general de noticias. |
get_latest_news | Devuelve metadatos de artículos sin procesar (títulos, URLs, fuentes). Úsala cuando el usuario quiera una lista de enlaces. |
search_news | Busca artículos por palabra clave o frase. Úsala para nombres, eventos o temas específicos. |
compare_news_sources | Obtiene el mismo tema de 3 fuentes y devuelve un resumen lado a lado de cada una. |
analyze_sentiment | Puntúa el texto como positivo, negativo o neutral usando la puntuación AFINN. |
extract_entities | Extrae personas, organizaciones y temas del texto. |
get_my_preferences | Devuelve tus preferencias de noticias guardadas actualmente. |
set_my_preferences | Actualiza tus preferencias (temas, país, idioma). Los cambios se aplican de inmediato. |
Encadenamiento de Herramientas
El cliente de IA puede llamar herramientas en secuencia. Ejemplos de cadenas:
Análisis de sentimiento en noticias:
"Dame noticias de IA y analiza el sentimiento general"
get_latest_news(tema: IA) → devuelve descripciones de artículosanalyze_sentiment(texto: descripciones combinadas) → devuelve la puntuación
Extracción de entidades desde la búsqueda:
"Busca noticias sobre Tesla y extrae personas y organizaciones clave"
search_news(consulta: Tesla) → devuelve artículosextract_entities(texto: descripciones combinadas) → devuelve entidades
Preferencias del Usuario
Las preferencias se almacenan en ~/.news-hub-mcp/preferences.json y persisten entre sesiones.
Para configurar mediante el asistente:
npm run setup
Para configurar mediante IA:
"Configura mis preferencias de noticias a tecnología y ciencia, país EE. UU., idioma inglés"
Campos de preferencias:
| Campo | Descripción | Ejemplo |
|---|---|---|
topics | Temas preferidos, aplicados automáticamente cuando no se da un tema | ["technology", "science"] |
country | Código de país ISO 3166-1 alfa-2 | "US", "GB", "IN" |
language | Código de idioma ISO 639-1 | "en", "fr", "de" |
Desarrollo
npm start # Run the server
npm run dev # Run with hot reload (nodemon)
npm run setup # Re-run the setup wizard
Arquitectura
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
Licencia
MIT