Borgo について
Borgoは、重視する項目に重みを付け、オープンデータで都市の暮らしやすさを比較します。移住先を検討する人やエージェント向けで、出典付きの数値、家族の移動資格確認、ブラウザー・コマンドライン・MCPからの利用が特徴です。
主な機能
- 01重み付けした指標で都市を比較
- 02税引後収入と家賃後の金額を推定
- 03家族の移住資格を確認
- 04気候・大気・安全のデータを確認
- 05データの出典と対象範囲を確認
活用シーン
- 01移住先の候補都市を絞り込む
- 02都市間で税引後収入と家賃を比較する
- 03気候や安全の希望から場所を選ぶ
MCP 対応
MCPサーバーとして動作し、AIアシスタントがツール経由で都市データを取得して比較できます。ブラウザーアプリやコマンドラインと同じエンジンを使用します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
11掲載時のツール一覧 · 4 日前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| limit | integer | いいえ | クエリのデフォルトは 10、全リストの場合は 100 |
| query | string | はい | 名前、別名、または ID。空欄の場合はすべての都市を一覧表示します |
| country | string | いいえ | ISO alpha-2 フィルター |
詳細
Borgo
Borgo(イタリア語で「村」)は、オープンデータを使って任意の数の都市を比較します。比較の重みは、何を重視するかに応じて設定できます。税引き後に得られる収入と家賃を差し引いた後の手取り、世帯の誰がビザなしで移住できるか、そして気候、大気、安全、健康、研究に関する各地の状況を比較します。各数値には出典と対象期間が示され、その数値が都市自体を表すのか、国のみを表すのかも明記されています。
アカウントもサーバーも不要で、ブラウザー上で動作します。同じエンジンがコマンドラインツール(borgo。where-to-liveでも実行できます)とMCP サーバーとしても動作するため、AI アシスタントは、表示される数値に基づいて「どこに住むべきか?」に回答できます。
開発した理由: 私は共同創業者と、会社を立ち上げる場所と住む場所を決めるために、サンフランシスコ、ロンドン、ダブリンを、ここトリノに留まる選択肢と比べて検討していました。自分で比較をまとめてみると、参照したどのサイトも一部分しか扱っていませんでした。物価水準を示すサイト、天気を示すサイト、給与計算ツールがありましたが、どれも自分にとって重要な要素に重み付けできず、二人ともその場所で合法的に働けるかも分かりませんでした。かつてこうした要素をひとつにまとめていたTeleportは、もうありません。そこで、自分が欲しかった比較ツールを作り、誰でも(またはそのエージェントでも)独自の重み付けで使えるよう、オープンにしました。
ステータス: 初期段階です。任意の都市を必要に応じて取得でき、57都市には公開ページがあります。26か国(ヨーロッパの大部分、英国、8つの州モジュールとニューヨーク市を含む米国、カナダ、オーストラリア、シンガポール、日本、UAE)の手取り給与に対応しています。また、移住者向けの17の税制について、適用条件と期間も掲載しています。
クイックスタート
Node.js 22.13 以降があれば、クローンせずに、次のコマンド一つで Borgo を実行できます。
npx -y @abcastor/borgo mcp # the MCP server, over stdio
npx -y @abcastor/borgo compare Lisbon Berlin --salary "60k EUR" # the command line
MCP サーバーをアシスタントに追加します。
Claude Code
claude mcp add borgo -- npx -y @abcastor/borgo mcp
Claude Desktop、Cursorなど、JSON で設定するクライアントの場合:
{
"mcpServers": {
"borgo": {
"command": "npx",
"args": ["-y", "@abcastor/borgo", "mcp"]
}
}
}
Codex
codex mcp add borgo -- npx -y @abcastor/borgo mcp
docs/agents.mdには、すべてのツール、コマンド、各クライアントの設定場所が記載されています。
クローンから実行する場合は、Node.js 26 以降が必要です。TypeScript のソースを直接実行します。
git clone https://github.com/ABCastor/borgo && cd borgo
npm install
node pipeline/build-data.ts # assemble data/ into public/data/dataset.json, refusing anything unsourced
node scripts/build.ts --serve # build dist/ and serve it at http://127.0.0.1:8794/
npm test # engine, money model and tax modules
都市を選ぶと、答えが表示されます。都市は「残るお金」と「過ごしやすい日」という2つの指標で順位付けされ、どこが優位か、そして答えをより確かなものにする入力値(給与、オープンデータでは入手できない家賃、パスポートなど)を1文で示します。「過ごしやすい日」の定義は自由です。まずは体感温度18~30 °Cの範囲が過ごしやすい日の指標に設定され、すべてのシートに反映されます。必要に応じて、優先事項を3つ目まで追加できます。それ以外の項目(居住権の重み付け、健康、安全、子どもがいる場合の子育て、人間関係、仕事とキャリア、移動のしやすさ、自然、現在地、独自の条件)はその他の優先事項にまとめられています。各グループが1つの指標となり、その内訳がグループ内に表示されます。移住できる人は指標ではなくチェック項目です。各人のパスポートを入力すると、すべてのシートに「可能」「ビザまたは許可が必要」「未確認」のいずれかが表示されます。「必須条件」として指定すると、それ以外の都市は候補から除外されます。給与は初期設定では想定されません。入力した場合にのみ、お金が計算されます(全都市に共通の金額を1つ入力するか、都市ごとに入力できます)。年金の分担、税の設定、新規居住者向けの税制は、それぞれの金額シートの詳細セクションで確認できます。数値をクリックすると、その出典を確認でき、独自の数値に置き換えることもできます。設定(歯車アイコン)では、°C/°F、km/マイル、金額の表示通貨、数値と日付の表記形式を切り替えられます。
比較データはブラウザー内(ローカルストレージ)に保存され、外部には送信されません。共有を選ぶと、リンクをコピーする前に、リンクに含まれる内容を確認できます。対象となるのは、都市、重み付け、「必須条件」、過ごしやすい日の範囲、住居の広さ、設定です。給与、支出、貯蓄、移住する人(名前、パスポート、年齢、子ども)、独自の数値(家賃や置き換えた数値)、独自の条件、現在地は、チェックを入れない限り含まれません。これらはリンクの#share=以降に含まれます。この部分はブラウザーからサーバーに送信されず、アプリは読み込み後にアドレスから削除します。このページは自身のファイルのみを読み込み、それ以外は読み込みません。場所を追加すると、その名前と座標だけが、その場所を扱うデータソースに送信されます。
都市一覧の下にあるほかの場所を探索(単独ページのマップからも利用可能)では、あなたが重視する項目に基づいて世界全体を色分けできます。独自のスコア、指定した範囲での過ごしやすい日、世帯の人が居住できるかどうか、残るお金、その他の指標を表示でき、指標の変更に応じて地図も更新されます。地図上の陸地には、1年のうち、午後の最高気温が過ごしやすい日の範囲に入る月数(0~12か月)が表示されます。範囲を変えると表示も更新されます。選択した都市は、地図に表示している項目に基づいて丸で囲まれ、順位付けされます。都市や町にカーソルを合わせると情報を確認できます。クリックするとカードが固定表示されます。カードには、指定範囲内に入る月数、給与入力後の手取り額、順位の根拠となる数値が表示されます。カードから自分の都市に追加を選ぶと、その場所を追加できます。カードはキーボードで操作でき、Escapeキーで閉じられます。スマートフォンでは、画面の下からカードが表示されます。
スコアの仕組み
各項目では、数値を固定された最低値と最高値に照らし、0〜1のスコアに換算します。PM2.5 は 35 µg/m³ から WHO のガイドライン値である 5 まで、年間で最も日が短い日の長さは 6 時間から 11 時間までを基準とします。重みを設定すると、その項目が獲得できる 100 点のうちの点数が決まります。グループのダイヤルの値は、そのグループに属する項目の重みの合計です。ダイヤルを動かすと、元の比率に応じて各項目に新しい重みが振り分けられるため、各項目を個別に設定した場合と同じスコアになります。数値がない場合、実際の数値がある場合より高いスコアにはなりません。ある都市に項目の数値がない場合、その都市には、ほかの都市のうちその項目の数値が最も低い都市と同じスコアが割り当てられます。そのため、データの欠落はその都市に不利になることはあっても、順位を上げることはありません。どの都市にも数値がない項目は、いずれの都市のスコアにも加算されません。また、ほかの都市にはある数値が不足している都市には「データ一部不足」と表示され、そのスコアのうち自都市の数値に基づく割合と、不足しているデータが示されます。入力されていないパスポート、給与、家賃は「データ一部不足」には該当せず、代わりに入力を求めます。金額を補完することはありません。ある都市の家賃が不足している場合は、すべての都市について、手取り収入のみから、給与に含まれない医療保険に加入する場合はその保険料を差し引いた額で比較します(給与が入力されていない場合は費用のみで比較するか、金額をスコアから除外します)。また、比較に不足している入力内容を「チューリッヒの家賃を追加」のように、該当する項目とともに示します。ある都市の不足データによって首位を上回る可能性がある場合は、首位が暫定であることと、不足しているデータを回答に明記します。「必須条件」は、合格、不合格、未判定のいずれかになります。不合格の都市は対象外となり、数値がない、パスポート情報が入力されていないなどの理由でまだ確認できない都市は未判定として表示され、合格したすべての都市より下位になります。通常の必須条件は「誰でも移住できます」です。パスポートが入力されていない人はビザが必要だと判断されるのではなく、確認対象外になります。
月々の「手元に残る金額」は、手取り給与(国の税制モデルで総支給額から年金保険料を差し引いて算出)から、家賃、自分で入力した月々の生活費を都市の物価水準に合わせて調整した額、6 歳未満の子どもの保育費(公的支援適用後。本人が費用を入力した場合はその金額、有料保育を利用しない場合は 0 円)、自己負担の医療費、および給与に含まれない医療保険料を差し引いた金額です。支払いが必要な費用(保険料や、公開された金額がない保育費など)が計算から漏れている場合、その金額には「最大」と表示し、不足している項目と入力欄を示します。すべての費用がそろうまでスコアには反映されません。税額の概算を使っている場合は、金額の横にその旨を明記します。すべての条件を確認せずに適用する新規居住者向け税制は、シナリオとして表示します。生活費も併記されますが、重みを設定した場合に限り、それ自体がスコアに加算されます。手元に残る金額にはすでにすべての費用が反映されているためです。貯蓄額は、収入を含めず、何か月分の支出をまかなえるかで表示します。いずれの値も上書きできます。
データの出典
このプロジェクトでは、数値のコピーではなく、厳選したデータソースの一覧を管理しています。registry/ には、各データソースにつき 1 つのファイルがあり、測定内容の平易な説明、対象地域と対象期間、ライセンス、再配布の可否、取得方法(エンドポイント、ブラウザーから読み取れるかどうか、必要なキー)、更新頻度、確認担当者が記載されています。ブラウザー、CLI、または MCP サーバーが、指定された地域のデータを各データソースから取得し、参照元のアドレスとともに、その数値を利用者側で保持します。docs/architecture.md をご覧ください。
実在する場所であればどこでも指定できます。アプリで「Palermo」と入力するか、borgo fetch "Palermo, IT" を実行するか、MCP サーバー経由でエージェントに依頼してください。オープンライセンスの数値を収録した、初期設定用 57 都市分の小規模なスナップショットをコミットしているため、公開されている都市ページに数値を表示できます。
| 項目 | 出典 | ライセンス | レベル |
|---|---|---|---|
| 場所、座標、人口、地域 | GeoNames(Open-Meteo のジオコーダー経由)、Wikidata | CC BY 4.0、CC0 | 都市 |
| 気温と体感温度、時間ごとの気温、雲量、雨の日 | Open-Meteo(ERA5 再解析、直近の完全な5年間) | CC BY 4.0 | 都市の座標 |
| 日照時間、実測値 | WMO 1991-2020 normals(NOAA NCEI)、Meteostat | WMO のポリシー、CC BY 4.0 | 最寄りの観測所 |
| 微小粒子状物質(PM2.5) | WHO Ambient Air Quality Database、該当データがない場合はモデル推定値の CAMS | WHO の規約、CC BY 4.0 | 都市 |
| 家賃 | ONS(英国)、CSO and RTB(アイルランド) | OGL v3、CC BY 4.0 | 都市または地域 |
| 物価水準、殺人件数、平均寿命、医師数、失業率 | World Bank WDI | CC BY 4.0 | 国 |
| 汚職の抑制 | World Bank Worldwide Governance Indicators | CC BY 4.0 | 国 |
| 政治傾向、左派から右派 | 直近の国政選挙:選挙管理当局の公式結果、政党の立場は ParlGov に基づきます。対象は18か国、スイスの州、カナダの州、オーストラリアの州で、位置付けられた得票が少なすぎる場合は数値を表示しません。docs/positions.md を参照してください | CC BY 4.0(本プロジェクトで集計) | 国、州、県または州 |
| 中絶に関する法律、同性カップルに関する法律 | 各法律を引用 | 公式文書 | 国または米国の州 |
| 生活満足度 | OECD Well-being Database | OECD の規約 | 国 |
| 住民1人あたりの研究成果 | OpenAlex の機関データ | CC0 | 都市 |
| GitHub 上の開発者数(住民1,000人あたり) | GitHub user search:所在地別プロフィール数の合計のみ | データライセンスなし。件数のみ(GitHub の利用規定に準拠) | 都市 |
| 市街地の端までの距離 | GHSL Urban Centre Database 2025(欧州委員会 JRC) | CC BY 4.0 | 都市 |
| 学位取得者である成人の割合 | Eurostat regional labour force survey(edat_lfse_04) | 出典を明記すれば再利用可(Eurostat) | 地域 |
| 歩きやすい道路、自転車ネットワーク | Overpass API 経由の OpenStreetMap | ODbL 1.0 | 都市 |
| 世界地図:陸地、国、町 | Natural Earth の1:50mの国データ、1:10mの人口集中地データ | パブリックドメイン | 国、町 |
| 世界地図:月ごとの午後の最高気温 | NASA POWER の気候データ(MERRA-2、2001-2025) | CC0 | 約50 kmのグリッド。地図タイルごとに平均 |
| 自由な移動 | EU 指令 2004/38/EC、EEA 協定、EU・スイス協定、英国・アイルランド共通旅行区域、トランス・タスマン協定 | 公式文書 | 国 |
Numbeo、WeatherSpark、EIU などの非公開情報源は、リンクのみのページとして登録されています。各社の規約で複製と自動取得が禁じられているため、アプリはそれらにリンクするだけで、エージェントが情報を取得することはありません。そこで自分で確認した数値は、自分のデータとしてブラウザーや自分のキャッシュに保存できますが、本プロジェクトに複製されることはありません。 政治と法律は位置であり、スコアではありません。 自分がどの立場にあるかを示すと、その場所がどれだけ近いかでスコアが決まります。示すまでは、それらの線は事実を示しているだけで、スコアには反映されません。docs/positions.md と、住む場所を選ぶときに人々が重視する点や各指標の根拠となるオープンデータについては、docs/values-research.md をご覧ください。
日照時間はモデルで推定せず、実測値を使います。 再解析モデルは、気象観測所の値と比べて日照時間を30〜90%過大に見積もります(ERA5ではロンドンの日照時間は年間2,765時間ですが、ヒースローの観測値は1,595時間です)。そのため、日照時間には観測所の平年値のみを使用し、近くに観測所がない場所では値がありません。
実際のデータの空白は家賃です。 世界中の都市の1ベッドルームの家賃を提供するオープンソースデータはありません。現在、公式データがあるのは英国とアイルランドです。それ以外の地域では、アプリが数値を作り出すのではなく、ご自身の数値を入力するよう求めます。研究成果の数は、大学、研究所、病院、企業の論文数を住民数で割ったもので、「その場に誰がいるか」を示す代理指標であり、スタートアップの数ではありません。殺人件数とその他の世界銀行の指標は、都市の代わりに国の数値を使っており、数値の横に「国の数値」と記載しています。
追加する
すべては小さく独立した要素です。
- 都市には何も必要ありません。どの場所もリクエストに応じて解決されます。シード都市(公開ページがある都市)は、
data/cities.seed.jsonの1行です。node pipeline/sources/geonames.tsを実行し、続けてスナップショットのソースを実行します。 - ソースは
registry/内の1ファイルです(類似のファイルをコピーしてください。npm testで検証できます)。リクエストに応じて取得するには、src/fetch/内にフェッチャーを1つ作成し、src/fetch/index.ts(ブラウザーとNode)またはsrc/fetch/node/index.ts(Nodeのみ)に登録します。pipeline/build-data.tsは、レジストリで再配布が許可されていないソースや、該当する指標のソースとして宣言されていないソースの数値を、スナップショットに含めません。 - 指標は
src/core/metrics.tsの1エントリーです。 - スコア項目は
src/core/criteria.tsの1エントリーです。質問内容、最低値と最高値、データの読み取り方を指定します。カテゴリ、またはsrc/core/groups.tsの名前によってグループに加わります。 - 国の税制は
src/tax/内の1モジュールで、公式ソースと注意事項を含み、src/tax/index.tsに登録します。test/には計算例を追加します。
プルリクエストで数値を追加する場合は、すべての数値についてソースとライセンスが必要です。
数値、ルール、ソースの修正は、皆さまやエージェントから歓迎します。各数値のソース欄にある 修正を提案、提案フォーム、またはMCPサーバーの propose_change(コマンドラインでは borgo propose)をご利用ください。提案には、その根拠となる公式文書が記載され、GitHubで確認された後にレビューされます。borgo stale では、レビュー時期を迎えたキュレーション済みの事実を一覧表示できます。CONTRIBUTING.md をご覧ください。
ライセンス
このマップは、米国の快適な日々を示すNick Winansの地図「Where to Live」(MIT)の精神に沿っています。コードは一切コピーしていません。
コードはApache License 2.0の下で提供されています。コンパイル済みデータはCC BY 4.0の下で提供され、各ソースのライセンスはその数値のそばに記載されています。フォントはSIL Open Font Licenseの下で提供され、ライセンスファイルは public/fonts/ にあります。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。