belle-mcp-server
belle-mcp-server
実際のBelle Realtyのプロパティ管理データ(物件、テナント、リース、メンテナンスチケット、家賃台帳)を、Claude Desktop、Cursor、その他MCP互換クライアントが直接呼び出せるツールとして公開する、リファレンス実装のModel Context Protocol (MCP) サーバーです。
6つのツールがあります。5つは厳密に読み取り専用です。1つはHITLゲート付きの書き込み提案です。その比率は意図的であり、このリポジトリの存在意義そのものです。
AI Fluency Program — Level 2 の一部です。
なぜこれがあるのか
「AI+あなたのデータ」系デモのほとんどは、モデルに無制限のデータベースアクセス権を与えています。それは自爆装置です。
Model Context Protocolは、ツールごとの認証、レート制限、監査を備えた、厳選された小さなサーフェス領域を公開するように設計されています。これは、公開REST APIに適用するのと同じ規律です。このリポジトリは、実際のドメイン(ルイジアナ州のショッピングセンター)に対して、実際のPostgresスキーマ、動作するシード、そして単一のHITLゲート付き書き込みパスを使って、それがどのようなものかを示しています。
このリポジトリを理解すれば、あなたが運営するあらゆるビジネス向けに同様のものを作成できます。
Related MCP server: NDI-MCP-Server
含まれるもの
ツール | 機能 | 書き込み |
| タイプ/都市でポートフォリオを絞り込む。 | なし |
| テナントを一覧表示する(1つの物件に限定可能)。 | なし |
| lease_id/suite_id/tenant_idでリースを取得する。 | なし |
| チケットを複数条件で検索する。 | なし |
| 物件の完全な家賃台帳スナップショットを計算する。 | なし |
| 提案されたテナント返信を下書き(approved=false)として保存する。 | HITLゲート式書き込み |
すべての呼び出しはレート制限(デフォルト60回/分)され、mcp_audit_log に監査ログが記録されます。
クイックスタート
# 1. Clone + install
git clone https://github.com/OrangeOnyx/belle-mcp-server.git
cd belle-mcp-server
npm install
# 2. Configure
cp .env.example .env
# Paste your Supabase URL + service-role key
# 3. Set up the schema (Supabase project)
# Copy supabase/migrations/0001_init.sql into the SQL editor and run.
# 4. Seed demo data
npm run db:seed
# 5. Build + inspect
npm run build
npm run inspectMCP Inspector は、ツールの一覧表示、呼び出し、生のレスポンスの確認ができるUIを開きます。
Claude Desktop に接続する
~/Library/Application Support/Claude/claude_desktop_config.json(macOS)またはWindows/Linuxの同等の場所に追加します:
{
"mcpServers": {
"belle-realty": {
"command": "node",
"args": ["/absolute/path/to/belle-mcp-server/dist/index.js"],
"env": {
"SUPABASE_URL": "https://your-project.supabase.co",
"SUPABASE_SERVICE_ROLE_KEY": "your-service-role-key"
}
}
}
}Claude Desktopを再起動します。belle-realty ツールセットが表示されます。試しに:
「On The Boulevard で現在入居中のスイートと、それらが生み出している月々の家賃は?」
Claude が get_rent_roll を呼び出し、返却されたデータから回答します。
HITL書き込みパターン
唯一の書き込みツール(draft_maintenance_response)は、AI向けサービスに必ず取り入れるべき一般的なパターンを示しています:
AIが変更を提案します(ここではテナントのメンテナンスチケットへの返信)。
サーバーはそれを
approved=falseとして保存します。人間が帯域外(通常はプロパティマネージャーの管理UI)で承認するまで、配信・送信・適用は一切行われません。
MCPサーフェスは意図的に承認ツールを公開していません。承認は人間のみが行える操作です。
つまり、過剰に積極的なエージェントやプロンプトインジェクションを受けたエージェントが、静かにテナントにテキストを送信することはできません。提案はできますし、大声で提案することもできます。しかし、出荷はできません。
詳細なチュートリアルは、docs/hitl-pattern.md を参照してください。
個人利用のチュートリアル
あなたは、賃貸住宅を3軒、または小さな商業ビルを1軒所有する個人オーナーだとします。
Supabaseプロジェクトでマイグレーションを実行します。
独自のデータをシードします(
supabase/seed.tsを編集するか、手動で行を挿入します)。Claude Desktopをサーバーに向けます。
「次の90日以内にリースが切れるテナントは?」とか「給湯器のチケットへの返信を下書きして」のような質問をします。
これで、あなたのデータを理解するAIネイティブなテナント運用レイヤーが完成です。たったの一晩でできました。
会社利用のチュートリアル
あなたはBelle Realty(または同等の管理会社)を経営しています。複数のスタッフが、生のSQLを見ることなく、また誤った書き込みのリスクなしに、ポートフォリオデータへのClaudeアクセスを必要としています。
このサーバーを永続プロセスとしてデプロイします(Railway、Fly、Dockerホストなど)。
MCP_TRANSPORT=httpとMCP_HTTP_TOKEN=<共有シークレット>を設定します。各チームメイトがClaude DesktopまたはCursorにURLとトークンを設定します。
読み取り専用ツールは全員に力を与えます。唯一の書き込みツールがテナントとの関係を守ります。
mcp_audit_logは、すべてのAIアクションの事後記録を提供します。
アーキテクチャ
graph LR
A[Claude Desktop / Cursor] -->|MCP stdio or HTTP| B[belle-mcp-server]
B --> C[RateLimiter]
B --> D[Zod validation]
B --> E[Supabase Postgres]
B --> F[mcp_audit_log]
E --> G[(properties, tenants, leases, tickets)]詳細は docs/architecture.md を参照してください。
拡張方法
新しいツールを追加するには4つのステップ:
src/schemas/domain.tsに入力用のZodスキーマを追加します(データ形状が新しい場合)。src/tools/<name>.tsにinputスキーマ、ハンドラー、JSON-Schema定義を記述して作成します。src/tools/index.tsに登録します。tests/にテストを追加します。
すべての書き込みツールは、draft_maintenance_response の提案-書き込みパターンに従う必要があります。
デプロイ
Railway(HTTPトランスポート推奨)
railway uprailway.json がサーバーをビルドし、node dist/index.js を実行します。Railwayダッシュボードで環境変数を設定します。
ローカル(stdioのみ)
ビルドして、MCPクライアントを dist/index.js に向けるだけです。ホスティングは不要です。
開発
npm run dev # tsx watch mode
npm run test # vitest
npm run build # tsc → dist/
npm run inspect # MCP Inspector UI関連リポジトリ
lease-abstractor— リースPDF/DOCXから構造化された抽象化を抽出するsupport-triage-agent— サポートメッセージに同じHITLパターンを適用diligence-agent— ドキュメントフォルダに対するRAGベースのデューデリジェンスai-fluency-program— 親カリキュラム
ライセンス
MIT — LICENSE を参照してください。
法的、税務、またはプロパティ管理に関するアドバイスを提供するものではありません。コンプライアンス上重要な決定に、有資格者の関与なしに使用しないでください。
This server cannot be deployed
Maintenance
Related MCP Connectors
MCP server giving Claude AI access to 22+ NYC public-record databases for real estate due diligence
API-first CRM for LLMs - contacts, companies, deals and activities over a native MCP server.
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
An MCP server that provides an API to LLMs to manage their JumpCloud resources.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceA Model Context Protocol (MCP) server built with the mcp-framework for developing and managing custom tools. It provides a structured foundation for building and integrating modular components like data processors and API clients into Claude Desktop.12 npm-
- AlicenseAqualityDmaintenanceBuilt an MCP server that connects Claude Desktop, Cursor, or any MCP client to Northeast Deal Intel's CRE database. 8 tools: • search_deals — filter 14K+ active listings by state, type, score, cap rate • search_comps — 100K+ closed transactions for comp benchmarking • score_deal — submit any property for AI scoring against real comp data • find_1031_candidates — exchange-ready deal filter (price8MIT
- AlicenseAqualityDmaintenanceA Model Context Protocol server providing tools for DB queries, API calls, file I/O, and text transformations, enabling AI agents like Claude to perform real-world actions.10MIT
- FlicenseNot gradedqualityDmaintenanceA Model Context Protocol (MCP) server that wraps AppFolio's REST API so Claude can call it natively in any conversation. 38 tools covering portfolio structure, leasing, financials, maintenance, and admin.1-