Headline Vibes Analysis
Analyzes the sentiment of news headlines from major US publications using the NewsAPI.
Headline Vibes — EventRegistry MCP Server
Headline Vibes is a Model Context Protocol server that analyzes investor sentiment in US news headlines fetched from EventRegistry (newsapi.ai). It supports daily and monthly analysis modes, produces structured outputs with diagnostics, and runs over stdio or HTTP (Railway-ready).
Features
- Curated US newsroom coverage with investor relevance filtering
- Dual sentiment scores (general + investor) normalized to a 0–10 scale
- Political-leaning breakdowns, source distributions, and sampling diagnostics
- Natural-language date parsing for daily requests (
"yesterday","last Friday", etc.) - Structured JSON outputs compatible with MCP
structuredContent - Built-in token budgeting and rate-limit telemetry
Prerequisites
- Node.js v18+ (LTS recommended)
- EventRegistry API key (https://newsapi.ai)
Setup
- Install dependencies and build:
npm install npm run build - Configure environment variables (stdio example):
{ "mcpServers": { "headline-vibes": { "command": "node", "args": ["/absolute/path/headline-vibes/build/index.mjs"], "env": { "NEWS_API_KEY": "your-eventregistry-key", "TRANSPORT": "stdio" } } } } - For HTTP (Railway) deployments, set
TRANSPORT=http,HOST=0.0.0.0,PORT=<port>, and optionallyALLOWED_HOSTS/ALLOWED_ORIGINS.
Available Tools
analyze_headlines
Daily sentiment snapshot for a single day. Arguments: { "input": string }.
- Accepts natural language or
YYYY-MM-DD. - Returns investor/general scores, synopses, distributions, sample headlines, and diagnostics.
analyze_monthly_headlines
Monthly aggregation between two months. Arguments: { "startMonth": "YYYY-MM", "endMonth": "YYYY-MM" }.
- Outputs per-month political sentiments, headline counts, and token/sampling diagnostics.
JSON schemas powering structured results live in src/schemas/headlines.ts.
Development & Testing
- Watch mode:
npm run watch - Stdio run:
NEWS_API_KEY=... npm run start:stdio - HTTP run:
TRANSPORT=http HOST=0.0.0.0 PORT=8787 NEWS_API_KEY=... npm run start:http - Smoke check EventRegistry connectivity:
node ./build/scripts/smoke.mjs 2025-02-01 - Unit tests (Vitest):
npm test
Railway Deployment
- Set environment variables (
TRANSPORT,HOST,PORT,NEWS_API_KEY, optionalALLOWED_HOSTS,ALLOWED_ORIGINS,LOG_LEVEL). - Build once locally (
npm run build) or via Railway’s build step. - Start with
npm run start. - Health probe:
GET /healthzreturns200 ok.
See docs/railway.md for the full playbook.
License
MIT
Server Terkait
Bright Data
sponsorDiscover, extract, and interact with the web - one interface powering automated access across the public internet.
Browserbase
Automate browser interactions in the cloud (e.g. web navigation, data extraction, form filling, and more)
CrawlForge MCP
CrawlForge MCP is a production-ready MCP server with 18 web scraping tools for AI agents. It gives Claude, Cursor, and any MCP-compatible client the ability to fetch URLs, extract structured data with CSS/XPath selectors, run deep multi-step research, bypass anti-bot detection with TLS fingerprint randomization, process documents, monitor page changes, and more. Credit-based pricing with a free tier (1,000 credits/month, no credit card required).
Crawl MCP
An MCP server for crawling WeChat articles. It supports single and batch crawling with multiple output formats, designed for AI tools like Cursor.
Document Extractor MCP Server
Extracts document content from Microsoft Learn and GitHub URLs and stores it in PocketBase for retrieval and search.
Jina Reader
Fetch the content of a remote URL as Markdown with Jina Reader.
BrowserLoop
Take screenshots and read console logs from web pages using Playwright.
deadlink-checker-mcp
Dead link checker MCP server - find broken links, redirects, and timeouts on any website.
MCP Browser Console Capture Service
A browser automation service for capturing console output, useful for tasks like public sentiment analysis.
Secure Fetch
Secure fetch to prevent access to local resources
YouTube MCP Server
Extract metadata and captions from YouTube videos and convert them to markdown.