compass-mcp について
compass-mcpは、MCPクライアントからCompassの物件、詳細、写真、価格履歴を取得し、物件比較やローン計算も行うMCPサーバーです。ユーザーがログイン中のCompassブラウザータブ経由でリクエストし、ページ内容から物件データを抽出します。
主な機能
- 01場所や条件で物件を検索
- 02物件詳細、写真、価格履歴の取得
- 03物件比較と一括データ取得
- 04近隣賃貸物件やエージェント掲載物件の検索
- 05購入可能額と住宅ローンの計算
活用シーン
- 01予算や寝室数で住宅を絞り込む
- 02写真や掲載価格の推移を確認
- 03複数の物件を並べて比較
- 04購入可能額と月々のローンを試算
MCP 対応
MCPクライアントに物件検索、取得、比較、ローカル計算用ツールを公開します。CompassへのリクエストはContextMint Bridge拡張機能を使い、ユーザーがログイン中のブラウザータブ経由で送信します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
npx -y compass-mcpCOMPASS_WS_PORTOverride the fetchproxy WebSocket port (default 37149).COMPASS_COMMUNITIES_FILEPath to a JSON string-array of community names for feature extraction; overrides the built-in Lake Lure / mountain-NC default vocabulary.ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ツール
18掲載時のツール一覧 · 2 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| view | enum | いいえ | レスポンス形式:"compact"(デフォルト)は、レスポンス内の別の場所にすでに含まれているフィールドを省略します。"full" はこのサーバーが認識するすべてのフィールドを返します。compact はレスポンスから画像/アバター URL を除外し、"full" は Compass のペイロードをそのまま返します。フィールドの射影には対応していません。このサーバーには、Compass のどのフィールドが重要かについて検証済みの記録がなく、独自に射影を作ると呼び出し元が必要とするフィールドを削除するおそれがあるためです。compact | full |
| limit | integer | いいえ | 返される物件の最大数(デフォルトは 40)。現在アクセスできるのは最初の SSR ページ(約 41 件)のみ(#87)のため、これを超える件数はページ上限に制限されます。価格やベッドルーム数の範囲で絞り込むと、さらに検索できます。 |
| offset | integer | いいえ | アクセス可能な最初の SSR ページ内での 0 始まりのオフセットです。そのページ内でのみ有効(#87)です。ページ内の続きの結果を取得するには、前回のレスポンスにある `next_offset` の値を使用してください。ページの範囲以上のオフセットでは結果が返されません。価格やベッドルーム数の範囲で絞り込むと、さらに検索できます。デフォルトは 0 です。 |
| beds_max | integer | いいえ | |
| beds_min | integer | いいえ | |
| location | string | はい | 自由入力の場所:市、郵便番号、近隣地区(例:"Brooklyn, NY"、"94110"、"Park Slope") |
| home_type | enum | いいえ | 物件タイプを 1 種類に限定します。house | condo | townhouse | multi_family | land | rental |
| price_max | integer | いいえ | |
| price_min | integer | いいえ |
詳細
compass-mcp
Claude 用の MCP サーバーとして Compass の不動産情報にアクセスできます。自然言語で、物件の検索、物件詳細や写真ギャラリー、価格履歴の取得、購入可能額や住宅ローンの計算を実行できます。
⚠️ Compass は一般消費者向けの公開 API を提供していません。このサーバーは、Compass 自身がブラウザーに配信するサーバー側レンダリング済み HTML をスクレイピングし、ContextMint Bridge 拡張機能を介して、サインイン済みのブラウザータブ経由でアクセスします。すべてのリクエストは、既存のセッション(Cookie、TLS、JS コンテキスト)を使って実行されます。これは、ブラウザーで自分でクリックした場合とまったく同じです。Compass のウェブサイトの非公式な利用として扱ってください。ご自身の判断でご利用ください。
ツール
| ツール | 用途 | 認証スコープ |
|---|---|---|
compass_search_properties | 場所、価格帯、ベッドルーム数、住宅タイプで物件を検索します。自由入力のテキストを Compass の URL ルーティング用にスラッグ化し、SSR の物件配列を抽出します。 | |
compass_get_property | URL または listing_id_sha で物件の全レコードを取得します。住所、近隣地域、ベッドルーム/バスルーム数、平方フィート、土地、価格と平方フィートあたりの価格、月額費用、MLS ステータス、設備、学校、地番を含みます。 | |
compass_get_property_photos | 写真ギャラリー全体を取得します。listing.media[] 内のすべての画像について、元画像とサムネイルの URL、ピクセル寸法を取得します。フロアプランなどの他のメディアは include_all_categories を指定した場合に取得できます。 | |
compass_get_price_history | 物件の掲載履歴イベント(Listed/Sold/Pending/Price Change/Delisted)をすべて取得します。日付、価格、ステータス、MLS の情報を含みます。この掲載と過去の掲載の両方の集計結果を返します。 | |
compass_compare_properties | 最大 25 件の物件を並べて比較します。オプトインで、項目を揃えた概要テーブルを取得できます。対象ごとのエラーは行ごとに記録されます。取得は並行して実行されます。 | |
compass_calculate_affordability | ローカルで購入可能額を計算します。収入、DTI、金利から購入可能な上限価格を算出します。ネットワーク接続は不要です。 | |
compass_get_by_address | 自由入力の番地から、正式な Compass URL、listing_id_sha、pid を一度の呼び出しで解決します。一致する物件がない場合は例外をスローせず、{ resolved: false, error: "no listing found" } を返します。 | |
compass_resolve_addresses | compass_get_by_address の一括版です。同じ段階的な検索処理と行ごとのエラー形式を使って、一度の呼び出しで複数の住所を解決します。 | |
compass_bulk_get | URL または listing_id_sha を指定して、最大 200 件の物件を一度の呼び出しで取得します。対象ごとに 1 行を返し、対象ごとのエラーは行ごとに記録されます。 | |
compass_get_comparable_rentals | 対象物件と同じ市、州、ZIP コードで検索した、近隣の賃貸物件を取得します。 | |
compass_get_agent_listings | Compass エージェントの掲載中物件を取得します。include_closed を指定すると成約済み物件も取得できます。 | |
compass_calculate_mortgage | ローカルで PITI を計算します。元金と利息、税金、保険、HOA、PMI を算出します。ネットワーク接続は不要です。 | |
compass_get_saved_homes | 未対応です — Compass は /overview/favorites を、まだ特定できていない認証スコープ付き GraphQL 経由で表示します。「まだ配線されていません」という明確なエラーをスローします。 | ✓ |
compass_get_saved_searches | 未対応です — 保存済み物件と同じ制約があります。 | ✓ |
compass_healthcheck | Bridge、拡張機能、サインイン済みの compass.com タブが応答することを確認するため、Bridge 経由で何もしないリクエストを往復させます。 | |
compass_register_session | アカウント ID をキーに論理セッションを登録または更新します(ローカル処理。ネットワーク接続は不要です)。 | |
compass_set_active_session | 今後のリクエストに応答する、登録済みセッションを切り替えます(ローカル処理)。 | |
compass_get_session_context | 登録済みセッションとアクティブなセッションを一覧表示します(ローカル処理)。 |
応答サイズ
一覧取得ツールでは、オプションの view 引数を指定できます。値は "compact"(デフォルト)または "full" です。compact では、画像とアバターの URL(primary_photo_url / primary_thumbnail_url を含む)が除外され、その他のフィールドはすべて保持されます。view: "full" では、それらの URL を含むペイロードが返されます。
view を指定できるツール:compass_search_properties、compass_get_property、compass_bulk_get、compass_compare_properties、compass_get_price_history、compass_get_comparable_rentals、compass_get_agent_listings、compass_get_by_address。
1.1.9 での変更:
compass_get_property、compass_bulk_get、compass_compare_properties、compass_get_price_history、compass_get_comparable_rentalsは、以前はメディア URL を含むすべてのフィールドを返していました。現在は、他の読み取りツールと同様に、デフォルトで compact を返します。これらのツールから写真やアバターの URL を取得していた場合は、view: "full"を指定するか、ギャラリーにはcompass_get_property_photosを使用してください。
compass_get_property_photos は view を受け取りません。このツールはギャラリーの URL を返すことが目的のため、常にそれらを返します。
利用規約への同意
この MCP サーバーを使用することで、以下の事項を確認し、同意したものとみなされます。
1. このサーバーは、お客様ご自身の Compass セッションにアクセスします。 すべてのリクエストは、ContextMint Bridge 拡張機能を介してお客様ご自身のブラウザータブから送信されます。お客様の Cookie、TLS、セッションが使用されます。他者のアカウントにアクセスすることはなく、またアクセスできません。
2. Compass の利用規約は、お客様によるこのサーバーの使用にも適用されます。 compass.com を直接利用する場合と同様です。特に関連する条項は次のとおりです。
該当する Compass 会社から事前に明示的な書面による許可を得ていない限り、いかなる目的またはいかなる方法(画面やデータベースのスクレイピング、スパイダー、ロボット、クローラー、およびサービスから情報を取得する目的で行われるその他の自動的な活動を含みますが、これらに限定されません)によっても、サービスを自動的にクロールまたは照会することはできません。
また、次のようにも定められています。「お客様は、パスワードの機密を保持し、他者のアカウントを使用せず、また他者にお客様のアカウントを使用させないことに同意するものとします。」
このサーバーでツールを呼び出すたびに、これらの規約に同意することになります。規約はメンテナーが2026-05-23に確認しました。Compass の規約では、書面による許可なしの自動クロールが禁止されており、IDX の掲載データは個人的かつ非営利の用途に限ってライセンスされています。
3. 個人的かつ非営利の用途に限ります。 このプロジェクトは、Compass, Inc. と提携、承認、後援、または協力関係にありません。これは、compass.com がブラウザーに配信するものと同じサーバーレンダリング済み HTML を読み取る、個人用の自動化ツールです。掲載情報の一括抽出、IDX データの再配布、AI モデルのトレーニング、競合する不動産製品へのデータ登録、または商用目的には使用しないでください。
4. 安定性は保証されません。 このサーバーは、非公開のインラインスクリプトの状態(global.uc.sharedReactAppProps、window.__INITIAL_DATA__.props.listingRelation.listing)と SSR の URL 規則(/homes-for-sale/<slug>/、/homedetails/<slug>/<id>_lid/)を読み取ります。Compass は予告なくこれらを変更する可能性があります。動作しなくなることがあります。実際に動作を停止することもあります。これは仕様です。Compass がこのサーバーに代わって保守するものではありません。
5. このサーバーを Compass へのアクセスに関連して使用した結果生じるあらゆる事態について、お客様が全責任を負うものとします。 レート制限、アカウントの一時停止、IP ブロック、AWS WAF のチャレンジ、または Compass によるその他の措置が含まれます。Compass から使用に対する異議があった場合は、このサーバーの使用を中止してください。
このセクションは、メンテナーが誠意をもって利用規約を要約したものです。法的助言ではなく、Compass の実際の利用規約を変更または優先するものでもありません。
インストール
オプション A — npx(初回公開後)
.mcp.json に追加します。
{
"mcpServers": {
"compass": {
"command": "npx",
"args": ["-y", "compass-mcp"]
}
}
}
オプション B — ソースから
git clone https://github.com/chrischall/compass-mcp
cd compass-mcp
npm install
npm run build
{
"mcpServers": {
"compass": {
"command": "node",
"args": ["/path/to/compass-mcp/dist/bundle.js"]
}
}
}
ブラウザーの初回セットアップ
compass-mcp は ContextMint Bridge 拡張機能を介してブラウザーと通信します。この拡張機能は、fetchproxy ベースのすべての MCP(zillow-mcp、opentable-mcp、resy-mcp など)で共有されます。ContextMint Bridge のリリースから一度インストールしてください。
- Chrome: Chrome 用の zip をダウンロードして解凍し、
chrome://extensions→ デベロッパーモードを切り替え → パッケージ化されていない拡張機能を読み込む → 解凍したフォルダーを選択します。 - Safari: Bridge は ContextMint アプリに同梱されており、Safari の設定で有効にします。ContextMint アプリはまだ一般公開されていないため、Safari 用のインストールリンクはありません。現時点では Chrome をお使いください。
入手元について。 ContextMint Bridge は、同じメンテナーが提供する fetchproxy のブラウザー拡張機能の新しい名称です。fetchproxy の README(拡張機能)からもリンクされています。ソースコードはnullnet-app/contextmint-bridgeで公開されています。自分でビルドする(README に npm run build の説明があります)か、リリース zip を、その隣に公開されている .sha256 ファイルと照合してください。
shasum -a 256 -c contextmint-bridge-chrome-<version>.zip.sha256
compass.com を開いてサインインしてください。このサーバーで必要な認証はこれだけです。
仕組み
┌────────────────┐ stdio ┌──────────────────┐ WS ┌──────────────────┐ fetch() ┌─────────────┐
│ MCP client │◀────────▶│ dist/bundle.js │◀──────▶│ ContextMint │◀────────────▶│ compass.com │
│ (Claude, etc.) │ │ (Compass MCP) │ :37149 │ Bridge │ (real TLS, │ (your tab) │
└────────────────┘ └──────────────────┘ │ (separate) │ cookies) └─────────────┘
MCP サーバーは Node で動作しますが、compass.com へのすべての HTTP 呼び出しは ContextMint Bridge 拡張機能を介して、現在開いているブラウザーのタブに送られます。各リクエストは既存のセッションを使用するため、TLS フィンガープリント、Cookie、JS 実行コンテキストはすべて、すでに画面に表示されているページと一致します。ヘッドレスブラウザーによる代用も、別個の ID も、サードパーティーのプロキシもありません。MCP サーバーがリクエスト内容を選び、実際のブラウザーが自身の権限で処理します。
Compass のページは SSR React で、公開 JSON API はありません。各ツールはインラインスクリプトのグローバル変数(検索ページでは global.uc.sharedReactAppProps、物件詳細ページでは window.__INITIAL_DATA__.props.listingRelation.listing)からデータを抽出します。クライアントがそのデータをツールのインターフェースにまとめるため、呼び出し側で HTML を解析する必要はありません。
コマンド
npm test # vitest, mocked transport, no network
npm run test:watch
npm run test:coverage
npm run build # tsc --noEmit + esbuild bundle → dist/bundle.js
npm run dev # node dist/bundle.js (after build)
ライセンス
MIT
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。