io.github.kaditang/402sentinel-mcp
DEPRECATED: hosted 402Sentinel retired 2026-10-31. Client for x402 payment-safety checks.
Installation
Ajoutez ceci à la configuration MCP de votre client (Claude Desktop : claude_desktop_config.json ; Cursor : .cursor/mcp.json ; VS Code et les autres utilisent la même forme « mcpServers »).
@kaditang/402sentinel-mcpclaude mcp add 402sentinel-mcp -e 'CLIENT_PRIVATE_KEY=<your client_private_key>' -e 'SENTINEL_URL=<SENTINEL_URL>' -- npx -y @kaditang/402sentinel-mcp@0.9.0
{
"mcpServers": {
"402sentinel-mcp": {
"command": "npx",
"args": [
"-y",
"@kaditang/402sentinel-mcp@0.9.0"
],
"env": {
"CLIENT_PRIVATE_KEY": "<your client_private_key>",
"SENTINEL_URL": "<SENTINEL_URL>"
}
}
}
}
Variables d'environnement
CLIENT_PRIVATE_KEYobligatoire secret A Base wallet holding USDC on-chain (no gas needed) — pays per call, from $0.002.SENTINEL_URLobligatoire Required since 0.9.0 (the hosted service was retired on 2026-10-31): base URL of a 402Sentinel server you trust. 402sentinel.com is refused.
Documentation
Tirée du README du projet sur GitHub, actualisée chaque semaine. Les liens ouvrent GitHub.
402sentinel-mcp
[!WARNING] Retirement notice. The 402Sentinel service this package talks to (402sentinel.com) will be retired on 31 October 2026, and the domain will not be renewed (it lapses in May 2027). After 31 October the default endpoint stops answering; after May 2027 the domain may be controlled by someone else. This package can make x402 payments, so do not keep a version that defaults to 402sentinel.com — uninstall it, or point it only at an endpoint you trust. The package is deprecated; the code stays here under its licence.
0.9.0 (final release): there is no default endpoint any more, and
402sentinel.comis refused even if you set it, so this version can never send requests or payments to the retired domain. SetSENTINEL_URLonly to a server you run and trust.
MCP tools that let your AI agent check an x402 counterparty's risk before it
pays — and turn that risk into an enforceable wallet spending policy. Give it a
payTo address, get back a 0–100 risk score + an allow / review / block
decision, scored from on-chain settlement behaviour on Base (address age,
facilitator-aware payer diversity, settlement maturity) + a delivery-outcome
flywheel, with honest confidence/coverage.
Tools — vet the seller:
assess_counterparty($0.002) — risk score + decision + a ready-to-applyrecommended_policyassess_counterparty_deep($0.02) — same, scans more on-chain historyrecommend_policy($0.002) — decision + wallet-ready spending policy (caps, denylist, approval)report_outcome(free) — after paying, report delivery to train the reliability flywheel
Tools — vet the payment itself (buyer-side):
firewall($0.002) — should YOUR agent make THIS payment now? Catches fraudulent routing (payTo swapped vs the address you usually pay), drain velocity, overcharge, and injection-sourced instructions.agent_id+ a wallet-ownership signature are attached automatically from your configured wallet — trusted routing history with no extra steps.firewall_record(free) — seed your agent's payment history so the firewall has a behavioural baseline.firewall_outcome(free) — after a verdict, report what actually happened (fraud / legit / …) so the firewall learns which signals are predictive and downweights noisy ones (safety signals stay deterministic).
Tools — vet the asset and the flow:
assess_rwa($0.02) — RWA risk gate: score a tokenized asset (treasury/stock/credit) before buying it. Proxy-aware transfer-restriction scan + behavioral transfer simulation — catches permissioned securities an agent can buy but not transfer or redeem (trapped funds), live pause state, issuer identity + issuer sanctions.compliance_check($0.02) — pre-pay compliance screen: OFAC sanctions (hard block), counterparty due-diligence tier, structuring/smurfing detection, FATF Travel-Rule threshold (informational). Not legal advice.verify_service($0.02) — opt-in 402Sentinel Verified badge: submit your own payTo for a deep settlement-graph audit; pass → signed time-boxed credential + public allow-list. Failures stay private.
It's a thin client for the hosted service at **https://402sentinel.com** — the scoring model and facilitator-identification logic live server-side (closed); this package only forwards the request and pays for it, so it's open source.
Quickstart — gate a payment in 5 lines
Before your agent pays any x402 counterparty, ask the firewall; if it doesn't say
allow, don't pay. No MCP needed — any standard x402 v2 client works:
import { x402Client, x402HTTPClient } from "@x402/core/client";
import { registerExactEvmScheme } from "@x402/evm/exact/client";
import { privateKeyToAccount } from "viem/accounts";
const client = new x402Client();
registerExactEvmScheme(client, { signer: privateKeyToAccount(process.env.AGENT_KEY) });
const http = new x402HTTPClient(client);
const body = JSON.stringify({
payment: { payto_address: target, amount, resource_url },
context: { source: "web_content", untrusted_text: pageYouActedOn }, // pass what you scraped
});
const url = "https://402sentinel.com/api/firewall";
const init = (h = {}) => ({ method: "POST", headers: { "Content-Type": "application/json", ...h }, body });
const r1 = await fetch(url, init());
const pr = http.getPaymentRequiredResponse((n) => r1.headers.get(n), await r1.json());
const payment = http.encodePaymentSignatureHeader(await http.createPaymentPayload(pr));
const data = await (await fetch(url, init(payment))).json();
if (data.decision !== "allow") throw new Error(`402Sentinel ${data.decision}: ${data.recommended_action}`);
// …safe to pay `target`.
That one $0.002 call catches fraudulent routing (payTo swapped vs the address you
usually pay), prompt-injection payments (a payTo that appeared in untrusted_text),
drains, overcharges, and sanctioned/illicit counterparties.
In an MCP framework (Claude, Cursor, …) instead, just add the server — your agent gets all 10 tools by name (see Configure below):
{ "mcpServers": { "402sentinel": { "command": "402sentinel-mcp", "env": { "CLIENT_PRIVATE_KEY": "0x…" } } } }
Install
npm i -g @kaditang/402sentinel-mcp
Configure
Add to your MCP client (Claude Desktop, Cursor, etc.):
{
"mcpServers": {
"402sentinel": {
"command": "402sentinel-mcp",
"env": {
"CLIENT_PRIVATE_KEY": "0x... // a Base wallet holding USDC on-chain (no ETH/gas needed)"
}
}
}
}
Paid calls cost from $0.002 (shallow) to $0.02 (deep), paid automatically
in USDC via standard x402 (exact EIP-3009 on Base — the facilitator submits the
transfer, so the buyer needs no gas) from the configured wallet. The free tools
need no key.
Use
The agent calls it before authorizing a payment:
assess_counterparty({
target: { payto_address: "0x..." },
payment_context: { amount: 10, asset: "USDC" },
policy: { block_at_score: 70, review_at_score: 40 }
})
→ { decision: "review", risk_score: 52, confidence: 0.41, coverage: {...},
dimensions: [...], recommendation: "...",
recommended_policy: { action: "limit", max_payment_usdc: 5, daily_cap_usdc: 15,
add_to_denylist: false, require_human_approval: true } }
block/deny→ don't payreview/limit→ cap exposure / escrow (userecommended_policyfor the caps)allow→ proceed
recommend_policy(...) returns just the decision + recommended_policy — apply
max_payment_usdc / daily_cap_usdc / add_to_denylist directly to your agent
wallet's spending limits. After paying, call report_outcome({ assessment_id,
outcome }) to improve future scores.
Disclaimer
Algorithmic risk signal, informational only — not advice, not an endorsement, and not an accusation about any party. Scores are probabilistic estimates from limited public on-chain data and heuristics, and may misclassify. Do your own due diligence; don't rely on it as your sole basis to pay or refuse. See https://402sentinel.com/terms.
MIT.
Questions fréquentes
Qu'est-ce que io.github.kaditang/402sentinel-mcp ?
DEPRECATED: hosted 402Sentinel retired 2026-10-31. Client for x402 payment-safety checks.
Comment installer io.github.kaditang/402sentinel-mcp ?
Il s'exécute sur votre machine. Dans Claude Code : claude mcp add 402sentinel-mcp -e 'CLIENT_PRIVATE_KEY=<your client_private_key>' -e 'SENTINEL_URL=<SENTINEL_URL>' -- npx -y @kaditang/402sentinel-mcp@0.9.0. Pour les autres clients, collez la configuration JSON de cette page dans leurs réglages MCP.
Faut-il une clé API pour io.github.kaditang/402sentinel-mcp ?
Oui. Il attend CLIENT_PRIVATE_KEY, SENTINEL_URL, à renseigner dans sa configuration.
io.github.kaditang/402sentinel-mcp est-il open source ?
Son code est public sur GitHub, mais le dépôt ne déclare pas de licence standard.
Qui maintient io.github.kaditang/402sentinel-mcp ?
Il est publié par kaditang. AI.tn le référence sans le maintenir ni le recommander.
Issu du registre MCP officiel. Être listé n'est pas une recommandation : vérifiez le code et les permissions d'un serveur avant de lui donner accès à vos données.