新闻聚合服务器

OmniWire-MCP是一个基于模型上下文协议(MCP)的生产级、容错的新闻聚合服务器,提供统一的接口来消费RSS、Atom、JSON和HTML订阅源。

  • by furkankoykiran
  • TypeScript
  • 本地部署
  • 6 星标
  • 更新于
在 GitHub 查看 furkankoykiran/OmniWire-MCP

使用说明

OmniWire MCP服务器⚡️

OmniWire MCP 是一个基于 **模型上下文协议(MCP)**它通过提供一个统一的界面来消费RSS、Atom、JSON和HTML提要,弥合了人工智能模型和实时信息之间的差距。

专为韧性而设计,具有 哨兵服务 使用断路器可以优雅地处理故障源 通用解析器 自动适应不同的内容格式。


✨ 特性

  • 通用解析:自动检测和解析RSS、Atom、JSON和HTML内容。
  • Sentinel架构:智能断路器监测电源健康状况,防止级联故障。
  • 动态配置:通过远程JSON配置热重新加载源代码(RSS_FEEDS)或者回退到本地默认值。
  • 数据规范化:将多种提要格式转换为标准化 NewsItem 模式。
  • 人工智能原生:展示针对LLM消费优化的专用工具和提示。
  • 零配置部署:通过立即运行 npx 或者Docker。

🚀 快速开始

使用 npx (全球)

先决条件: 该包必须发布到NPM或全局安装。

npx omniwire-mcp

本地测试(不发布)

如果您正在本地开发并想测试 npx 命令:

  1. 全局链接包:
    cd OmniWire-MCP
    npm link
    
  2. 与一起跑步 npx:
    npx omniwire-mcp
    

自定义配置

您可以通过两种方式配置服务器:

  1. 远程URL:提供JSON配置文件的URL。

    RSS_FEEDS="https://raw.githubusercontent.com/furkankoykiran/OmniWire-MCP/refs/heads/main/src/config/defaults/feeds.json" npx omniwire-mcp
    
  2. 直接JSON:将配置JSON直接作为字符串传递。

    RSS_FEEDS='{"sources": [...]}' npx omniwire-mcp
    

📦 安装与发布

发布到NPM(推荐)

作出 npx omniwire-mcp 可供所有人使用:

  1. 登录NPM:
    npm login
    
  2. 发布包:
    npm publish --access public
    

选项1:Docker(云/生产)

服务器已经为Docker做好了部署准备。

# Build the image
docker build -t omniwire-mcp .

# Run with custom config
docker run -e RSS_FEEDS="https://raw.githubusercontent.com/furkankoykiran/OmniWire-MCP/refs/heads/main/src/config/defaults/feeds.json" omniwire-mcp

方案2:地方发展

  1. 克隆存储库:

    git clone https://github.com/furkankoykiran/OmniWire-MCP.git
    cd OmniWire-MCP
    
  2. 安装依赖项并构建:

    npm install
    npm run build
    
  3. 运行服务器:

    npm start
    

🔌 MCP配置

将OmniWire添加到MCP客户端配置中(例如。, claude_desktop_config.json 或 mcp_config.json).

标准配置(npx)

{
  "mcpServers": {
    "omniwire": {
      "command": "npx",
      "args": [
        "-y",
        "@furkankoykiran/omniwire-mcp"
      ],
      "env": {
        "RSS_FEEDS": "https://raw.githubusercontent.com/furkankoykiran/OmniWire-MCP/refs/heads/main/src/config/defaults/feeds.json",
        "LOG_LEVEL": "info"
      }
    }
  }
}

Docker配置

{
  "mcpServers": {
    "omniwire": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-e", "RSS_FEEDS",
        "omniwire-mcp"
      ],
      "env": {
        "RSS_FEEDS": "https://raw.githubusercontent.com/furkankoykiran/OmniWire-MCP/refs/heads/main/src/config/defaults/feeds.json"
      }
    }
  }
}

🛠 能力

工具

工具 描述 参数
fetch-news 带哨兵保护的Smat提取器 filter (字符串), sourceId (字符串), limit (编号)
check-health 来源诊断报告 sourceId (可选)
refresh-config 强制重新加载远程配置 无
reset-source 手动重置断路器 sourceId (字符串)

资源

URI 描述
news://all 来自所有健康来源的聚合饲料
news://source/{id} 来自特定来源的实时订阅源
health://sources 实时系统健康报告
config://current 查看活动配置

提示

提示 应用程序
summarize-news “给我一个主题X的摘要”(使用 fetch-news)
analyze-sources “诊断我的饲料健康状况”(用途 check-health)

⚙️ 配置架构

配置JSON文件应与以下架构匹配:

{
  "sources": [
    {
      "id": "tech-crunch",
      "name": "TechCrunch",
      "url": "https://techcrunch.com/feed/",
      "type": "rss",
      "enabled": true
    }
  ],
  "configPollIntervalMs": 60000,
  "requestTimeoutMs": 10000,
  "sentinel": {
    "failureThreshold": 3,
    "recoveryTimeoutMs": 60000
  }
}

🤝 贡献

我们欢迎捐款!请查看我们的 贡献指南 有关如何设置开发环境和提交Pull Requests的详细信息。

📄 许可证

该项目根据 MIT许可证.