ar-agents
Open infrastructure for Argentina's sociedades de IA (AI corporations). 36 npm packages · 235 typed tools · 6 RFCs · a forensic audit log. Built in Argentina.
The stack covers what an AI-operated Argentine company needs to exist and
operate: identity (AFIP/ARCA), payments, invoicing, banking, government
filings, communications, and a forensic audit log. The deepest package,
@ar-agents/mercadopago, exposes 89 typed tools
across the agent-relevant Mercado Pago API surface for the
Vercel AI SDK 6 Experimental_Agent, one of the 33
packages in the @ar-agents/* stack:
Payments · Subscriptions · Checkout Pro · Marketplace OAuth · Order Management · Customers · Cards · Cuotas · QR · 3DS · Point devices · Stores+POS · Account/Balance/Settlements · Webhooks · Disputes · Lookups · Bank Accounts
Edge Runtime. Vercel KV adapters for state, OAuth, idempotency, and audit. OpenTelemetry instrumentation. Deterministic idempotency by default. Programmatic HITL on irreversible operations.
pnpm add @ar-agents/mercadopago ai zod
Deploys apps/mp-hello, a runnable agent on Vercel with
Edge Runtime API routes, MP webhook handler, and Upstash-backed subscription
state. Around 2 minutes from click to live.
Governance layer for AR sociedades-IA
Since Argentina announced a sociedad-IA regime (Sturzenegger, 28-abr-2026), this repo additionally hosts a complete open-source governance scaffolding for AI-only Argentine corporations:
- 6 RFCs (001–006) — civil liability (3-layer) / discovery / cross- jurisdictional reciprocity / operational-log wire format / Ed25519 asymmetric extension / hash-chained ledger + external anchoring. All CC-BY-4.0. Documents the legislation can cite by reference.
- 2 frozen test-vectors files — 7 RFC-004 HMAC vectors + 3 RFC-005 Ed25519 vectors. Byte-exact deterministic signatures. Reference impl passes all 10 (103 vitest tests in 6 files).
- Public certifier at
ar-agents.ar/certifier— paste any URL, score 0-100 against RFC-002 + RFC-004 + RFC-005 in seconds. Programmatic API at/api/certifier?url=.... Reference impl self-scores 100/100 Rating A. Cookbook recipes 26 (single-shot) + 27 (monitoring) + 28 (operator readiness). - Live time-series at
/api/conformance-history— 365-entry capped KV-backed history per URL, daily Vercel cron auto-population. - Public well-known endpoints —
/.well-known/agents.json(RFC-002),/.well-known/sociedad-ia/verify-key?challenge=(RFC-004 § 5 challenge-response),/.well-known/sociedad-ia/keys(RFC-005 § 4 Ed25519 public key publication). - Bilingual narrative pages —
/legislacion(Spanish for AR legislators) +/en/legislation(English for international press / comparative-law scholars). - One-page regulator brief at
/auditor— print-friendly, 7-minute read, every claim links to evidence. - Public registry at
/registro— self-listed implementations with live cert-badges per entry. - Glossary, outreach templates, BibTeX refs, visual timeline —
see
/glossary,/share,/refs,/timeline.
For an outsider arriving cold: start at the auditor's brief
or the legislative synthesis.
Citation file: CITATION.cff.
import { Experimental_Agent as Agent, stepCountIs } from "ai";
import {
MercadoPagoClient,
mercadoPagoTools,
InMemoryStateAdapter,
} from "@ar-agents/mercadopago";
const mp = new MercadoPagoClient({
accessToken: process.env.MP_ACCESS_TOKEN!, // TEST- for sandbox, APP_USR- for prod
});
const agent = new Agent({
model: "anthropic/claude-sonnet-4-6",
tools: mercadoPagoTools(mp, {
state: new InMemoryStateAdapter(), // swap for VercelKVStateAdapter in prod
backUrl: "https://yoursite.com/subscription/done",
}),
stopWhen: stepCountIs(8),
});
const { text } = await agent.generate({
prompt: "Creá una subscription mensual de $1000 ARS para customer@example.com.",
});
Full reference, cookbook (9 recipes including OpenTelemetry wiring), and
migration guide vs the official mercadopago SDK live in
packages/mercadopago/.
How it compares
@ar-agents/mercadopago | mercadopago (official) | Stripe Agent Toolkit | |
|---|---|---|---|
| Vercel AI SDK 6 tool schemas | ✓ | no | ✓ (Stripe) |
| Argentine-specific (cuotas, ARCA, AR phone) | ✓ | partial | no |
| Tool count | 89 | thin REST client | 26 (Stripe) |
| Webhooks: HMAC + dedup + replay window | ✓ | client only | ✓ |
| Edge Runtime + Vercel KV adapters | ✓ | Node-only | optional |
| OpenTelemetry instrumentation | ✓ | no | no |
| Deterministic idempotency by default | ✓ | no | no |
| Programmatic HITL on irreversible ops | ✓ | no | no |
| MercadoPago coverage | full | full | n/a |
Both official SDKs are excellent at what they do (generic REST clients for
their respective APIs). @ar-agents/mercadopago is opinionated for the
agent-operating-an-Argentine-business case, and composes with mercadopago
under the hood when needed. See MIGRATION.md.
Architecture
flowchart LR
subgraph user_app["Your Next.js / Edge / Workers app"]
direction TB
agent["Vercel AI SDK 6<br/>Experimental_Agent"]
end
subgraph ar_agents["@ar-agents/* (this monorepo)"]
direction TB
mp["mercadopago<br/>89 tools"]
id["identity<br/>CUIT + AFIP padrón"]
fac["facturacion<br/>factura electrónica"]
wa["whatsapp<br/>Business Cloud"]
bk["banking<br/>CBU + BCRA"]
sh["shipping<br/>Andreani / OCA / Correo"]
att["identity-attest<br/>HMAC-signed orchestrator"]
mcp["mcp<br/>bundles all 7 over MCP"]
end
subgraph adapters["Pluggable state (subpath)"]
direction TB
kv["@ar-agents/mercadopago/vercel-kv<br/>state · OAuth · idempotency · audit · ratelimit"]
otel["@ar-agents/mercadopago/otel<br/>OpenTelemetry instrumentation"]
end
subgraph external["External APIs"]
direction TB
mpapi["api.mercadopago.com"]
afip["AFIP/ARCA WSAA + WSFE"]
meta["Meta WhatsApp Cloud API"]
bcra["BCRA Central de Deudores"]
carriers["Andreani · OCA · Correo Argentino"]
end
agent -- tool calls --> mp & id & fac & wa & bk & sh & att
mp -.subpath.-> kv & otel
mp --> mpapi
id --> afip
fac --> afip
wa --> meta
bk --> bcra
sh --> carriers
mcp -.bundles.-> mp & id & fac & wa & bk & sh & att
The agent picks tools from natural-language prompts. Each package is an independent npm release; there are no cross-package runtime dependencies beyond the optional adapter subpaths, so you only ship the surface you use.
Other AR primitives in this monorepo
Same approach, applied to the rest of the stack an Argentine business needs:
| Package | Tools | What it does |
|---|---|---|
@ar-agents/identity | 2 | CUIT/CUIL validation + AFIP/ARCA padrón lookup (constancia con monotributo + condición IVA). WSAA SOAP via subpath. |
@ar-agents/identity-attest | 5 | Verification orchestrator (WhatsApp OTP, email magic-link, Auth0, Magic.link, MP Identity), returns HMAC-signed attestation with trustLevel. |
@ar-agents/whatsapp | 6 | WhatsApp Business Cloud API. Webhook + HMAC. AR phone normalizer. scopedTo mode binds outbound tools to a single sender. |
@ar-agents/facturacion | 10 | AFIP/ARCA factura electrónica (WSFE). Factura A/B/C, NC/ND, FCE MiPyMEs. Local pre-flight validator. |
@ar-agents/banking | 5 | CBU/CVU validation + bank/PSP lookup + BCRA Central de Deudores. |
@ar-agents/shipping | 6 | Andreani (full) + OCA + Correo Argentino. Provincia + CPA helpers. |
@ar-agents/mcp | wraps all | Model Context Protocol server. Drop the toolkit into Claude Desktop, Cursor, any MCP host. |
Each package ships a README.md for humans and an AGENTS.md for LLMs reading
the docs at runtime, following the agents.md format
(tool-selection rules, result schemas, error patterns).
Live demos
| App | URL | Shows |
|---|---|---|
| Landing | https://ar-agents.ar | Toolkit overview |
cuit-hello | https://cuit-hello.ar-agents.ar | CUIT validation + ARCA padrón (real AFIP cert) |
whatsapp-hello | https://whatsapp-hello.ar-agents.ar | Billing assistant: MP composed with identity, identity-attest, whatsapp |
mp-hello | dev-only | MP Subscriptions full flow (pnpm dev, port 3013) |
Develop
pnpm install
pnpm test # 719 tests across 8 packages
pnpm typecheck
pnpm build
pnpm dev # mp-hello on http://localhost:3013
Requires Node 20+ and pnpm 10+. CI runs build, typecheck, coverage, manifest-drift, publint, arethetypeswrong, and size-limit on every push.
Repo layout
ar-agents/
├── apps/
│ ├── landing/ # ar-agents.ar
│ ├── cuit-hello/ # cuit-hello.ar-agents.ar (port 3014)
│ ├── whatsapp-hello/ # whatsapp-hello.ar-agents.ar
│ └── mp-hello/ # dev-only (port 3013)
├── packages/
│ ├── mercadopago/ # 89 tools: subscriptions, payments, OAuth, QR, 3DS, point, ...
│ ├── identity/ # CUIT validate + ARCA padrón
│ ├── identity-attest/ # verification orchestrator
│ ├── whatsapp/ # WhatsApp Cloud
│ ├── facturacion/ # AFIP factura electrónica
│ ├── banking/ # CBU/CVU + BCRA
│ ├── shipping/ # Andreani / OCA / Correo
│ └── mcp/ # MCP server wrapping all
├── .github/workflows/ # ci.yml, release.yml
├── package.json # workspace root
└── pnpm-workspace.yaml
Stability
All packages are pre-1.0. Public API may evolve in 0.x; we follow semver, so minor bumps may include breaking changes and patch bumps never do. Pinning a minor in production is safe.
License
MIT. Built by Nazareno Clemente.