新闻数据服务

一个基于NewsAPI的新闻数据服务,提供新闻搜索、头条新闻、趋势话题和来源发现等功能。

  • by shreyaspathak11
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 shreyaspathak11/news-mcp-server

使用说明

新闻MCP服务器

一种模型上下文协议(MCP)服务器,通过NewsAPI服务提供对新闻数据的访问。该服务器已被重构为干净的模块化架构,以提高可维护性和理解性。

🏗️ 建筑

该项目遵循干净的模块化结构:

news_server/
├── __init__.py                 # Package initialization
├── main.py                     # Entry point and server startup
├── config/
│   ├── __init__.py
│   └── settings.py             # Configuration management
├── api/
│   ├── __init__.py
│   └── news_client.py          # NewsAPI client with error handling
├── core/
│   ├── __init__.py
│   ├── server.py               # MCP server setup and orchestration
│   └── handlers.py             # Resource and tool handlers
├── models/
│   ├── __init__.py
│   └── schemas.py              # Data models and schemas
└── utils/
    ├── __init__.py
    ├── formatters.py           # Article and date formatting
    └── logger.py               # Logging configuration

✨ 特性

  • 新闻搜索:使用日期过滤按关键字搜索文章
  • 头条新闻:按类别和国家获取头条新闻
  • 热门话题:访问最近几小时的热门新闻
  • 数据源发现:通过筛选浏览可用的新闻来源
  • 多语言支持:支持多种语言和国家
  • 丰富的格式:人类可读的文章格式
  • 错误处理:全面的错误处理和记录
  • 配置验证:强大的配置验证

🚀 快速开始

1.安装

# Install the package in development mode
pip install -e .

# Or install dependencies directly
pip install -r requirements.txt

2.配置

从获取NewsAPI密钥 newsapi.org 并对其进行配置:

选项A:环境变量

export NEWS_API_KEY="your_api_key_here"

选项B:.env文件

NEWS_API_KEY=your_api_key_here
NEWS_API_BASE_URL=https://newsapi.org/v2
REQUEST_TIMEOUT=30

3.运行服务器

方法A:使用installed命令

news-mcp-server

方法B:直接使用Python

python main.py

方法C:使用模块

python -m news_server.main

可用资源

  • news://headlines -最新头条新闻
  • news://categories -可用新闻类别
  • news://sources -可用新闻来源
  • news://countries -支持的国家

可用工具

搜索_新闻

按关键字搜索新闻文章。

参数:

  • query (必填):搜索词
  • days_back (可选):返回搜索的天数(默认值:7)
  • page_size (可选):结果数量(默认值:20,最大值:100)

get_headlines

按类别和国家获取头条新闻。

参数:

  • category (可选):新闻类(商业、科技、体育等)
  • country (可选):国家代码(默认:“us”)
  • page_size (可选):结果数量(默认值:20,最大值:100)

get_trending

获取最近几小时的热门新闻话题。

参数:

  • hours_back (可选):返回分析的小时数(默认值:24)

使用示例

一旦连接到克劳德,你可以问:

  • “搜索有关人工智能的新闻”
  • “获取最新技术头条”
  • “今天的新闻趋势是什么?”
  • “给我看英国的商业新闻”

配置

分类

  • 商业
  • 娱乐
  • 通用
  • 健康
  • 科学
  • 运动
  • 技术

国家

  • us(美国)
  • gb(英国)
  • ca(加拿大)
  • au(澳大利亚)
  • 在(印度)
  • de(德国)
  • fr(法国)
  • jp(日本)

速率限制

  • 免费新闻API:每天1000个请求
  • 服务器包含用于优化API使用的基本缓存
  • 考虑升级到NewsAPI Pro以获得更高的限制

错误处理

该服务器包括全面的错误处理功能,用于:

  • API请求频率超限
  • 网络连接问题
  • 搜索参数无效
  • API响应格式不正确

发展

要扩展服务器,请执行以下操作:

  1. 在中添加新端点 config.py
  2. 在中实施新工具 server.py
  3. 更新工具列表和模式
  4. 使用各种查询进行测试

许可证

MIT许可证-有关详细信息,请参阅许可证文件。