Goods Receipt MCP
Notas de recepción de mercancías contra órdenes de compra: tolerancias de exceso/falta, unidades dañadas y faltantes, discrepancias, exportación CSV.
Documentación
mcp-goods-receipt
Servidor MCP para notas de recepción de mercancías contra órdenes de compra: unidades recibidas, dañadas y faltantes, con un informe de discrepancias. El registro de recepción de órdenes de compra: qué llegó, contra qué línea, en qué cantidad y condición.
Funciona con Claude Desktop, Claude Code, Cursor y cualquier cliente del Protocolo de Contexto de Modelos. Se ejecuta en tu propia máquina, o alojado sin instalación.
Página del producto: https://mcp.zovo.one/s/goods-receipt — qué hace, las herramientas que expone y un endpoint de token en vivo.
Instalación
Alojado, nada que instalar. Obtén un token de https://mcp.zovo.one/mcp/connect (la página de conexión) o https://mcp.zovo.one/mcp/token (el mismo token como JSON); se emite uno anónimo gratuito al instante y una clave Pro funciona de la misma manera. Luego apunta un cliente MCP a https://mcp.zovo.one/mcp/goods-receipt a través de streamable-http y envía el token como Authorization: Bearer <token>.
Si tu cliente no puede configurar encabezados, coloca el token en la ruta en su lugar: https://mcp.zovo.one/mcp/goods-receipt/t/<token>. Ambas formas funcionan. La URL sin token responde 401 en tools/call, por lo que el token no es opcional.
Claude Desktop, un clic. Descarga goods-receipt.mcpb desde la última versión y haz doble clic en él.
Desde el código fuente. El espejo es autónomo: cada dependencia de @theluckystrike/* está incluida, por lo que una clonación nueva se compila sin configuración adicional.
git clone https://github.com/theluckystrike/mcp-goods-receipt.git
cd mcp-goods-receipt
npm install && npm run build
Luego apunta tu cliente al punto de entrada compilado:
{
"mcpServers": {
"goods-receipt": {
"command": "node",
"args": ["/absolute/path/to/mcp-goods-receipt/dist/index.js"]
}
}
}
@theluckystrike/mcp-goods-receiptaún no está publicado en npm, por lo que un comandonpx -y @theluckystrike/mcp-goods-receiptfallará. Las tres rutas anteriores son las que funcionan y cada una es probada por CI.

Espejo de solo lectura de mcp-servers/servers/goods-receipt. Consulta MIRROR.md.
En el Registro oficial de MCP (io.github.theluckystrike/goods-receipt).
Las órdenes de compra y las notas de recepción de mercancías que las reciben. Una OC lleva una referencia, un proveedor y líneas con fechas — sku, descripción, unidades enteras pedidas — además de tolerancias de exceso/defecto en porcentajes enteros que deciden cuándo se marca una recepción. Una GRN se crea contra una OC abierta, una celda por línea: unidades recibidas, unidades dañadas y cualquier faltante que ya conozcas. El faltante se deriva, no se escribe — pedido menos recibido, con un mínimo de cero — y aparece como discrepancia en el momento en que los números no coinciden.
La única regla que decide todo lo demás
La tolerancia de exceso se verifica contra el total acumulado de todas las GRN creadas en la línea, no contra cada entrega de forma aislada.
Tres entregas de 40 contra un pedido de 100 al 10% se permiten de a una y de a diez, pero la tercera entrega se rechaza, porque 120 recibidos de 100 pedidos rompe la tolerancia de exceso aunque ninguna entrega individual lo hiciera. Las entregas parciales están bien — varias GRN contra la misma OC es el caso normal — y la regla acumulativa es lo que evita que reciban en exceso silenciosamente.
Dos reglas más pequeñas se derivan de esto:
- Nada derivado se almacena. El faltante y la discrepancia se calculan en cada llamada a partir de las líneas de la OC y las GRN ya registradas. El daño es lo único que se escribe, porque es lo único que el almacén realmente ve.
- Recibir más allá de la tolerancia se rechaza, nunca se ajusta. A menos que las unidades adicionales se declaren dañadas, una recepción que rompe la tolerancia de exceso no escribe nada y explica el motivo. Las unidades dañadas aún cuentan para la verificación de tolerancia — "llegó roto" no es una licencia para pedir 100 y recibir 130.
Las herramientas
| Herramienta | Qué hace |
|---|---|
po_add | Crear una orden de compra: referencia, proveedor, líneas con fechas, tolerancias de exceso/defecto |
grn_add | Recibir mercancías contra una OC abierta: recibido/dañado por línea, faltante derivado |
grn_line_add | Recibir una línea más en una GRN abierta |
grn_list | GRN más recientes primero, filtradas por OC o estado |
grn_get | Una GRN: cada línea con recibido, dañado, faltante y notas |
grn_discrepancy | Líneas con faltante, exceso, daño o cerradas con montos pendientes |
grn_close | Cerrar una GRN una vez que el conteo está resuelto |
grn_status_report | Cada OC: líneas abiertas, recibido acumulado, lo que aún está pendiente |
grn_export_csv | GRN como CSV (Pro) |
license_status | Qué nivel tiene esta instalación y de dónde proviene la clave |
license_activate | Almacenar una clave Pro para este servidor |
Inicio rápido
po_add { "reference": "ACME-1001", "supplier": "Acme Trading",
"lines": [ { "sku": "BRK-8", "description": "Bracket, steel", "ordered": 100 } ] }
grn_add { "po": "PO-0001",
"lines": [ { "line": "L01", "received": 60 } ] }
grn_add { "po": "PO-0001",
"lines": [ { "line": "L01", "received": 35, "damaged": 2 },
{ "line": "L01", "received": 10 } ] } // refused: 105 > 100 + 10%
grn_discrepancy {} // L01 is 5 short of 100
Los IDs se ven como PO-0001 y GRN-0001; las líneas dentro de una OC son L01, L02, ….
Inicio rápido
{ "tool": "po_add", "args": { "reference": "ACME-1005", "supplier": "Acme Trading",
"lines": [{ "sku": "BRK-01", "description": "Bracket, steel", "ordered": 10 }] } }
{ "tool": "grn_add", "args": { "po": "PO-0001", "lines": [{ "line": "L01", "received": 9, "damaged": 1 }] } }
{ "tool": "grn_discrepancy", "args": { "po": "PO-0001" } }
Una GRN que llega más allá de la tolerancia de exceso se rechaza; el faltante se calcula como pedido menos recibido y se muestra como discrepancia. grn_export_csv (Pro) escribe todo el libro mayor como CSV.
Gratis vs Pro
| Gratis | Pro | |
|---|---|---|
| Órdenes de compra | hasta 2,000 | hasta 2,000 |
| GRN | hasta 5,000 | hasta 5,000 |
| Líneas por OC / por GRN | hasta 200 | hasta 200 |
grn_list, grn_get, grn_discrepancy, grn_status_report | sí | sí |
grn_export_csv | no | sí |
El dominio está limitado en todo el espacio (2,000 OC, 5,000 GRN, 200 líneas) en todos los niveles — estas son reglas estrictas para que una tienda no pueda crecer más allá de lo que el formato de archivo puede contener, no un muro de pago. Pro desbloquea la exportación CSV para enviar recepciones a una hoja de cálculo o un ERP.
Obtén Pro: https://mcp.zovo.one/buy/goods-receipt (pago único), o todos los servidores por un solo precio en https://mcp.zovo.one/buy/bundle
Privacidad
Todos los datos permanecen locales, en ${XDG_DATA_HOME:-~/.local/share}/mcp-servers/goods-receipt/, en
store.json (OC y GRN) y counter.json (las series de OC y GRN). No hay ninguna llamada de red en este servidor, ni clave API, ni cuenta. El único archivo que lee que no le pertenece es el perfil empresarial compartido, y nunca escribe en él.
Creado por theluckystrike. Soporte: support@zovo.one
Usa estos documentos como servidor MCP
Cualquier cliente MCP (Claude, Cursor, Windsurf, VS Code) puede leer la documentación de este repositorio directamente a través de GitMCP — sin instalación:
- URL de Docs MCP: https://gitmcp.io/theluckystrike/mcp-goods-receipt