MCP Connector

Fetch and Rank Positive News Articles

Goodnews MCP Server fetches NewsAPI articles and uses Cohere to rank and return the most positive, uplifting news stories.

Works with newsapicohere

91
Spark score
out of 100
Updated Jul 2025
Source checked Aug 10, 2026
Version 0.1.0
Models
universal

Add to Favorites

Why it matters

Access and analyze news from NewsAPI, leveraging Cohere's LLM to identify and rank articles based on positive sentiment, delivering inspiring content.

Outcomes

What it gets done

01

Retrieve news articles from NewsAPI.

02

Analyze news articles for positive sentiment using Cohere LLM.

03

Rank articles by positive sentiment score.

04

Return a curated list of top positive news stories.

Source

Get it from source

Spark does not host a copy of it.

Open source

Reports

Agent outcome reports

No reports yet

Capabilities

Tools your agent gets

fetch_list_of_goodnews

Fetches and returns a curated list of positive news articles ranked by sentiment

Overview

Goodnews MCP Server

Goodnews MCP Server fetches recent NewsAPI articles and uses a Cohere LLM to rank them by positive sentiment, surfacing the most uplifting stories through Claude. Use it when you want Claude to surface positive, sentiment-ranked news instead of a general feed dominated by negative headlines.

What it does

Goodnews MCP Server is an MCP server that surfaces good, positive, and uplifting news. It fetches recent news articles from NewsAPI, then uses a Cohere LLM to analyze each article's sentiment in a zero-shot setting and rank them by positivity, returning the top-ranking good-news stories through Claude.

When to use - and when NOT to

Use it when you want Claude to surface positive news, such as "Show me some good news from today," "What positive things happened in the world this week?", or "Give me uplifting news stories about science," as a counterweight to feeds dominated by negative headlines. It requires both a Cohere API key and a NewsAPI key, so it depends on having accounts with both services. It is a single-purpose tool for positive-sentiment news discovery, not a general news search or summarization tool for arbitrary topics or sentiment.

Capabilities

  • fetch_list_of_goodnews: the server's one MCP tool, which queries NewsAPI for recent articles, has a Cohere LLM score each article's sentiment, ranks them by positive sentiment score, and returns the top results
  • Zero-shot sentiment ranking via a Cohere LLM, rather than the traditional sentiment-ranking methods used by earlier projects in this space
  • Runs as a local MCP server invoked through uv, integrating directly with Claude Desktop's tool-calling UI

How to install

Clone the repository:

git clone https://github.com/VectorInstitute/mcp-goodnews.git

Requires a Cohere API key, a NewsAPI key, the Claude Desktop application, and the uv Python package manager. Edit Claude Desktop's claude_desktop_config.json, found under ~/Library/Application Support/Claude/config on Mac/Linux or %APPDATA%\Claude\config on Windows, and add an entry under mcpServers:

{
  "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>"
      }
    }
  }
}

Restart Claude Desktop; the tool icon in the chat window should then list fetch_list_of_goodnews as an available MCP tool.

Under the hood, the flow is straightforward: your request triggers a query to NewsAPI for recent articles, the Cohere LLM analyzes the sentiment of each one, the articles are ranked by their positive sentiment score, and the top-ranking good-news stories are returned to you through Claude.

Who it's for

Claude Desktop users who want a quick, sentiment-ranked feed of positive news stories, by topic or in general, instead of scrolling a general news feed to find them. The project was inspired by an earlier initiative, GoodnewsFirst, which delivered positive news daily to email subscribers using traditional sentiment-ranking methods; Goodnews MCP updates that idea with modern zero-shot LLM sentiment analysis instead. It is released under the Apache 2.0 License.

Source README

MseeP.ai Security Assessment Badge

MCP Goodnews


CodeQL
Linting
Unit Testing and Upload Coverage
codecov
Release
GitHub License

MCP Goodnews Logo

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

image

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.

image

Clicking the hammer tool icon will bring up a modal that lists available MCP tools.
You should see fetch_list_of_goodnews listed there.

image

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

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

FAQ

Common questions

Discussion

Questions & comments · 0

Sign In Sign in to leave a comment.