mcp goodnews

Local 2025-08-31 23:29:26 0

A Model Context Protocol server that fetches and ranks positive news articles from NewsAPI using Cohere LLM sentiment analysis, enabling users to access uplifting news stories through interfaces like Claude Desktop.


x000D x000D

x000D ---x000D x000D CodeQLx000D Lintingx000D Unit Testing and Upload Coveragex000D codecovx000D Releasex000D GitHub Licensex000D x000D

_x000D_ MCP Goodnews Logo_x000D_

x000D x000D MCP Goodnews is a simple Model Context Protocol (MCP) application that features_x000D_ a server for getting good, positive, and uplifting news. This tool fetches news_x000D_ articles from the NewsAPI and uses a Cohere LLM to rank_x000D_ and return the top news articles based on positive sentiment.x000D x000D

Motivation_x000D_

x000D In a world where negative news often dominates headlines, Goodnews MCP aims to_x000D_ shine a light on more positive and uplifting news stories. This project was_x000D_ inspired by an earlier initiative called GoodnewsFirst, which delivered positive_x000D_ news daily to email subscribers — it was a really awesome project! While GoodnewsFirst_x000D_ predated recent breakthroughs in Large Language Models (LLMs) and relied on_x000D_ traditional methods for sentiment ranking, Goodnews MCP leverages modern LLMs to_x000D_ perform sentiment analysis in a zero-shot setting.x000D x000D

Example Usage: MCP Goodnews with Claude Desktop_x000D_

x000D imagex000D x000D

Requirements_x000D_

x000D - Cohere API Keyx000D - NewsAPI Keyx000D - Claude Desktop Applicationx000D - uv Python Project and Package Managerx000D x000D

Clone mcp-goodnewsx000D

x000D ```bash_x000D_

Clone the repository_x000D_

git clone https://github.com/VectorInstitute/mcp-goodnews.git_x000D_ ```x000D x000D In the next step, we'll need to provide the absolute path to the location of this_x000D_ cloned repository.x000D x000D

Update Claude Desktop Config to find mcp-goodnews_x000D_

x000D

For Mac/Linux_x000D_

x000D ```bash_x000D_

Navigate to the configuration directory_x000D_

cd ~/Library/Application Support/Claude/config_x000D_ x000D

Edit the claude_desktop_config.json file_x000D_

nano claude_desktop_config.json_x000D_ ```x000D x000D

For Windows_x000D_

x000D ```bash_x000D_

Navigate to the configuration directory_x000D_

cd %APPDATA%Claudeconfig_x000D_ x000D

Edit the claude_desktop_config.json file_x000D_

notepad claude_desktop_config.json_x000D_ _x000D_ _x000D_ And you'll want to add an entry under `mcpServers` for `Goodnews`:_x000D_ _x000D_json_x000D_ {x000D "mcpServers": {x000D "Goodnews": {x000D "command": "/uv",x000D "args": [x000D "--directory",x000D "/mcp-goodnews/src/mcp_goodnews",x000D "run",x000D "server.py"x000D ],x000D "env": {x000D "NEWS_API_KEY": "",x000D "COHERE_API_KEY": ""x000D }x000D }x000D }x000D }x000D ```x000D x000D

Start or Restart Claude Desktop_x000D_

x000D Claude Desktop will use the updated config to build and run the mcp-goodnews server.x000D If successful, you will see the hammer tool in the bottom-right corner of the chat_x000D_ dialogue window.x000D x000D imagex000D x000D Clicking the hammer tool icon will bring up a modal that lists available MCP tools.x000D You should see fetch_list_of_goodnews listed there.x000D x000D imagex000D x000D

Ask Claude for Good News!x000D

x000D Example prompts:x000D x000D - "Show me some good news from today."x000D - "What positive things happened in the world this week?"x000D - "Give me uplifting news stories about science."x000D x000D

How It Works_x000D_

x000D 1. When you request good news, the application queries the NewsAPI for recent articles_x000D_ 2. The Cohere LLM analyzes the sentiment of each article_x000D_ 3. Articles are ranked based on positive sentiment score_x000D_ 4. The top-ranking good news stories are returned to you through Claude_x000D_ x000D

License_x000D_

x000D Apache 2.0x000D x000D ---x000D x000D Stay positive with Goodnews MCP!__x000D