Back to MCP directory
publicPublicdnsLocal runtime

iceland-news-mcp

冰岛新闻MCP服务器,通过RSS源从6个主要冰岛新闻机构获取最新新闻,支持60多个分类源和多种语言,提供新闻获取和源列表工具。

article

README

🚀 冰岛新闻MCP服务器

这是一个MCP(模型上下文协议)服务器,它通过RSS订阅源从冰岛新闻媒体获取最新新闻。

🚀 快速开始

配置完成后,你可以让你的AI助手获取冰岛新闻,例如:

  • "Get the latest news from Iceland"
  • "Show me sports news from Morgunblaðið"
  • "What's the latest international news from RÚV?"
  • "Fetch 5 articles from the MBL English feed"
  • "List all available feeds"
  • "Get news from the University of Iceland"

✨ 主要特性

  • 从6个冰岛新闻媒体获取新闻
  • 涵盖60多种不同类别的新闻订阅源
  • 支持冰岛语、英语和波兰语的新闻订阅源
  • 可配置获取文章的数量(1 - 50篇)
  • 内置工具可列出所有可用的订阅源

📦 安装指南

前提条件

  • Node.js 18或更高版本
  • npm

从源代码构建

git clone https://github.com/olibuijr/iceland-news-mcp.git
cd iceland-news-mcp
npm install
npm run build

配置

Claude Code

将以下内容添加到你的Claude Code配置文件 ~/.claude/claude_code_config.json 中:

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

然后重启Claude Code或运行 /mcp 以刷新MCP服务器。

Claude Desktop

将以下内容添加到你的Claude Desktop配置文件中:

  • macOS~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows%APPDATA%\Claude\claude_desktop_config.json
  • Linux~/.config/Claude/claude_desktop_config.json
{
  "mcpServers": {
    "iceland-news": {
      "command": "node",
      "args": ["/absolute/path/to/iceland-news-mcp/dist/index.js"]
    }
  }
}

然后重启Claude Desktop。

Cursor

将以下内容添加到你的Cursor MCP配置文件 ~/.cursor/mcp.json 中:

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

然后重启Cursor或使用命令面板重新加载MCP服务器。

VS Code with Continue Extension

将以下内容添加到你的Continue配置文件 ~/.continue/config.json 中:

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

Windsurf

将以下内容添加到你的Windsurf MCP配置文件 ~/.windsurf/mcp.json 中:

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

Zed

将以下内容添加到你的Zed设置文件 ~/.config/zed/settings.json 中:

{
  "context_servers": {
    "iceland-news": {
      "command": {
        "path": "node",
        "args": ["/absolute/path/to/iceland-news-mcp/dist/index.js"]
      }
    }
  }
}

💻 使用示例

工具:get_news

从特定的新闻源和订阅源获取新闻文章。

参数: | 参数 | 类型 | 默认值 | 描述 | |-----------|------|---------|-------------| | source | 字符串 | ruv | 新闻源:ruv, mbl, heimildin, mannlif, landsbankinn, 或 hi | | feed | 字符串 | frettir | 要获取的订阅源(见上文表格) | | limit | 数字 | 10 | 要返回的文章数量(1 - 50) |

示例:

{
  "name": "get_news",
  "arguments": {
    "source": "mbl",
    "feed": "sport",
    "limit": 5
  }
}

工具:list_feeds

列出一个或所有新闻源的所有可用订阅源。

参数: | 参数 | 类型 | 默认值 | 描述 | |-----------|------|---------|-------------| | source | 字符串 | all | 要列出的新闻源:ruv, mbl, heimildin, mannlif, landsbankinn, hi, 或 all |

示例:

{
  "name": "list_feeds",
  "arguments": {
    "source": "hi"
  }
}

📚 详细文档

支持的新闻源

RÚV(冰岛国家广播公司)

| 订阅源 | 描述 | |------|-------------| | frettir | 所有新闻 | | innlent | 国内新闻 | | erlent | 国际新闻 | | ithrottir | 体育新闻 | | menning-og-daegurmal | 文化与时事新闻 | | audskilid | 简易冰岛语新闻 | | english | 英语新闻 | | polski | 波兰语新闻 |

Morgunblaðið(mbl.is)

主要新闻

| 订阅源 | 描述 | |------|-------------| | fp | 头版新闻 | | innlent | 国内新闻 | | erlent | 国际新闻 | | togt | 科技与科学新闻 | | english | 英语新闻 | | helst | 头条新闻 | | nyjast | 最新新闻 | | sjonvarp | 电视新闻 |

体育新闻

| 订阅源 | 描述 | |------|-------------| | sport | 所有体育新闻 | | fotbolti | 足球新闻 | | enski | 英超联赛新闻 | | golf | 高尔夫新闻 | | handbolti | 手球新闻 | | korfubolti | 篮球新闻 | | pepsideild | 百事联赛(冰岛足球)新闻 | | formula | F1赛车新闻 | | hestar | 赛马新闻 | | rafithrottir | 电竞新闻 |

商业与工业新闻

| 订阅源 | 描述 | |------|-------------| | vidskipti | 商业新闻 | | 200milur | 海洋与渔业新闻 | | fasteignir | 房地产新闻 |

文化与生活新闻

| 订阅源 | 描述 | |------|-------------| | menning | 文化新闻 | | folk | 人物新闻 | | verold | 世界/名人新闻 | | matur | 美食新闻 | | ferdalog | 旅游新闻 | | bill | 汽车新闻 |

Smartland(生活方式)

| 订阅源 | 描述 | |------|-------------| | smartland | Smartland相关新闻 | | stars | 名人新闻 | | tiska | 时尚新闻 | | heimili | 家居与设计新闻 | | utlit | 美容新闻 | | heilsa | 健康与营养新闻 | | frami | 成功故事新闻 | | samkvaemislifid | 社交生活新闻 | | fjolskyldan | 家庭新闻 |

Morgunblaðið报纸

| 订阅源 | 描述 | |------|-------------| | mogginn-idag | 今日报纸 | | mogginn-featured | 特色文章 | | mogginn-leidarar | 社论 | | mogginn-sunnudagur | 周日版 | | mogginn-netgreinar | 精选文章 |

其他

| 订阅源 | 描述 | |------|-------------| | k100 | K100电台新闻 | | smaaugl | 分类广告 | | blog | 博客讨论 |

Heimildin

| 订阅源 | 描述 | |------|-------------| | frettir | 所有新闻 |

Mannlíf

| 订阅源 | 描述 | |------|-------------| | frettir | 所有新闻 |

Landsbankinn

| 订阅源 | 描述 | |------|-------------| | frettir | 新闻与公告 |

冰岛大学(Háskóli Íslands)

全校新闻

| 订阅源 | 描述 | |------|-------------| | frettir | 大学新闻 | | vidburdir | 大学活动 |

社会科学学院

| 订阅源 | 描述 | |------|-------------| | felagsvisindasvid-frettir | 社会科学新闻 | | felagsvisindasvid-vidburdir | 社会科学活动 |

健康科学学院

| 订阅源 | 描述 | |------|-------------| | heilbrigdisvisindasvid-frettir | 健康科学新闻 | | heilbrigdisvisindasvid-vidburdir | 健康科学活动 |

人文学院

| 订阅源 | 描述 | |------|-------------| | hugvisindasvid-frettir | 人文新闻 | | hugvisindasvid-vidburdir | 人文活动 |

教育学院

| 订阅源 | 描述 | |------|-------------| | menntavisindasvid-frettir | 教育新闻 | | menntavisindasvid-vidburdir | 教育活动 |

工程与自然科学学院

| 订阅源 | 描述 | |------|-------------| | verkfraedi-natturuvisindasvid-frettir | 工程与自然科学新闻 | | verkfraedi-natturuvisindasvid-vidburdir | 工程与自然科学活动 |

项目结构

iceland-news-mcp/
├── src/
│   └── index.ts      # 主MCP服务器源代码
├── dist/
│   └── index.js      # 编译后的JavaScript文件
├── package.json
├── tsconfig.json
└── README.md

脚本

# 构建项目
npm run build

# 运行服务器(用于测试)
npm start

测试

你可以通过发送JSON - RPC消息手动测试服务器:

# 测试获取新闻
echo '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"test","version":"1.0.0"}}}
{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"get_news","arguments":{"source":"mbl","feed":"sport","limit":3}}}' | node dist/index.js

# 测试列出订阅源
echo '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"test","version":"1.0.0"}}}
{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"list_feeds","arguments":{"source":"all"}}}' | node dist/index.js

🔧 技术细节

v1.2.0 (2025-12-03)

重大变更:

  • 移除了ElevenLabs对话式AI集成
  • 替换为Google Gemini Live API以降低延迟

新特性:

  • Gemini Live API:直接通过WebSocket流式传输,实现低延迟语音响应
  • 混合语音转文本(STT):使用Whisper进行准确的冰岛语转录,Gemini实现快速响应
  • 语音活动检测自动停止(VAD Auto - Stop):在1.5秒静音后自动停止录音
  • 音频电平可视化:录音时实时显示输入电平
  • 新闻搜索:新增 search_news 工具,可在所有新闻源中进行关键词搜索
  • 更多新闻源:新增Vísir、DV、Stundin、Fréttablaðið、Kjarninn、Iceland Review、Grapevine、Vedirstofa(共14个)

技术方面:

  • 使用AudioWorklet进行高效的实时音频处理
  • 并行Whisper转录以准确显示文本
  • 移除 @elevenlabs/client@elevenlabs/react 依赖项
  • 简化UI,移除ElevenLabs设置面板

v1.1.0 (2025-12-03)

新特性:

  • Web UI:添加了SvelteKit Web界面,用于实时语音对话
  • 语音助手:集成Gemini Live API,实现原生音频响应
  • 冰岛语语音识别:添加了Whisper STT服务,并使用微调后的冰岛语模型(language - and - voice - lab/whisper - large - icelandic - 62640 - steps - 967h
  • 函数调用:Gemini现在可以使用MCP工具(get_all_news, get_news_by_source, get_news_by_category)获取新闻
  • 语音活动检测(VAD):用户停止说话时自动转录
  • 自动头条:应用启动时自动朗读10条最新头条新闻
  • 多语音选择:可从5种不同语音(Puck, Charon, Kore, Fenrir, Aoede)中选择

技术方面:

  • 新闻API端点用于RSS订阅源聚合
  • Whisper服务在CUDA(RTX 3080)上运行,实现快速推理
  • SvelteKit代理用于Whisper服务请求
  • 采用专业冰岛新闻记者人设

v1.0.0 (2025-12-03)

初始版本:

  • MCP服务器包含2个工具:get_newslist_feeds
  • 支持6个冰岛新闻源
  • 涵盖60多种RSS订阅源
  • 支持多语言(冰岛语、英语、波兰语)

📄 许可证

ISC

致谢

作者

Ólafur Búi Ólafsson 邮箱:olibuijr@olibuijr.com GitHub:@olibuijr

help

Runtime guide

cloud

Hosted runtime

Hosted servers run from a provider-managed environment. You usually connect the MCP client to the hosted endpoint or follow the provider's authorization flow, without keeping a local process alive

  1. Open provider connection page
  2. Authorize or copy endpoint
  3. Connect from your MCP client
terminal

Local runtime / other methods

Local servers run on your own machine or infrastructure. You normally copy the server_config into your MCP client, install the required package, and provide env variables from env_schema when needed

  1. Copy server_config
  2. Install required package
  3. Fill env variables and restart client