GridNews
Noticias de mercado, comunicados de prensa y sentimiento de tickers para agentes de IA a través de REST, streams y MCP.
Documentación
@gridnews/mcp
Servidor MCP para GridNews: noticias de mercado, comunicados de prensa y análisis de sentimiento para agentes de IA.
Proporciona a cualquier asistente compatible con MCP la cobertura de mercado más reciente: clústeres de noticias clasificados por cuántos medios independientes los corroboraron, búsqueda de artículos en miles de fuentes, noticias por ticker con una lectura agregada de sentimiento, comunicados de fuentes primarias y clústeres de temas en tendencia.
Instalación
Requiere Node.js 20+ y una clave de API de GridNews. get_topics funciona sin clave; todas las demás herramientas la necesitan.
Claude Code
claude mcp add gridnews --env GRIDNEWS_API_KEY=your_key -- npx -y @gridnews/mcp
Claude Desktop
Añade a claude_desktop_config.json:
{
"mcpServers": {
"gridnews": {
"command": "npx",
"args": ["-y", "@gridnews/mcp"],
"env": { "GRIDNEWS_API_KEY": "your_key" }
}
}
}
Cursor
Añade a .cursor/mcp.json:
{
"mcpServers": {
"gridnews": {
"command": "npx",
"args": ["-y", "@gridnews/mcp"],
"env": { "GRIDNEWS_API_KEY": "your_key" }
}
}
}
OpenAI Codex
codex mcp add gridnews --env GRIDNEWS_API_KEY=your_key -- npx -y @gridnews/mcp
Gemini CLI
Añade a ~/.gemini/settings.json:
{
"mcpServers": {
"gridnews": {
"command": "npx",
"args": ["-y", "@gridnews/mcp"],
"env": { "GRIDNEWS_API_KEY": "your_key" }
}
}
}
Configuración
| Variable | Predeterminado | Propósito |
|---|---|---|
GRIDNEWS_API_KEY | — | Tu clave de API. Requerida para todo excepto get_topics. |
GRIDNEWS_BASE_URL | https://api.gridnews.io | Sobrescribe el host de la API. |
GRIDNEWS_TIMEOUT_MS | 30000 | Tiempo de espera por solicitud. Auméntalo si usas get_symbol_sentiment con frecuencia. |
Herramientas
| Herramienta | Propósito | Nivel mínimo |
|---|---|---|
get_top_events | Las noticias más importantes del momento, como clústeres clasificados por corroboración independiente | gratis (los filtros requieren básico) |
get_event_detail | Cada medio que cubrió una noticia, agrupado por voz independiente | gratis |
search_news | Busca artículos y comunicados de prensa por texto, símbolo, fuente, fecha, sentimiento y calidad | gratis (los filtros requieren básico) |
get_symbol_news | Cobertura reciente para un ticker, más una lectura agregada de sentimiento | gratis |
get_symbol_sentiment | Análisis de sentimiento para un ticker en un período de tiempo, con su base | pro |
list_press_releases | Comunicados de prensa filtrados por símbolo, proveedor, empresa y fecha | gratis |
list_sources | Las fuentes que GridNews indexa, con ids para el filtro sources | gratis |
get_topics | Clústeres de temas en tendencia como grupos de palabras clave con recuentos de artículos | ninguno |
get_usage | El nivel de la clave, los derechos y la cuota diaria restante | gratis |
Corroboración, no recuento de medios
get_top_events devuelve noticias en lugar de documentos e informa dos números diferentes:
sourcesCount— cuántos medios cubrieron la noticia. Esto es alcance.independent voices— cuántos de esos no se estaban republicando entre sí. Esto es la evidencia.
Por lo general no son lo mismo. Los medios que se redistribuyen entre sí se colapsan en una sola voz, por lo que una noticia en cinco medios que publican el mismo texto de agencia es una voz, no cinco. Cuando un medio estaba publicando copia de otro, la herramienta lo marca en línea:
2 independent voices across 4 outlets · 4 filings · impact 1.47
- Wall Street Journal: https://wsj.com/...
- Dow Jones [carrying wall-street-journal]: https://morningstar.com/...
- GuruFocus: https://gurufocus.com/...
Un comunicado de prensa es siempre una sola voz, sin importar cuántas agencias lo hayan distribuido: un emisor que se anuncia a sí mismo no es confirmación.
Pasa minVoices: 2 para obtener solo noticias corroboradas. No hay valor predeterminado: los clústeres de una sola voz son registros de distribución reales y no se ocultan, solo se clasifican al final.
Comportamiento por nivel
GridNews limita las funciones y la profundidad del historial según el nivel. En lugar de fallar de manera opaca, las herramientas informan lo que necesita una llamada:
- Un 403 indica el nivel requerido y el nivel actual de la clave, para que el agente pueda reintentar sin el parámetro restringido en lugar de rendirse.
- Un 429 informa la cuota restante y el tiempo de reinicio, para que el agente espere en lugar de repetir en bucle.
- Los resultados indican cuando la ventana de historial de un nivel excluyó artículos más antiguos, para que un resultado escaso no se confunda con una ausencia de cobertura.
get_usage explica cualquiera de estos bajo demanda.
Desarrollo
npm install
npm run build
npm test
El conjunto de pruebas ejecuta el servidor compilado a través de una sesión MCP stdio real contra una API simulada, por lo que cubre el protocolo de handshake, la validación de argumentos, la serialización HTTP, el formato y las rutas de fallo por nivel/cuota sin necesidad de una clave en vivo.
Licencia
MIT