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 分