News Mcp

News Mcp

🚀 新闻MCP服务器

这是一个智能新闻搜索MCP(模型上下文协议)服务器,具备自动API切换功能,可实现可靠的新闻获取。从此无需再担心API使用限制!

🚀 快速开始

1. 安装

# 克隆仓库
git clone https://github.com/guangxiangdebizi/news-mcp.git
cd news-mcp

# 安装依赖
npm install

# 复制环境模板
cp .env.example .env

2. API配置

从以下任意服务获取免费API密钥(只需一个,但多个密钥可提高可靠性):

服务 每日限制 注册链接 优先级
TheNewsAPI 无限制* 获取密钥 🥇 最高
NewsData.io 约200次请求 获取密钥 🥈 高
NewsAPI.org 100次请求 获取密钥 🥉 中等
GNews 100次请求 获取密钥 🏅 中等
Twingly 有试用版 获取密钥 🎖️ 低

*免费套餐声称无限制

3. 配置环境

编辑 .env 文件并添加你的API密钥:

# 至少添加一个API密钥(多个密钥可提高可靠性)
THE_NEWS_API_KEY=your_api_key_here
NEWSDATA_IO_KEY=your_api_key_here
NEWSAPI_ORG_KEY=your_api_key_here
GNEWS_API_KEY=your_api_key_here
TWINGLY_API_KEY=your_api_key_here

4. 构建并运行

# 构建项目
npm run build

# 启动MCP服务器
npm start

# 或者以开发模式运行
npm run dev

✨ 主要特性

  • 🔄 智能API切换:当某个新闻API达到使用限制时,自动在多个新闻API之间切换。
  • 🆓 多个免费API:支持5个以上免费新闻API,每日配额充足。
  • 📊 配额管理:智能跟踪每日API使用限制。
  • 🌍 多语言支持:支持20多种语言的新闻搜索。
  • 快速可靠:故障转移机制确保始终能获取结果。
  • 🛠️ 易于设置:通过环境变量进行简单配置。

💻 使用示例

基础用法

与Claude Desktop配合使用

添加到Claude Desktop配置中:

标准输入输出模式(本地开发):

{
"mcpServers": {
"news-mcp": {
"command": "node",
"args": ["path/to/news-mcp/build/index.js"]
}
}
}

服务器发送事件(SSE)模式(Web访问):

# 启动SSE服务器
npm run sse
{
"mcpServers": {
"news-mcp": {
"type": "sse",
"url": "http://localhost:3100/sse",
"timeout": 600
}
}
}

可用工具

search_news

使用自动API切换功能搜索新闻文章。

参数

  • query(必需):搜索关键词或主题。
  • language(可选):语言代码(默认:"en")。
  • limit(可选):文章数量(1 - 10,默认:5)。

示例

// 搜索科技新闻
{
"query": "artificial intelligence",
"language": "en",
"limit": 5
}

// 搜索中文新闻
{
"query": "科技新闻",
"language": "zh",
"limit": 3
}

🔧 技术细节

智能切换的工作原理

  1. 优先级顺序:按可靠性和配额限制顺序尝试API。
  2. 配额跟踪:系统跟踪每个API的每日使用情况。
  3. 自动故障转移:当某个API失败或达到限制时,自动尝试下一个API。
  4. 成功保证:持续尝试,直到获得成功响应或所有API都已耗尽。
TheNewsAPI (∞) → NewsData.io (200) → NewsAPI.org (100) → GNews (100) → Twingly (50)

支持的语言

  • 英语(en) - 所有API支持
  • 中文(zh) - 大多数API支持
  • 西班牙语(es) - 大多数API支持
  • 法语(fr) - 大多数API支持
  • 德语(de) - 大多数API支持
  • 以及15种以上其他语言

🛠️ 开发

项目结构

src/
├── index.ts              # MCP服务器入口点
├── config.ts             # API配置管理
└── tools/
└── newsSearch.ts     # 智能新闻搜索工具

脚本

npm run build     # 构建TypeScript项目
npm run dev       # 开发模式,实时监听文件变化
npm start         # 启动已构建的服务器
npm run sse       # 在端口3100上启动SSE服务器

添加新API

  1. src/config.ts 中添加API配置。
  2. src/tools/newsSearch.ts 中实现特定于API的请求逻辑。
  3. .env.example 中添加环境变量。

🤝 贡献

欢迎贡献代码!请随时提交拉取请求。

  1. 分叉仓库。
  2. 创建你的功能分支 (git checkout -b feature/AmazingFeature)。
  3. 提交你的更改 (git commit -m 'Add some AmazingFeature')。
  4. 推送到该分支 (git push origin feature/AmazingFeature)。
  5. 打开拉取请求。

📄 许可证

本项目采用Apache License 2.0许可 - 详情请参阅 LICENSE 文件。

👨‍💻 作者

陈星宇

🙏 致谢

  • 模型上下文协议 提供了出色的MCP框架。
  • 所有新闻API提供商提供了慷慨的免费套餐。
  • 开源社区提供了灵感和支持。

⭐ 如果这个项目对你有帮助,请给它点个星!

  • 0 关注
  • 0 收藏,9 浏览
  • system 提出于 2025-09-23 09:51

相似服务问题