Two ways to stop your agent calling untrusted MCP servers. Free for low volume, metered at scale (see pricing).
Change one base URL. The gateway checks trust, blocks low-score servers, forwards the call, and returns an attestation receipt. Full docs: /atlas/gateway.
POST https://dominionobservatory.com/atlas/gateway?target=https://target-server.com/mcp&min_score=50 # same JSON-RPC body. 403 if blocked; otherwise the server's normal response # plus headers: X-Dominion-Trust, X-Dominion-Receipt, X-Dominion-Attestation
import requests
def trust_ok(server_url, min_score=70):
"""Gate an MCP tool call on its independent Dominion Trust Score.
Returns True to allow, False to block. Unrated servers are allowed but flagged."""
r = requests.get("https://dominionobservatory.com/atlas/server",
params={"url": server_url}, timeout=5)
if r.status_code == 404:
return True # not in index yet -> allow, but consider logging
d = r.json()
score = d.get("trust_score")
if score is None or not d.get("total_calls"):
return True # unrated: no independent data yet
return score >= min_score
# before calling a tool:
if not trust_ok("https://some-mcp-server.com/mcp"):
raise RuntimeError("Blocked: MCP server below trust threshold")
async function trustOk(serverUrl, minScore = 70) {
const r = await fetch("https://dominionobservatory.com/atlas/server?url=" + encodeURIComponent(serverUrl));
if (r.status === 404) return true; // not indexed yet -> allow
const d = await r.json();
if (d.trust_score == null || !d.total_calls) return true; // unrated
return d.trust_score >= minScore;
}
Scores are independent and behavioral (uptime, success rate, latency) — a neutral third party, not a marketplace. Look up any server at /atlas/score.