Skip to main content
Glama
DE-BARY-LLC

debary-mcp-compliance

Official
by DE-BARY-LLC

debary-mcp-compliance

tests

Ein MCP-Server, der einem Sprachmodell Zugriff auf eine Regel-Engine für faires Wohnen und Werbung für US-Immobilienanzeigen gibt – ohne ihm die Entscheidung zu überlassen.

Die Engine ist deterministisch: 81 Phrasenregeln, 35 Pflichtelemente, sechs Bundesstaaten, kein Modell im Entscheidungspfad. Dieser Server bringt die Frage hinein und das Urteil heraus. Das Modell am anderen Ende erhält jeden Befund, das dahinterstehende Gesetz und den Wortlaut, den die Regelbasis stattdessen vorschlägt. Was es nicht erhält, ist die Erlaubnis zu widersprechen.

Das ist der Grund, warum dies ein MCP-Server ist und kein REST-Endpunkt mit einer netten Beschreibung. Ein Modell braucht ein Werkzeug, mit dem es nicht argumentieren kann, und MCP ist das Protokoll, das dieses Werkzeug in seine Reichweite bringt, ohne es in sein Urteilsvermögen zu legen.

Erstellt von DE BARY LLC. Die Engine, die es umschließt, läuft unter gate.debary.us.


Ausprobieren

Keine Konfiguration, keine Regelbasis, kein Netzwerk:

pip install -e .
python demo.py

Die Demo startet den Server als Unterprozess, spricht MCP mit ihm und geht durch ein Inserat, das durchfällt, das Gesetz hinter jedem Befund, eine Reparatur und die erneute Prüfung, die erkennt, was die Reparatur noch übersehen hat.

⚠️ Ohne Konfiguration läuft der Server auf einer Beispiel-Regelbasis – sechs Regeln und vier Pflichtelemente, geschrieben für dieses Repository, damit es von jedem ausgeführt und getestet werden kann. Sie kennzeichnet sich selbst: Jedes Ergebnis trägt backend: "sample" und rules_version: "sample-1". Sie ist illustrativ und kein Compliance-Werkzeug. Weisen Sie GATE_APP_DIR oder GATE_URL auf die echte Basis, um echte Antworten zu erhalten.


Was es bereitstellt

MCP hat drei Grundbausteine. Dieser Server nutzt alle drei, und jeder ist hier, weil er die richtige Form für das hat, was er trägt.

Tools – Aktionen, die das Modell von der Engine anfordert

Tool

Zweck

check_listing

Inserattext durch die Engine laufen lassen. Liefert Befunde, fehlende Pflichtelemente und ein blocking-Urteil zum Verzweigen.

explain_rule

Die vollständige Regel hinter einem Befund, einschließlich des Gesetzes. So zitiert ein Modell die Autorität, statt sich an eine zu erinnern.

suggest_rewrite

Zeichenoffsets jedes problematischen Abschnitts plus die genehmigte Ersatzformulierung. Schreibt bewusst nicht um – das Verfassen von Text ist die Aufgabe des Modells, das Überprüfen die der Engine.

get_receipt

Eine gespeicherte Prüfung: was untersucht wurde, gegen welche Regelversion und den SHA-256 des exakten Textes.

Ressourcen – Material, das das Modell direkt lesen kann

URI

Inhalt

gate://rules

Der Regelbasis-Index: jede Regel und jedes Pflichtelement nach ID, Schweregrad und Kategorie

gate://rules/{rule_id}

Eine Regel vollständig, mit Autorität und Quelldokument

gate://elements/{state}

Offenlegungselemente, die eine Anzeige in diesem Bundesstaat enthalten muss

gate://receipt/{receipt_id}

Eine vergangene Prüfung mit ihrem Verankerungsblock

Prompts – die Arbeitsabläufe, damit jeder Client sie nicht neu erfindet

Prompt

Was er durchsetzt

review_listing

prüfen → zitieren → umschreiben → die Umschreibung erneut prüfen. Der letzte Schritt ist der, der übersprungen wird, wenn ein Modell improvisiert.

explain_verdict

Eine Quittung in etwas verwandeln, mit dem ein lizenzierter Makler arbeiten kann, einschließlich dessen, was die Engine nicht mechanisch verifizieren konnte.


Designhinweise

Das Urteil ist nicht verhandelbar. blocking ist wahr, wenn eine Regel mit hohem Schweregrad ausgelöst wird oder ein Pflichtelement fehlt. Die Tool-Beschreibung sagt das, die Server-Anweisungen sagen das, und der review_listing-Prompt weist das Modell an, eine fehlgeschlagene Umschreibung klar zu melden, statt sie als behoben darzustellen.

blocking: false ist keine Freigabe. Es bedeutet, dass keine Regel ausgelöst wurde. elements_manual listet auf, was die Engine nicht mechanisch prüfen kann – das braucht weiterhin eine Person. Ein Tool, das stillschweigend Erfolg für das meldet, was es nicht untersucht hat, ist schlimmer als kein Tool.

Jeder Befund trägt seine Autorität. Ein Befund ohne Zitat ist eine Meinung, und eine Regel-Engine, die Meinungen hat, ist ein Sprachmodell mit zusätzlichen Schritten. Das wird in der Testsuite durchgesetzt, nicht nur beabsichtigt.

Drei Backends, eine Schnittstelle. LocalBackend importiert die Engine und wertet prozessintern aus – kein Netzwerk, und der Inserattext verlässt nie die Maschine. RemoteBackend ruft eine laufende Gate über HTTP auf. SampleBackend trägt eine kleine eigene Regelbasis, damit der Server auf einem frischen Klon läuft. Alle drei geben dieselbe Form zurück, sodass die MCP-Schicht nie erfährt, welches geantwortet hat.

Der Fallback kündigt sich selbst an. Eine Stichprobe, die stillschweigend das echte Ding imitiert, wäre eine Falle. Diese setzt sample in jedes Ergebnis und sample-1 in das Versionsfeld, und es gibt einen Test, der fehlschlägt, wenn eines der Labels fehlt.

Zwei Transporte. stdio für einen Desktop-Client, streamable-http für den Container. sse wird für ältere Clients weiterhin akzeptiert; es ist im Protokoll veraltet und sollte für nichts Neues gewählt werden.

Erfordert das 2.x SDK. Das Python-SDK hat FastMCP in 2.0 in MCPServer umbenannt und es von mcp.server.fastmcp nach mcp.server.mcpserver verschoben; Ergebnisfelder wurden von structuredContent zu structured_content umbenannt. Dieser Server zielt nur auf 2.x ab. Die Unterstützung beider Hauptversionen hinter einem Shim wurde erwogen und verworfen – es würde eine Kompatibilitätsschicht zu einem Projekt hinzufügen, dessen ganzes Argument ist, dass der Entscheidungspfad einfach bleibt.


Ausführen

Gegen eine lokale Regelbasis

pip install -e .
GATE_APP_DIR=/path/to/compliance-gate/app debary-mcp-compliance

Gegen eine laufende Gate

GATE_URL=https://gate.debary.us GATE_TOKEN=… debary-mcp-compliance

GATE_APP_DIR gewinnt, wenn beide gesetzt sind: Die prozessinterne Auswertung ist schneller und hält den Inserattext von der Leitung fern.

In Docker

docker compose up -d

Der Container lauscht auf :8765/mcp (streamable HTTP) und wird auf Host-Port 8766 veröffentlicht, an Loopback gebunden. Stellen Sie einen Tunnel davor, anstatt einen Port zu öffnen. Die Regelbasis ist schreibgeschützt eingehängt – der Container kann Regeln auswerten, aber nicht ändern.

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

Konfiguration

Variable

Bedeutung

GATE_APP_DIR

Verzeichnis mit engine.py und rules.json. Wählt das lokale Backend.

GATE_URL

Basis-URL einer laufenden Gate. Wählt das Remote-Backend.

(keines gesetzt)

Fällt auf die eingebaute Beispiel-Regelbasis zurück.

GATE_TOKEN

Bearer-Token für diese Gate, falls ihre API geschlossen ist.

MCP_TRANSPORT

stdio (Standard), streamable-http oder sse.

MCP_HOST / MCP_PORT

Bindeadresse für die HTTP-Transporte. Standard 0.0.0.0:8765.


Tests

pip install -e ".[dev]"
pytest -q                                            # 21 protocol tests, no setup
GATE_APP_DIR=/path/to/compliance-gate/app pytest -q  # + 3 production tests

Die Tests importieren die Tool-Funktionen nicht und rufen sie nicht auf. Sie starten den Server als Unterprozess, führen den Handshake über stdio durch und steuern ihn als Client – denn ein Tool, das prozessintern funktioniert und über die Leitung scheitert, ist ein Tool, das nicht funktioniert.

Was sie über den Happy Path hinaus prüfen:

  • Jedes Tool deklariert ein Ausgabeschema, sodass Aufrufer auf Feldern verzweigen statt auf Prosa

  • Jeder Befund trägt eine Autorität und eine Ersatzformulierung

  • Befunde überlappen sich nie, sodass nichts doppelt gezählt und keine Umschreibung beschädigt wird

  • Umschreibungs-Offsets indizieren tatsächlich den Text, den sie angeblich abdecken

  • Der Digest stammt vom exakt eingereichten Text, nicht von einer normalisierten Kopie

  • Eine unbekannte Regel-ID ist ein Fehler, keine leere Antwort

  • Ein Element, das die Engine nicht verifizieren kann, kommt als manual zurück, nie als bestanden

  • Das Beispiel-Backend kennzeichnet sich selbst als solches

Die drei Produktionstests werden übersprungen, wenn GATE_APP_DIR nicht gesetzt ist. Sie prüfen die Regelversion und die Zahlen, die dieses Projekt öffentlich angibt, sowie dass Urteile sich je nach Bundesstaat unterscheiden – Behauptungen, für die keine Stichprobe einstehen kann.


Umfang und Grenzen

⚠️ Keine Rechtsberatung. Die Regeln wurden aus öffentlichen Gesetzen, Behördenrichtlinien und Branchenpolitik zusammengestellt; jede trägt ihre Quelle und das Datum, an dem sie gelesen wurde. Compliance wird von Aufsichtsbehörden und Gerichten entschieden, nicht von diesem Server.

⚠️ Sechs Bundesstaaten: TX, CA, NY, FL, IL, WA. Eine Prüfung gegen den falschen Bundesstaat wendet stillschweigend die falschen Pflichtelemente an – das state-Argument ist nicht kosmetisch.

⚠️ Die Beispiel-Regelbasis ist nicht das Produkt. Sechs Regeln gegen öffentliche Gesetze, geschrieben, damit dieses Repository von jedem ausgeführt werden kann. Die Basis hinter gate.debary.us ist größer, aus Quellendokumenten mit Lesedaten zusammengestellt und wird separat gepflegt.

⚠️ Hinweisbefunde sind bundesstaatsbezogen. Eine Phrase, die in einem Bundesstaat bindend ist, kann in einem anderen als advisory zurückkommen. Das ist die Engine, die präzise ist, nicht unsicher.


Apache-2.0 · DE BARY LLC, Austin TX

-
license - not tested
Not graded
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

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.

View all MCP Connectors

Latest Blog Posts

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