Headline Vibes Analysis

Analiza el sentimiento de los titulares de noticias de las principales publicaciones estadounidenses utilizando NewsAPI.

Documentación

Headline Vibes — Servidor MCP de EventRegistry

Headline Vibes es un servidor de Model Context Protocol que analiza el sentimiento de los inversores en los titulares de noticias de EE. UU. obtenidos de EventRegistry (newsapi.ai). Admite modos de análisis diario y mensual, produce salidas estructuradas con diagnósticos y se ejecuta sobre stdio o HTTP (listo para Railway).

Características

  • Cobertura curada de salas de redacción de EE. UU. con filtrado de relevancia para inversores
  • Puntuaciones de sentimiento duales (general + inversor) normalizadas a una escala de 0–10
  • Desgloses de inclinación política, distribuciones de fuentes y diagnósticos de muestreo
  • Análisis de fechas en lenguaje natural para solicitudes diarias ("yesterday", "last Friday", etc.)
  • Salidas JSON estructuradas compatibles con MCP structuredContent
  • Presupuesto de tokens integrado y telemetría de límite de velocidad

Requisitos previos

Configuración

  1. Instala las dependencias y compila:
    npm install
    npm run build
    
  2. Configura las variables de entorno (ejemplo con stdio):
    {
      "mcpServers": {
        "headline-vibes": {
          "command": "node",
          "args": ["/absolute/path/headline-vibes/build/index.mjs"],
          "env": {
            "NEWS_API_KEY": "your-eventregistry-key",
            "TRANSPORT": "stdio"
          }
        }
      }
    }
    
  3. Para despliegues HTTP (Railway), establece TRANSPORT=http, HOST=0.0.0.0, PORT=<port> y opcionalmente ALLOWED_HOSTS/ALLOWED_ORIGINS.

Herramientas disponibles

analyze_headlines

Instantánea de sentimiento diario para un solo día. Argumentos: { "input": string }.

  • Acepta lenguaje natural o YYYY-MM-DD.
  • Devuelve puntuaciones de inversor/general, resúmenes, distribuciones, titulares de muestra y diagnósticos.

analyze_monthly_headlines

Agregación mensual entre dos meses. Argumentos: { "startMonth": "YYYY-MM", "endMonth": "YYYY-MM" }.

  • Produce sentimientos políticos por mes, recuentos de titulares y diagnósticos de tokens/muestreo.

Los esquemas JSON que impulsan los resultados estructurados se encuentran en src/schemas/headlines.ts.

Desarrollo y pruebas

  • Modo de observación: npm run watch
  • Ejecución con stdio: NEWS_API_KEY=... npm run start:stdio
  • Ejecución con HTTP: TRANSPORT=http HOST=0.0.0.0 PORT=8787 NEWS_API_KEY=... npm run start:http
  • Verificación rápida de conectividad con EventRegistry: node ./build/scripts/smoke.mjs 2025-02-01
  • Pruebas unitarias (Vitest): npm test

Despliegue en Railway

  1. Establece las variables de entorno (TRANSPORT, HOST, PORT, NEWS_API_KEY, opcionalmente ALLOWED_HOSTS, ALLOWED_ORIGINS, LOG_LEVEL).
  2. Compila una vez localmente (npm run build) o mediante el paso de compilación de Railway.
  3. Inicia con npm run start.
  4. Sonda de salud: GET /healthz devuelve 200 ok.

Consulta docs/railway.md para el manual completo y docs/claude-desktop.md para los pasos de integración con Claude Desktop.

Licencia

MIT