mcp-uplift-feed
Acquire cheerful and constructive news narratives by employing advanced language models for sentiment discernment. Offers access to handpicked articles emphasizing favorable global occurrences and advancements.
Author

VectorInstitute
Quick Info
Actions
Tags
MCP Uplift Feed
MCP Uplift Feed represents a straightforward Model Context Protocol (MCP) utility, featuring a backend service designed to retrieve beneficial, affirmative, and morale-boosting reports. This utility interfaces with the NewsAPI and utilizes a Cohere Large Language Model (LLM) for the purpose of assessing and prioritizing the foremost articles based on their positive emotional tenor.
Explore the supplementary exposition here on Medium!
Rationale
Given the prevalence of adverse reporting in contemporary media streams, the Uplift Feed MCP seeks to illuminate stories characterized by optimism and progress. This endeavor draws inspiration from an antecedent system named GoodnewsFirst, which disseminated favorable intelligence via electronic mail subscriptions—a truly splendid antecedent project! While GoodnewsFirst preceded the recent advancements in LLMs and relied on conventional ranking methodologies, Uplift Feed MCP capitalizes on contemporary LLMs to execute sentiment appraisal in a zero-shot paradigm.
Illustrative Implementation: MCP Uplift Feed with Claude Desktop
Prerequisites
- Cohere API Credentials
- NewsAPI Access Token
- Claude Desktop Application
- uv Python Environment and Dependency Manager
Repository Acquisition: mcp-uplift-feed
bash
Secure a local copy of the repository
git clone https://github.com/VectorInstitute/mcp-goodnews.git
In the subsequent stage, the absolute file system route to this repository copy must be supplied.
Configuration Update for Claude Desktop to Locate mcp-uplift-feed
For macOS/Linux Systems
bash
Navigate to the configuration directory
cd ~/Library/Application\ Support/Claude/config
Modify the claude_desktop_config.json file
nano claude_desktop_config.json
For Windows Systems
bash
Navigate to the configuration directory
cd %APPDATA%\Claude\config
Edit the claude_desktop_config.json file
notepad claude_desktop_config.json
Ensure the inclusion of an entry under the mcpServers section designated for UpliftFeed:
{
"mcpServers": {
"UpliftFeed": {
"command": "
Initiate or Refresh Claude Desktop
Claude Desktop will utilize the revised configuration to compile and execute the mcp-uplift-feed service. Upon successful deployment, the utility icon (resembling a hammer) will appear in the lower-right quadrant of the chat interface.
Selecting this icon reveals a modal dialogue listing the accessible MCP instruments. You should observe retrieve_positive_reports listed among them.
Querying Claude for Favorable News
Example inquiries:
- "Present some positive global updates from today."
- "What constructive developments transpired internationally this week?"
- "Share encouraging reports pertaining to scientific breakthroughs."
Operational Mechanism
- Upon a request for positive reports, the application queries the NewsAPI for contemporary entries.
- The Cohere LLM performs a semantic analysis on the emotional content of every retrieved article.
- Articles are ordered according to their positive affect score.
- The highest-ranked uplifting news items are relayed back to you via the Claude interface.
Licensing
Apache 2.0
Maintain an optimistic outlook with Uplift Feed MCP!
WIKIPEDIA: XMLHttpRequest (XHR) is an API in the form of a JavaScript object whose methods transmit HTTP requests from a web browser to a web server. The methods allow a browser-based application to send requests to the server after page loading is complete, and receive information back. XMLHttpRequest is a component of Ajax programming. Prior to Ajax, hyperlinks and form submissions were the primary mechanisms for interacting with the server, often replacing the current page with another one.
== History == The concept behind XMLHttpRequest was conceived in 2000 by the developers of Microsoft Outlook. The concept was then implemented within the Internet Explorer 5 browser (1999). However, the original syntax did not use the XMLHttpRequest identifier. Instead, the developers used the identifiers ActiveXObject("Msxml2.XMLHTTP") and ActiveXObject("Microsoft.XMLHTTP"). As of Internet Explorer 7 (2006), all browsers support the XMLHttpRequest identifier. The XMLHttpRequest identifier is now the de facto standard in all the major browsers, including Mozilla's Gecko layout engine (2002), Safari 1.2 (2004) and Opera 8.0 (2005).
=== Standards === The World Wide Web Consortium (W3C) published a Working Draft specification for the XMLHttpRequest object on April 5, 2006. On February 25, 2008, the W3C published the Working Draft Level 2 specification. Level 2 added methods to monitor event progress, allow cross-site requests, and handle byte streams. At the end of 2011, the Level 2 specification was absorbed into the original specification. At the end of 2012, the WHATWG took over development and maintains a living document using Web IDL.
== Usage == Generally, sending a request with XMLHttpRequest has several programming steps.
Create an XMLHttpRequest object by calling a constructor: Call the "open" method to specify the request type, identify the relevant resource, and select synchronous or asynchronous operation: For an asynchronous request, set a listener that will be notified when the request's state changes: Initiate the request by calling the "send" method: Respond to state changes in the event listener. If the server sends response data, by default it is captured in the "responseText" property. When the object stops processing the response, it changes to state 4, the "done" state. Aside from these general steps, XMLHttpRequest has many options to control how the request is sent and how the response is processed. Custom header fields can be added to the request to indicate how the server should fulfill it, and data can be uploaded to the server by providing it in the "send" call. The response can be parsed from the JSON format into a readily usable JavaScript object, or processed gradually as it arrives rather than waiting for the entire text. The request can be aborted prematurely or set to fail if not completed in a specified amount of time.
== Cross-domain requests ==
In the early development of the World Wide Web, it was found possible to brea

