MCP Goodnews
Provides code coverage reporting for the MCP server repository
Hosts the repository with CI/CD workflows for linting, testing, and releasing the server
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@MCP Goodnewsshow me some uplifting news from this week"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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.
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.gitIn 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.jsonFor Windows
# Navigate to the configuration directory
cd %APPDATA%\Claude\config
# Edit the claude_desktop_config.json file
notepad claude_desktop_config.jsonAnd 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!
Available Tools
1 toolfetch_list_of_goodnewsC
Fetch a list of headlines and return only top-ranked news based on positivity.
| Name | Required | Description | Default |
|---|---|---|---|
| category | No | all |
TDQS
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.
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.
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.
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.
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.
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 tool update
v0.1.0- First observed
fetch_list_of_goodnews
TDQS
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.
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.
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.
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
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
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
Dive into the latest and greatest from the tech world with our Hacker News MCP server.
Real-time Claude & Anthropic news from your own Claude — free, no API key.
A Model Context Protocol server for Wix AI tools
Related MCP Servers
FlicenseBqualityCmaintenanceA 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-- AlicenseCqualityCmaintenanceModel Context Protocol Server for aggregating RSS feeds in Claude Desktop127Mozilla Public 2.0
- AlicenseAqualityDmaintenanceA 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).12898MIT
- AlicenseNot gradedqualityBmaintenanceA 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.421MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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