GoodNews MCP server

Filters and ranks news articles from NewsAPI based on positive sentiment, delivering uplifting headlines amid potentially negative media cycles.
Back to servers
Setup instructions
Provider
Vector Institute
Release date
Mar 19, 2025
Language
Python
Stats
41 stars

MCP Goodnews is a simple Model Context Protocol application featuring a server for retrieving positive and uplifting news. It fetches articles from NewsAPI and uses a Cohere LLM to rank them based on positive sentiment, delivering good news stories in a world often dominated by negative headlines.

Installation

Prerequisites

Before installing MCP Goodnews, you'll need:

Setup Instructions

  1. Clone the repository:
git clone https://github.com/VectorInstitute/mcp-goodnews.git
  1. Configure Claude Desktop 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
  1. Add the following entry under mcpServers in your configuration file:
{
  "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>"
      }
    }
  }
}

Make sure to replace:

  • <absolute-path-to-bin> with the path to your uv executable
  • <absolute-path-to-cloned-repo> with the full path to where you cloned the repository
  • <newsapi-api-key> with your NewsAPI key
  • <cohere-api-key> with your Cohere API key
  1. Start or restart Claude Desktop to apply the changes.

Usage

Accessing MCP Goodnews in Claude

After configuring and restarting Claude Desktop, you should see the hammer tool icon in the bottom-right corner of the chat dialogue window. This indicates that the MCP tools are available.

When you click the hammer icon, a modal will appear listing available MCP tools. You should see fetch_list_of_goodnews in that list.

Example Prompts

You can ask Claude for good news using prompts like:

  • "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

The application follows this process to deliver good news:

  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

This provides a refreshing alternative to the often negative news cycle, focusing instead on uplifting and positive stories from around the world.

How to install this MCP server

For Claude Code

To add this MCP server to Claude Code, run this command in your terminal:

claude mcp add-json "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>"}}'

See the official Claude Code MCP documentation for more details.

For Cursor

There are two ways to add an MCP server to Cursor. The most common way is to add the server globally in the ~/.cursor/mcp.json file so that it is available in all of your projects.

If you only need the server in a single project, you can add it to the project instead by creating or adding it to the .cursor/mcp.json file.

Adding an MCP server to Cursor globally

To add a global MCP server go to Cursor Settings > Tools & Integrations and click "New MCP Server".

When you click that button the ~/.cursor/mcp.json file will be opened and you can add your server like this:

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

Adding an MCP server to a project

To add an MCP server to a project you can create a new .cursor/mcp.json file or add it to the existing one. This will look exactly the same as the global MCP server example above.

How to use the MCP server

Once the server is installed, you might need to head back to Settings > MCP and click the refresh button.

The Cursor agent will then be able to see the available tools the added MCP server has available and will call them when it needs to.

You can also explicitly ask the agent to use the tool by mentioning the tool name and describing what the function does.

For Claude Desktop

To add this MCP server to Claude Desktop:

1. Find your configuration file:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json
  • Linux: ~/.config/Claude/claude_desktop_config.json

2. Add this to your configuration file:

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

3. Restart Claude Desktop for the changes to take effect

Want to 10x your AI skills?

Get a free account and learn to code + market your apps using AI (with or without vibes!).

Nah, maybe later