Ar Agents

io.github.ar-agents由 GitHub 账号 ar-agents 发布v0.4.11更新于 Oct 24, 2026

Argentine business automation: Mercado Pago, AFIP/ARCA, WhatsApp, banking, shipping (7 packages).

概览

AI 生成的概览

把阿根廷商务工具打包成一个本地 MCP 服务器:CUIT 校验、AFIP/ARCA 税务查询、Mercado Pago 支付和 WhatsApp Business 消息。

可以做什么
  • 校验并查询阿根廷税号 CUIT,配置证书后可获取 AFIP/ARCA padron 数据
  • 创建、搜索、退款、取消和捕获 Mercado Pago 支付,并计算分期
  • 管理 Mercado Pago 订阅、客户、银行卡和支付方式
  • 发送 WhatsApp Business 文本、模板、媒体、按钮和列表消息,并标记已读
  • 设置签名密钥后可运行身份验证流程(OTP、魔法链接、证明)
  • 通过人工审批钩子拦截涉及资金、税务和法律的工具,并提供全局暂停开关
适用场景
适合与阿根廷客户或企业打交道、希望在 Claude Desktop、Cursor 等 MCP 宿主中让助手无需写代码即可完成 CUIT 查询、Mercado Pago 支付与订阅、WhatsApp Business 消息发送的场景。
运行要求
通过 npx 从 npm 包 @ar-agents/mcp 本地运行,需要 Node.js。各集成均为可选,由各自环境变量启用:Mercado Pago 需 MP_ACCESS_TOKEN;AFIP/ARCA 需 AFIP_CERT_PEM、AFIP_KEY_PEM 及 CUIT 变量;WhatsApp 需 WHATSAPP_ACCESS_TOKEN 和 WHATSAPP_PHONE_NUMBER_ID。不设任何变量时仅有 CUIT 校验可用。访问外部服务需要网络。
安装前请注意
该服务器可动用真实资金、申报真实税务并执行不可逆的法律行为;默认情况下此类工具会被拒绝,除非接入人工审批钩子,而设置 AR_AGENTS_MCP_ENFORCE=off 会关闭该闸门。由于按工具名称分类,部分只读工具也会被拦截。它要求敏感凭据:AFIP_CERT_PEM 与 AFIP_KEY_PEM(私钥)、MP_ACCESS_TOKEN、WHATSAPP_ACCESS_TOKEN;README 还列出 ATTEST_SIGNING_SECRET、RESEND_API_KEY 等变量。版本为 1.0 之前,次版本可能包含破坏性变更。

安装

在 SourceWeft 中

  1. 打开 控制台中的 Ar Agents,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。

其他 MCP 客户端

参照 仓库 中的启动说明。

README

@ar-agents/mcp

One MCP server that bundles the entire @ar-agents/* toolkit: CUIT validation, AFIP/ARCA padron lookup, identity attestation, MercadoPago Payments + Subscriptions + Cuotas, WhatsApp Business: into any MCP host (Claude Desktop, Cursor, Codeium, Continue, Cline, etc.).

[npm] [License: MIT] [npm provenance] [ar-agents on Glama] [MCP Registry]

What is this

This package is the MCP server wrapper around the @ar-agents/* packages. If you're building agents in Vercel AI SDK 6 directly, you don't need this: install the individual packages. If you want to use the AR toolkit from Claude Desktop, Cursor, Codeium, or any MCP host, this is your one-stop install.

Governance: the art. 102 gate is ON by default

This server moves real money (Mercado Pago), files real taxes (AFIP/ARCA) and can constitute real companies (IGJ). Argentina's Sociedad Automatizada regime (art. 102) makes a human administrator responsible for those acts and bars delegating that supervision. So, by default, this server enforces a governance gate:

  • A READ-level tool (e.g. validate_cuit, lookup_cuit_afip, search_payments) always runs: no gate.
  • A money / fiscal / legal / irreversible (or unclassifiable) tool is REFUSED unless you wire a human-approval hook. The refusal is a clear MCP error telling you what to do — no money/fiscal/legal tool ever executes silently.

Classification reuses the same @ar-agents/core risk manifest the local agents use (classifyTool / levelRequiresApproval), fed each tool's name, description and sideEffects. The gate runs before the tool executes, so a denied call never touches the network.

Blast radius: the gate is fail-closed, so some READ tools are gated too

Classification is by name (plus description / sideEffects). The unknown class fails closed — and any tool whose name is not a recognized read verb is treated as unknown and is GATED by default-ON. With every registry wired this is roughly 65 of ~145 exposed tools, and it currently includes some genuine read tools whose names don't match the read-verb heuristic:

CategoryRead tools currently GATED by default-ON
IGJ registry readsigj_get_entity, igj_search_entities, igj_get_autoridades, igj_get_domicilios, igj_get_asambleas
Boletín Oficial readsbo_search, bo_today, bo_get_norma, bo_list_subscriptions
Signature verification readsfirma_inspect_cert, firma_verify_chain, firma_verify_cms_signature, firma_is_onti_issued
AFIP catalog readsobtener_alicuotas_iva, obtener_tipos_comprobante, obtener_tipos_documento, obtener_tipos_concepto, obtener_tipos_moneda
Shipping readstrackear_envio, listar_sucursales
Otherlookup_credit_situation, mp_health_check

This is intentional fail-safe behavior (better to gate a read than let an unknown tool move money silently), not a per-tool allowlist of "these are dangerous". To see the exact resolved risk level for every tool in your configuration, run:

bash
ar-agents-mcp doctor

Its GOVERNANCE section lists each exposed tool, its resolved risk level, and whether it is GATED under your current env — so you see the precise blast radius before and after upgrading. To let the gated reads (and any approval-level tool) run, either wire an approve hook (below) or set AR_AGENTS_MCP_ENFORCE=off (ungated — not recommended for autonomous money/fiscal/legal acts). Reclassifying these names as read so they pass while real acts stay gated is a separate, deliberate change to the cross-package risk manifest, tracked outside this release.

Wiring human approval (HITL)

When you embed the server in your own Node app:

ts
import { createServer } from "@ar-agents/mcp";
const { server } = await createServer({  governance: {    // Called before any money/fiscal/legal/irreversible/unknown tool.    // Return true to proceed, false (or throw) to refuse.    approve: async (toolName, args) => askHumanAdministrator(toolName, args),    // Optional kill-switch: when it returns true, EVERY tool refuses.    isHalted: async () => isSocietySuspended(),  },});

Opting out (ungated passthrough)

To restore the old behavior where every tool runs without a gate, set:

jsonc
"env": { "AR_AGENTS_MCP_ENFORCE": "off" }

Resolution order: the explicit createServer({ governance: { enforce } }) option > the AR_AGENTS_MCP_ENFORCE env var > default-ON. The boot summary (printed to stderr) shows the active mode, e.g. governance → enforce=ON (art. 102 gate · NO approve hook → fail-closed DENY).

Kill-switch

Set AR_AGENTS_MCP_HALT=1 (or wire governance.isHalted) to suspend the whole society: every tool, read or not, refuses with a society_suspended error. Default is no halt — behavior is unchanged unless you wire it.

Env varDefaultEffect
AR_AGENTS_MCP_ENFORCEonoff disables the art. 102 gate (ungated passthrough).
AR_AGENTS_MCP_HALTunset1 suspends every tool (society_suspended).

Quick start (Claude Desktop)

Edit ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):

jsonc
{  "mcpServers": {    "ar-agents": {      "command": "npx",      "args": ["-y", "@ar-agents/mcp"],      "env": {        // All env vars are optional: set the ones for the integrations you need.        // Without any: only `validate_cuit` (algorithm-only) is available.
        // MercadoPago: enables 21 payment / subscription tools        "MP_ACCESS_TOKEN": "TEST-...-or-APP_USR-...",        "MP_BACK_URL": "https://yourapp.com/done",
        // AFIP/ARCA: enables `lookup_cuit_afip` (real padron data)        "AFIP_CUIT_REPRESENTADO": "20XXXXXXXXY",        "AFIP_CERT_PEM": "-----BEGIN CERTIFICATE-----\n...",        "AFIP_KEY_PEM": "-----BEGIN PRIVATE KEY-----\n...",        "AFIP_ENV": "prod", // or "homo"
        // WhatsApp Business: enables 6 messaging tools        "WA_ACCESS_TOKEN": "EAA...",        "WA_PHONE_NUMBER_ID": "...",
        // Identity Attestation: enables 5 verification tools        "ATTEST_SIGNING_SECRET": "openssl rand -hex 32 result here",        "BUSINESS_NAME": "Your Company",        "RESEND_API_KEY": "re_...",                // optional, enables email_magic_link adapter        "ATTEST_CALLBACK_URL": "https://yourapp.com/api/identity-attest/callback",        "ATTEST_FROM_EMAIL": "[email protected]"      }    }  }}

Restart Claude Desktop. Look for the wrench icon → ar-agents tools should appear.

Quick start (Cursor)

Edit ~/.cursor/mcp.json:

jsonc
{  "mcpServers": {    "ar-agents": {      "command": "npx",      "args": ["-y", "@ar-agents/mcp"],      "env": {        "MP_ACCESS_TOKEN": "TEST-...",        // ... same env vars as above      }    }  }}

Restart Cursor. The tools appear in your chat panel's tool picker.

Quick start (any other MCP host)

Same pattern. Anything that supports MCP stdio servers works:

  • Codeium: set in Settings → MCP servers
  • Continue: ~/.continue/config.json → experimental.modelContextProtocolServers
  • Cline: cline_mcp_settings.json

What tools you get

The set of tools depends on which env vars you set. Without any env vars: only validate_cuit (algorithm-only) is registered. With all env vars set:

SourceTools
@ar-agents/identity (always on)validate_cuit, lookup_cuit_afip (when AFIP vars set)
@ar-agents/identity-attest (when ATTEST_SIGNING_SECRET set)list_verification_methods, request_identity_verification, submit_otp_code, check_verification_status, get_attestation
@ar-agents/mercadopago (when MP_ACCESS_TOKEN set)21 tools: create_payment_preference, create_payment, search_payments, refund_payment, calculate_installments, create_subscription, create_customer, list_customer_cards, list_payment_methods, get_account_info, cancel_payment, capture_payment, list_refunds, get_payment, get_payment_preference, find_customer_by_email, delete_customer_card, pause_subscription, resume_subscription, cancel_subscription, get_subscription_status
@ar-agents/whatsapp (when WA vars set)6 tools: send_whatsapp_text, send_whatsapp_template, send_whatsapp_media, send_whatsapp_buttons, send_whatsapp_list, mark_whatsapp_read

Total: up to 34 tools for AR agents in one MCP install.

Verifying it works

Run the binary directly to see the registered-tools summary:

bash
npx @ar-agents/mcp# Outputs to stderr (stdout is reserved for MCP protocol):#   [email protected] starting with N tools registered:#     identity      → validate_cuit + lookup_cuit_afip (AFIP cert configured)#     mercadopago   → PROD mode · back_url=...#     whatsapp      → phone_number_id=...#     identity-attest → whatsapp_otp, email_magic_link

If you see "not configured", check your env vars match what each package expects.

When to use this vs the individual packages

Use this (@ar-agents/mcp)Use the individual packages
Claude Desktop / Cursor / Codeium userBuilding a Vercel AI SDK 6 agent in your own Node app
Want the toolkit available in your IDEWant fine-grained control over which tools an Agent registers
Don't want to write any codeAlready have an Agent({ tools }) setup

The npm packages and the MCP server expose identical functionality: same tool names, same schemas, same behavior. The MCP server is just a different transport.

Troubleshooting

"validate_cuit only": no other tools showing → You haven't set any env vars. Check the env section of your MCP config.

MercadoPago tool calls fail with 401 → Your MP_ACCESS_TOKEN is wrong or expired. Test users in sandbox have their own tokens; don't mix prod/test.

AFIP lookup_cuit_afip returns "not configured" → You set MP_ACCESS_TOKEN but missed AFIP_CUIT_REPRESENTADO + cert vars. Each integration is independent.

Magic-link adapter not registered (identity-attest) → You set ATTEST_SIGNING_SECRET but not RESEND_API_KEY + ATTEST_CALLBACK_URL. The adapter needs both.

Tool names collide → Open an issue at github.com/ar-agents/ar-agents: we'll prefix tool names in v0.2 if collisions become common.

License

MIT: © Nazareno Clemente

Stability

This package is pre-1.0. Per npm convention, 0.x minor versions may include breaking changes. We document every breaking change in CHANGELOG.md under the corresponding minor bump and flag it explicitly. To avoid surprises:

bash
# Pin to exact version (recommended for production):pnpm add @ar-agents/<package>@<exact-version>

We commit to no breaking changes within a patch version, and we publish 1.0.0 once the public API has stabilized across at least two consecutive minor releases.

来源:packages/mcp/README.md,提交 38b95ef

工具

0
SourceWeft 尚未在沙箱中启动过该软件包,因此其工具未知。

版本历史

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

评分

已满足适用检查项的 50%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通25 分

    请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。

  • 已声明认证方式10 分

    请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。

  • 已列出工具15 分

    请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。

  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分