marc-shade/world-intel-mcp

GitHub: marc-shade/world-intel-mcp

跨领域全球情报MCP服务器,提供100+工具覆盖金融、军事、网络、气候等30+领域,支持向量语义检索和实时态势仪表盘。

Stars: 10 | Forks: 1

![Phoenix 情报仪表盘](https://raw.githubusercontent.com/marc-shade/world-intel-mcp/main/docs/dashboard.png) # World Intelligence MCP Server [![MCP](https://img.shields.io/badge/MCP-Compatible-blue)](https://modelcontextprotocol.io) [![Python 3.11+](https://img.shields.io/badge/Python-3.11%2B-green)](https://python.org) [![License](https://img.shields.io/badge/License-MIT-yellow)](LICENSE) 跨 **30+ 领域** 的实时全球情报,包含 **109 个 MCP 工具**、实时作战中心仪表盘、CLI,以及用于在企业级语义搜索累积情报的 **Qdrant 向量存储**。所有数据均来自免费的公共 API —— 无需付费订阅。 专为需要感知世界态势的 AI 代理构建:市场状况、地缘政治风险、军事态势、供应链中断、网络威胁等 —— 均可通过 Model Context Protocol 进行查询。向量存储支持对所有历史数据进行自然语言查询,例如“台湾附近的军事活动”或“针对医疗保健的网络威胁”。 ## 你将获得 | 领域 | 工具数 | 数据来源 | |--------|-------|-------------| | **金融市场** | 7 | Yahoo Finance, CoinGecko, Alternative.me, Mempool | | **外汇与货币** | 3 | ECB/Frankfurter (8个主要货币对, 时间序列, 交叉汇率) | | **债券与收益率** | 2 | FRED, Yahoo Finance (收益率曲线, 债券ETF, 利差分析) | | **财报** | 2 | Yahoo Finance (大盘股日历, 意外历史) | | **SEC 文件** | 3 | SEC EDGAR (全文搜索, 公司文件, 8-K 重大事件) | | **公司画像** | 1 | Yahoo Finance + GDELT + SEC + GitHub (组合画像) | | **宏观综合** | 1 | 加权 6 信号市场裁决 (Fear&Greed, VIX, 板块, DXY, BTC, 收益率) | | **经济指标** | 3 | EIA 能源, FRED 宏观, 世界银行 | | **央行** | 1 | 8 家央行政策利率 | | **BTC 技术指标** | 1 | SMA 50/200, 金叉/死叉, Mayer Multiple | | **自然灾害** | 2 | USGS 地震, NASA FIRMS 野火 | | **环境** | 2 | NASA EONET, GDACS 灾难警报 | | **气候** | 1 | Open-Meteo 温度/降水异常 | | **冲突与安全** | 4 | ACLED 事件, UCDP, 动荡检测, 人道主义数据 | | **军事与国防** | 6 | adsb.lol, OpenSky, hexdb.io, 激增检测, 战区态势, 飞机批次 | | **基础设施** | 4 | Cloudflare Radar, 海底光缆, 级联分析, 云状态 | | **海事** | 2 | NGA 航行警告, 船舶快照 | | **航空** | 2 | FAA 机场延误, 国内航班快照 | | **新闻与媒体** | 3 | 80+ RSS 源 (4级), GDELT, 热门关键词 | | **情报分析** | 8 | 信号收敛, 焦点, 不稳定指数, 风险评分, 升级 | | **NLP 情报** | 4 | 实体提取, 事件分类, 新闻聚类, 关键词激增 | | **战略综合** | 4 | 战略态势, 世界简报, 舰队报告, 人口暴露 | | **地理空间** | 11 | 军事基地, 港口, 管道, 核设施, 光缆, 数据中心, 航天港, 矿产, 交易所, 贸易路线, 云区域 | | **AI 与技术** | 4 | arXiv 论文, HuggingFace 模型, Hacker News, GitHub 趋势 | | **网络威胁** | 1 | URLhaus, Feodotracker, CISA KEV, SANS | | **健康** | 1 | WHO DON, ProMED, CIDRAP 疾病爆发 | | **空间天气** | 1 | NOAA SWPC (Kp 指数, 太阳耀斑, 警报) | | **社会与制裁** | 3 | Reddit 速率, OFAC SDN 列表, 核试验场监测 | | **国家情报** | 3 | 国家简报, 国家股票, 金融中心 | | **预测市场** | 1 | Polymarket 事件合约 | | **选举** | 1 | 带风险评分的全球选举日历 | | **流离失所** | 1 | UNHCR 难民/国内流离失所者数据 | | **航运** | 1 | 干散货航运压力指数 | | **政府** | 1 | USAspending.gov 联邦合同 | | **交通** | 2 | 道路交通流量, 实时事件 | | **跨领域警报** | 2 | 警报摘要, 每周趋势 | | **监控** | 2 | 摄像头, 服务器健康/状态 | | **向量搜索** | 5 | Qdrant 语义搜索, 相似性, 时间线, 统计 | | **跨领域分析** | 3 | 相关性, 领域摘要, 趋势检测 | | **报告** | 1 | PDF/HTML 多领域情报报告 | **总计:30+ 个情报领域的 110 个工具**。 ## 快速开始 ### 安装 ``` git clone https://github.com/marc-shade/world-intel-mcp.git cd world-intel-mcp pip install -e . # 可选附加组件 pip install -e ".[dashboard]" # Live ops-center dashboard pip install -e ".[vector]" # Qdrant vector store + FastEmbed pip install -e ".[dev]" # pytest, respx, coverage ``` ### 作为 MCP Server 运行 ``` world-intel-mcp # stdio mode for Claude Code, Cursor, etc. ``` ### Claude Code 配置 添加到 `~/.claude.json`: ``` { "mcpServers": { "world-intel-mcp": { "command": "world-intel-mcp" } } } ``` ### 仪表盘 ``` intel-dashboard # http://localhost:8501 intel-dashboard --port 9000 # custom port ``` ### PDF/HTML 报告 ``` pip install -e ".[pdf]" # requires: brew install pango (macOS) intel report # full PDF report → ~/.cache/world-intel-mcp/ intel report --format html # HTML (no native deps needed) intel report -o brief.pdf # custom output path intel report -s markets,cyber,earthquakes # select sections ``` 地图优先作战中心:带有可切换图层(地震、军事、冲突、火灾、收敛、核、基础设施)的 Leaflet 地图,35+ 实时 SSE 源,HUD 栏,玻璃拟态面板,每源断路器健康状态。 ### CLI ``` intel markets # stock indices intel earthquakes --min-mag 5.0 intel status # cache + circuit breaker health ``` ## 架构 ``` server.py (MCP stdio) ─┐ ┌─ VectorStore (Qdrant) cli.py (Click CLI) ├─> sources/*.py ─> Fetcher ─> CircuitBreaker ─┤ dashboard.py (SSE) │ analysis/*.py └─ Cache (SQLite) collector.py (daemon) ─┘ ``` - **Fetcher**:集中式异步 HTTP 客户端 (httpx)。重试,每源速率限制,过期数据回退。在获取新数据时自动将结果存储到向量存储中。 - **CircuitBreaker**:每源跟踪。连续 3 次故障将跳闸 5 分钟。每个 RSS 源都有独立的断路器。 - **Cache**:SQLite WAL 模式 TTL 缓存。`get()` 返回实时数据,`get_stale()` 返回过期数据用于回退。 - **VectorStore**:Qdrant + FastEmbed (BAAI/bge-small-en-v1.5, 384维)。异步后台工作队列,用于非阻塞存储。支持对所有累积情报进行语义搜索。 - **Collector**:独立守护进程,并行获取所有 43 个源并填充向量存储。运行一次或作为守护进程(默认:5 分钟间隔)。 - **Sources** (`sources/*.py`):30+ 个模块,每个模块导出 `async def fetch_*(fetcher, **kwargs) -> dict`。 - **Analysis** (`analysis/*.py`):跨领域综合 —— 信号聚合、不稳定指数、NLP、公司画像、宏观综合。 - **Config** (`config/*.py`):精选数据集 —— 22 个热点、70+ 个基地、40 个港口、24 条管道、24 个核设施、34 条光缆、48 个数据中心、27 个航天港、82 个交易所。 ## MCP 工具参考 ### 金融市场 (7) | 工具 | 描述 | |------|-------------| | `intel_market_quotes` | 股票指数报价 (S&P 500, Dow, Nasdaq, FTSE, Nikkei) | | `intel_crypto_quotes` | 来自 CoinGecko 的热门加密货币价格和市值 | | `intel_stablecoin_status` | 稳定币锚定健康状况 (USDT, USDC, DAI, FDUSD) | | `intel_etf_flows` | Bitcoin 现货 ETF 价格和交易量 | | `intel_sector_heatmap` | 美股行业表现 (11 只 SPDR ETF) | | `intel_macro_signals` | 7 个宏观指标 (Fear & Greed, VIX, DXY, 黄金, 10Y, BTC) | | `intel_commodity_quotes` | 商品期货 (黄金, 白银, 原油, 天然气, 谷物) | ### 外汇与货币 (3) | 工具 | 描述 | |------|-------------| | `intel_forex_rates` | 来自 ECB 的最新汇率。按基础/目标货币筛选 | | `intel_forex_timeseries` | 带趋势分析的历史汇率(可配置天数) | | `intel_major_crosses` | 所有 8 个主要货币对 + 交叉汇率 + DXY 代理 | ### 债券与收益率 (2) | 工具 | 描述 | |------|-------------| | `intel_yield_curve` | 美国国债收益率曲线 (2Y-30Y),2s10s/3m10s 利差,倒挂标志 | | `intel_bond_indices` | 债券 ETF:AGG, TLT, HYG, LQD, TIP 及其价格/变动 | ### 财报 (2) | 工具 | 描述 | |------|-------------| | `intel_earnings_calendar` | 20 只大盘股即将公布的财报及 EPS 预估 | | `intel_earnings_surprise` | 历史财报意外(实际 vs 预期,趋势) | ### SEC 文件 (3) | 工具 | 描述 | |------|-------------| | `intel_sec_filings` | 对所有 EDGAR 文件进行全文搜索 | | `intel_company_filings` | 按股票代码查询公司文件 (10-K, 10-Q, 8-K) 并进行 CIK 解析 | | `intel_recent_8k` | 最新 8-K 重大事件(M&A, 高管变动, 财报) | ### 公司画像 (1) | 工具 | 描述 | |------|-------------| | `intel_company_profile` | 组合画像:股票报价 + 财务数据 + 新闻 + SEC + GitHub | ### 宏观综合 (1) | 工具 | 描述 | |------|-------------| | `intel_macro_composite` | 加权市场评分 (0-100) 及裁决:RISK_ON 到 STRONG_CAUTION | ### 经济 (3) | 工具 | 描述 | |------|-------------| | `intel_energy_prices` | 来自 EIA 的 Brent/WTI 原油和天然气价格 | | `intel_fred_series` | FRED 经济数据 (GDP, CPI, 失业率, 利率) | | `intel_world_bank_indicators` | 按国家分类的世界银行发展指标 | ### 央行 (1) | 工具 | 描述 | |------|-------------| | `intel_central_bank_rates` | 8 家主要央行的政策利率 | ### BTC 技术指标 (1) | 工具 | 描述 | |------|-------------| | `intel_btc_technicals` | Bitcoin SMA 50/200,金叉/死叉,Mayer Multiple | ### 自然灾害 (2) | 工具 | 描述 | |------|-------------| | `intel_earthquakes` | USGS 地震(可配置震级/时间/数量) | | `intel_wildfires` | NASA FIRMS 卫星火灾热点(9 个全球区域) | ### 环境 (2) | 工具 | 描述 | |------|-------------| | `intel_environmental_events` | NASA EONET 自然事件 | | `intel_disaster_alerts` | 带严重程度评分的 GDACS 灾难警报 | ### 冲突与安全 (4) | 工具 | 描述 | |------|-------------| | `intel_acled_events` | ACLED 武装冲突事件 | | `intel_ucdp_events` | Uppsala 冲突数据计划事件 | | `intel_unrest_events` | 带有 Haversine 去重的社会动荡 | | `intel_humanitarian_summary` | HDX 人道主义危机数据集 | ### 军事与国防 (6) | 工具 | 描述 | |------|-------------| | `intel_military_flights` | 通过 adsb.lol 获取军用飞机(OpenSky 备用) | | `intel_theater_posture` | 5 个战区的活动(EU, Indo-Pacific, ME, Arctic, Korea) | | `intel_aircraft_details` | 通过 ICAO24 hex 查询飞机 (hexdb.io) | | `intel_aircraft_batch` | 批量飞机查询(多个 hex 代码) | | `intel_military_surge` | 外国飞机浓度异常检测 | | `intel_usni_fleet` | USNI News 海军舰队追踪器 | ### 基础设施 (4) | 工具 | 描述 | |------|-------------| | `intel_internet_outages` | Cloudflare Radar 互联网中断 | | `intel_cable_health` | 海底光缆走廊 | | `intel_cascade_analysis` | 基础设施级联模拟 | | `intel_service_status` | 云平台健康状况 (AWS, Azure, GCP, Cloudflare, GitHub) | ### 海事 (2) | 工具 | 描述 | |------|-------------| | `intel_nav_warnings` | NGA 海上航行警告 | | `intel_vessel_snapshot` | 9 个战略水道的海军活动 | ### 地理空间数据集 (10) | 工具 | 描述 | |------|-------------| | `intel_military_bases` | 来自 9 个运营商的 70 个军事基地 | | `intel_strategic_ports` | 6 种类型的 40 个战略港口 | | `intel_pipelines` | 24 条石油/天然气/氢气管道 | | `intel_nuclear_facilities` | 24 个核电/浓缩/研究设施 | | `intel_undersea_cables` | 34 条海底通信光缆 | | `intel_ai_datacenters` | 全球 48 个 AI/HPC 数据中心 | | `intel_spaceports` | 27 个全球航天港 | | `intel_critical_minerals` | 27 个战略矿藏 | | `intel_stock_exchanges` | 全球 82 个证券交易所 | | `intel_trade_routes` | 主要贸易路线和咽喉要道 | ### 新闻与媒体 (3) | 工具 | 描述 | |------|-------------| | `intel_news_feed` | 80+ 个全球 RSS 源,具有 4 级来源排名 | | `intel_trending_keywords` | 带有激增检测的热门术语 | | `intel_gdelt_search` | GDELT 2.0 全球新闻搜索 | ### 情报分析 (8) | 工具 | 描述 | |------|-------------| | `intel_signal_convergence` | 多领域信号的地理收敛 | | `intel_focal_points` | 多信号焦点检测 | | `intel_signal_summary` | 国家级信号聚合 | | `intel_temporal_anomalies` | 偏离基线的活动偏差 | | `intel_instability_index` | 国家不稳定指数 v2 (0-100) | | `intel_risk_scores` | 基于 ACLED 的冲突风险评分 | | `intel_hotspot_escalation` | 22 个情报热点的升级评分 | | `intel_country_dossier` | 全面的国家情报档案 | ### NLP 情报 (4) | 工具 | 描述 | |------|-------------| | `intel_extract_entities` | 命名实体提取(国家、领导人、组织、CVE、APT) | | `intel_classify_event` | 将事件分类为 14 个威胁类别 | | `intel_news_clusters` | 基于 Jaccard 相似度的主题聚类 | | `intel_keyword_spikes` | 使用 Welford 算法的关键词激增检测 | ### 战略综合 (4) | 工具 | 描述 | |------|-------------| | `intel_strategic_posture` | 来自 9 个加权领域的综合全球风险 | | `intel_world_brief` | 结构化每日情报摘要 | | `intel_fleet_report` | 带战备评分的海军舰队活动报告 | | `intel_population_exposure` | 活跃事件附近的风险人口(105 个城市数据集) | ### 气候 (1) | 工具 | 描述 | |------|-------------| | `intel_climate_anomalies` | Open-Meteo 温度/降水异常 | ### 预测市场 (1) | 工具 | 描述 | |------|-------------| | `intel_prediction_markets` | Polymarket 预测合约 | ### 选举 (1) | 工具 | 描述 | |------|-------------| | `intel_election_calendar` | 带风险评分的全球选举日历 | ### 流离失所 (1) | 工具 | 描述 | |------|-------------| | `intel_displacement_summary` | UNHCR 难民/国内流离失所者统计 | ### 航空 (2) | 工具 | 描述 | |------|-------------| | `intel_airport_delays` | FAA 机场延误状态 | | `intel_aviation_domestic` | 来自 OpenSky 的全球航空交通快照 | ### 网络威胁 (1) | 工具 | 描述 | |------|-------------| | `intel_cyber_threats` | 聚合网络情报 (URLhaus, CISA KEV, SANS) | ### 空间天气 (1) | 工具 | 描述 | |------|-------------| | `intel_space_weather` | 太阳活动(Kp 指数, X 射线通量, SWPC 警报) | ### AI 与技术 (4) | 工具 | 描述 | |------|-------------| | `intel_ai_releases` | arXiv AI 论文, HuggingFace 模型 | | `intel_hacker_news` | Hacker News 热门故事 | | `intel_trending_repos` | GitHub 趋势仓库 | | `intel_arxiv_papers` | arXiv 论文搜索 | ### 健康 (1) | 工具 | 描述 | |------|-------------| | `intel_disease_outbreaks` | WHO DON, ProMED, CIDRAP 疫情爆发 | ### 社会与制裁 (3) | 工具 | 描述 | |------|-------------| | `intel_social_signals` | Reddit 地缘政治讨论热度 | | `intel_sanctions_search` | OFAC SDN 列表搜索 | | `intel_nuclear_monitor` | 核试验场附近的地震监测 | ### 航运与贸易 (1) | 工具 | 描述 | |------|-------------| | `intel_shipping_index` | 干散货航运压力指数 | ### 政府 (1) | 工具 | 描述 | |------|-------------| | `intel_usa_spending` | USAspending.gov 联邦合同 | ### 国家情报 (3) | 工具 | 描述 | |------|-------------| | `intel_country_brief` | 快速国家局势摘要 | | `intel_country_stocks` | 按国家分类的证券交易所和上市公司 | | `intel_financial_centers` | 全球金融中心排名 | ### 扩展地理空间 (1) | 工具 | 描述 | |------|-------------| | `intel_cloud_regions` | 全球云提供商区域 | ### 交通 (2) | 工具 | 描述 | |------|-------------| | `intel_traffic_flow` | 道路交通流量数据 | | `intel_traffic_incidents` | 实时交通事件 | ### 跨领域警报 (2) | 工具 | 描述 | |------|-------------| | `intel_alert_digest` | 跨领域警报聚合 | | `intel_weekly_trends` | 每周趋势分析 | ### 监控 (2) | 工具 | 描述 | |------|-------------| | `intel_webcams` | 公共摄像头位置和实时预览 | | `intel_status` | 服务器健康状况,缓存统计,断路器状态 | ### 向量搜索 (5) | 工具 | 描述 | |------|-------------| | `intel_semantic_search` | 对所有累积情报进行自然语言搜索 | | `intel_similar_events` | 查找与给定数据点相似的事件 | | `intel_timeline` | 某个领域/类别情报的时间线视图 | | `intel_vector_stats` | 向量存储集合统计 | | `intel_collect` | 触发按需收集周期 | ### 跨领域分析 (3) | 工具 | 描述 | |------|-------------| | `intel_cross_correlate` | 查找给定主题在所有领域中的相关信号 | | `intel_domain_summary` | 按类别汇总存储的情报(计数、来源、时效性) | | `intel_trend_detection` | 通过比较近期与基线周期来检测活动激增/下降 | ### 报告 (1) | 工具 | 描述 | |------|-------------| | `intel_generate_report` | 生成涵盖 18 个领域的 PDF 或 HTML 情报报告(并行处理) | ## 向量存储 可选的 Qdrant 向量存储会随时间积累情报以进行语义检索。通过 Fetcher 获取的所有数据都会自动嵌入并存储。 ### 设置 ``` # 安装 Qdrant (Docker) docker run -p 6333:6333 qdrant/qdrant # 安装 vector 依赖项 pip install -e ".[vector]" # 运行 collector 守护进程(全天候填充 vector store) intel-collector --daemon # every 5 minutes intel-collector --daemon --interval 120 # every 2 minutes intel-collector --sources markets,cyber # specific domains only intel-collector # single collection cycle ``` ### 语义搜索示例 一旦积累了数据,AI 代理就可以跨所有领域进行查询: - “台湾海峡附近的军事活动” —— 查找军事飞行、航海警告、战区态势数据 - “针对医疗保健的网络威胁” —— 查找与医疗保健相关的 URLhaus、CISA KEV 条目 - “表明经济衰退的经济指标” —— 查找收益率曲线倒挂、宏观信号、FRED 数据 向量存储使用 FastEmbed(基于 ONNX,BAAI/bge-small-en-v1.5)进行嵌入 —— 无需 GPU,冷启动约 3 秒。 ## 环境变量 | 变量 | 必填 | 描述 | |----------|----------|-------------| | `ACLED_ACCESS_TOKEN` | 否 | ACLED 冲突事件 | | `NASA_FIRMS_API_KEY` | 否 | 卫星野火数据 | | `EIA_API_KEY` | 否 | 能源价格数据 | | `CLOUDFLARE_API_TOKEN` | 否 | 互联网中断数据 | | `FRED_API_KEY` | 否 | 宏观经济数据(也用于收益率曲线) | | `OPENSKY_CLIENT_ID` | 否 | 军事飞行备用 | | `OPENSKY_CLIENT_SECRET` | 否 | 军事飞行备用 | | `WORLD_INTEL_LOG_LEVEL` | 否 | 日志级别(默认:INFO) | 其他所有内容均使用免费的、无需认证的公共 API。 ## 开发 ``` pip install -e ".[dev]" pytest # 186 tests pytest --cov=world_intel_mcp # with coverage pytest tests/test_forex.py -v # single module ``` ### 添加新源 1. 创建 `sources/your_source.py`,包含 `async def fetch_your_data(fetcher: Fetcher, **kwargs) -> dict` 2. 使用 `fetcher.get_json(url, source="your-source", cache_key=..., cache_ttl=300)` —— 自动缓存、重试、熔断、速率限制 3. 在 `server.py` 中:将 `Tool(...)` 添加到 `TOOLS`,将 `case` 添加到 `_dispatch()`(使用内联导入) 4. 使用 `respx` 添加测试以模拟 HTTP(参见 `tests/test_forex.py` 了解模式) 5. 可选择添加到 `dashboard/app.py` (SSE) 和 `cli.py` (Click) ## 许可证 MIT
标签:ESC4, GitHub, HTTP/HTTPS抓包, Leaflet地图, MCP服务器, OSINT, Python, Qdrant, SEC文件, SSE流式传输, 仪表盘, 全球情报, 军事监控, 向量数据库, 地缘政治, 实时处理, 市场数据, 态势感知, 情报分析, 无后门, 模型上下文协议, 气候监测, 网络安全情报, 网络诊断, 语义搜索, 请求拦截, 运行时操纵, 逆向工具, 金融科技