mahimn01/worldmonitor-mcp

GitHub: mahimn01/worldmonitor-mcp

封装 WorldMonitor 全球情报仪表板的 MCP 服务器与 CLI,向 AI 助手提供覆盖市场、地缘政治、环境、供应链等领域的 112 个实时数据查询工具及复合交易评分能力。

Stars: 0 | Forks: 1

# worldmonitor-mcp MCP server 和 CLI,封装了 [koala73/worldmonitor](https://github.com/koala73/worldmonitor),一个开源的全球情报仪表板。它向 Claude Code、Cursor、Windsurf 以及任何其他 MCP client 暴露了涵盖 33 个服务的 112 个工具,以便你可以向模型请求实时的市场、地缘政治、军事、网络、气候和供应链数据。 大多数服务代理了公开的 [worldmonitor.app](https://worldmonitor.app) API。少数服务会绕过它并直接访问底层数据提供商(SEC EDGAR、FRED、Finnhub、USDA、NOAA、CFTC 等),还有一个服务将其余服务融合为带评分的交易简报。这些是扩展功能。仪表板本身不是我的,是由 [koala73](https://github.com/koala73) 构建的。这个仓库只是 MCP 封装器加上一些附加功能。 ## 安装 尚未发布到 npm —— 从源码安装: ``` git clone https://github.com/mahimn01/worldmonitor-mcp.git cd worldmonitor-mcp npm install npm run build ``` 要在 Claude Code 中使用: ``` claude mcp add worldmonitor -- node /absolute/path/to/worldmonitor-mcp/dist/mcp.js ``` 或者在任意 MCP client 配置中: ``` { "mcpServers": { "worldmonitor": { "command": "node", "args": ["/absolute/path/to/worldmonitor-mcp/dist/mcp.js"] } } } ``` CLI 可作为独立工具工作(使用 `npm link` 将 `worldmonitor` 添加到你的 PATH 中,或使用 `node dist/cli.js` / `npx tsx src/cli.ts`)。命令按服务分组: ``` worldmonitor seismology list-earthquakes --min_magnitude 6 worldmonitor market list-market-quotes --symbols AAPL,NVDA worldmonitor economic get-fred-series --series_id GDP worldmonitor trading get-ticker-intel --symbol NVDA worldmonitor --list-tools ``` ## 包含内容 33 个服务按其涵盖范围分组。 | 类别 | 服务 | |---|---| | 市场与金融 | market, economic, treasury, cftc, congress, onchain, sentiment, trading | | 地缘政治与情报 | intelligence, conflict, military, unrest, displacement | | 新闻与研究 | news, research, article | | 环境 | climate, weather-agriculture, wildfire, seismology | | 供应链与贸易 | supply-chain, maritime, trade | | 基础设施与网络 | infrastructure, cyber, aviation | | 政府与监管 | government, sec-edgar, economic-calendar | | 人道主义 | giving, positive-events | | 预测 | prediction | | 旧版批量与缓存 | legacy | 33 个服务中有 21 个代理了上游 WorldMonitor API。11 个服务直接访问底层提供商(SEC EDGAR、FRED、Finnhub、CapitolTrades、DefiLlama、USDA、NOAA、CFTC、CBOE、Treasury Fiscal Data、Fear & Greed、Federal Register、Reddit、Gov Contracts、OpenSanctions)或融合其他工具。旧版服务混合了 Vercel serverless 和 Railway 中继,用于有速率限制的上游 API。 ## 交易情报 `trading` 服务将其他数据源融合为带评分、排名的简报,而不是让模型去拼接原始 payload。 | 工具 | 功能 | |---|---| | `get_ticker_intel` | 一个股票代码,一份简报:报价、options flow、社交热议、临近的财报发布、国会交易,以及解析后的 insider 交易活动,融合为一个 0-100 的信念得分 | | `scan_convergence` | 根据有多少独立的方向性信号达成一致(价格、options put/call、insider 净额、国会净额)对股票代码进行排名 | | `get_energy_risk` | 能源供应风险仪表,数据来源于价格、咽喉点警告、军事姿态、新闻基调、AIS 和冲突事件 | | `get_changes_since` | 自某个时间戳以来数据源(国会 / insider / options)发生的变化,并与本地快照存储进行 diff 比较 | 在 sec-edgar 下还有 `get_insider_activity`:它解析 Form 4 XML,获取带有股数和金额的实际公开市场买入与卖出,这是普通备案列表无法提供的。 每个信念和能源风险得分都附带其因子细分、各数据源的覆盖率以及一个置信度数值;当覆盖率过低时会保留得分不发。Convergence 扫描结果则包含每个信号的投票和冲突标志。失败的数据源会降级为覆盖率标志,绝不伪造因子。所有这些都是只读且仅供参考,不构成投资建议。 服务器还注册了 MCP 资源(`watchlist://default`、`brief://today`)和 prompt(`morning_brief`、`pre_earnings_check`、`ticker_deep_dive`)。 ## 环境变量 这些都不是必需的。默认值开箱即用,空值将被视为未设置,因此执行 `cp .env.example .env` 是安全的。 | 变量 | 用途 | 默认值 | |---|---|---| | `WORLDMONITOR_BASE_URL` | 上游 worldmonitor.app URL | `https://worldmonitor.app` | | `WORLDMONITOR_API_KEY` | 上游 API key(如果你有的话) | 无 | | `WORLDMONITOR_TIMEOUT` | HTTP 超时(毫秒) | `30000` | | `WORLDMONITOR_MAX_RESPONSE_SIZE` | MCP 响应大小的软上限(字符数) | `100000` | | `WORLDMONITOR_DATA_DIR` | SQLite 缓存/状态目录(持久化需要 Node ≥ 22.5,否则使用内存) | `~/.cache/worldmonitor` | | `WORLDMONITOR_WATCHLIST` | 用于 watchlist 资源和扫描范围的逗号分隔代码 | `SPY,QQQ,^VIX` | | `WORLDMONITOR_CACHE_TTL` | 缓存简报资源的 TTL(秒) | `900` | | `SEC_USER_AGENT` | 用于 SEC EDGAR 的邮箱格式 User-Agent(SEC 拒绝 URL 样式的 UA) | 内置 | | `FINNHUB_API_KEY` | 财报/IPO 日历;经济日历(高级)、国会交易和社交情绪的备用来源 | 无(可选) | | `FRED_API_KEY` | 经济日历发布日程 | 无(可选) | | `USDA_API_KEY` | 农作物和干旱报告 | 无(可选) | | `OPENSANCTIONS_API_KEY` | 制裁搜索增强 | 无(可选) | direct-API 服务大多无需任何 key 即可工作。key 用于解锁受限速限制或备用的 endpoint。 ## 工作原理 封装器读取一个服务注册表(`src/services/*`),其中每个服务声明其工具、endpoint 和参数 schema。在启动时,MCP 服务器会遍历每个服务,并使用只读注释注册每个工具(除了一个例外 —— `record_baseline_snapshot` 会更改上游快照状态,并已相应标记),而复合工具还会额外声明结构化输出 schema。当调用某个工具时,路由会分为两种方式。Direct handler 绕过上游并直接调用底层数据提供商。Proxy handler 转发到配置好的 WorldMonitor base URL。 复合工具通过一个内部 dispatcher 扇出到其他工具,并配备并发上限、按数据源的 TTL 缓存、进行中的合并(in-flight coalescing)以及共享的 SEC 速率限制器,因此扫描不会演变成请求风暴。快照会存入本地 SQLite 存储(在较旧的 Node 上使用内存回退),以支持跨会话的变更检测工具。 除此之外,在遇到 429/500/502/503/504 响应和网络错误时,会进行 retry-with-backoff;响应验证能捕获返回 HTML 而非 JSON 的损坏的 serverless endpoint;已知损坏的 endpoint 检测会返回有用的错误,而不是令人困惑的失败;响应截断层会缩小超大的 array,以适应 MCP 的 context window。 文章提取有三个回退机制。首先是直接抓取,然后是 Google Cache,最后是 Archive.org,并使用浏览器 user-agent 来绕过软付费墙。 ## 鸣谢 上游仪表板是 [koala73/worldmonitor](https://github.com/koala73/worldmonitor)。它是一个实时的全球情报仪表板,包含 100 多个新闻源、一个 3D deck.gl WebGL 地球仪、带有本地 LLM 支持的 AI 简报,以及适用于 macOS、Windows 和 Linux 的 Tauri 桌面构建版本。采用 AGPL-3.0 许可。如果你觉得这个 MCP 有用,那都是该项目在发挥核心作用。 这个仓库只是 MCP 封装器、direct-API 扩展和复合交易层。这里不包含任何数据收集或聚合。
标签:API封装, CLI, MCP, MITM代理, WiFi技术, 商业智能, 地缘政治, 暗色界面, 自动化攻击, 金融数据