debary-mcp-compliance
Officialdebary-mcp-compliance
米国の不動産リスティング文面向けの公正住宅・広告ルールエンジンに、言語モデルがアクセスできるようにするMCPサーバーです。ただし、判断はモデルに委ねません。
このエンジンは決定的です。81のフレーズルール、35の必須要素、6つの州、判断経路にモデルは一切関与しません。このサーバーは質問を運び込み、判定を持ち帰ります。受け取ったモデルには、すべての指摘事項、その背後にある法令、ルールベースが提案する代替文言が渡ります。しかし、それに異議を唱える許可は渡りません。
これが、RESTエンドポイントに丁寧な説明を添えたものではなく、MCPサーバーである理由です。モデルには、議論できないツールが必要です。そしてMCPは、そのツールをモデルの判断の内側ではなく、手の届く範囲に置くプロトコルです。
DE BARY LLC によって構築されました。ラップしているエンジンは gate.debary.us で稼働しています。
試してみる
設定不要、ルールベース不要、ネットワーク不要:
pip install -e .
python demo.pyデモはサーバーをサブプロセスとして起動し、MCPで通信し、不合格となるリスティング、各指摘の背後にある法令、修正、そして修正がまだ見逃しているものを再チェックで検出する流れを順に実行します。
⚠️ 何も設定しない場合、サーバーはサンプルルールベースで動作します。このリポジトリのために書かれた6つのルールと4つの必須要素で、誰でも実行・テストできるようにしています。これは自己申告します。すべての結果に backend: "sample" と rules_version: "sample-1" が付きます。これは説明用であり、コンプライアンスツールではありません。実際の回答を得るには、GATE_APP_DIR または GATE_URL を実際のベースに向けてください。
公開しているもの
MCPには3つのプリミティブがあります。このサーバーはそのすべてを使用し、それぞれが運ぶものに適した形であるために存在します。
ツール — モデルがエンジンに依頼する処理
ツール | 目的 |
| リスティング文面をエンジンに通します。指摘事項、不足している必須要素、分岐のための |
| 指摘の背後にある完全なルール(法令を含む)を返します。モデルが権威を思い出すのではなく、引用できるようにします。 |
| 問題のある箇所の文字オフセットと、承認された代替文言を返します。意図的に書き換えは行いません — 文面の作成はモデルの仕事、検証はエンジンの仕事です。 |
| 保存されたチェック結果: 何が検査されたか、どのルールバージョンに対してか、正確なテキストのSHA-256。 |
リソース — モデルが直接読める素材
URI | 内容 |
| ルールベースの索引: すべてのルールと必須要素をID、重大度、カテゴリ別に表示 |
| 1つのルールを完全に、権威とソース文書付きで表示 |
| その州で広告が必ず含まなければならない開示要素 |
| 過去のチェック結果とそのアンカーブロック |
プロンプト — ワークフロー。各クライアントが再発明しなくて済むように
プロンプト | 強制する内容 |
| チェック → 引用 → 書き換え → 書き換えを再チェック。最後のステップは、モデルが即興でやるときにスキップされるものです。 |
| レシートを、ライセンスを持つエージェントが行動に移せるものに変換します。エンジンが機械的に検証できなかったものも含みます。 |
設計ノート
判定は交渉不可です。 高重大度のルールが1つでも発火するか、必須要素が1つでも欠けている場合、blocking は true になります。ツールの説明にも、サーバーの指示にも、review_listing プロンプトにもそう書かれており、モデルは失敗した書き換えを修正済みとして提示するのではなく、率直に報告するように指示されます。
blocking: false はクリアランスではありません。 ルールが発火しなかったという意味です。elements_manual は、エンジンが機械的にチェックできないものを列挙します — それらは依然として人間が必要です。検査しなかったものを静かに成功と報告するツールは、ツールがないより悪いです。
すべての指摘には権威が付随します。 引用のない指摘は意見であり、意見を持つルールエンジンは、余計な手順が増えた言語モデルです。これは意図だけでなく、テストスイートで強制されています。
3つのバックエンド、1つのインターフェース。 LocalBackend はエンジンをインポートし、プロセス内で評価します — ネットワーク不要で、リスティングテキストはマシンから出ません。RemoteBackend は稼働中のゲートにHTTPで呼びかけます。SampleBackend は独自の小さなルールベースを持ち、新規クローンでもサーバーが動作します。3つとも同じ形を返すため、MCPレイヤーはどれが応答したかを知ることはありません。
フォールバックは自己申告します。 本物を静かに装うサンプルは罠です。これはすべての結果に sample を、バージョンフィールドに sample-1 を入れ、どちらかのラベルが欠けた場合に失敗するテストがあります。
2つのトランスポート。 デスクトップクライアント用の stdio と、コンテナ用の streamable-http です。sse は古いクライアントのために引き続き受け付けますが、プロトコルでは非推奨であり、新しいものには選ぶべきではありません。
2.x SDKが必要です。 Python SDKは2.0で FastMCP を MCPServer に改名し、mcp.server.fastmcp から mcp.server.mcpserver に移動しました。結果フィールドは structuredContent から structured_content に変わりました。このサーバーは2.xのみを対象としています。両メジャーをシムでサポートすることは検討されましたが、却下されました — 判断経路を単純に保つというプロジェクト全体の主張に、互換レイヤーを追加することになるからです。
実行方法
ローカルルールベースに対して
pip install -e .
GATE_APP_DIR=/path/to/compliance-gate/app debary-mcp-compliance稼働中のゲートに対して
GATE_URL=https://gate.debary.us GATE_TOKEN=… debary-mcp-compliance両方が設定されている場合、GATE_APP_DIR が優先されます。プロセス内評価は高速で、リスティングテキストをワイヤーに載せません。
Dockerで
docker compose up -dコンテナは :8765/mcp(ストリーミングHTTP)で待ち受け、ホストのポート 8766 に公開され、ループバックにバインドされています。ポートを開くのではなく、前面にトンネルを置いてください。ルールベースは読み取り専用でマウントされます — コンテナはルールを評価できても、変更はできません。
Claude Desktop
{
"mcpServers": {
"debary-compliance": {
"command": "debary-mcp-compliance",
"env": { "GATE_APP_DIR": "/path/to/compliance-gate/app" }
}
}
}Claude Code
claude mcp add debary-compliance \
--env GATE_APP_DIR=/path/to/compliance-gate/app \
-- debary-mcp-compliance設定
変数 | 意味 |
|
|
| 稼働中のゲートのベースURL。リモートバックエンドを選択します。 |
(どちらも未設定) | 組み込みのサンプルルールベースにフォールバックします。 |
| そのゲートのベアラートークン(APIが閉じている場合)。 |
|
|
| HTTPトランスポートのバインドアドレス。デフォルト |
テスト
pip install -e ".[dev]"
pytest -q # 21 protocol tests, no setup
GATE_APP_DIR=/path/to/compliance-gate/app pytest -q # + 3 production testsテストはツール関数をインポートして呼び出すのではありません。サーバーをサブプロセスとして起動し、stdioでハンドシェイクを完了し、クライアントとして駆動します — プロセス内で動作してワイヤー上で失敗するツールは、動作しないツールだからです。
ハッピーパス以外にチェックする内容:
すべてのツールが出力スキーマを宣言している — 呼び出し側が散文ではなくフィールドで分岐できるように
すべての指摘に権威 と 代替文言が付いている
指摘が重複しない — 二重カウントや書き換えの破損がないように
書き換えオフセットが、実際に一致するテキストを正しく指している
ダイジェストは、正規化されたコピーではなく、提出された正確なテキストのもの
未知のルールIDはエラーであり、空の回答ではない
エンジンが検証できない要素は
manualとして返され、合格として返されることはないサンプルバックエンドは自分がサンプルであるとラベル付けする
3つの本番テストは、GATE_APP_DIR が設定されていない限りスキップされます。これらは、このプロジェクトが公に述べているルールバージョンと件数、および州によって判定が異なることを検証します — サンプルが代わりを務められない主張です。
範囲と制限
⚠️ 法的助言ではありません。 ルールは公開された法令、機関のガイダンス、業界方針から編集されました。各ルールにはソースと読了日が付いています。コンプライアンスは規制当局と裁判所が決定するものであり、このサーバーが決定するものではありません。
⚠️ 6州: TX、CA、NY、FL、IL、WA。間違った州に対してチェックを実行すると、間違った必須要素が静かに適用されます — state 引数は飾りではありません。
⚠️ サンプルルールベースは製品ではありません。 公開法令に対する6つのルールで、このリポジトリを誰でも実行できるように書かれています。gate.debary.us の背後にあるベースはより大きく、ソース付き文書から読了日付きで編集され、別途保守されています。
⚠️ 助言的指摘は州にスコープされます。 ある州で拘束力のあるフレーズが、別の州では advisory として返されることがあります。それはエンジンが不確かだからではなく、正確だからです。
Apache-2.0 · DE BARY LLC, Austin TX
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Deterministic compliance and vertical knowledge bases for autonomous agents. Free 24hr trial.
Deterministic trust gate for AI output: leaked-secret, prompt-injection & PII in one call.
Deterministic validation for AI-generated artifacts: JSON Schema, OpenAPI response, SQL syntax.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/DE-BARY-LLC/debary-mcp-compliance'
If you have feedback or need assistance with the MCP directory API, please join our Discord server