
Otr Protocol
io.github.yb48666-ctrlPublished by GitHub account yb48666-ctrlv3.1.0Updated Oct 24, 2026
Merchant trust verification for AI agents. One call = trust score, badge, and purchase safety.
Overview
Local MCP server that lets an AI assistant look up merchant trust scores, badges and safety status before recommending a purchase.
- What you can do
- Verify a merchant: returns a 0-100 trust score, badge, six-dimension breakdown, safety status and site category in one call, with non-commerce sites returning identity signals only and no score. Search the registry: paginated merchant lists with scores, badges and recommendations.
- When to use it
- Useful when an assistant helps with shopping or agentic commerce and needs a quick, deterministic check of whether a merchant looks legitimate before recommending it. Less relevant for non-commercial sites, which are not scored.
- Requirements
- Runs locally over stdio, typically started with npx from the npm package. No authentication, environment variables or headers are declared. It relies on the OTR scoring service and public data sources, so network access is needed.
Installation
In SourceWeft
- Open Otr Protocol in the dashboard and add it to a workspace.
- Enable the server for the chats that should use its tools.
Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.
Other MCP clients
Follow the launch instructions in the repository.
README
OTR Protocol
The merchant trust layer for AI agent commerce
Deterministic, verifiable, open-source merchant trust scoring for the agentic economy
Protocol v4.1
[npm] [MIT License] [GitHub Stars] [Issues]
Specification • Scoring Algorithm • Quick Start • Packages • Contributing
The Problem
AI agents are increasingly making purchase decisions on behalf of consumers. The agentic commerce stack is taking shape -- but there is a critical missing layer:
Without OTR, AI agents operate blind -- unable to distinguish a legitimate retailer from a sophisticated scam site. This exposes consumers to fraud and erodes trust in the entire agentic commerce ecosystem.
The Solution
OTR (Open Trust Registry) provides deterministic, verifiable merchant trust scores using 6 verification dimensions, a 10-layer anti-fraud pipeline (Layer 0: Google Web Risk one-vote veto + Layers 1-9: core detection engine), and three-layer immutable audit trail. It is fully open-source (MIT), machine-readable, and designed from the ground up for AI agent consumption.
Key Properties
- Deterministic -- Same inputs always produce identical outputs. Any validator can reproduce any score.
- Verifiable -- All data sources are publicly accessible. No hidden factors or proprietary signals.
- Unforgeable -- Verification dimension weighted at 40% in public assessment. SEC filings, Wikidata entries, and 10-year domain age cannot be faked.
- Tamper-proof -- SHA-256 hash chain + Base L2 blockchain anchoring + IPFS monthly snapshots.
- Fair -- No pay-for-trust. Scores reflect behavior, not subscription level.
- Category-aware -- Three site categories (ecommerce / saas / non_commerce) with tailored scoring weights.
- Safety-first -- Google Web Risk Layer 0 one-vote veto: flagged domains get score=0, status SUSPENDED.
Quick Start
For AI Agents (MCP Server)
The OTR MCP Server uses the standard Model Context Protocol and works with all MCP-compatible clients.
Claude Desktop / Claude Code -- add to claude_desktop_config.json:
Cursor / Windsurf / Cline -- same configuration in .cursor/mcp.json or equivalent. Any client implementing the MCP specification works out of the box.
Now any AI agent can verify merchants in natural language:
"Is nike.com trustworthy?" --> OTR returns trust score 88/100, badge GOLD, and a 6-dimension breakdown (Verification, Security, Governance, Transparency, DataQuality, Fulfillment) with evidence sources.
Two MCP Tools — One Call = Complete Answer
Design philosophy: AI agents should get everything they need in a single tool call. verify_merchant returns trust assessment + purchase capabilities + links + policy URLs + data freshness — no need to chain multiple calls.
TypeScript SDK
Core Scoring Engine
Architecture
How Scoring Works
6 Trust Dimensions
Weights vary by site category:
What Each Dimension Measures
Why Weights Differ by Category
- E-commerce: Verification weighted highest (0.40) because buyers need to trust the store before purchasing. Identity signals (SEC filings, Wikidata, domain age) are the strongest defense against fraudulent shops.
- SaaS: Security (0.20) and Governance (0.23) weighted higher because SaaS platforms handle user data and need clear policies. Users entrust ongoing access to their information.
- Non-commerce: Not scored. Sites that do not sell products or services lack applicable commerce dimensions (product data, checkout, fulfillment).
Three Site Categories
Non-Commerce Sites
Sites classified as non_commerce (e.g., Wikipedia, government portals, news sites) are not scored:
trustScore: nullbadge: nullscanStatus: "non_commerce"- Basic verification data (SSL, entity info) is still returned, but no numerical trust score is assigned.
Reason: Non-commerce sites do not sell products or services, so trust scoring dimensions (product data, checkout, fulfillment) do not apply.
OTR-ID
Unique identifier assigned to each evaluated domain.
Format: OTR-1{mode}-{fingerprint}-{checksum}
1— Protocol versionmode—C(COLD: pre-authorization scan) orA(AUTH: merchant authorized)fingerprint— 12 uppercase hex chars, derived from SHA-256 of the normalized domain (first 48 bits)checksum— 2 Base36 chars (Luhn mod-36 validation + deterministic salt)
Properties:
- Deterministic: Same domain always produces the same fingerprint
- Irreversible: SHA-256 is cryptographically one-way; truncated to 48 bits, the original domain cannot be recovered
- Collision-resistant: ~281 trillion possible fingerprints (2^48)
Lifecycle:
Identity change is detected when weighted signals exceed threshold 3: GLEIF entity mismatch (3), nameserver change (2), content similarity < 30% (2), Wikidata P856 mismatch (2), domain parking > 90 days (2), SSL organization change (1).
Google Web Risk (Layer 0 Safety)
Google Web Risk operates as a Layer 0 one-vote veto, separate from dimension scoring:
- Flagged domain →
trustScore = 0,otrIdStatus = SUSPENDED,safety.googleWebRisk = true - Does not participate in dimension weight calculation
- Overrides all other signals regardless of their values
Two Scoring Modes
Trust Badges
Scores 95+ trigger human review recommendation. No hard cap. If safety.status is "DANGEROUS" (Google Web Risk), DO NOT recommend regardless of score.
10-Layer Anti-Fraud Engine
OTR prevents fraudulent sites from gaming the system through a 10-layer detection pipeline:
Anti-Gaming Detection Patterns (Layer 9)
Anti-Gaming in Practice
Data Integrity
OTR uses a three-layer immutable audit trail to ensure that historical scores cannot be tampered with:
Public Verification Endpoints:
Multi-Source Consensus
OTR never blindly trusts any single data source. Every external data point must pass cross-validation:
Data Desensitization
When merchants provide fulfillment data, OTR applies 4 levels of privacy protection:
Why OTR?
Packages
Conformance Testing
Any OTR implementation must pass the standard conformance test vectors:
The test suite validates determinism: identical inputs produce identical outputs across all implementations (TypeScript, Python, Go, Rust). This ensures a merchant's trust score is the same regardless of which validator computed it.
Test vectors in conformance/test-vectors.json cover:
- Site category detection (ecommerce / saas / non_commerce)
- Scoring mode detection (COLD vs AUTH)
- Individual dimension scoring with category-specific weights
- Badge and tier assignment (PLATINUM/GOLD/SILVER/BRONZE/UNRATED)
- Anti-gaming detection and penalty application
- Google Web Risk safety override
- Non-commerce exclusion
- Edge cases (empty data, null fields, boundary values)
Scoring Integrity
OTR Protocol maintains the integrity and independence of merchant trust scores through these commitments:
- No Score Selling -- Trust scores cannot be purchased, sponsored, or commercially influenced. No premium tiers, sponsorships, or partnerships affect scoring.
- No Pay-for-Trust -- Subscription status has zero impact on OTR scores. Free-tier merchants and enterprise customers are evaluated identically.
- No Human Override -- All scores are computed algorithmically. No individual can manually adjust any score.
- Algorithmic Transparency -- The entire algorithm is open-source (MIT). Anyone can audit, verify, and reproduce any score. Re-scanning the same domain produces the same score (deterministic pipeline).
- Data-Driven Only -- Scores reflect independently verifiable signals. Merchant-submitted data is marked
verified=falsewithscoringWeight=0and requires corroboration from at least 2 independent authoritative sources.
Enforcement: Open-source code + conformance tests + governance process + 10-layer anti-gaming detection with compounding multipliers.
Mission
OTR exists to create a fair, transparent trust layer for the AI agent commerce era. Any merchant -- regardless of size or brand recognition -- can earn trust through verifiable performance. The only way to improve a score is to improve actual trust signals.
Public Data Sources
OTR evaluates merchants using publicly accessible data only (COLD mode). No merchant cooperation required.
Roadmap
Contributing
We welcome contributions. See CONTRIBUTING.md for detailed guidelines.
Key requirements for scoring algorithm changes:
- RFC-style proposal in
spec/ - Updated conformance test vectors
- Determinism verification
- Review by maintainers
License
MIT -- ORBEXA
Protocol Specification • Scoring Algorithm • Governance Model • Contributing Guide • Code of Conduct
Built by ORBEXA -- Infrastructure for Agentic Commerce
Source: README.md at commit 4e48dd1
Tools
0Version history
1- v3.1.0LatestSep 16, 2026
Score
50% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
- Reached in the last 30 days25 pts
Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.
- Auth declared10 pts
Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.
- Tools listed15 pts
Answer tools/list without a credential, or ship a package that starts in a sandbox without one.
- DescriptionRequired15 pts
- Logo10 pts
- Documentation15 pts
- License10 pts