新闻MCP

@binhtrongg/news-mcp
0 Stars 1.1k 次浏览 binhtrongg 更新于 2026-08-23

一个远程MCP服务器,通过Tavily API enables搜索特定主题的新闻文章,而无需身份验证。

该服务暂未提供标准配置,请参考 README 手动接入

服务介绍

在 Cloudflare 上构建无需认证的远程 MCP 服务器

此示例允许你在 Cloudflare Workers 上部署一个不需要认证的远程 MCP 服务器。

开始使用:

Deploy to Workers

这将把你的 MCP 服务器部署到类似这样的 URL:remote-mcp-server-authless.<your-account>.workers.dev/sse

或者,你可以使用以下命令行在本地机器上创建远程 MCP 服务器:
bash
npm create cloudflare@latest -- my-mcp-server --template=cloudflare/ai/demos/remote-mcp-authless

自定义你的 MCP 服务器

要向 MCP 服务器添加你自己的工具,请在 src/index.ts 文件的 init() 方法中使用 this.server.tool(...) 定义每个工具。

Tavily 新闻搜索工具

此 MCP 服务器包含一个由 Tavily API 支持的新闻搜索工具。要使用它,请执行以下步骤:

  1. tavily.com 注册并获取 Tavily API 密钥。

  2. 将你的 API 密钥添加到 wrangler.jsonc 文件中的 "vars" 部分:
    json
    "vars": { "TAVILY_API_KEY": "your-actual-api-key" }

  3. 对于生产环境,建议使用 Cloudflare Workers Secrets 来存储密钥:
    bash
    npx wrangler secret put TAVILY_API_KEY

新闻搜索响应格式

searchNews 工具以结构化的文本格式返回新闻结果:

以下是关于 "{query}" 的前 {N} 条 {topic} 新闻结果(时间范围:{timeRange}):

  1. {Title}
    {URL}
    {内容摘要}

  2. {Title}
    {URL}
    {内容摘要}
    ...

要在客户端应用程序中将这些结果解析为 JSON,可以从格式化的文本响应中提取信息。

连接到 Cloudflare AI Playground

你可以从 Cloudflare AI Playground(这是一个远程 MCP 客户端)连接到你的 MCP 服务器:

  1. 前往 https://playground.ai.cloudflare.com/
  2. 输入你已部署的 MCP 服务器 URL (remote-mcp-server-authless.<your-account>.workers.dev/sse)
  3. 现在你就可以直接从 playground 使用你的 MCP 工具了!

将 Claude Desktop 连接到你的 MCP 服务器

你也可以通过使用 mcp-remote 代理 从本地 MCP 客户端连接到你的远程 MCP 服务器。

要从 Claude Desktop 连接到你的 MCP 服务器,请按照 Anthropic 的快速入门指南 操作,并在 Claude Desktop 中进入设置 > 开发者 > 编辑配置。

更新配置如下:

json
{
"mcpServers": {
"calculator": {
"command": "npx",
"args": [
"mcp-remote",
"http://localhost:8787/sse" // 或 remote-mcp-server-authless.your-account.workers.dev/sse
]
}
}
}

重启 Claude 后,你应该能看到工具变得可用。

可用工具

此 MCP 服务器包含以下工具:

  1. add - 两个数字的简单加法
  2. calculate - 支持多种运算(加、减、乘、除)的计算器
  3. searchNews - 使用 Tavily 的 API 搜索特定主题的新闻文章
    • 参数:
      • query (字符串, 必填): 要搜索的新闻主题
      • topic (字符串, 必填): 新闻主题类型 ("general", "news", 或 "finance")
      • maxResults (数字, 可选): 返回的最大新闻结果数量(默认值: 5)
      • timeRange (字符串, 可选): 新闻结果的时间范围 ("year", "month", "week", 或 "day", 默认值: "day")