返回市场
新闻API-MCP

新闻API-MCP

作者:berlinbra9 星标更新:2025-03-29

项目介绍

新闻API MCP服务器

这是一个通过News API提供全球新闻文章访问的模型上下文协议(MCP)服务器。该服务器实现了标准化接口,用于搜索新闻文章、检索头条新闻以及列出可用的新闻来源。

特性

  • 使用高级过滤选项搜索任何主题的新闻文章
  • 按国家、类别或来源检索头条新闻
  • 获取有关可用新闻来源的信息,并按类别、语言和国家进行筛选
  • 内置错误处理和速率限制管理

安装

使用Claude桌面

通过Docker安装

  • 克隆仓库并构建本地镜像供您的Claude桌面客户端使用
cd news-api-mcp
docker build -t mcp/news-api .
  • 修改您的claude_desktop_config.json以匹配以下内容,将REPLACE_API_KEY替换为您实际的News API密钥:

claude_desktop_config.json路径

  • 在MacOS上:~/Library/Application\ Support/Claude/claude_desktop_config.json
  • 在Windows上:%APPDATA%/Claude/claude_desktop_config.json
{
  "mcpServers": {
    "newsapi": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "-e",
        "NEWS_API_KEY",
        "mcp/news-api"
      ],
      "env": {
        "NEWS_API_KEY": "REPLACE_API_KEY"
      }
    }
  }
}

通过Smithery安装

要通过Smithery自动安装News API MCP服务器给Claude桌面:

npx -y @smithery/cli install @berlinbra/news-api-mcp --client claude

开发环境设置

安装包

uv install -e .

运行

在通过json文件连接Claude客户端与MCP工具并安装包后,Claude应该能看到服务器的MCP工具。

您可以自己运行服务器:

uv run src/news_api_mcp/server.py

使用检查器:

npx @modelcontextprotocol/inspector uv --directory /Users/{INSERT_USER}/YOUR/PATH/TO/news-api-mcp run src/news_api_mcp/server.py

可用工具

服务器实现了三个工具:

search-news

搜索任何主题的新闻文章。

输入模式:

{
  "query": {
    "type": "string",
    "description": "要在文章标题和正文搜索的关键字或短语"
  },
  "from_date": {
    "type": "string",
    "description": "文章搜索的起始日期(YYYY-MM-DD格式)"
  },
  "to_date": {
    "type": "string",
    "description": "文章搜索的结束日期(YYYY-MM-DD格式)"
  },
  "sources": {
    "type": "string",
    "description": "按新闻来源筛选的逗号分隔列表(例如,'bbc-news,cnn')"
  },
  "language": {
    "type": "string",
    "description": "文章的语言",
    "default": "en"
  },
  "sort_by": {
    "type": "string",
    "description": "按相关性、受欢迎程度或发布时间排序文章",
    "default": "publishedAt"
  },
  "page_size": {
    "type": "integer",
    "description": "每页返回的结果数量(最大100)",
    "default": 20
  },
  "page": {
    "type": "integer",
    "description": "分页的页码",
    "default": 1
  }
}

示例响应:

搜索结果为 '人工智能'(找到28156篇文章):

文章1:
标题:OpenAI宣布在人工智能推理方面取得突破
来源:TechCrunch
作者:John Smith
发布日期:2025-03-25 14:30 UTC
描述:这家AI研究实验室已经开发出一种展示先进推理能力的新模型...
URL:https://techcrunch.com/2025/03/25/openai-announces-new-ai-model/
---

文章2:
...

get-top-headlines

获取国家、类别和单一出版商的突发新闻头条。

输入模式:

{
  "country": {
    "type": "string",
    "description": "2位ISO 3166-1国家代码"
  },
  "category": {
    "type": "string",
    "description": "要获取头条新闻的类别"
  },
  "sources": {
    "type": "string",
    "description": "按新闻来源ID筛选的逗号分隔列表(例如,'bbc-news,cnn')"
  },
  "query": {
    "type": "string",
    "description": "要在头条新闻中搜索的关键字或短语"
  },
  "page_size": {
    "type": "integer",
    "description": "每页返回的结果数量(最大100)",
    "default": 20
  },
  "page": {
    "type": "integer",
    "description": "分页的页码",
    "default": 1
  }
}

示例响应:

国家:US,类别:技术的头条新闻(找到20篇文章):

文章1:
标题:苹果宣布推出配备M3芯片的新款MacBook Pro
来源:The Verge
作者:Alice Johnson
发布日期:2025-03-28 13:45 UTC
描述:苹果发布了其最新款MacBook Pro系列,配备了新的M3芯片...
URL:https://theverge.com/2025/03/28/apple-new-macbook-pro-m3
---

文章2:
...

get-news-sources

获取关于最著名的新闻来源的信息。

输入模式:

{
  "category": {
    "type": "string",
    "description": "查找显示此类别新闻的来源"
  },
  "language": {
    "type": "string",
    "description": "查找显示特定语言新闻的来源"
  },
  "country": {
    "type": "string",
    "description": "查找显示特定国家新闻的来源"
  }
}

示例响应:

类别:技术,语言:en的可用新闻来源(找到22个来源):

来源1:
名称:TechCrunch
ID:techcrunch
描述:TechCrunch是一个领先的科技媒体品牌,专注于狂热地剖析初创企业、审查新的互联网产品以及报道科技新闻。
类别:技术
语言:en
国家:US
URL:https://techcrunch.com
---

来源2:
...

错误处理

服务器包括针对各种情况的全面错误处理:

  • 超过速率限制(News API免费层级每天限100次请求)
  • 无效的API密钥
  • 网络连接问题
  • 超时处理
  • 格式错误的响应

错误消息以清晰的人类可读格式返回。

前提条件

  • Python 3.12或更高版本
  • httpx
  • mcp

贡献者

贡献

欢迎贡献!请随时提交Pull Request。

许可证

此MCP服务器根据MIT许可证授权。 这意味着您可以在遵守MIT许可证条款和条件的前提下自由使用、修改和分发软件。更多详情,请参阅项目存储库中的LICENSE文件。