mcpField
P
pp-apartments

pp-apartments

github.com/mvanhorn生産性2.1k234 回インストール今日更新
リポジトリ

pp-apartments について

pp-apartments は apartments-pp-cli で Apartments.com の賃貸物件を検索・分析するスキルです。構造化データを使う住まい探しに、履歴管理、複数地域のランキング、候補物件の比較を加えます。

主な機能

  1. 01賃貸物件の検索と詳細確認
  2. 02物件情報の変化と賃料履歴の追跡
  3. 03総費用や面積単価によるランキング
  4. 04候補物件と設備の比較
  5. 05地域の賃料統計の集計

活用シーン

  1. 01転居に向けた物件情報の変化追跡
  2. 02候補物件の総費用比較
  3. 03値下げ物件や更新停滞物件の発見
  4. 04地域相場に照らした賃料の評価

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/mvanhorn/printing-press-library --skill pp-apartments

インストール後、Claude Code で/pp-apartmentsを入力して読み込まれたか確認します。

詳細

Apartments.com — Printing Press CLI

前提条件:CLI をインストールする

このスキルは apartments-pp-cli バイナリを使用します。このスキルのコマンドを実行する前に、CLI がインストールされていることを必ず確認してください。 インストールされていない場合は、先にインストールしてください。

  1. Printing Press インストーラーを使ってインストールします。デフォルトのインストール先は、macOS/Linux では $HOME/.local/bin、Windows では %LOCALAPPDATA%\Programs\PrintingPress\bin です。
    npx -y @mvanhorn/printing-press-library install apartments --cli-only
    
  2. 確認します:apartments-pp-cli --version
  3. スキルを実行するエージェント/ランタイムで、表示されたインストール先ディレクトリが $PATH に含まれていることを確認します。

npx によるインストールに失敗した場合(Node がない、オフラインなど)は、Go から直接インストールしてください(Go 1.26.6 以降が必要です)。

go install github.com/mvanhorn/printing-press-library/library/other/apartments/cmd/apartments-pp-cli@latest

インストール後に --version で「command not found」と表示される場合、ランタイムからバイナリディレクトリを $PATH 経由で参照できていません。確認が完了するまで、スキルのコマンドを実行しないでください。

この CLI を使用する場面

エージェントまたは人間が、構造化された Apartments.com のデータと、ウェブサイト自体にはないワークフローを必要とする場合に、この CLI を使用します。たとえば、時系列での検索結果の差分、$/sqft および総居住コストのランキング、複数スラッグを対象としたユニオンクエリ、並列比較、ダイジェスト形式の要約などです。転居先の追跡、候補リストを対象とした費用対効果の確認、賃貸担当者向けの週次ダイジェストなど、JSON とオフラインでの合成を必要とする賃貸検索シナリオで活用してください。単発の閲覧には不要です。その場合は apartments.com のウェブサイトで十分です。

この CLI を使用しない場面

作成、更新、削除、公開、コメント、賛成票、招待、注文、メッセージの送信、予約、購入、またはリモートの状態変更が必要なリクエストでは、この CLI を有効にしないでください。この Printing Press CLI が提供するのは、調査、エクスポート、同期、分析を行う読み取り専用コマンドです。

独自の機能

これらの機能は、この API を扱うほかのツールでは利用できません。

時系列インテリジェンス
  • watch — 保存済みの検索を再実行し、前回の同期以降に新たに追加、削除、または価格変更された項目を表示します。

    エージェントが転居先を継続的に追跡しており、新しい検索結果ではなく、「先週から何が変わったか」を再現可能なダイジェストで確認したい場合に選びます。

    apartments-pp-cli watch austin-2br --json --since 7d
    
  • drops — 指定した期間内に最大賃料が N%以上下がった物件を一覧表示します。

    市場の動向を見極めたり、厳しい状況にある物件を探したりする場合に選びます。

    apartments-pp-cli drops --since 14d --min-pct 5 --json
    
  • stale — 価格と空室状況が N 日間変わっていない物件にフラグを付けます。こうした物件は、実在しないか、掲載が停滞していることがよくあります。

    条件が良すぎるように見える物件を確認する場合に選びます。掲載が停滞している物件は、実際に問題があることがよくあります。

    apartments-pp-cli stale --days 30 --json --select url,maxrent,unchanged_days
    
  • phantoms — 次の 3 つのシグナルを結合し、該当する物件を表示します。再取得時に 404 になる、保存済み検索結果から消えている、または 45 日以上更新がない。

    内見のスケジュールに向けて候補リストを準備する場合に選びます。実在しない物件は内見枠を無駄にします。

    apartments-pp-cli phantoms --json
    
  • history — 1 件の物件について、賃料、空室状況、ステータスなど、すべての観測結果を時系列で表示します。

    特定の物件の価格推移を検討する場合に選びます。

    apartments-pp-cli history https://www.apartments.com/example-property-1234 --json
    
複数市場の結合
  • nearby — 複数の都市、郵便番号、または近隣地域にまたがって検索し、ランキング順に並べた重複のない一覧を返します。

    ファンアウトループを記述せずに、複数の検索スラッグをまとめた単一のランキングフィードが必要な場合に選びます。

    apartments-pp-cli nearby austin-tx round-rock-tx pflugerville-tx --beds 2 --price-max 2500 --rank sqft --agent
    
ローカルストアでの計算
  • value — ハード予算で絞り込み、同期済みの物件を12か月分の総費用(家賃+ペット家賃+ペット保証金+ペット料金)でランク付けします。

    予算が絶対条件で、ペット関連の費用によって物件が予算を超える可能性がある場合に選択してください。

    apartments-pp-cli value --budget 2800 --pet dog --months 12 --json --select rank,url,total_cost
    
  • rank — 同期済みの物件を、価格指標(平方フィートあたりの価格、または寝室あたりの価格)でランク付けします。

    「最適な条件」や「最安値」ではなく、価格に対する価値を重視する場合に選択してください。

    apartments-pp-cli rank --by sqft --beds 2 --price-max 2500 --json --limit 10
    
  • floorplans — 同期済みの物件について、間取りごとの家賃/平方フィートをランク付けします。同じ建物でも、比率の異なる4つの間取りが見つかる場合があります。

    建物に複数の間取りがあり、その中から特に安いものを選びたい場合に選択してください。

    apartments-pp-cli floorplans --rank price-per-sqft --beds 2 --json --limit 10
    
  • must-have — FTS5を使い、設備の配列に指定したすべての語句が含まれる同期済みの物件に絞り込みます。

    必須条件が、apartments.comの設備ドロップダウンにない自由入力の語句である場合に選択してください。

    apartments-pp-cli must-have "in-unit washer" "covered parking" "dishwasher" --json
    
ショートリストのワークフロー
  • compare — 2~8件の物件を、物件ごとに1列の横長テーブルにまとめ、計算した平方フィートあたりの価格と設備の重複を表示します。

    ショートリストを絞り込む場合に選択してください。横長テーブルにより、設備の重複の差がひと目で分かります。

    apartments-pp-cli compare austin-arboretum-1 austin-arboretum-2 austin-arboretum-3 --json
    
  • digest — 保存済みの検索1件について、N日間の新規物件、削除物件、値下げ、平方フィートあたりの価格上位5件、古い情報、見せかけの物件のフラグを、1回の呼び出しでまとめます。

    エージェントが月曜の朝に概要を1回の呼び出しで作成する必要がある場合に選択してください。

    apartments-pp-cli digest --saved-search austin-2br --since 7d --format md
    
  • shortlist — タグベースのローカルショートリストテーブルです。メモやタグを付けて物件を追加、表示、削除できます。

    エージェントやユーザーがショートリストを整理する場合に選択してください。compareなどの後続コマンドはこのリストを参照します。

    apartments-pp-cli shortlist add https://www.apartments.com/example-1234 --tag austin --note "liked the kitchen"
    
集計
  • market — 市区町村/州と寝室数ごとに、家賃と家賃/平方フィートの中央値、p10、p90、およびペット可物件の割合を表示します。

    エージェントが地域の分布を基準に「この価格は妥当か」を判断する必要がある場合に選択してください。

    apartments-pp-cli market austin-tx --beds 2 --json
    

HTTPトランスポート

このCLIは、ブラウザー向けエンドポイントにChrome互換のHTTPトランスポートを使用します。通常のAPI呼び出しに常駐ブラウザープロセスは必要ありません。

検出シグナル

このCLIは、ブラウザーで観測されたトラフィックのコンテキストを使って生成されました。

  • キャプチャ範囲:全ネットワークエントリー0件のうち、APIエントリーは0件
  • プロトコル:html-ssr(信頼度95%)
  • 生成時のヒント:実行時にChrome TLSフィンガープリントを使用するSurfを利用してください(UsesBrowserHTTPTransport)。すべてのレスポンスはHTML/SSRです。html_extract mode: pageで抽出し、クリアランスCookieのキャプチャは不要です。常駐ブラウザーのサイドカーはありません。主な抽出対象はschema.orgのマイクロデータ(meta itemprop=streetAddress|addressLocality|addressRegion|postalCode)とdata-beds/data-baths/data-maxrent属性です。
  • コマンド候補のアイデア:rentals — apartments.comではパススラッグによる検索が主なエントリーポイントです。listing — 物件詳細ページからschema.orgのマイクロデータを抽出します。
  • 注意事項:保護機能が有効です。Apartments.com(CoStar)はAkamai方式のボット検出を採用しています。標準ライブラリのHTTPでは403が返されますが、Chrome TLSフィンガープリントを使うSurfなら通過できます。今後のバージョンで、保護強化によりChromeのクリアランスCookieのインポートや完全なブラウザーフォールバックが必要になる可能性に注意してください。

コマンドリファレンス

listing — URL または物件 ID を指定して Apartments.com の物件詳細ページを 1 件取得し、賃料、ベッドルーム数/バスルーム数、住所、アメニティ、ペットポリシーを解析します。

  • apartments-pp-cli listing <property_id> — Apartments.com の物件詳細ページを 1 件取得し、schema.org のマイクロデータを解析します。

rentals — 市、ベッドルーム数、バスルーム数、価格、ペットポリシーで Apartments.com の賃貸物件を検索します。解析済みの物件カードを返します。

  • apartments-pp-cli rentals — apartments.com でパススラッグ検索を実行し、HTML レスポンスから解析した物件カードを返します。

手書きのコマンド

  • apartments-pp-cli sync-search <saved-search> — apartments.com で保存済み検索を実行し、物件カードをローカルストアにスナップショットとして保存します。
  • apartments-pp-cli watch <saved-search> — 保存済み検索の最新の同期結果を前回の結果と比較し、NEW/REMOVED/PRICE-CHANGED の物件を出力します。
  • apartments-pp-cli nearby <slug...> — 複数の市/郵便番号/近隣地域のスラッグで検索を実行し、ランキング順に並べて重複を除いたリストを返します。
  • apartments-pp-cli value — 同期済みの物件を、12 か月間の総居住コスト(賃料+ペット賃料+ペット保証金+ペット料金)でランキングします。
  • apartments-pp-cli rank — 同期済みの物件を、比率指標(平方フィートあたりの価格またはベッドルームあたりの価格)でランキングします。
  • apartments-pp-cli compare <url-or-id...> — 2~8 件の物件を、物件ごとに 1 列の横長テーブルにまとめ、平方フィートあたりの価格とアメニティの重複を算出します。
  • apartments-pp-cli drops — 指定した期間内に最大賃料が N%以上下がった物件を一覧表示します。
  • apartments-pp-cli stale — 価格と空室状況が N 日間変わっていない物件にフラグを付けます。実在しない物件、または更新が止まった物件の兆候を確認できます。
  • apartments-pp-cli phantoms — 3 つのシグナル(再取得時に 404、保存済み検索結果から消失、または 45 日以上更新なし)のいずれかに該当する物件を表示します。
  • apartments-pp-cli market <city-state> — 同期済みの物件を集計し、賃料と平方フィートあたりの賃料の中央値、p10、p90、およびペット可物件の割合を表示します。
  • apartments-pp-cli history <url-or-id> — 1 件の物件について、賃料、空室状況、ステータスのすべての観測結果を時系列で表示します。
  • apartments-pp-cli digest — 新着、削除、値下げ、平方フィートあたりの上位物件、更新なし、実在しない可能性のある物件をまとめた週次ダイジェストを、構造化された出力として作成します。
  • apartments-pp-cli floorplans — 同期済み物件の間取りごとに、平方フィートあたりの賃料をランキングします。
  • apartments-pp-cli must-have <term...> — FTS5 を使い、アメニティ配列に指定したすべての語句が含まれる同期済み物件に絞り込みます。
  • apartments-pp-cli shortlist — メモやタグを付けて物件を追加、表示、削除できるローカルのショートリストテーブルです。

最新性の契約

この CLI が最新性を一定の範囲で管理するのは、登録済みのストアを利用する読み取りコマンドのパスに限られます。--data-source auto モードでは、それらのパスは sync_state を確認し、ローカルデータを読み取る前に範囲を限定した更新を実行する場合があります。--data-source local では更新を実行しません。--data-source live では API を読み取り、ローカルストアを変更しません。ソースの選択を変更せずに最新性フックをスキップするには、APARTMENTS_NO_AUTO_REFRESH=1 を設定します。

JSON 出力で生成されたプロベナンスエンベロープを使用する場合、最新性のメタデータは meta.freshness に表示されます。これは対象コマンドパスでの現在のキャッシュの最新性を示すものであり、過去のデータがすべてバックフィルされていることや、API 固有の拡充が保証されることを意味しません。

適切なコマンドを見つける

実行したいことは分かっていても、どのコマンドを使うか分からない場合は、CLI に直接尋ねてください。

apartments-pp-cli which "<capability in your own words>"

which は、自然言語で記述された機能の問い合わせに対し、この CLI の厳選された機能インデックスから最適なコマンドを特定します。終了コード 0 は 1 件以上の候補が見つかったことを示し、終了コード 2 は確信を持てる候補がないことを示します。その場合は --help を使うか、検索語を絞り込んでください。

レシピ

近隣地域 3 か所で住み替え先を探す
apartments-pp-cli nearby austin-tx round-rock-tx pflugerville-tx --beds 2 --price-max 2500 --pets dog --rank sqft --json --select url,addressLocality,maxrent,sqft,price_per_sqft

対象の近隣地域 3 か所をまとめた、ランキング順のフィードです。物件 URL で重複を除き、--select を使ってエージェントに必要な列だけを残します。

週次の賃貸エージェント向けダイジェスト
apartments-pp-cli digest --saved-search client-rachel --since 7d --format md

1 件のクライアント検索について、新着/削除/値下げ/平方フィートあたりの上位 5 件/更新なし/実在しない可能性のある物件のフラグをまとめ、メールに貼り付けられる Markdown レポートを作成します。

予算上限を設定した総コストのスクリーニング
apartments-pp-cli value --budget 2800 --pet dog --months 12 --json --select rank,url,maxrent,pet_rent,total_cost,price_per_sqft

同期済みの物件情報を12か月間の総コスト(家賃+ペット家賃+ペット保証金+ペット料金)でランク付けし、予算内の項目のみを絞り込みます。

内見予約前の掲載終了チェック
apartments-pp-cli phantoms --json --select url,reason,unchanged_days

3つのシグナル(404、保存済み検索から削除、45日以上更新なし)のいずれかに該当する物件をまとめて検出します。内見を予約する前に候補リストを絞り込めば、すでに契約済みの物件を見るために町の反対側まで出向くことを避けられます。

オフラインの全文検索による設備の絞り込み
apartments-pp-cli must-have "in-unit washer" "covered parking" "dishwasher" --json --select url,addressLocality,maxrent,amenities

apartments.com のフィルタードロップダウンにない設備を、パスで絞り込みます。同期済みの設備配列に対し、FTS5 の AND 結合を実行します。

認証設定

認証は不要です。

apartments-pp-cli doctor を実行して、セットアップを確認します。

エージェントモード

任意のコマンドに --agent を追加します。次のオプションに展開されます:--json --compact --no-input --no-color --yes。

  • パイプ対応 — stdout に JSON、stderr にエラーを出力します

  • フィルター可能 — --select でフィールドを絞り込めます。ドット区切りのパスでネストした構造をたどり、配列は各要素をたどります。冗長な API でコンテキストを小さく保つのに役立ちます:

    apartments-pp-cli listing example-property --agent --select id,name,status
    
  • プレビュー可能 — --dry-run で、リクエストを送信せずに内容を表示します

  • オフライン対応 — 同期/検索コマンドでは、利用可能な場合にローカルの SQLite ストアを使用できます

  • 非対話型 — プロンプトを表示せず、すべての入力をフラグで指定します

  • 読み取り専用 — 作成、更新、削除、公開、コメント、賛成票、招待、注文、送信、その他の変更を伴うリクエストにこの CLI を使用しないでください

レスポンスエンベロープ

ローカルストアまたは API から読み取るコマンドは、出力をプロベナンスエンベロープでラップします:

{
  "meta": {"source": "live" | "local", "synced_at": "...", "reason": "..."},
  "results": <data>
}

データには .results を解析し、ライブデータかローカルデータかを確認するには .meta.source を参照します。人間が読める N results (live) の概要は、stdout がターミナルの場合に限り stderr に出力されます。パイプ/エージェントの利用者には、stdout に純粋な JSON が出力されます。

エージェントからのフィードバック

この CLI に問題があると気づいた場合は、あなた自身またはエージェントがその内容を記録してください:

apartments-pp-cli feedback "the --since flag is inclusive but docs say exclusive"
apartments-pp-cli feedback --stdin < notes.txt
apartments-pp-cli feedback list --json --limit 10

記録は ~/.apartments-pp-cli/feedback.jsonl にローカル保存されます。APARTMENTS_FEEDBACK_ENDPOINT が設定され、かつ --send が指定されているか、APARTMENTS_FEEDBACK_AUTO_SEND=true の場合を除き、POST されることはありません。デフォルトではローカルにのみ保存されます。

バグ報告ではなく、意外だったことを書いてください。簡潔で具体的な一行にします。そこにこそ、積み重ねによる効果があります。

出力の配信

すべてのコマンドで --deliver <sink> を指定できます。出力は stdout に加えて(または stdout の代わりに)指定したシンクへ送られるため、エージェントは結果を手動でパイプせずに振り分けられます。次の3つのシンクに対応しています:

シンク効果
stdoutデフォルト。stdout のみに出力します
file:<path>出力を <path> にアトミックに書き込みます(tmp + rename)
webhook:<url>出力本文を URL に POST します(--compact の場合は application/json または application/x-ndjson)

不明なスキームは、対応しているスキームを示す構造化エラーとともに拒否されます。Webhook の失敗時にはゼロ以外の終了コードを返し、URL と HTTP ステータスを stderr に記録します。

名前付きプロファイル

プロファイルは、保存して呼び出し間で再利用できるフラグ値のセットです。スケジュールされたエージェントが同じ設定で毎回同じコマンドを呼び出す場合に使用します。これは HeyGen の「Beacon」パターンです。

apartments-pp-cli profile save briefing --json
apartments-pp-cli --profile briefing listing example-property
apartments-pp-cli profile list --json
apartments-pp-cli profile show briefing
apartments-pp-cli profile delete briefing --yes

明示的に指定したフラグは常にプロファイル値より優先され、プロファイル値はデフォルト値より優先されます。agent-context は利用可能なすべてのプロファイルを available_profiles に一覧表示するため、情報を調べるエージェントは実行時にプロファイルを検出できます。

終了コード

コード意味
0成功
2使用方法エラー(引数が誤っています)
3リソースが見つかりません
5API エラー(上流の問題)
7レート制限(待ってから再試行してください)
10設定エラー

引数の解析

$ARGUMENTS を解析します:

  1. 空、help、または --help → apartments-pp-cli --help の出力を表示
  2. install で始まる → mcp で終わる場合は MCP のインストール。それ以外の場合は上記の前提条件を参照
  3. その他すべて → 直接使用(--agent を付けて CLI コマンドとして実行)

MCP サーバーのインストール

  1. MCP サーバーをインストールします:
    go install github.com/mvanhorn/printing-press-library/library/other/apartments/cmd/apartments-pp-mcp@latest
    
  2. Claude Code に登録します:
    claude mcp add apartments-pp-mcp -- apartments-pp-mcp
    
  3. 確認します:claude mcp list

直接使用

  1. インストールされているか確認します:which apartments-pp-cli 見つからない場合は、インストールを提案します(このスキルの冒頭にある「前提条件」を参照してください)。
  2. ユーザーのクエリに最適なコマンドを、上記の「固有の機能とコマンドリファレンス」から選びます。
  3. --agent フラグを付けて実行します:
    apartments-pp-cli <command> [subcommand] [args] --agent
    
  4. 曖昧な場合は、サブコマンドのヘルプを確認します:apartments-pp-cli <command> --help。

コメント