Skip to main content
Glama
VectorInstitute

MCP Goodnews

MCP Goodnews


CodeQL Linting Unit Testing and Upload Coverage codecov Release GitHub License

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.

Related MCP server: mcp-rss-aggregator

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

  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

License

Apache 2.0


Stay positive with Goodnews MCP!

Available Tools

1 tool
fetch_list_of_goodnewsC

Fetch a list of headlines and return only top-ranked news based on positivity.

ParametersJSON Schema
NameRequiredDescriptionDefault
categoryNoall

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden of behavioral disclosure. It mentions filtering by positivity but lacks details on permissions, rate limits, data freshness, or what 'top-ranked' entails (e.g., algorithm, recency). This leaves significant gaps for a tool that likely involves external data fetching.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that gets straight to the point without unnecessary words. It's appropriately sized for a simple tool, though it could be slightly more informative without losing conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no annotations, no output schema, and low schema coverage, the description is incomplete. It doesn't explain return values, error handling, or behavioral traits like how 'positivity' is measured, making it inadequate for effective tool use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It doesn't mention the 'category' parameter at all, failing to add meaning beyond the schema. However, with only one parameter and an enum in the schema, the baseline is moderate, but the description offers no parameter context.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('fetch a list of headlines') and the resource ('top-ranked news based on positivity'), making the purpose understandable. However, it doesn't differentiate from siblings since there are none, and 'top-ranked' could be more specific about ranking criteria.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives, prerequisites, or contextual triggers. The description implies filtering by positivity but doesn't specify scenarios or limitations for usage.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 1 tool updatev0.1.0
    • First observedfetch_list_of_goodnews

TDQS

B3.1/5.0
Disambiguation5/5

With only one tool, there is no possibility of confusion or overlap between tools. The tool has a clear, distinct purpose focused on fetching positive news headlines.

Naming Consistency5/5

Since there is only one tool, naming consistency is inherently perfect. The tool name 'fetch_list_of_goodnews' follows a clear verb_noun pattern, making it predictable and readable.

Tool Count2/5

A single tool is too few for a server named 'MCP Goodnews', which suggests a broader domain of positive news handling. This minimal set limits functionality and feels thin, lacking operations like filtering, searching, or managing news items.

Completeness2/5

The tool surface is severely incomplete for a news-related server. It only provides fetching of top-ranked positive news, with no ability to create, update, delete, or search news items, leaving significant gaps that could cause agent failures in broader workflows.

Maintenance

ActivityInactive
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • F
    license
    B
    quality
    C
    maintenance
    A Model Context Protocol server that enables large language models to access the latest trending news headlines and detailed content across various categories including recommended, domestic, technology, and sports news.
    2
    -
  • A
    license
    A
    quality
    D
    maintenance
    A TypeScript-based Model Context Protocol server that fetches, searches, and formats news articles from NewsAPI.org into reader-friendly Markdown digests using LLMs (Gemini and Claude).
    12
    898
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    A Model Context Protocol (MCP) server that provides real-time news intelligence using NewsAPI.ai. This server enables LLMs to search articles, track events, and analyze news through natural conversation.
    42
    1
    MIT

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/VectorInstitute/mcp-goodnews'

If you have feedback or need assistance with the MCP directory API, please join our Discord server