内容
金融新闻RSS MCP服务器
一个模型上下文协议(MCP)服务器,提供来自主要RSS源的实时金融新闻。 使用 [FastMCP](https://github.com/jlowin/fastmcp) 构建,以演示MCP基础知识。
## 本MCP的作用
该MCP服务器为Claude提供了来自主要来源的金融新闻,包括:
- 彭博社
- 华尔街日报(WSJ)
- CNBC
- 寻找阿尔法
- 市场观察
- 金融时报
服务器提供了两个工具:
1. **获取最新金融新闻** - 从所有来源或特定来源获取最新新闻
2. **搜索金融新闻**所有源中搜索与关键词匹配的文章
## 安装
使用uv安装依赖项:
```bash
uv sync
```
## 如何运行
启动MCP服务器:
```bash
uv run python main.py
```
或在Claude Desktop应用程序中通过添加到MCP设置来配置它:
```json
{
"mcpServers": {
"finance-news": {
"command": "uv",
"args": ["--directory", "/path/to/example", "run", "python", "main.py"]
}
}
}
```
**重要注意事项:**
- 将 `/path/to/example` 替换为实际的项目目录路径
- 如果出现“spawn uv ENOENT”错误,请使用`uv`的完整路径:
- 使用以下命令查找:`which uv`
- 常见位置:`~/.local/bin/uv` 或 `~/.cargo/bin/uv`
- 将 `command` 更新为完整路径,例如 `"/Users/yourname/.local/bin/uv"`
## 示例问题
连接后,您可以向Claude提出以下问题:
- "最新的金融新闻头条是什么?"
- "给我来自彭博社的5篇最新新闻文章"
- "在金融源中搜索有关‘通货膨胀’的新闻"
- "CNBC的最新新闻是什么?"
- "查找有关‘储’或‘利率’"
- "显示我最近虎财经头条新闻"
用工具
### 获取最新金融新闻
获取最新的金融新闻文章。
**参数:**
- `limitint,默认值=10):返回的最大文章数量
- `source` (str,默认值="all"):要从中获取新闻的源
- 选项:"all", "bloomberg", "wsj", "cnbc", "seekingalpha", "marketwatch", "ft"
**示例:**
```python
get_latest_finance_news(limit=5, source="wsj")
```
### 搜索金融新闻
在所有源中搜索与关键词匹配的文章。
**参数:**
- `query` (str,必填):要在标题或描述中查找的搜索关键词
- `limit` (int,默认值=10):返回的最大匹配文章数量
**示例:**
```python
search_finance_news(query="bitcoin", limit=5)
```
## 实现细节
- **无缓存**:按需获取RSS源以实现实时更新
- **错误处理**:优雅地跳过加载失败的源
- **简单 & 清洁**:单文件实现,完美的投资组合
- **依赖项**:fastmcp, feedparser, httpx 项目结构
```
example/
├── main.py # MCP
├── pyproject.toml 依赖项
├── uv 依赖项锁定文件
└── README.md # 此```
## 工作原理
服务器- **FastMCP** 创建MCP服务器并注册工具
httpx** 获取RSS源URL
- **feedparser** 将RSS/Atom源解析为结构化数据
每个工具都实时获取源,解析它们,并返回结构化的文章数据,包括标题、链接、发布时间、描述和源名称。
## 许可证
MIT