Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

AgentCart — capa de compra para agentes de IA

AgentCart es una interfaz de comercio hecha para agentes de IA, no para humanos. Es un backend puro (sin frontend) que expone un servidor MCP (Model Context Protocol) y una pequeña API de administración, para que un agente —Claude, ChatGPT, Gemini o uno propio— pueda buscar, comparar, cotizar, armar carrito y comprar contra tiendas reales como Tiendanube/Nuvemshop y MercadoLibre, todo detrás de un único esquema normalizado.

No hay pantallas, ni carrito visual, ni checkout para personas. El "usuario" de AgentCart es el agente.

Construido con Express 5 · TypeScript, corriendo como un proceso Node persistente (no serverless). Desplegable en cualquier host Node (Render, Fly.io, Railway, un contenedor, o Vercel como Node server).


¿Qué se quiere lograr?

La tesis: el próximo comprador no es una persona haciendo clic, es un agente actuando en su nombre. Las tiendas de hoy están diseñadas para ojos y clics humanos y quedan ciegas frente a un agente que quiere operar de forma programática.

AgentCart es la capa intermedia que le da a cualquier agente una forma limpia, tipada y segura de comprar en las plataformas de eCommerce que ya existen en LATAM, sin que cada agente tenga que aprender la API propia de cada plataforma. Un solo contrato MCP → muchos backends de comercio por debajo.


Objetivos

  1. Interfaz 100% agent-first — la superficie de uso es un servidor MCP con herramientas (tools), recursos (resources) y prompts. Nada de UI humana.
  2. Un esquema, muchas tiendas — una capa de adaptadores normaliza MercadoLibre, Tiendanube/Nuvemshop y un backend demo a los mismos DTOs (AgentProduct, Cart, CheckoutResult, …). Cambiar de tienda no cambia las herramientas que ve el agente.
  3. Conectar con eCommerce reales de LATAM — adaptadores contra las APIs reales de MercadoLibre y Tiendanube (mapeo de campos real, auth OAuth2/token), conectables en runtime sin redeploy.
  4. Cero fricción para arrancar — corre con el backend demo sin ninguna credencial; el agente puede probar el flujo completo (buscar → inventario → envío → carrito → checkout → tracking) offline.
  5. Proceso persistente — servidor Express de larga duración, así el estado de conexión de los adaptadores (tokens conectados en runtime) sobrevive entre requests, algo que un entorno serverless no garantiza. JSON-RPC sobre HTTP con CORS, listo para que un agente remoto lo consuma directo.

Metas

  • Servidor MCP funcional (/api/mcp) — JSON-RPC 2.0: initialize, tools/list, tools/call, resources/list, resources/read, prompts/list.
  • 7 herramientas de comerciosearchProducts, getProduct, compareProducts, checkInventory, calculateShipping, createCart, checkout, trackOrder.
  • Capa de adaptadores con contrato único (CommerceAdapter) y 3 backends: demo, MercadoLibre, Tiendanube.
  • API de administración (/api/adapter) — listar adaptadores, elegir el activo y conectar credenciales en runtime.
  • OAuth completo end-to-end para MercadoLibre y Tiendanube (hoy: token/credenciales; falta el callback de OAuth).
  • Escritura real de órdenes en Tiendanube (creación de order) y hand-off de checkout en MercadoLibre.
  • Autenticación del propio servidor MCP (API keys / scopes por agente).
  • Más plataformas (Shopify, WooCommerce) sobre el mismo contrato.

Cómo correrlo

pnpm install
pnpm dev        # tsx watch → http://localhost:3000

Arranca con el backend demo — no requiere ninguna credencial. Para apuntar a una tienda real, copiá .env.example.env.local y completá el token del adaptador (o conectalo en runtime, ver abajo).

pnpm build && pnpm start   # tsc → node dist/server.js

El puerto se controla con la variable de entorno PORT (default 3000).


Superficie de la API

Ruta Método Qué hace
/ GET Manifiesto del servicio (versión, endpoint MCP, herramientas, adaptadores)
/api/mcp GET Descripción rápida del servidor MCP
/api/mcp POST Endpoint JSON-RPC 2.0 del servidor MCP
/api/adapter GET Lista adaptadores y cuál está activo
/api/adapter POST Cambia el adaptador activo ({ id })
/api/adapter/connect POST Conecta/desconecta credenciales en runtime ({ id, token, storeId? })

Las 7 herramientas MCP

searchProducts · getProduct · compareProducts · checkInventory · calculateShipping · createCart · checkout · trackOrder

Flujo típico de un agente: searchProductscheckInventory / calculateShippingcreateCartcheckouttrackOrder.

Ejemplo (curl)

# Listar herramientas
curl -X POST localhost:3000/api/mcp -H 'content-type: application/json' \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'

# Buscar productos
curl -X POST localhost:3000/api/mcp -H 'content-type: application/json' \
  -d '{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"searchProducts","arguments":{"query":"drill","limit":3}}}'

Para dirigir una request a un backend específico sin cambiar el activo, mandá el header x-agentcart-adapter: mercadolibre (o tiendanube / demo).


Arquitectura

Agente (Claude / ChatGPT / Gemini / propio)
        │  JSON-RPC 2.0 / MCP
        ▼
  Express (src/server.ts)
        │
  /api/mcp  ──►  handler MCP  ──►  tools (7)  ──►  CommerceAdapter (contrato único)
                                                        │
        ┌────────────────────────────────────────────────┼────────────────────────────┐
        ▼                               ▼                                              ▼
   DemoAdapter              MercadoLibreAdapter                          TiendanubeAdapter
 (catálogo en memoria)     (api.mercadolibre.com)                      (api.tiendanube.com)
  • src/server.ts — la app Express: CORS, parseo JSON, monta las rutas y el manifiesto en /.
  • src/routes/mcp.ts — endpoint HTTP del servidor MCP (GET info · POST JSON-RPC).
  • src/routes/adapter.ts — API para listar/cambiar el adaptador activo y conectar credenciales.
  • src/mcp/handler.ts — el dispatcher MCP (JSON-RPC), agnóstico del framework HTTP.
  • src/lib/commerce/adapter.ts — el contrato CommerceAdapter que implementa todo backend.
  • src/lib/commerce/types.ts — los DTOs normalizados (AgentProduct, Cart, CheckoutResult, …) que el agente ve, sin depender de ninguna plataforma.
  • src/lib/commerce/tools.ts — la definición de las 7 herramientas MCP y su JSON Schema.
  • src/lib/commerce/{demo,mercadolibre,tiendanube}-adapter.ts — los 3 backends. Los reales traen el mapeo de campos y los endpoints de la API oficial de cada plataforma.
  • src/lib/commerce/registry.ts — registro de adaptadores, adaptador activo y conexión en runtime.

Stack

Express 5 · TypeScript · Node.js. tsx para desarrollo, tsc para el build. Una sola dependencia de runtime (express). Sin frontend.

About

Capa de compra agent-first: servidor MCP + adaptadores que permiten a agentes de IA comprar en tiendas reales (MercadoLibre, Tiendanube). Backend puro, sin UI.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages