「世界で今なにが起きているか」を把握しようとすると、ニュースサイト、地図、金融チャート、航空機トラッカー、災害情報を別々のタブで開くことになります。WorldMonitor(koala73)は、その分散した情報源を1枚のダッシュボードへ束ねるオープンソースのOSINT基盤です。GitHubのスターは約7.4万(2026年7月25日時点でAPI実測7万3,727)に達し、palantir というトピックが付けられていることからも、狙っている立ち位置がうかがえます。
この記事では、WorldMonitorが実際に何を表示し、どうセルフホストし、AIエージェントからどう叩けるのかを、公式リポジトリのREADME・LICENSE・プロジェクト内の用語定義ファイルという一次ソースだけを根拠に整理します。特に、GitHubが「Other」と表示するライセンスの実体と、READMEには書かれていない設計上の判断(キャッシュ階層やMCPの探索仕様)まで踏み込みます。
docs/images/worldmonitor-7-mar-2026.jpg)- ・正体:Elie Habib氏が開発するリアルタイム global intelligence ダッシュボード。TypeScript製・AGPL-3.0-only・GitHubスター7万3,727(2026-07-25 API実測)。
- ・何ができる:500超のニュースフィードを15カテゴリでAI要約し、3Dグローブ+WebGL地図(56種のレイヤー)、31か国の不安定度スコア、29取引所の金融レーダーを1画面に統合する。
- ・何を代替できる:ニュースアグリゲーター・地図系OSINT・金融ティッカーを別々に開く運用。ただし調査対象を深掘りする専用ツール(人物・SNS特定系)の代替ではない。
- ・エージェント連携:
worldmonitor.app/mcpにMCPサーバーを公開。tools/listは認証不要、tools/callはAPIキーかOAuthが必要。CLI・Python/Ruby/Go SDKもある。 - ・注意:GitHubのライセンス表示は「Other」だが実体はAGPL-3.0-only(後述)。ホスト版には有料プランがあり、OSSとサービスの線引きを分けて理解する必要がある。
この記事ではセルフホスト可能な情報収集・監視ダッシュボードとしてWorldMonitorを解説します。自動化・運用ツール全般のカバレッジは AI自動化ツール|ノーコードからコードまで2026年版の比較と選び方 をご覧ください。
WorldMonitorとは何か——「Palantir風」と呼ばれる統合ダッシュボードの正体
WorldMonitorは、README冒頭の言葉を借りれば「AIによるニュース集約、地政学モニタリング、インフラ追跡を統一された状況認識インターフェースにまとめたもの」です。リポジトリに付与されたトピックには osint・geopolitics・situation と並んで palantir があり、いわゆる状況認識(situational awareness)システムの見た目と操作感を、オープンソースで再現しようという意図が読み取れます。
まず数字で把握する
推測を避けるため、公開APIとリポジトリ内ファイルから確認できる実体だけを並べます。
| 項目 | 実測値 | 取得元 |
|---|---|---|
| GitHubスター | 73,727 | GitHub API(2026-07-25) |
| フォーク | 11,063 | GitHub API(2026-07-25) |
| オープンIssue | 259 | GitHub API(2026-07-25) |
| リポジトリ作成 | 2026-01-08 | GitHub API |
| 最終push | 2026-07-25 | GitHub API |
| 主要言語 | TypeScript | GitHub API |
| ライセンス | AGPL-3.0-only(実体) | LICENSE本文を照合 |
| 作者 | Elie Habib(koala73) | README |
注目したいのはリポジトリ作成が2026年1月で、そこから半年強でスター7万超に達している点です。開発は現在も活発で、この記事を書いている当日にもpushが記録されています。一方でオープンIssueが259件あることは、機能の広さに対して未解決の課題も相応に積み上がっている状態を示します。
「1画面に束ねる」が具体的に何を意味するか
READMEが挙げる主要機能は次のとおりです。いずれも公式の記述に基づく数値で、当サイトでの実機計測値ではありません。
・500以上のキュレーション済みニュースフィードを15カテゴリに分類し、AIが要約したブリーフとして提示
・デュアルマップエンジン——globe.gl による3Dグローブと、deck.gl によるWebGLフラットマップ。マップレイヤーは56種類
・クロスストリーム相関——軍事・経済・災害・エスカレーションのシグナルが同時に立ち上がる場面を検出
・Country Instability Index(CII)——サーバー側が権威を持つCII v8のストレススコアを、Tier-1の31か国に対して算出
・金融レーダー——29の証券取引所、コモディティ、暗号資産、および7シグナルの市場コンポジット
・ローカルAI——Ollamaを使えばAPIキー無しで全機能を動かせる
・25言語対応(各言語ネイティブのフィードとRTL表示を含む)
READMEのデータソース節によれば、集約対象は地政学・金融・エネルギー・気候・航空・サイバー・軍事・インフラ・報道の各領域にまたがる65以上の外部プロバイダで、鮮度モニターが35のソースグループを追跡しています。航空データについてはADS-B事業者のWingbitsから提供を受けている旨がREADMEに明記されています。
① 何ができる:ニュース・地政学・金融・インフラのリアルタイム情報を1画面に統合表示し、同じデータをAPI/MCP経由でも取得できる。
② 何を解決する:情報源ごとにタブとアカウントが分散し、横断的な相関(軍事と経済が同時に動いた等)に気づけない問題。
③ 何を代替できる:複数のニュースアグリゲーターと地図系ダッシュボードの併用。ただし特定アカウント・人物を深掘りする調査系ツールの代わりにはならない。
何ができるのか:500超フィードと56種のマップレイヤーを1画面に束ねる
機能一覧を眺めるより、実際の画面を見るほうが早い部分です。以下はリポジトリ内に含まれる開発時のスクリーンショットで、いずれも公式リポジトリの docs/images/ から引用しています。
地図:3DグローブとWebGLフラットマップの二本立て
docs/images/issue-4378-webgl-map.png)地図は用途で切り替える設計です。3Dグローブ(globe.gl + Three.js)は全球の俯瞰と大圏航路の表現に向き、WebGLフラットマップ(deck.gl + MapLibre GL)は多数のレイヤーを重ねた密度の高い可視化に向きます。56種類のマップレイヤーという数は、逆に言えば「全部出すと読めなくなる」ことを意味します。そこで用意されているのがミッションプリセットです。
docs/images/pr-4286-mission-presets.png)パネル:鮮度が見える形で提示される
情報ダッシュボードで最も危険なのは、古いデータが新しいデータと同じ見た目で並ぶことです。WorldMonitorはパネル単位で鮮度(freshness)を明示する方向を採っています。
docs/images/pr-4295-panel-freshness-deckgl.png)READMEの範囲を超えて、リポジトリの CONCEPTS.md(プロジェクト固有の用語を定義したファイル)を読むと、この鮮度まわりの設計思想がより明確になります。たとえば Seed-Owned Key という概念では、「専用のシーダープロセスだけが書き込むキャッシュキーは、読み手が絶対に劣化データで汚染できない代わりに、パージしても読み込み時には再生成されず、鮮度の回復は所有プロセスのスケジュール次第になる」と説明されています。便利さと引き換えに何を諦めたかが、用語の定義として明文化されているわけです。
ニュース:意図(intent)で絞る
docs/images/issue-4334-live-news-intent.png)500超のフィードをそのまま流すと可読性が失われるため、AIによる要約(ブリーフ化)とカテゴリ分類が挟まります。ここで使うモデルは、READMEによれば Ollama / Groq / OpenRouter が選択でき、ブラウザ側の推論には Transformers.js が使われます。Ollamaを選べば外部APIキーは不要という点は、機微な調査用途でセルフホストを検討する場合に効いてきます。
WorldMonitorをセルフホストする:6つのサイト派生と実行手順
WorldMonitorの構成で特徴的なのは、単一のコードベースから6つのサイト派生(variant)とデスクトップアプリが出る点です。
| 派生 | ドメイン | 焦点 |
|---|---|---|
| world(既定) | worldmonitor.app | 総合。地政学・報道・インフラ全般 |
| tech | tech.worldmonitor.app | テクノロジー |
| finance | finance.worldmonitor.app | 金融市場 |
| commodity | commodity.worldmonitor.app | コモディティ |
| happy | happy.worldmonitor.app | ポジティブニュース寄り |
| energy | energy.worldmonitor.app | エネルギー |
READMEのサポート状況の表では、これら6サイトとデスクトップバイナリ(Windows / macOS Apple Silicon / macOS Intel / Linux AppImage)はいずれも「Stable」で、同一のリリースプロセスから出荷されると説明されています。デスクトップ版はTauri 2(Rust)+Node.jsサイドカーで、1つのバイナリがアプリ内で派生を切り替える構成です。
起動手順
READMEに記載された最短の起動手順は次のとおりです。環境変数なしで起動する、と明記されています。
git clone https://github.com/koala73/worldmonitor.git
cd worldmonitor
npm install
npm run dev
これで localhost:3000 が開きます(ポートは .env.local の DEV_PORT で変更可)。機能別のデータソースには資格情報が要るものがあり、その一覧は .env.example にまとまっています。この .env.example が45KB近くあることは、統合対象の外部プロバイダがいかに多いかを端的に示しています。
派生サイトを開発モードで動かす場合は、対応するスクリプトを使います。
npm run dev:tech # tech.worldmonitor.app
npm run dev:finance # finance.worldmonitor.app
npm run dev:commodity # commodity.worldmonitor.app
npm run dev:happy # happy.worldmonitor.app
npm run dev:energy # energy.worldmonitor.app
デプロイ先はVercel・Docker・静的ホスティングが案内されており、リポジトリ直下には docker-compose.yml と複数の Dockerfile(本体のほか、通知ダイジェスト用・リレー用・シードバンドル用)が置かれています。
「環境変数なしで起動する」は起動することの保証であって、全機能が動くことの保証ではありません。READMEも「機能別のデータソースには資格情報が必要な場合がある」と断っています。65以上の外部プロバイダのうち、無償・無認証で取得できるものと、契約が要るものが混在していると読むのが妥当です。どのパネルを本気で使いたいかを決めてから
.env.example を精査するのが、遠回りに見えて確実です。
キャッシュ設計を理解しておくと運用が読める
セルフホストで効いてくるのが帯域とオリジン負荷です。CONCEPTS.md には、この設計判断が用語として定義されています。
Bootstrap Tier(ブートストラップ階層)は、キャッシュされたデータキーを「いつ」クライアントへ届けるかを決めるグループ分けです。キーは3階層のいずれかに属します。
・fast:初回描画に必要。即座に配信
・slow:起動直後に必要。2バッチ目で配信
・on-demand:特定のパネルやマップレイヤーが実際に要求したときだけ配信
そして CONCEPTS.md は、この分類が帯域とブート遅延のトレードオフであると明言しています。配信階層に入れたものは、利用者のUIがそれを描画するかどうかに関係なく、全訪問者ぶんのコストとして支払われるからです。
さらに The Lever Test という費用計算のヒューリスティックが定義されています。曰く、egress(送出量)は概ね「オリジンミス数 × 転送ペイロードサイズ」であり、クライアント数やリクエスト総数はCDNが吸収するため式に現れない、というものです。したがって最適化案は、ミス率かミスあたりのバイト数のどちらかを減らす場合にのみ意味がある——この基準に照らして、計算上ゼロになる提案は着手前に机上で捨てる、と書かれています。
ニュース・金融・航空・気候ほか"] --> B["シーダー / リレー
(Seed-Owned Key の唯一の書き手)"] B --> C["Redis / 3階層キャッシュ
Upstash"] C --> D{"Bootstrap Tier
どの階層のキーか"} D -- fast --> E["初回描画で即配信"] D -- slow --> F["2バッチ目で配信"] D -- on-demand --> G["パネル/レイヤーが
要求した時のみ配信"] E --> H["ダッシュボード
globe.gl / deck.gl"] F --> H G --> H C --> I["MCPサーバー / REST API
canonical キーを参照"]
この図で重要なのは右下です。CONCEPTS.md の Bootstrap View Key の定義によれば、ダッシュボードが実際に描画するぶんだけに絞った「ビュー」を配信階層に載せ、完全な正本(canonical key)はRPC・MCP・分析用途のために別途残すという設計になっています。「見せるものをキャッシュし、ソースをキャッシュしない」という原則が明記されており、UIの都合とAPI利用者の都合を分離していることがわかります。
MCPサーバー・CLI・SDKでエージェントから叩く
WorldMonitorが単なるWebダッシュボードと違うのは、同じデータをプログラムからも取れるように設計されている点です。READMEは「ブラウザだけでなくエージェントとスクリプトのために作られている」と明示しています。
| 経路 | エンドポイント / パッケージ | 認証 |
|---|---|---|
| MCPサーバー | https://worldmonitor.app/mcp(Streamable HTTP) |
tools/list は不要 / tools/call は X-WorldMonitor-Key またはOAuth |
| REST API | https://api.worldmonitor.app(OpenAPI仕様あり) |
APIキー |
| CLI | npm worldmonitor(別名 wm) |
一覧は不要 / データ取得はキー |
| Python SDK | PyPI worldmonitor-sdk |
APIキー |
| Ruby SDK | RubyGems worldmonitor |
APIキー |
| Go SDK | github.com/koala73/worldmonitor/sdk/go |
APIキー |
CLIはインストール無しでも試せます。READMEに記載されたコマンドは次のとおりです。
npx worldmonitor tools # ツール一覧を表示(APIキー不要)
npm install -g worldmonitor # worldmonitor(別名 wm)をインストール
worldmonitor risk IR --api-key wm_xxx
worldmonitor risk IR は国コードを指定してリスク情報を取得する形式で、前述のCountry Instability Indexに対応する読み出し口だと読めます。SDKは3言語とも「ゼロ依存でCLIをミラーする」とREADMEに書かれており、CLIでできることがそのままライブラリでもできる設計です。
MCPまわりで踏まれがちな仕様
ここもREADMEだけでは分からない部分で、CONCEPTS.md が明快に定義しています。MCPサーバーを自分で作る側にとっても示唆があるので、要点を紹介します。
Discovery Read vs. Transport Operation——1つのURLでクローラーとMCPクライアントの両方に応えるための区別です。Last-Event-ID も Accept: text/event-stream も伴わない GET は「探索的な読み取り」とみなされ、人間やクローラー向けのドキュメント(/mcp ならMarkdownのサーバーガイド、well-knownエイリアスならJSONカード)を返します。それ以外の GET は「トランスポート操作」で、SSEストリームのオープンには仕様どおり405を返さなければならないとされています。
そのため CONCEPTS.md は、これらのURLがリクエストヘッダーで内容を切り替える以上、キャッシュ可能なレスポンスは必ず Vary: Accept, Last-Event-ID を宣言しなければならず、URLだけをキーにする共有キャッシュは保存済みの探索用ボディをトランスポートクライアントに返してしまう、と警告しています。ライブのトランスポートURLはさらに踏み込んで no-store を維持し、正しさが中間キャッシュの挙動に依存しないようにしている、とのことです。
機械可読な探索情報としては /.well-known/mcp/server-card.json(MCP Server Card)が用意され、名前・バージョン・トランスポート・エンドポイント・認証要件・ツール/リソース/プロンプトのカタログを載せています。加えて llms.txt、agent-skills マニフェスト(/.well-known/agent-skills/index.json)、api-catalog というエージェント向け探索ファイルも公開されています。
エージェントに外部情報を取らせるという発想自体に関心がある場合は、Agent Reach 使い方ガイド:AIエージェントにネット検索力を一括装備するOSSツール も併せて参考になります。WorldMonitorのMCPは「汎用の検索能力」ではなく「正規化済みの構造化インテリジェンス」を渡す点で、目的が異なります。
AGPL-3.0の読み方と、導入前に確認したい注意点
GitHubが「Other」と表示する理由
WorldMonitorのGitHubページを見ると、ライセンスは Other(API上は NOASSERTION)と表示されます。一方でREADMEのバッジとライセンス節は AGPL-3.0-only と明記しています。この食い違いは検証できます。
LICENSEファイルを取得して正規のAGPL-3.0全文と行単位で比較したところ、差分は冒頭に追加された8行だけでした。
World Monitor — Real-time global intelligence dashboard
Copyright (C) 2024-2026 Elie Habib
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
この8行を除いた残り661行は、GNU公式が配布するAGPL-3.0本文と完全に一致しました。追加の制限条項(Commons Clauseのような商用利用制限や非商用限定の但し書き)は含まれていません。
何が許され、何に別途許諾が要るか
READMEのライセンス表は、利用形態ごとの可否を明示しています。以下はその内容を整理したものです。
| 利用形態 | 可否(READMEの記載) |
|---|---|
| 個人利用・研究・教育 | 可(AGPL-3.0-only のもとで) |
| セルフホストしたインスタンス | 可(AGPL-3.0-only のもとで) |
| フォークして改変 | 可(必要な場合はAGPL-3.0-onlyでソースを共有) |
| 商用利用・SaaS提供 | 可(AGPLの義務を満たす場合) |
| ソース非公開のままの独占的利用/公式ブランドの使用 | 別途の商用ライセンスまたは商標許諾が必要 |
READMEは商用利用・SaaS提供を明確に「可」としています。制約が掛かるのはソースを開示しないまま独占的に使う形態と、公式ブランドを名乗る場合です。AGPLの核心はネットワーク越しにサービス提供する場合でも利用者にソースを届ける義務(サービス化による回避を塞ぐ条項)にあります。社内利用であっても改変して外部にサービス提供するなら、この義務の検討が必要です。なお、非AGPL条件を必要とするチーム向けに商用ライセンスも提供されているとREADMEに記載があります。
※ 本記事はライセンスの一般的な読み方を整理したものであり、法的助言ではありません。実際の判断は原文と専門家の確認によってください。
既存のOSINTツールとの棲み分け
当サイトでは他のOSINT・監視系OSSも扱っています。ひと口に OSINT ツールと言っても、担当する層はまったく違います。WorldMonitorが引き受けるのは「広く浅く、常時」の層で、地政学 監視のように対象が国家・地域という粒度の粗い情報を、途切れさせずに流し続けることに最適化されています。逆に、ある1つのアカウントや1本の記事を掘り下げる作業は守備範囲外です。役割が重なりそうで実は異なるため、選択の基準を整理します。
| ツール | 主な役割 | WorldMonitorとの関係 |
|---|---|---|
| WorldMonitor | 世界規模の情報を統合表示するダッシュボード | 俯瞰と相関検出が主眼 |
| Osintgram|Instagram OSINTツールの使い方 — フォロワー・投稿・位置情報を自動収集 | 特定SNSアカウントの深掘り調査 | 対象を絞って掘る用途。俯瞰では代替不可 |
| changedetection.io徹底解説:31kスター獲得のWeb変更監視OSS、AI要約・100+通知統合 | 任意Webページの変更検知と通知 | 自分で監視対象を指定する。フィードが無い情報源に強い |
| Nightingale - Prometheus対応のOSS監視・アラート統合プラットフォーム | 自社インフラのメトリクス監視 | 監視対象が外界ではなく自システム |
導入前に確認したい点
・運用主体とホスト版の関係:ソースはAGPLですが、公式ホスト版にはPro(有料)プランがあります。CONCEPTS.md にはEntitlement(利用権)やサブスクリプション状態の扱いが定義されており、OSSとしての本体と課金付きサービスが同居する構成です。セルフホストで得られる機能範囲は、事前に確認する価値があります
・依存する外部データの継続性:65以上のプロバイダに依存する以上、上流の提供条件が変われば特定パネルは止まり得ます。鮮度モニターが35のソースグループを追跡しているのは、裏を返せば止まり得る前提の設計だということです
・セキュリティの経緯:READMEには、Cody Richard氏がIPCコマンドの露出、レンダラーからサイドカーへの信頼境界、fetchパッチにおける認証情報注入の3件を責任ある開示によって報告したと謝辞が記されています(2026年)。デスクトップ版を扱う場合は、こうした境界の設計が継続的に見直されている点を踏まえて最新版を使うのが安全です
・情報の正確性の扱い:AI要約は要約である以上、原文の含意を落とすことがあります。重要な判断に使う場合は、パネルから一次記事へ辿れる導線を確認しておくべきです
まとめ
技術者にとって面白いのは、機能一覧よりむしろ
CONCEPTS.mdに明文化された設計判断のほうかもしれません。「egressはオリジンミス数×ペイロードサイズで決まる」(The Lever Test)、「見せるものをキャッシュし、ソースをキャッシュしない」(Bootstrap View Key)、「MCPの405はエラーでなく契約」——これらは同種のダッシュボードやMCPサーバーを自作する際にそのまま効く知見です。ライセンスはGitHub上の「Other」表示に反してAGPL-3.0-onlyであり、商用利用もAGPLの義務を満たす限り認められています。制約が掛かるのはソース非公開の独占的利用と公式ブランドの使用です。まずは
git clone して npm run dev で立ち上げ、どのパネルが自分に必要かを見極めてから .env.example に向き合うのが、遠回りに見えて最短の進め方です。
参照ソース
・koala73/worldmonitor(公式リポジトリ・README) — 機能一覧・技術スタック・起動手順・ライセンス表・データソース数の一次情報
・koala73/worldmonitor — LICENSE — AGPL-3.0全文との照合に使用(差分は冒頭8行のみ)
・koala73/worldmonitor — CONCEPTS.md — Bootstrap Tier / The Lever Test / MCP探索仕様など設計判断の定義
・GNU Affero General Public License v3.0(公式全文) — ライセンス照合の基準として使用