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

VariablePredeterminadoPropósito
GRIDNEWS_API_KEYTu clave de API. Requerida para todo excepto get_topics.
GRIDNEWS_BASE_URLhttps://api.gridnews.ioSobrescribe el host de la API.
GRIDNEWS_TIMEOUT_MS30000Tiempo de espera por solicitud. Auméntalo si usas get_symbol_sentiment con frecuencia.

Herramientas

HerramientaPropósitoNivel mínimo
get_top_eventsLas noticias más importantes del momento, como clústeres clasificados por corroboración independientegratis (los filtros requieren básico)
get_event_detailCada medio que cubrió una noticia, agrupado por voz independientegratis
search_newsBusca artículos y comunicados de prensa por texto, símbolo, fuente, fecha, sentimiento y calidadgratis (los filtros requieren básico)
get_symbol_newsCobertura reciente para un ticker, más una lectura agregada de sentimientogratis
get_symbol_sentimentAnálisis de sentimiento para un ticker en un período de tiempo, con su basepro
list_press_releasesComunicados de prensa filtrados por símbolo, proveedor, empresa y fechagratis
list_sourcesLas fuentes que GridNews indexa, con ids para el filtro sourcesgratis
get_topicsClústeres de temas en tendencia como grupos de palabras clave con recuentos de artículosninguno
get_usageEl nivel de la clave, los derechos y la cuota diaria restantegratis

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