Finance News RSS MCP Server
Click on "Deploy 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., "@Finance News RSS MCP ServerShow me the latest finance news headlines"
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.
Finance News RSS MCP Server
A Model Context Protocol (MCP) server that provides real-time finance news from major RSS feeds. Built with FastMCP to demonstrate MCP basics.
What This MCP Does
This MCP server gives Claude access to finance news from major sources including:
Bloomberg
Wall Street Journal (WSJ)
CNBC
Seeking Alpha
MarketWatch
Financial Times
The server provides two tools:
get_latest_finance_news - Fetch the latest news from all sources or a specific source
search_finance_news - Search across all feeds for articles matching a keyword
Related MCP server: News Aggregator MCP Server
Installation
Install dependencies using uv:
uv syncHow to Run
Start the MCP server:
uv run python main.pyOr configure it in your Claude Desktop app by adding to your MCP settings:
{
"mcpServers": {
"finance-news": {
"command": "uv",
"args": ["--directory", "/path/to/example", "run", "python", "main.py"]
}
}
}Important Notes:
Replace
/path/to/examplewith the actual path to your project directoryIf you get a "spawn uv ENOENT" error, use the full path to
uv:Find it with:
which uvCommon locations:
~/.local/bin/uvor~/.cargo/bin/uvUpdate
commandto the full path, e.g.,"/Users/yourname/.local/bin/uv"
Example Questions to Ask Claude
Once connected, you can ask Claude questions like:
"What are the latest finance news headlines?"
"Get me the top 5 news articles from Bloomberg"
"Search for news about 'inflation' in finance feeds"
"What's the latest news from CNBC?"
"Find articles about 'Federal Reserve' or 'interest rates'"
"Show me recent Yahoo Finance headlines"
Available Tools
get_latest_finance_news
Fetch the latest finance news articles.
Parameters:
limit(int, default=10): Maximum number of articles to returnsource(str, default="all"): News source to fetch fromOptions: "all", "bloomberg", "wsj", "cnbc", "seekingalpha", "marketwatch", "ft"
Example:
get_latest_finance_news(limit=5, source="wsj")search_finance_news
Search for articles matching a keyword across all feeds.
Parameters:
query(str, required): Search keyword to find in titles or descriptionslimit(int, default=10): Maximum number of matching articles to return
Example:
search_finance_news(query="bitcoin", limit=5)Implementation Details
No caching: Fetches RSS feeds on-demand for real-time updates
Error handling: Gracefully skips feeds that fail to load
Simple & clean: Single-file implementation, perfect portfolio piece
Dependencies: fastmcp, feedparser, httpx
Project Structure
example/
├── main.py # MCP server implementation
├── pyproject.toml # Project dependencies
├── uv.lock # Dependency lock file
└── README.md # This fileHow It Works
The server uses:
FastMCP to create the MCP server and register tools
httpx to fetch RSS feed URLs
feedparser to parse RSS/Atom feeds into structured data
Each tool fetches feeds in real-time, parses them, and returns structured article data including title, link, published date, description, and source name.
License
MIT
Available Tools
2 toolsget_latest_finance_newsA
Get the latest finance news from RSS feeds.
Args: limit: Maximum number of articles to return (default: 10) source: News source to fetch from. Options: "all", "bloomberg", "wsj", "cnbc", "seekingalpha", "marketwatch", "ft" (default: "all")
Returns: List of articles with title, link, published_date, description, and source_name
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| source | No | all |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of explaining behavior. It states that the tool fetches from RSS feeds and returns a list of articles, implying a read-only operation. However, it does not explicitly confirm read-only status or disclose potential side effects, error conditions, or rate limits.
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 well-structured docstring with a one-line summary, Args section, and Returns section. It is concise, with every sentence adding value, and lists source options compactly.
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?
The description covers the tool's purpose, parameters, and return format, which is sufficient for a simple RSS-fetching tool with no required parameters. It lacks a brief note on error handling or source availability, but otherwise is complete enough given the low complexity.
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?
The description fully explains both parameters: 'limit' (maximum number of articles) and 'source' (with a list of allowed values like bloomberg, wsj, cnbc). This adds significant meaning beyond the schema, which only specifies type and default.
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 'Get the latest finance news from RSS feeds,' which is a specific verb ('Get') and resource ('latest finance news from RSS feeds'). This distinguishes it from the sibling tool 'search_finance_news' by emphasizing 'latest' rather than search.
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?
The description provides no guidance on when to use this tool versus the sibling 'search_finance_news.' It does not mention any alternatives, exclusions, or conditions for use, leaving the agent without explicit context for tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_finance_newsA
Search finance news across all RSS feeds by keyword.
Args: query: Search keyword to find in article titles or descriptions limit: Maximum number of matching articles to return (default: 10)
Returns: List of matching articles with title, link, published_date, description, and source_name
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| query | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the behavioral burden. It clearly states it searches titles and descriptions, respects a limit, and returns a list of articles with specified fields. However, it does not disclose ordering, error handling, or rate limits, leaving some typical search behavior undocumented.
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 concise and well-structured, with a one-sentence summary followed by clearly separated Args and Returns sections. Every line is informative, especially because the schema lacks descriptions, making the parameter explanations essential.
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 the tool's simplicity (2 parameters, output schema exists), the description covers the essential aspects: what it searches, how to control the result size, and what the returned entries contain. It does not repeat output schema details excessively, though it could mention ordering or other edge cases for full completeness.
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?
The input schema has 0% description coverage, but the tool description fully compensates by explaining the query parameter (keyword to find in titles/descriptions) and the limit parameter (maximum articles, default 10). This adds meaningful semantics beyond the bare schema types.
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 states a specific action ('Search finance news') and a clear resource ('across all RSS feeds') with a keyword parameter. This clearly distinguishes it from the sibling get_latest_finance_news, which implies fetching without a keyword filter.
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?
The description implies usage when you need to search by keyword rather than just getting the latest news, but it does not explicitly mention the sibling tool or provide when-to-use/when-not-to-use guidance. The 'Args' section clarifies inputs but lacks direct comparison to alternatives.
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.
2 tool updates
v0.1.0- First observed
get_latest_finance_news - First observed
search_finance_news
TDQS
Scored across 2 tools
The two tools have clearly distinct purposes: one fetches the latest articles (optionally filtered by source), while the other searches by keyword. There is no overlap in functionality that would cause confusion.
Both tools follow the same verb_noun pattern: get_latest_finance_news and search_finance_news. The names are descriptive and consistent.
With only two tools, the server feels minimal but well-scoped for its purpose of fetching and searching finance news. It is slightly thin, but each tool serves a distinct and necessary function.
The server covers the core operations for a news RSS reader: retrieving latest news (with source filtering) and searching. Minor gaps exist, such as lack of pagination or category filtering, but agents can accomplish typical tasks without dead ends.
Maintenance
Related MCP Connectors
Real-time financial news for AI agents: search by ticker and source, with sentiment and entities.
Real-time financial news & regulatory intelligence: cited search, fetch, summaries, collections.
Get access to real-time and historical news data including top headlines from global sources
Real-time news with bias scoring, live market data, and AI-powered options pricing
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceProvides comprehensive financial market data and news through the Finnhub API. Enables real-time stock quotes, company profiles, financial metrics, analyst recommendations, and market news access.1MIT
- AlicenseAqualityDmaintenanceEnables AI agents to fetch and search news from multiple sources including RSS/Atom feeds, HackerNews, and GDELT global news intelligence without requiring an API key.11177 PyPI4MIT
- FlicenseNot gradedqualityDmaintenanceFetches news from trusted global sources using NewsAPI and RSS feeds, enabling search, headline retrieval, and source listing.-
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to search and retrieve real-time financial news from Finnhub via natural language queries.7 npm6Apache 2.0