AI News MCP Server
Fetches recent AI news from curated RSS feeds, summarizes them with OpenAI, and caches results in AWS DynamoDB for efficient access.
README
AI News MCP Server
A local stdio MCP server that fetches recent AI news from curated RSS feeds, summarises it with OpenAI, and can read a private AWS DynamoDB cache.
MCP Tools
list_ai_news_sourcesget_latest_ai_newsget_cached_ai_news
MCP Prompts
daily_ai_news_briefingtopic_watchcompare_ai_sourcesexecutive_ai_digest
Local Setup
$env:UV_CACHE_DIR = ".uv-cache"
uv sync --python C:\Python311\python.exe
Set local OpenAI credentials for live local summaries:
$env:OPENAI_API_KEY = "your_api_key_here"
$env:OPENAI_MODEL = "gpt-5.4-mini"
Run the local MCP server:
uv run news-mcp
Local Tests
$env:UV_CACHE_DIR = ".uv-cache"
uv run pytest
AWS Cache Flow
The CDK stack creates:
- DynamoDB table
AiNewsCache - Secrets Manager secret
news-mcp/openai-api-key - Lambda refresh function
- EventBridge schedule that runs every 3 hours
- IAM permissions for Lambda to read the secret and write DynamoDB
The Lambda writes the latest briefing to:
pk = BRIEFING
sk = LATEST
Build And Deploy AWS Cache
Rebuild the Lambda package after changing lambda_refresh/handler.py or lambda_refresh/requirements.txt:
.\scripts\build_lambda.ps1
Synthesize and deploy:
$env:UV_CACHE_DIR = ".uv-cache"
$env:JSII_RUNTIME_PACKAGE_CACHE = "C:\Users\arzil\Desktop\news-mcp\.jsii-cache"
$env:NPM_CONFIG_CACHE = "C:\Users\arzil\Desktop\news-mcp\.npm-cache"
npx.cmd aws-cdk synth
npx.cmd aws-cdk deploy
After deploy, store the OpenAI key in Secrets Manager:
aws secretsmanager put-secret-value `
--secret-id news-mcp/openai-api-key `
--secret-string "YOUR_OPENAI_API_KEY_HERE"
Invoke the Lambda once to populate the cache:
aws lambda list-functions --query "Functions[?contains(FunctionName, 'NewsCacheRefreshFunction')].FunctionName" --output table
aws lambda invoke `
--function-name "PASTE_FUNCTION_NAME_HERE" `
--payload "{}" `
lambda-output.json
Test AWS-Backed MCP Tool
Inspector can be awkward on Windows, so this script tests the MCP protocol directly:
$env:AI_NEWS_CACHE_TABLE = "AiNewsCache"
$env:AWS_DEFAULT_REGION = "eu-west-2"
uv run python scripts\test_mcp_cached.py
You should see the available tools and a cached news result with:
"cache_error": null
Source Configuration
RSS sources live in sources.toml. Disable a source by setting:
enabled = false
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.