新闻API服务

一个提供全球新闻搜索、头条获取、文章提取和报纸首页检索的MCP协议服务器。

  • by ddsky
  • JavaScript
  • 本地部署
  • 10 星标
  • 更新于
在 GitHub 查看 ddsky/world-news-api-mcp

使用说明

世界新闻API MCP服务器

一种模型上下文协议(MCP)服务器,提供对 世界新闻API该服务器使AI助手能够通过MCP协议搜索新闻、获取头条新闻、提取文章、检索报纸头版等。

特性

  • 新闻搜索:按文本、日期、位置、类别、语言等搜索和筛选新闻
  • 头条新闻:以任何语言获取来自任何国家的头条新闻
  • 报纸头版:检索世界各地报纸的头版
  • 文章摘录:从新闻URL中提取完整文章
  • 新闻链接发现:从网站中提取新闻链接
  • 来源搜索:查找受监控的新闻来源
  • 位置坐标:获取地理坐标以进行基于位置的过滤
  • 内容分析:提取实体、检测情绪等

快速开始

安装

npm install -g world-news-api-mcp

设置

  1. 获取世界新闻API密钥 (免费)https://worldnewsapi.com/register)

  2. 将API密钥设置为环境变量:

    # Windows (PowerShell)
    $env:WORLD_NEWS_API_KEY="your_api_key_here"
    
    # macOS/Linux
    export WORLD_NEWS_API_KEY="your_api_key_here"
    

与MCP客户端一起使用

将此配置添加到您的MCP客户端(Claude Desktop等):

{
  "servers": {
    "world-news-api": {
      "command": "world-news-api-mcp",
      "env": {
        "WORLD_NEWS_API_KEY": "your_api_key_here"
      }
    }
  }
}

测试安装

# Set your API key
export WORLD_NEWS_API_KEY="your_key_here"

# Test the server
echo '{"jsonrpc":"2.0","id":1,"method":"tools/list","params":{}}' | world-news-api-mcp

可用工具

search_news

按文本、日期、位置、类别、语言等搜索和过滤新闻。

参数:

  • text (字符串,可选):新闻内容中要匹配的文本(最少3个字符)
  • source-country (字符串,可选):ISO 3166国家代码(例如“us”、“gb”)
  • language (字符串,可选):ISO 6391语言代码(例如“en”、“es”)
  • min-sentiment / max-sentiment (数字,可选):情绪范围[-1,1]
  • earliest-publish-date / latest-publish-date (字符串,可选):日期范围(YYYY-MM-DD HH:MM:SS)
  • news-sources (字符串,可选):以逗号分隔的源列表
  • authors (字符串,可选):以逗号分隔的作者列表
  • categories (字符串,可选):类别(政治、体育、商业、技术等)
  • entities (字符串,可选):按实体筛选(ORG:特斯拉,PER:埃隆·马斯克)
  • location-filter (字符串,可选):“纬度、经度、半径_公里”
  • sort (字符串,可选):排序条件(发布时间)
  • sort-direction (字符串,可选):ASC或DESC
  • offset (number,可选):要跳过的结果数
  • number (number,可选):要返回的结果数(1-100,默认值:10)

get_top_news

获取某一特定日期某一语言国家的头条新闻。

参数:

  • source-country (字符串,必填):ISO 3166国家代码
  • language (字符串,必填):ISO 6391语言代码
  • date (字符串,可选):日期(YYYY-MM-DD),默认为当前日期
  • headlines-only (boolean,可选):仅返回基本信息(默认值:false)

retrieve_newspaper_front_page

获取世界各地报纸的头版。

参数:

  • source-country (字符串,可选):ISO 3166国家代码
  • source-name (字符串,可选):出版物标识符(例如“先驱太阳”)
  • date (字符串,可选):日期(YYYY-MM-DD),最早:2024-07-09

retrieve_news_articles

通过ID检索特定新闻文章的详细信息。

参数:

  • ids (字符串,必填):逗号分隔的新闻ID列表

extract_news

将网站上的新闻文章提取到结构良好的JSON对象中。

参数:

  • url (string,必填):新闻文章的URL
  • analyze (布尔值,可选):分析内容(实体、情感等)

extract_news_links

从新闻网站提取新闻链接。

参数:

  • url (string,必填):新闻网站的URL
  • analyze (布尔值,可选):分析提取的内容

search_news_sources

搜索新闻源是否受世界新闻API监控。

参数:

  • name (字符串,必填):(部分)源名称

get_geo_coordinates

获取位置的纬度和经度,以便在位置过滤器中使用。

参数:

  • location (字符串,必填):地址或位置名称

使用示例

搜索有关AI的最新消息

{
  "name": "search_news",
  "arguments": {
    "text": "artificial intelligence",
    "language": "en",
    "categories": "technology",
    "number": 5
  }
}

获取美国的头条新闻

{
  "name": "get_top_news",
  "arguments": {
    "source-country": "us",
    "language": "en"
  }
}

从URL中提取文章

{
  "name": "extract_news",
  "arguments": {
    "url": "https://www.bbc.com/news/world-us-canada-59340789",
    "analyze": true
  }
}

搜索某个地点附近的新闻

{
  "name": "search_news",
  "arguments": {
    "text": "earthquake",
    "location-filter": "35.6762,139.6503,50",
    "language": "en"
  }
}

发展

要在开发模式下运行:

npm run dev

要构建:

npm run build

测试:

npm test

API费率限制

世界新闻API根据您的订阅有不同的费率限制:

  • 免费计划:每天150个请求
  • 付费计划:可用更高的限制

检查 世界新闻API定价 了解详情。

错误处理

服务器处理常见的API错误:

  • 401未经授权:API密钥无效
  • 402需要付款:超过API配额
  • 429请求太多:超出费率限制

许可证

国际协调委员会

贡献

欢迎投稿!请随时提交拉取请求。

相关