Revettr Mcp

io.github.AlexanderLawson17由 GitHub 帳號 AlexanderLawson17 發布v0.2.3更新於 Oct 24, 2026

Counterparty risk scoring for agentic commerce via x402 micropayments.

已驗證Streamable HTTP可網頁執行金融安全與監控商業與電商

概覽

AI 產生的概覽

Revettr 在代理付款前對交易對手(錢包、網域、IP、公司)進行風險評分,並可匯出簽章稽核包。

可以做什麼
依 EVM 或 Stellar 錢包、網域、IP 或公司名稱對交易對手評分,回傳 0-100 風險分數、等級、信心度與風險標記,訊號包含制裁名單篩查。對已驗證的 MCP 簽發者身分給出建議性、非阻斷的風險判定。為某個錢包匯出經 JWS 簽章的評分決策稽核包,需操作員憑證才能使用。
適用情境
當代理即將向陌生交易對手付款或交易、需要快速風險訊號時使用;或需要為合規目的保留簽章的評分決策紀錄時使用。
執行需求
遠端端點,或透過 stdio 執行 PyPI 套件 revettr。每次評分請求透過 x402 在 Base 上支付 0.01 USDC,因此需要已儲值的錢包;SDK 可接收錢包私鑰以自動付款。無需 API 金鑰或帳號。
安裝前請注意
每次呼叫都會花費真實 USDC。SDK 可接收錢包私鑰以自動付款,請勿寫入程式碼,應使用環境變數或密鑰管理服務。評分僅供參考,不構成合規認證或合法性保證,交易決策仍由你負責。稽核匯出受操作員限制,且涵蓋任意錢包。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Revettr Mcp,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Web executable,透過 Streamable HTTP。 遠端服務在工作區中設定後即可從網頁執行環境執行。

交給代理程式安裝

把這段提示詞貼上到 Claude Code、Codex、Cursor 等代理程式,或 SourceWeft 對話中。代理程式會讀取該伺服器的安裝指南,先向你展示發布者、端點和登入方式,經你同意後再把它新增到你的客戶端。金鑰不會寫進任何命令。

閱讀 https://sourceweft.com/mcp/io.github.AlexanderLawson17%2Frevettr-mcp/install.md,並按其中說明把這個 MCP 伺服器接入我的客戶端。修改任何設定之前,先告訴我它的發布者、端點和登入方式,等我確認。不要把 API 金鑰寫進命令或我會提交的檔案;問我金鑰應從哪裡取得。

檢視代理程式所依據的安裝指南

其他 MCP 客戶端

把它新增到你客戶端的 mcpServers 設定中。

{
  "mcpServers": {
    "revettr": {
      "type": "http",
      "url": "https://revettr.com/mcp"
    }
  }
}

README

Revettr

[Glama MCP server]

Counterparty risk scoring for agentic commerce. One API call answers: "Should this agent send money to this counterparty?"

Revettr scores counterparties by analyzing domain intelligence, IP reputation, on-chain wallet history, and sanctions lists. It's designed for AI agents transacting via x402 on Base.

Install

bash
pip install revettr

Quick Start

python
from revettr import Revettr
client = Revettr()
# Score a counterparty — send whatever data you havescore = client.score(    domain="uniswap.org",    ip="104.18.28.72",    wallet_address="0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045",)
print(f"Score: {score.score}/100 ({score.tier})")print(f"Confidence: {score.confidence}")print(f"Flags: {score.flags}")
if score.tier == "critical":    print("DO NOT TRANSACT")

What Gets Scored

Send any combination of inputs. More data = higher confidence.

InputSignal GroupWhat It Checks
domainDomain IntelligenceWHOIS age, DNS config (MX, SPF, DMARC), SSL certificate
ipIP IntelligenceGeolocation, VPN/proxy/Tor detection, datacenter vs residential
wallet_addressWallet AnalysisTransaction count, wallet age, counterparty diversity, on-chain behavior
company_nameSanctions ScreeningOFAC SDN, EU consolidated, UN consolidated sanctions lists

Response

json
{  "score": 90,  "tier": "low",  "confidence": 0.75,  "signals_checked": 3,  "flags": [],  "signal_scores": {    "domain": {      "score": 80,      "flags": [],      "available": true,      "details": {        "domain_age_days": 2673,        "dns": {"has_mx": true, "has_spf": true, "has_dmarc": true}      }    },    "ip": {      "score": 100,      "flags": [],      "available": true,      "details": {        "country": "US",        "asn_org": "Cloudflare, Inc.",        "is_private": false      }    },    "wallet": {      "score": 100,      "flags": [],      "available": true,      "details": {        "blockchain": {"tx_count": 100, "unique_counterparties": 29},        "onchain": {"nonce": 16, "eth_balance": 0.072}      }    }  },  "metadata": {    "inputs_provided": ["domain", "ip", "wallet_address"],    "latency_ms": 1185,    "version": "0.1.0"  }}

Score Tiers

ScoreTierMeaning
80-100lowCounterparty appears legitimate
60-79mediumSome signals warrant caution
30-59highMultiple risk indicators present
0-29criticalStrong risk signals — do not transact

A score of 0 means a hard match (e.g., exact sanctions hit). This overrides all other signals.

Risk Flags

Flags tell you exactly what triggered a score reduction. They are grouped by signal category:

CategoryExamplesWhat It Covers
Domaindomain_age_under_*, no_mx_records, ssl_*Domain age, DNS hygiene, SSL validity
IPtor_exit_node, known_vpn, high_risk_country_*Anonymization, geolocation risk
Walletwallet_never_transacted, wallet_age_under_*On-chain history, activity patterns
Sanctionssanctions_exact_match, sanctions_high_confidence_matchOFAC/EU/UN sanctions screening

The full set of flags and their descriptions are returned in the API response. Flag names are stable and machine-readable.

Usage Examples

Wallet only (minimal)

python
score = client.score(wallet_address="0xabc...")

Domain + IP (web service check)

python
score = client.score(domain="some-api.xyz", ip="185.220.101.42")

Full check

python
score = client.score(    domain="merchant.com",    ip="104.18.28.72",    wallet_address="0xabc...",    company_name="Merchant LLC",)

With x402 auto-payment

The client handles x402 payment automatically. You need a funded wallet:

python
from revettr import Revettr
client = Revettr(    wallet_private_key="0xYOUR_PRIVATE_KEY",  # Wallet that pays for the API call)
# Client automatically handles the 402 → payment → retry flowscore = client.score(wallet_address="0xabc...")

Security: Never hardcode private keys. Use environment variables or a secrets manager in production.

With Virtuals Protocol (ACP)

Score seller agents before creating jobs on the Agent Commerce Protocol:

python
from revettr import Revettr
client = Revettr()result = client.score(wallet_address=seller_wallet)if result.score >= 60:    # Safe to create ACP job    job_id = chosen_offering.initiate_job(        service_requirement={"task": "Analyze Q1 sales data"},        evaluator_address=evaluator_address,    )

See examples/virtuals_acp_safe_buyer.py for the full buyer agent flow.

Safe Agent Payments

Drop-in replacement for x402 payments that automatically checks counterparty risk before sending money. If the counterparty scores below your threshold, the payment is blocked.

python
from revettr import SafeX402Client, PaymentBlocked
async with SafeX402Client(    wallet_private_key="0x...",    min_score=60,    # Block "high" and "critical" risk    on_fail="block", # Raise PaymentBlocked (default)) as http:    try:        # Automatically scores the counterparty before paying        response = await http.post("https://some-api.com/endpoint", json=data)    except PaymentBlocked as e:        print(f"Blocked: {e.url} scored {e.score}/100")
on_failBehavior
"block" (default)Raise PaymentBlocked exception
"warn"Log warning, proceed with payment
"log"Silently log, proceed with payment

Pricing

TierPriceWhat You Get
Standard$0.01 USDCAll available signals based on inputs provided

Payment is via x402 protocol — USDC on Base network. No API keys, no accounts, no contracts.

API Reference

POST /v1/score

Payment: x402 — $0.01 USDC on Base per request

Request body (JSON):

FieldTypeRequiredDescription
domainstringNoDomain or URL
ipstringNoIPv4 address
wallet_addressstringNoEVM address (0x...)
chainstringNoBlockchain network (default: base)
company_namestringNoName to screen against sanctions
emailstringNoEmail (future — not scored yet)
amountfloatNoTransaction amount in USD (context only)

At least one of domain, ip, wallet_address, or company_name is required.

GET /health

Payment: None (always free)

Returns API status and signal source availability.

Direct HTTP (without SDK)

bash
# Without payment (returns 402):curl -X POST https://revettr.com/v1/score \  -H "Content-Type: application/json" \  -d '{"domain": "example.com"}'
# Returns HTTP 402 with payment-required header containing x402 payment terms

Disclaimer

Revettr is an informational tool. It aggregates publicly available signals and returns a risk score. It is not a compliance certification, legal advice, or guarantee of counterparty legitimacy. You are responsible for your own transaction decisions.

Built by

L Squared Digital Holdings

來源:README.md,提交 012ec62

工具

3

score_counterparty

Score a counterparty before sending money. Returns risk score 0-100. Accepts EVM wallets (0x...), Stellar wallets (G...), domains, IPs, and company names.

輸入參數ipchaindomaincompany_namestellar_walletwallet_address

verify_issuer

Get an advisory risk verdict for a validated MCP issuer (iss). Attach this at your MCP `iss` validation step: identity is your job, this adds risk. Returns the same signed RiskCheckResult as POST /v1/iss-verdict. Advisory and non-blocking — you decide based on the tier.

輸入參數iss必填chainiss_kindwallet_address

export_audit_bundle

Export a JWS-signed audit-trail bundle of scoring decisions for a wallet. MCP equivalent of GET /v1/audit/export. Compliance artifact for EU AI Act Article 12 logging / NYDFS certification / debanking-defense. Because audit data covers arbitrary wallets, this tool is operator-gated: pass the operator's ``admin_token`` (checked against ``REVETTR_ADMIN_TOKEN``). Disabled when that env var is unset. Note: ``admin_token`` travels in the MCP request payload, so operators should treat MCP transcripts/logs as sensitive. Verify the returned ``bundle_jws`` against /.well-known/jwks.json; the schema is in docs/audit-trail-export.md.

輸入參數endstartadmin_token必填wallet_address必填

版本歷史

1
  1. v0.2.3最新Sep 16, 2026

評分

已滿足適用檢查項的 100%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通必需25 分
  • 已宣告認證方式必需10 分
  • 已列出工具必需15 分
  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分