MCP Goodnews
An MCP application that delivers curated positive and uplifting news stories using NewsAPI and Cohere LLM.
MCP Goodnews
MCP Goodnews is a simple Model Context Protocol (MCP) application that features a server for getting good, positive, and uplifting news. This tool fetches news articles from the NewsAPI and uses a Cohere LLM to rank and return the top news articles based on positive sentiment.
Read the blog post on Medium!
Motivation
In a world where negative news often dominates headlines, Goodnews MCP aims to shine a light on more positive and uplifting news stories. This project was inspired by an earlier initiative called GoodnewsFirst, which delivered positive news daily to email subscribers — it was a really awesome project! While GoodnewsFirst predated recent breakthroughs in Large Language Models (LLMs) and relied on traditional methods for sentiment ranking, Goodnews MCP leverages modern LLMs to perform sentiment analysis in a zero-shot setting.
Example Usage: MCP Goodnews with Claude Desktop
Requirements
Clone mcp-goodnews
# Clone the repository
git clone https://github.com/VectorInstitute/mcp-goodnews.git
In the next step, we'll need to provide the absolute path to the location of this cloned repository.
Update Claude Desktop Config to find mcp-goodnews
For Mac/Linux
# Navigate to the configuration directory
cd ~/Library/Application\ Support/Claude/config
# Edit the claude_desktop_config.json file
nano claude_desktop_config.json
For Windows
# Navigate to the configuration directory
cd %APPDATA%\Claude\config
# Edit the claude_desktop_config.json file
notepad claude_desktop_config.json
And you'll want to add an entry under mcpServers for Goodnews:
{
"mcpServers": {
"Goodnews": {
"command": "<absolute-path-to-bin>/uv",
"args": [
"--directory",
"<absolute-path-to-cloned-repo>/mcp-goodnews/src/mcp_goodnews",
"run",
"server.py"
],
"env": {
"NEWS_API_KEY": "<newsapi-api-key>",
"COHERE_API_KEY": "<cohere-api-key>"
}
}
}
}
Start or Restart Claude Desktop
Claude Desktop will use the updated config to build and run the mcp-goodnews server. If successful, you will see the hammer tool in the bottom-right corner of the chat dialogue window.
Clicking the hammer tool icon will bring up a modal that lists available MCP tools.
You should see fetch_list_of_goodnews listed there.
Ask Claude for Good News
Example prompts:
- "Show me some good news from today."
- "What positive things happened in the world this week?"
- "Give me uplifting news stories about science."
How It Works
- When you request good news, the application queries the NewsAPI for recent articles
- The Cohere LLM analyzes the sentiment of each article
- Articles are ranked based on positive sentiment score
- The top-ranking good news stories are returned to you through Claude
License
Stay positive with Goodnews MCP!
相关服务器
SubwayInfo NYC
NYC subway status and schedules
Smithsonian Open Access
An MCP server to interact with the Smithsonian’s Open Access collection.
TestDino
TestDino MCP enhances your AI assistant with advanced tooling and diagnostic insights. It enables your AI assistant perform test-run analysis, see root-cause detection, and identify recurring failure patterns.
Philidor MCP
DeFi vault risk analytics for AI agents. Search 700+ vaults across Morpho, Aave, Yearn, Beefy, Spark, and more. Compare risk scores, analyze protocols, run due diligence — all through natural language. No API key required. No installation needed.
Poke-MCP
Fetches Pokémon data from the PokeAPI and exposes it through a standardized MCP interface.
Tarkov MCP Server
Provides access to Escape from Tarkov game data using the community-maintained Tarkov API.
Factory Insight Service
Analyzes manufacturing production capacity, including evaluations, equipment, processes, and factory distribution to assess enterprise strength.
Phrases MCP Server
An MCP server for managing inspirational phrases, designed for integration with clients like Claude for Desktop.
McpVanguard
An open-source security proxy and active firewall for the Model Context Protocol (MCP).
SwitchBot MCP Server
Control SwitchBot devices interactively using the SwitchBot API.
