Parley
Arquitectura
flowchart LR
subgraph EXT [ Their AI client ]
direction TB
BA[Buyer agent<br/><i>Claude · ChatGPT · Gemini</i>]
end
subgraph PARLEY [ Your Parley deployment ]
direction TB
WK[".well-known/<br/>agent-commerce.json"]
MCP["MCP endpoint<br/><b>/api/mcp</b>"]
TOOLS["9 tools<br/><i>search · stock · order<br/>mandate · audit</i>"]
SELLER["Seller agent<br/><i>persona + limits</i>"]
DASH["Dashboard<br/><b>/dashboard</b>"]
PG[("Postgres<br/>audit_log · mandates")]
end
subgraph STORE [ Your existing store ]
direction TB
API1["GET search"]
API2["GET product"]
API3["POST order"]
end
RZP[["Razorpay<br/>payment link"]]
U([Customer])
U --> BA
BA <-->|"discovers"| WK
BA <-->|"JSON-RPC"| MCP
MCP --> TOOLS
TOOLS <--> SELLER
TOOLS -->|"read"| API1
TOOLS -->|"read"| API2
TOOLS -->|"write"| API3
TOOLS -->|"log every decision"| PG
TOOLS -->|"needs approval"| RZP
PG --> DASH
classDef ext fill:#1e293b,stroke:#475569,color:#e2e8f0
classDef core fill:#0f2942,stroke:#2563eb,color:#dbeafe
classDef store fill:#0f2e1f,stroke:#16a34a,color:#dcfce7
classDef pay fill:#2e1f0f,stroke:#d97706,color:#fed7aa
class BA ext
class WK,MCP,TOOLS,SELLER,DASH,PG core
class API1,API2,API3 store
class RZP payParley nunca escribe en tu base de datos. Cada pedido pasa por tu propia API.
Related MCP server: Mercora
Cómo se realiza una compra
sequenceDiagram
autonumber
actor C as Customer
participant B as Buyer agent
participant P as Parley
participant S as Your store
participant R as Razorpay
C->>B: "Buy a navy tee under ₹1500"
B->>P: search_products
P->>S: GET search
S-->>P: catalog
P-->>B: normalized products
B->>P: check_stock
P->>S: GET product (live, never cached)
S-->>P: stock: 8
B->>P: create_order_and_pay
Note over P: discount clamped in code
P->>S: POST order
alt Out of stock
S-->>P: 409 out_of_stock
P-->>B: blocked · nothing charged
else Store is down
S-->>P: 5xx
P-->>B: unavailable · try again
else Accepted
S-->>P: order_id
alt Mandate covers the amount
P->>P: charge against cap
P-->>B: completed · no human needed
else No mandate
P->>R: create payment link
R-->>P: link
P-->>B: awaiting approval
B-->>C: pay here →
end
end
P->>P: write audit_log rowAntes de empezar
Parley no gestiona tu tienda. Habla con la tienda que ya tienes.
Casi todos los negocios en línea hoy en día ya tienen un sitio web, y detrás de ese sitio web hay APIs reales — los mismos endpoints que tu propio sitio llama para listar productos, comprobar stock y realizar pedidos. Parley se conecta a ellos. Este es el único requisito imprescindible.
Necesitas tres endpoints HTTP:
Endpoint | Qué debe hacer | Ejemplo |
Buscar productos | Devuelve tu catálogo, para que el agente pueda encontrar artículos |
|
Obtener un producto | Devuelve un solo producto con su stock en vivo |
|
Crear un pedido | Reserva el stock y devuelve un id de pedido |
|
Uno más es opcional: un endpoint de estado de pedido. Déjalo sin configurar y Parley reutilizará tu API de pedidos.
Los nombres de los campos y la forma del JSON dependen de ti — los mapeas en la configuración, no en el código, así que ningún endpoint existente tiene que reescribirse para adaptarse a Parley.
Si aún no tienes estas APIs, Parley no tiene nada a lo que conectarse. Nunca hace scraping de tu sitio web ni lee tu base de datos directamente. Expón primero los tres endpoints y luego vuelve a los pasos siguientes.
Inicio rápido
1 · Clonar
git clone https://github.com/Mudavath-Giri-Naik/Parley.git
cd Parley
npm installRequiere Node 20+
2 · Configurar
cp .env.example .env.localConfigura estos cuatro:
MERCHANT_NAME="Your Store"
MERCHANT_SEARCH_API=https://yourstore.com/api/products
MERCHANT_STOCK_API=https://yourstore.com/api/products
MERCHANT_ORDER_API=https://yourstore.com/api/ordersLuego configura PRICE_UNIT para que coincida con tu API:
Tu API devuelve |
|
Tu API devuelve |
|
→ Todo lo demás: docs/CONFIGURATION.md
3 · Añadir una base de datos
Cualquier Postgres. Funciona con Supabase o Neon gratuitos.
Ejecuta supabase/0001_shared_schema.sql contra ella — crea las tablas, un rol parley_app y las políticas de aislamiento a nivel de fila. Cada fila de su consulta de verificación debe decir PASS.
PARLEY_DB_URL=postgresql://parley_app:pass@host:5432/db?sslmode=requireConéctate como
parley_app, no como superusuario. Un superusuario omite la seguridad a nivel de fila, lo que elimina silenciosamente la capa de aislamiento.En Supabase, usa la cadena de conexión pooler (Project Settings → Database → Connection pooling). El host directo
db.<ref>.supabase.coes solo IPv6 y no se resolverá en la mayoría de las redes IPv4.
4 · Añadir claves de pago
Desde tu panel de Razorpay → Configuración → Claves API.
RAZORPAY_KEY_ID=rzp_test_xxxxx
RAZORPAY_KEY_SECRET=xxxxx5 · Ejecutar localmente
npm run devAbre http://localhost:3000 y confirma:
Sin advertencia de «Configuración incompleta»
Las tarjetas de capacidad se muestran en verde
Los precios coinciden con tu catálogo real
npm run test:regression6 · Desplegar
npx vercel --prod⚠️ Vuelve a introducir cada variable en Vercel → Configuración → Variables de entorno, y luego vuelve a desplegar.
.env.localno se sube.
7 · Copia tu enlace MCP
Abre tu URL desplegada. Haz clic en Copiar junto al endpoint MCP.
https://your-project.vercel.app/api/mcp8 · Conectar con Claude
Configuración → Conectores → Añadir conector personalizado → pega la URL → Añadir.
Documentación del conector de Claude · Para ChatGPT, consulta la documentación de MCP de OpenAI — no probado aquí
9 · Pruébalo
Pega en el chat:
Show me what's in stock right now, with prices.
Then check live availability for one of them.Luego abre /dashboard — cada llamada aparece con su razonamiento.
Qué incluye
🔒 Límite de descuento | Aplicado en código, no por el prompt |
💳 Mandatos de gasto | Compras desatendidas solo dentro de un límite autorizado por el cliente |
📦 Stock en vivo | Nunca se almacena en caché, se comprueba antes de cada promesa |
📝 Registro de auditoría completo | Cada decisión se registra con un razonamiento en lenguaje sencillo |
🔌 Cualquier forma de API | Nombres de campos mapeados mediante configuración, no código |
🤝 Negociación | Opcional, mediante Claude o Gemini |
Comandos
npm run dev # local dev server
npm run build # production build
npm run test:regression # end-to-end suite against a live deployment
npm run check:template # verify no merchant values leaked into source
npm run typecheck # tsc --noEmitEstructura del proyecto
app/
api/mcp/route.ts MCP endpoint
dashboard/ audit trail UI
page.tsx status page + copyable MCP link
lib/
config.ts all env vars, validated once
merchantApi.ts field mapping, envelopes, refusals
tools/ one file per tool
sellerAgent.ts negotiation
scripts/
regression.mjs end-to-end testsDocumentación
Configuración — cada variable de entorno, el contrato de la API de pedidos
Limitaciones — brechas conocidas, léelo antes de desplegar
Licencia
MIT
This server cannot be deployed
Maintenance
Related MCP Connectors
Autonomous commerce for AI agents: discover, quote, order, pay, verify.
Connect AI to store orders, products and inventory with scoped access and human approvals.
AI shopping gateway for product search, inventory, carts, and merchant-hosted checkout.
The independent agent-commerce protocol for AI-agent checkout on any online store.
Related MCP Servers
- AlicenseAqualityDmaintenanceEnables AI agents to autonomously browse inventory, negotiate terms, manage carts, and execute secure payments on Shopify stores using standardized protocols. It provides a bridge for LLMs to handle the entire commerce lifecycle from discovery to order tracking through a verifiable mandate chain.52MIT
- FlicenseNot gradedqualityDmaintenanceEnables AI agents to discover products, build carts, and complete purchases across multiple downstream commerce services through a secure, contract-driven API.-
- FlicenseNot gradedqualityBmaintenanceEnables AI agents to browse product catalogs and make purchases through a policy engine that enforces spending limits, requires human approval for certain amounts, and logs all actions to an audit trail.-
- AlicenseNot gradedqualityBmaintenanceEnables AI shopping agents to search products, check stock, apply promotions, manage cart sessions, and create cryptographically signed checkout sessions on e-commerce storefronts, while giving merchants analytics into agent intent and catalog demand gaps.MIT