mcp-ai-news-server
by iamgaru
README.md
# MCP AI News Server
A Model Context Protocol (MCP) server that fetches and filters AI-related news from **20+ RSS feeds** with **scheduled notifications** and **email digests**. Get your daily AI news delivered automatically via desktop notifications or email!
## Features
- **20+ News Sources**: TechCrunch, Hacker News, arXiv, Google AI, NVIDIA, VentureBeat, and more
- **š
Scheduled Digests**: Automatic daily/weekly news delivery at your preferred time
- **š Desktop Notifications**: Native system notifications with news summaries
- **š§ Email Digests**: Beautiful HTML emails with latest AI news
- **AI News Filtering**: Automatically filters content for AI/ML-related keywords
- **Category Selection**: Choose from Tech, AI, Research, Community, or Hacker News categories
- **Custom Source Selection**: Pick specific sources for targeted news
- **Keyword Search**: Search across all sources for specific topics
- **Parallel Fetching**: Fast performance by fetching multiple feeds simultaneously
- **MCP Integration**: Works seamlessly with Claude Desktop
- **Timezone Support**: Configure for Australian Eastern or any timezone
## Installation
```bash
# Install dependencies
npm install
# Build the project
npm run build
```
## š Quick Start: Notifications
### Set Up Daily Digest
```
1. Enable desktop notifications
2. Configure schedule for 8 AM daily in Australia/Sydney
3. Send me a test digest now
```
That's it! You'll now get AI news every morning at 8 AM.
See [NOTIFICATIONS.md](./NOTIFICATIONS.md) for complete setup guide including email configuration.
## News Sources
**20 sources across 5 categories:**
- **Hacker News** (2): Latest posts, Front page
- **Tech News** (6): TechCrunch, Ars Technica, The Verge, Wired, Engadget, ZDNet
- **AI Publications** (6): MIT Tech Review, VentureBeat, AI Trends, Google AI, NVIDIA, Microsoft AI
- **Research** (3): arXiv AI, arXiv ML, arXiv Computational Linguistics
- **Community** (3): Dev.to, Medium AI, Medium ML
See [SOURCES.md](./SOURCES.md) for complete details on all sources and usage patterns.
## Available Tools
### 1. `get_ai_news`
Fetches recent AI-related news from multiple RSS feeds with automatic filtering.
**Parameters:**
- `limit` (optional, default: 10): Maximum number of items to return
- `category` (optional, default: "all"): Feed category - "all", "hackernews", "tech", "ai", "research", or "community"
- `sources` (optional): Array of specific feed sources (overrides category)
**Example Response:**
```
Found 3 AI-related items from 6 source(s):
1. What could possibly go wrong if an enterprise replaces all its engineers with AI?
Source: venturebeat
https://venturebeat.com/ai/what-could-possibly-go-wrong...
Published: Sat, 08 Nov 2025 05:00:00 GMT
2. Terminal-Bench 2.0 launches alongside Harbor
Source: venturebeat
https://venturebeat.com/ai/terminal-bench-2-0...
Published: Fri, 07 Nov 2025 23:25:00 GMT
```
### 2. `search_news`
Search for news items matching specific keywords across multiple sources.
**Parameters:**
- `keywords` (required): Keywords to search for (comma-separated)
- `limit` (optional, default: 10): Maximum number of items to return
- `category` (optional, default: "all"): Feed category to search
- `sources` (optional): Array of specific feed sources to search
**Example:**
```
Keywords: "gpt-4, chatgpt"
Category: "ai"
```
### 3. `list_sources`
List all available news sources and categories.
**No parameters required** - returns complete list of 20 sources organized by category.
### 4. `configure_schedule`
Set up scheduled digest delivery.
**Parameters:**
- `enabled` (boolean): Enable/disable scheduler
- `cronExpression` (string): When to send (e.g., "0 8 * * *" for 8 AM daily)
- `timezone` (string): Your timezone (e.g., "Australia/Sydney")
- `category` (string): News category for digest
- `limit` (number): Number of items in digest
**Example:**
```
Configure schedule: enabled true, 8 AM daily, Australia/Sydney timezone
```
### 5. `configure_notifications`
Configure email and desktop notification settings.
**Parameters:**
- `desktop` (object): Desktop notification settings
- `email` (object): Email notification settings
**Example:**
```
Enable desktop notifications
Configure email to user@example.com
```
### 6. `send_digest_now`
Send a digest immediately (testing or on-demand).
**Parameters:**
- `desktop` (boolean): Send desktop notification
- `email` (boolean): Send email notification
**Example:**
```
Send me a digest now
Send digest via email only
```
### 7. `get_config`
View current configuration including schedule and notification settings.
**Example:**
```
Show my notification settings
What's my schedule configuration?
```
## Testing
### Method 1: Testing with Claude Desktop
#### Step 1: Configure Claude Desktop
Add the server to your Claude Desktop configuration file:
**macOS Location:**
```bash
~/Library/Application Support/Claude/claude_desktop_config.json
```
**Windows Location:**
```
%APPDATA%/Claude/claude_desktop_config.json
```
**Configuration:**
```json
{
"mcpServers": {
"ai-news": {
"command": "node",
"args": ["/absolute/path/to/mcp-ai-news-server/build/index.js"]
}
}
}
```
**Important:** Replace `/absolute/path/to/mcp-ai-news-server` with your actual project path.
To get your absolute path, run:
```bash
pwd
```
#### Step 2: Restart Claude Desktop
Completely quit and restart Claude Desktop for the changes to take effect.
#### Step 3: Verify Installation
In Claude Desktop, look for the hammer icon (šØ) in the input area, which indicates MCP tools are available.
#### Step 4: Test the Tools
Try these prompts in Claude Desktop:
**Basic queries:**
```
Get me the latest AI news
List all available news sources
Show me AI news from tech publications
```
**Category-specific:**
```
Get AI news from research sources
Show me news from AI company blogs
What's new on Hacker News about AI?
```
**Advanced searches:**
```
Search for "GPT-4" across all sources
Find news about "ChatGPT" in tech publications
Look for "transformer" in research papers
Get 15 AI news items from TechCrunch and VentureBeat
```
---
### Method 2: Testing with MCP Inspector
The MCP Inspector provides a debugging interface for testing MCP servers.
#### Install MCP Inspector:
```bash
npm install -g @modelcontextprotocol/inspector
```
#### Run Inspector:
```bash
npx @modelcontextprotocol/inspector node build/index.js
```
This will open a web interface where you can:
- View available tools
- Test tool calls with custom parameters
- See request/response logs
- Debug server behavior
---
### Method 3: Testing Standalone (Manual Testing)
You can test the server directly using Node.js with JSON-RPC messages.
#### Create a test script `test.js`:
```javascript
import { spawn } from 'child_process';
const server = spawn('node', ['build/index.js']);
// Send initialize request
const initRequest = {
jsonrpc: '2.0',
id: 1,
method: 'initialize',
params: {
protocolVersion: '2024-11-05',
capabilities: {},
clientInfo: { name: 'test-client', version: '1.0.0' }
}
};
server.stdin.write(JSON.stringify(initRequest) + '\n');
// Send list tools request
setTimeout(() => {
const listToolsRequest = {
jsonrpc: '2.0',
id: 2,
method: 'tools/list',
params: {}
};
server.stdin.write(JSON.stringify(listToolsRequest) + '\n');
}, 1000);
// Send call tool request
setTimeout(() => {
const callToolRequest = {
jsonrpc: '2.0',
id: 3,
method: 'tools/call',
params: {
name: 'get_ai_news',
arguments: { limit: 5, source: 'newest' }
}
};
server.stdin.write(JSON.stringify(callToolRequest) + '\n');
}, 2000);
server.stdout.on('data', (data) => {
console.log('Response:', data.toString());
});
server.stderr.on('data', (data) => {
console.error('Server log:', data.toString());
});
setTimeout(() => {
server.kill();
}, 5000);
```
#### Run the test:
```bash
node test.js
```
---
### Method 4: Testing with curl (JSON-RPC over stdio)
For quick testing, you can send JSON-RPC messages directly:
```bash
# Start the server
node build/index.js
# In another terminal, send a test message (note: this is complex for stdio)
echo '{"jsonrpc":"2.0","id":1,"method":"tools/list","params":{}}' | node build/index.js
```
---
## Development
### Project Structure
```
mcp-ai-news-server/
āāā src/
ā āāā index.ts # Main server implementation
āāā build/ # Compiled JavaScript (generated)
āāā package.json # Dependencies and scripts
āāā tsconfig.json # TypeScript configuration
āāā README.md # This file
```
### Development Mode
```bash
# Watch mode (rebuild on changes)
npm run dev
```
### Scripts
- `npm run build` - Compile TypeScript to JavaScript
- `npm run start` - Run the compiled server
- `npm run dev` - Build and run in one command
## AI Keywords
The server filters content based on these keywords:
- ai, artificial intelligence
- machine learning, ml
- deep learning
- neural network
- llm, gpt, chatgpt
- claude, gemini
- openai, anthropic
- generative
- transformer
- nlp
- computer vision
- reinforcement learning
## Troubleshooting
### Server not appearing in Claude Desktop
1. **Check config file path**: Ensure you're editing the correct `claude_desktop_config.json`
2. **Verify absolute path**: The path in the config must be absolute, not relative
3. **Check build**: Run `npm run build` to ensure the server is compiled
4. **Restart Claude Desktop**: Completely quit and reopen the application
5. **Check logs**: Look at Claude Desktop's logs for errors
### Finding Claude Desktop Logs
**macOS:**
```bash
~/Library/Logs/Claude/
```
**Windows:**
```
%APPDATA%/Claude/logs/
```
### Testing if server starts correctly
```bash
node build/index.js
# Should output: "AI News MCP Server running on stdio"
# Press Ctrl+C to exit
```
### RSS Feed Issues
If the RSS feeds are slow or unavailable:
- Check your internet connection
- The Hacker News RSS feeds might be temporarily down
- Try again in a few minutes
## Environment
- **Node.js**: v20+ recommended
- **TypeScript**: v5+
- **MCP SDK**: v1.0.0+
## License
MIT
## Contributing
Contributions welcome! Please feel free to submit issues or pull requests.
## Useful Links
- [MCP Documentation](https://modelcontextprotocol.io/)
- [MCP SDK](https://github.com/modelcontextprotocol/sdk)
- [Claude Desktop](https://claude.ai/download)
- [Hacker News RSS](https://hnrss.org/)
This server cannot be deployed
Maintenance
ActivityInactive
ResponsivenessNo issues