AGENTES DE IAMCP y x402
La validación de direcciones que tu agente de IA puede pagar solo.
Una herramienta MCP, validate_address, y pago por llamada con x402: tu agente descubre el servicio gratis, paga 0,02 USDC por validación en la red Base y recibe la dirección normalizada. Sin cuenta, sin clave de API, sin intervención humana.
- MCP 2025-06-18
- x402 v1 · v2
- 0,02 USDC / llamada
- USDC · Base
En tres llamadas
El mismo servicio que por HTTP, conectado al protocolo que tu agente ya habla.
Descubrir, gratis
La tarjeta
/.well-known/mcp-serverdescribe el servidor.initializey luegotools/listen/mcpno cuestan nada.Recibir la oferta
Un
tools/callsin pago devuelve un resultado de herramienta en error (isError) cuyo contenido es la oferta exacta en x402 v2: red, token USDC, importe (20000 unidades, es decir 0,02 USDC), destino.Pagar y recibir
El agente firma la autorización (EIP-3009) y repite la llamada con el pago en
params._meta["x402/payment"](o la cabeceraX-PAYMENTde un cliente v1). El resultado llega tras la liquidación, con su recibo.
Configuración de un cliente MCP
{
"mcpServers": {
"address-validator": { "url": "https://kder-ai.com/mcp" }
}
}
La llamada a la herramienta
POST https://kder-ai.com/mcp
{
"jsonrpc": "2.0", "id": 1, "method": "tools/call",
"params": {
"name": "validate_address",
"arguments": { "address": {
"street": "1600 Amphitheatre Parkway", "city": "Mountain View",
"state": "CA", "zip": "94043", "country": "US" } }
}
}
La oferta leída en el resultado de la herramienta
"accepts": [{
"scheme": "exact", "network": "eip155:8453",
"amount": "20000",
"asset": "USDC", "payTo": "0x…"
}]
Pagar desde su código
Las bibliotecas oficiales de x402 leen la oferta, firman y pagan solas, tanto en x402 v1 como en v2. Fije un límite de gasto y llame a la API como a cualquier otra.
Python · x402 + httpx
# pip install "x402[httpx,evm]"
import asyncio, os
from eth_account import Account
from x402 import x402Client
from x402.http.clients import x402HttpxClient
from x402.mechanisms.evm import EthAccountSigner
from x402.mechanisms.evm.exact.register import register_exact_evm_client
async def main():
client = x402Client().set_spend_controls({"max_amount_per_payment": "$0.05"})
signer = EthAccountSigner(Account.from_key(os.environ["EVM_PRIVATE_KEY"]))
register_exact_evm_client(client, signer)
async with x402HttpxClient(client) as http:
response = await http.post("https://kder-ai.com/validate", json={"address": {
"street": "1600 Amphitheatre Parkway", "city": "Mountain View",
"state": "CA", "zip": "94043", "country": "US"}})
await response.aread()
print(response.status_code, response.json())
asyncio.run(main())
JavaScript · @x402/fetch
// npm install @x402/fetch @x402/evm viem, then run as an ES module (pay.mjs)
import { x402Client, wrapFetchWithPayment } from "@x402/fetch";
import { ExactEvmScheme } from "@x402/evm/exact/client";
import { privateKeyToAccount } from "viem/accounts";
const client = new x402Client();
client.setSpendControls({ maxAmountPerPayment: "$0.05" });
client.register("eip155:*", new ExactEvmScheme(privateKeyToAccount(process.env.EVM_PRIVATE_KEY)));
const pay = wrapFetchWithPayment(fetch, client);
const response = await pay("https://kder-ai.com/validate", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({ address: {
street: "1600 Amphitheatre Parkway", city: "Mountain View",
state: "CA", zip: "94043", country: "US" } }),
});
console.log(response.status, await response.json());
Lo que recibe el agente
Una respuesta JSON, siempre con la misma forma.
validatedsi la dirección se reconoce o nostandardizedline1, line2, city, state, zip, countrylatitude · longitudelas coordenadas GPS de la direccióndeliverabilityresidential, commercial…confidenceun índice de confianza de 0 a 1degradedverdadero: el proveedor no respondió, reintenta
Por qué x402 para un agente
Sin cuenta que crear, sin clave que guardar, sin suscripción: el agente paga exactamente lo que consume, cuando lo consume. Una autorización ya usada se rechaza: el mismo pago nunca cuenta dos veces.
Conviene saber
- Estados Unidos se verifica con USPS (DPV); Francia y ultramar, con la Base Adresse Nationale; en otros lugares, la verificación sigue siendo parcial.
degradedverdadero significa que el proveedor no respondió: no es una dirección errónea, repite la llamada más tarde.- No más de 10 peticiones por segundo y por dirección IP.
- La dirección no se guarda en los registros; el resultado queda 30 días en caché para responder más rápido.
- Una tienda sin monedero usa el mismo servicio con una clave de API y una suscripción.
Preguntas frecuentes
¿Mi agente necesita una cuenta?
No. El pago x402 basta: sin registro, sin clave de API.
¿Qué monedero hace falta?
Un monedero con USDC en la red Base capaz de firmar una autorización EIP-3009, como los que ofrecen las bibliotecas x402.
¿Cuánto cuesta el descubrimiento?
Nada. initialize, tools/list y la tarjeta de descubrimiento son gratuitos; solo tools/call es de pago, 0,02 USDC.
¿Y si el proveedor no responde?
El resultado lleva degraded: true y una confianza baja. No bloquees el pedido: repite la llamada un poco más tarde.